Stevey's Google Platforms Rant (2011)
plus.google.com
plus.google.com
It would be nice to see if there was a change at Google since then to orientate itself towards more of a SOA thing like Amazon? I don't know what state Google Cloud Platform was back in 2011 - I am guessing it is significantly more now than it was then, so would be curious to know if that has stemmed from a "transformation" internally, or if they just started from scratch for GCP?
Whether that applies to non-Cloud Google I don't know. But I don't even think GCE existed in 2011. A lot has changed.
Example: https://apigee.com/about/blog/digital-business/tweet-your--i...
Apparently hackernews tampers with unicode in urls, so additional link:
Given how Steve moved to Grab it's funny how his "they hate us cuz they ain't us" bit in itself comes off as arrogant.
And the post starts with "Amazon does everything wrong, and Google does everything right".
Things built on Microsoft tech still work decades later without any change. I have things built on AWS that's still running on 6 year old APIs and they still work. With Google, I'm lucky if it lasts 6 months.
I think "changing" also means "killing".
A quip from someone on HN from earlier this year, I didn't save the URL:
It’s not as though Google, to pick one example from your list, is some kind of techno-prophet; they’ve killed more projects than asteroids did dinosaurs.
Amazingly, this is now more true than when it was written.
Look at the top categories under the 'products' menu, compared with the same menu on aws.
"Steve Yegge (former Googler) talks about his interview experience and "How to Get that Job at Google" in his blog post here[0]."
Which I found strange given that (A) Steve wrote it 10 years ago and (B) he's more recently written[1] that "The main reason [for leaving] Google is that they can no longer innovate."
[0] http://steve-yegge.blogspot.com/2008/03/get-that-job-at-goog...
[1] https://medium.com/@steve.yegge/why-i-left-google-to-join-gr...
If nothing else, the recommended book "Steven Skiena's The Algorithm Design Manual" is very good to prepare for the Google interview.
He was talking about how Grab had some sort of moral highground above Uber, but if he spent even 10 mins researching he would see that objectively they are worse in Southeast Asia. And their behavior after Grab bought Uber in Southeast Asia was nothing short of ruthless. I have family in the area so I have first hand accounts as to what happened, so him talking about how proud he is working at Grab because they are somehow moral really made my lose my respect for him.
Aside from that, the term “microservices” implies a bunch of anti patterns in itself, and brings to mind horror stories of startups with three times as many microservices as engineers that invested multiple man-years in setting up Kubernetes to do something that could have been accomplished with a fraction of the cost in 2005 with ASP.NET and Microsoft SQL Server.
Service boundaries are significantly more expensive than people assume. A monolithic web application, or even a “macroservice”, can still be scaled horizontally with network dependencies on a shared database and can call any code or access any local data with the same basic guarantees of any other computer program. Your procedure calls are normal procedure calls, whose contracts and interfaces are as efficient and safe as your language’s type system allows. You can have unit and functional test coverage that exercises virtually all of your feature or application without needing to deploy and integrate multiple services. You can achieve better focus and deeper investments in infrastructure when there are fewer services to deploy and support. The only issues with concurrency and distribution you have to worry about are whether you are writing threadsafe code in the first place, your connection to your database, and perhaps cache invalidation.
The minute you introduce a service boundary, you throw all of that away. API calls have to be documented, versioned, and validated on both sides. Tooling exists for this (Swagger, gRPC, GraphQL), but the complexity is much higher. Testing requires deploying interdependent services in a shared test environment. Your service interfaces have to be built with some well-considered strategy around resiliency and consistency because you might (and, with enough services, statistically will) have to keep running with some unavailable dependencies. Even dependency management, which is already a hell in itself, becomes combinatorially harder when you have to design around the requirement that your service dependencies (and the services that depend on yours) can change at runtime with you being none the wiser.
Now, at times, you don’t have to incur all these costs. Some services are inherently independent. Some behaviors can and should happen e.g. on a message queue or on a schedule rather than in response to live traffic. And, at a certain scale, you need to separate your data stores, decouple your feature deployments from each other, or reap many of the other benefits of SOA. But those benefits aren’t free; they’re extremely expensive, and companies on the scale of Amazon or Google reap those benefits not because they are inherently wonderful, but because despite the costs, they are the only way certain things are possible in the first place.
If monoliths are the communist planned economy of web applications, SOA are the market economies. They can scale a lot, lot more, but at the added overhead of everyone having to squint at each other suspiciously and distrustfully.
monitoring and QA are the same thing
Makes me want to read more from this guy.
Sure
Speaking of eating their own dog food, still not sure why they are writing their own OS for Pixel. They have now shoved linux on top of it to make it useful to devs and I think that is akin to sprinkling people food around the bowl of dog food. The dog food was so bad your devs & community literally built around it.
And again, I'm a fan of Google. There are just some things they could do so much better.
Would be the equivalent to the links this person blogged. And they offer a ton now, including Turing GPU cloud computing for AI, which I have seen host chess AI and destroy the world's best chess engine (Stockfish).
I work in Google cloud. And I want to host my personal website on the platform I'm working on.
People look at me funny when I bring up about free gcloud credit. My teammates don't seem enthusiastic about this idea. My manager don't seem to agree that it's important. So, I've never got the credit, and my personal site is still hosted on heroku for free.
And nobody on my team uses our own platform.
The culture is strange. Dogfooding our own product should be one of the top priorities.