Облачно-нативные вычисления
Что это такое
Облачно-нативные вычисления — это способ строить программное обеспечение, исходя из того, что инфраструктура эластична, одноразова и программируема. Вместо переноса приложения, скроенного под сервер, на арендованные машины вы проектируете под платформу: упаковываете приложение в контейнер, описываете желаемое состояние в конфигурации, позволяете платформе разместить и перезапустить его и считаете каждый экземпляр заменяемым. Это слово часто используют как синоним «современного», и это скрывает, что за ним стоят конкретные проектные решения с конкретной ценой.
Почему это важно
Приложение, написанное под один долгоживущий сервер, не становится отказоустойчивым просто оттого, что его развернули в кластере. Оно всё ещё держит состояние на локальном диске, всё ещё требует ручного обновления, всё ещё не перезапускается без окна обслуживания. Облачно-нативный дизайн — то, что заставляет обещания платформы — масштабирование, самовосстановление, плавные обновления — действительно работать. Цена тоже реальна: больше движущихся частей, распределённая система для отладки и конфигурация, которой нужно управлять. Это окупается, когда рабочей нагрузке нужно часто меняться или непредсказуемо масштабироваться, и становится накладными расходами, когда ни того, ни другого нет.
Что в этом треке
- Контейнеры и декларативная конфигурация (06-cloud-devops/13-cloud-native-computing/01-containers-and-declarative-configuration) — упаковка приложения и описание состояния, в котором оно должно быть.
- Эластичность и управляемые сервисы (06-cloud-devops/13-cloud-native-computing/02-elasticity-and-managed-services) — проектирование под перезапуск, масштабирование и сервисы, которые держат состояние.
Предварительные требования
- Облачные вычисления (06-cloud-devops/01-cloud-computing)
- Docker (06-cloud-devops/06-docker)
Что читать дальше
- Облачные вычисления (06-cloud-devops/01-cloud-computing) — понятия, которые предполагает этот способ строить, поэтому читайте их первыми.
- Docker (06-cloud-devops/06-docker) — шаг упаковки, который является входной точкой в этот стиль проектирования.
- Kubernetes (06-cloud-devops/14-kubernetes) — оркестратор, реализующий большинство этих идей в масштабе.