81%
С нуля до среды сборки
2 месяца
Сведения о клиенте
Пример реализации проекта для индийской компании, разрабатывающей программное обеспечение для перестраховочной деятельности. Программное обеспечение представляет собой веб-приложение на объектно-ориентированном языке программирования, доступное во многих странах.
Задача
Клиент планировал миграцию в облако в связи с истечением срока поддержки локальных серверов разработки. В ходе интервью с представителями клиента мы выявили 3 основные проблемы, которые должны были быть решены параллельно с миграцией.
1. Существующая сложная IaC
Существующий код Chef стал очень сложным по причине отсутствия унифицированности. Поэтому перед миграцией в облако потребовался анализ и переработка кода.
2. Различия в средах
Несмотря на то, что IaC уже была реализована, между локальной средой и интеграционной тестовой средой имелись различия, приводившие к расхождению результатов тестирования.
3. Выбор подходящей облачной стратегии
Помимо решения двух перечисленных выше задач, также возникла необходимость стратегического выбора облачной платформы с учётом последующего обслуживания.
Решение
На основе информации, полученной на этапе анализа, с учётом конкретных условий клиента нами были запланированы и выполнены следующие 3 действия.
1. Переход от Chef к Ansible
Нами было принято решение о миграции с Chef на Ansible, чтобы значительно упростить реализацию IaC. Упрощение было обязательным условием, чтобы персонал по обслуживанию инфраструктуры мог без проблем осуществлять сопровождение кода. На основе анализа результатов интервью и оценки существующего кода, наша команда преобразовала код в файлы Ansible YAML для AWS. В процессе работы мы надлежащим образом перенесли параметры во внешние файлы и создали общие компоненты для упрощения обслуживания.
2. Контейнеризация с помощью Docker
Вторым действием была контейнеризация интеграционной тестовой среды и создание процесса тестирования, в котором развёртывание производится в ходе каждого отдельного теста. Поскольку контейнеры каждый раз удаляются и заменяются новыми, тестовая среда всегда остается чистой.
3. Переход на AWS
Миграция на AWS была третьим по счёту действием. Нашими специалистами по AWS было решено воспользоваться этим вариантом, поскольку появилась возможность создания контейнерной среды Docker с помощью AWS ECR и ECS. Более того, некоторые из специалистов по инфраструктуре имели опыт использования AWS, что также поспособствовало реализации этого плана.
Результат
Миграция с локальных серверов на AWS была произведена без каких-либо проблем. Вторичным результатом выполнения этой основной цели стало снижение расходов на устранение отказов. Покрытие IaC существенно не изменилось, однако надёжность эксплуатации была значительно повышена. Этот пример отлично демонстрирует, что в DevOps важна не только количественная, но и качественная оценка. Кроме того, контейнеризация с помощью Docker позволяет значительно повысить качество интеграционного тестирования. Таким образом, несмотря на то, что концепция DevOps является общей, реализация всегда зависит от конкретных условий клиента. Доверьте нам внедрение/улучшение DevOps в вашей организации.