Назад

Автоматизирована доставка кода с помощью Yandex.Cloud для клиента

Дата публикации: 15 декабря 2021
Автоматизирована доставка кода с помощью Yandex.Cloud для клиента

В нашу компанию обратились разработчики приложения в сфере интернет-продаж с просьбой автоматизировать процесс доставки кода на несколько сред разработки и тестирования. Стек разработки компании: php, go, PostgresSQL, Kafka, Redis. В процессе общения с заказчиком, выяснилось, что также будет добавляться preprod и prod-среда.

Задачи клиента

Поскольку ИТ-система будет создаваться с нуля, перед нами были поставлены следующие задачи:

  • должна быть автоматизирована доставка кода в dev-среды;
  • ИТ-структура должна быть масштабируемой и управляемой;
  • мониторинг элементов ИТ-структуры;
  • наличие системы логирования как приложений, так и составных частей системы;
  • SLA сред разработки должна быть не менее 98%.

Как мы решили задачи клиента

Для создания новой ИТ-системы для клиента мы выбрали концепцию Infrastructure as a Code, которая бы позволила декларативно описать систему. За основу был выбран terraform. В качестве облачного провайдера клиент выбрал Yandex.Cloud. Ключевыми технологиями в системе были выбраны:

  • Managed Kubernetes;
  • ISTIO;
  • Gitlab CI (для автоматизации CICD);
  • RDS PostgreSQL;
  • loadbalacing (ALB);
  • Distributed Message Service for Kafka;
  • Distributed Cache Service (Redis);
  • KeyCloak;
  • Zookeper;
  • Minio.

На рисунке ниже представлена схема унифицированного окружения, которое создается по нажатию кнопки в GitlabCi с помощью terraform. Мониторинг осуществляется встроенными средствами Prometheus, а также Zabbix, а за хранение логов ответственный Elasticsearch.

Рисунок 1 — Схема решения

Результат проекта

Внедрение указанной схемы позволило:

  • автоматизировать сборку кода и в дальнейшем его тестирование;
  • автоматизировать доставку кода в различные среды разработки и тестирования;
  • автоматизировать развертывание среды разработки;
  • возможность быстро создавать и масштабировать среды разработки и в дальнейшем preprod и prod среды;
  • получить доступ в удобном интерфейсе ко всем событиями и ошибкам системы;
  • автоматически масштабировать систему вверх и вниз согласно метрикам приложения.

В результате проекта, клиент получил готовую систему для работы с возможностью самостоятельного управления средами. В процессе дальнейшего DevOps-обслуживания будут обновляться используемые технологии и совершенствоваться процесс доставки кода.

Нужна помощь консультанта?

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных
Быстрое внедрение включает:
На сервере установлено следующее ПО (доступно при подключении по протоколу RDP):
Также настроено:
Перед внедрением клиент предоставляет информацию о пользователях (логины и пароли). После завершения работ, клиенту высылается инструкция и ярлык для подключения.
Индивидуальное внедрение по ТЗ клиента обсуждается отдельно.