That's why they invented Hack and HHVM in the first place -- it was a cheap-enough compromise that didn't require rewriting the whole code base.
That's why they invented Hack and HHVM in the first place -- it was a cheap-enough compromise that didn't require rewriting the whole code base.
Wouldn't most of the pressure be on whatever the data layer is?
PHP is the presentation layer. Much of the actual logic is in C++, Java, and maybe even Go by now.
Another fun bit from that deck was a newsfeed-related PHP function with something like over 70 arguments across a dozen lines -- basically template data to render that had organically grown over time. It earned its own slide. There was an audible gasp from the room when it was revealed in all its glory, and they talked about the work it takes to refactor stuff like that (which is extensive).
The VAST majority of online serving code at Facebook is written in Hack (PHP) and is part of a gigantic codebase called fbwww. Backend services that do heavy lifting (mostly search, feed ranking, ad matching, TAO, various caches, proxies, etc) are fairly light on business logic and written in C++.
It isn't a microservices architecture at all: they only move stuff to C++ for latency and efficiency reasons. For instance most of the ad stack is written in Hack, but certain key pieces use C++ for better performance. I'm not aware of any Java or Go code that is part of the online serving stack.
Its just an observation of having worked on systems at scale and I dont see the microservices / containers used.
I am curious if anyone else has.
The more I am around containers and the network complexity/issues that are created the less I am convinced it is the most optimal way and I am looking for opinions that differ from mine so I can learn
This is like the guy in these threads saying $400k a year for a software engineer is "market rate" and/or "easily achievable."
Microservices are probably a bad idea (for now) if you aren't large enough for such a team.
But you've constructed your question to exclude the companies that work this way, which I think any reasonable person would call "at scale."