Задача
Наш клиент, российская сеть клиник, поставила такие задачи перед командой разработчиков IBS:
- Улучшить производительность, изменить процесс сборки и установки ПО МИС «Робомед» на тестовых и промышленных стендах.
- Снизить время недоступности системы в процессе сборки и установки.
- Создать Canary releases.
- Передать все артефакты и новый процесс команде поддержки заказчика.
Решение
- Проведен анализ причин невозможности устанавливать новые версии приложения в рабочее время.
- Проведен анализ невозможности выкатывания Canary releases прозрачно для пользователей.
- Проведен анализа скорости сборки и деплоя.
- Разработаны два новых конвейера сборки, а также два новых конвейера развёртывания Octopus, включающие бесперебойное развёртывание, историю версий и быстрое переключение версий.
- Разработано тестовое окружение Kubernetes+Storage+Balancer.
- Восстановлена система сборки, доработаны агенты для Gitlab CI/CD и система сборки для всех сервисов.
- Разработана новая система интеграции с Docker Repository и интеграция развёртывания в Kubernetes, включающая бесперебойное развёртывание, масштабирование и версионность.
- Документация по конвейерам, агентам, сборке, изменениям инфраструктуры.
Результаты
Доверив проект команде разработчиков IBS, клиент получил следующие преимущества:
- Время полной сборки и деплоя уменьшено с 14-16 до 7-8 минут, устранён перерыв в работе пользователей.
- Проект выполнен в два этапа, соблюдены изначальные сроки и бюджет.
- Инженерам DevOps заказчика передано описание новой инфраструктуры, артефакты CI/CD и результаты анализа, проведен knowledge transfer, что позволило клиенту самостоятельно продолжить далее работы на других окружениях.