Чтобы закрепить знания о надежности и инфраструктуре, рекомендую изучить базовые понятия и посмотреть, как их применяют на экстремальных масштабах.
База: Как мы запускаем код
- Что такое виртуальная машина (VM) и Что такое контейнеры. Краткие выжимки из документации Yandex Cloud, чтобы раз и навсегда понять разницу между гипервизором и изоляцией на уровне ядра (cgroups/namespaces).
- Архитектура Docker. Официальная дока про то, как общаются Docker Daemon, Client и Registry.
Инфраструктура Facebook
Кубернетес (K8s) — это индустриальный стандарт. Но что делать, если ты Meta, и у тебя миллионы серверов по всему миру? Стандартные решения начинают сыпаться.
- Twine: Единый кластер для миллионов серверов. Инженеры Facebook рассказывают, почему они отказались от разрозненных кластеров и написали собственный оркестратор Twine, который превратил все их дата-центры в один гигантский виртуальный компьютер.
- Как масштабировать ZooKeeper для нужд Twine. ZooKeeper (инструмент для координации конфигураций) отлично читает, но ужасно масштабируется на запись. Читаем шикарный кейс о том, как Facebook применил шардирование и выделенных «Наблюдателей» (Observers), чтобы заставить ZooKeeper выдерживать миллионы обновлений конфигурации в секунду.