Vsi. Svoi — создание контейнерной инфраструктуры с Kubernetes

Задача
Клиент обратился к нам с просьбой улучшить инфраструктуру проекта и обеспечить возможность добавлять новые разделы на сайт. Задачей Stfalcon было перейти в контейнеризированную инфраструктуру с Kubernetes:
- повысить общую надежность инфраструктуры и процент доступности сервисов
- упростить процесс внесения изменений, обеспечить идентичность dev/staging/production окружений
- ускорить и обезопасить процесс доставки изменений в окружения.
Также, нужно было добавить новые разделы: Дом и Декор

Решение
При построении новой инфраструктуры был выбран IaaS Hetzner Cloud, который сочетает в себе выгодную стоимость и высокое качество предоставляемых услуг, а также обладает всем основным функционалом, необходимым для построения современной и гибкой инфраструктуры.
Решено было использовать контейнеризацию, так как такой подход упрощает дальнейшее обслуживание, позволяет повысить частоту релизов, упростить горизонтальное масштабирование, обеспечивает идентичность конфигурации в окружениях. В качестве оркестратора был использован Kubernetes — промышленный стандарт, включающий в себя многолетний опыт Google по обслуживанию контейнеризированных рабочих нагрузок.
При развертывании новой инфраструктуры также был использован Terraform, который позволяет реализовать концепцию Infrastructure as code (IaC). Что позволило упростить внесение изменений и полностью автоматизировать добавление новых нод в Kubernetes кластер. Также для всех приложений был настроен Continuous delivery с использованием Gitlab CI/CD.
Результат
Применение передовых технологий и практик позволило создать современную инфраструктуру, отвечающую бизнес требованиям. Это обеспечивает возможность быстро вносить изменения, выполнять мониторинг всех компонентов, наращивать вычислительные мощности в случае роста нагрузок на сервисы, упрощает процесс разработки и доставки новых версий в production.