[2/7] Meta's Hyperscale Infrastructure: Overview and Insights (Category: Infrastructure)
[2/7] Meta's Hyperscale Infrastructure: Overview and Insights (Rubric #Infrastructure)
In this post, we continue A cool article from the banned company Meta and talk about aspects of engineering culture, which allows the company to be successful. In short, these aspects sound like this. - Move fast principle. - Technology openness - Research in production Common infrastructure and standardization
Now let’s talk about each item in more detail.
Move fast principle Since the early days, Facebook has built a culture of rapid development and iteration. This is reflected in the aggressive practice of continuous software deployment – new code is delivered to production as soon as possible. Most product services are written as serverless functions in simple languages like PHP, Python, Erlang, which simplifies and speeds up the development cycle and deploit changes. Teams can easily change priorities and launch new products without lengthy bureaucratic processes.
Technology openness Meta has an open engineering culture both inside and outside the company. Inside, there is a single monorepository for all code, and most projects do not have rigidly fixed owners - any engineer can make improvements directly, which encourages reuse of solutions and cross-team input. Externally, the company shares developments with the community: Meta openly publishes hardware designs through the Open Compute project and opens source code for key systems. (such as the AI framework PyTorchdatabase RocksDBlibrary of recommendations ReAgent etc.)
Research in production Meta doesn’t have a separate academic research lab on systems, and all innovation comes from products. Infrastructure teams are constantly introducing new solutions and then formalizing the experience into scientific articles. This approach ensures that research is focused on real-world problems and tested in combat conditions, which increases the practical value and reliability of the proposed solutions. Interestingly, in many classic companies, unlike Meta, it is done differently. There, individual RnD labs publish materials about cosmic results that are found on the tip of the pen and have not yet reached production, and may never reach the production. (||Because everyone understands that in the production environment they just don't work.||)
Common Infrastructure and Standardization Meta tries to avoid disparate groups of technologies, instead promoting global optimization. At the hardware level, all services work on a unified fleet of servers: (AI) One type of standard server is selected (earlier 64 GB RAM, now. 256 GB). Unlike cloud providers, which offer a variety of configurations for any customer needs, Meta can optimize its software for a limited set of hardware, avoiding spraying on the iron zoo. The same with software: different products used different storages. (Cassandra, HBase own ZippyDB)But over time, they all came together on one solution. ZippyDB for storing key-value pairs. For every common need (Deploy, configuration, service mesh, performance testing, etc.) It uses a single tool that is widely accepted within the company. Standardization is complemented by modularity: Meta prefers to build systems from reusable components rather than monoliths.
All these principles are demonstrated through the example of launching the Threads application. (Twitter/X competitor) - 5 months to develop a small team and prepare infra for 2 The day before the launch, which was successful.
At the end of this part is the first insight.
Insight 1 : Despite many challenges, it is feasible for a large organization to maintain a culture of moving fast, using a common infrastructure, and sharing a monorepo without strictly enforcing code ownership.
In next post We will talk about approaches to processing user requests.
#Infrastructure #PlatformEngineering #Architecture #DistributedSystems #SystemDesign #Engineering #Software #DevEx #DevOps