En
Проекты Вакансии Блог

Создание CI/CD-конвейера с нуля для медицинского портала: от ручного развертывания к автоматизации за 11 недель

Медицинский портал с аудиторией в несколько сотен тысяч пользователей не мог быстро обновляться: каждый деплой был ручным, рискованным и занимал несколько часов.

Мы выстроили процесс, который это изменил. Создали с нуля и автоматизировали полный CI/CD-конвейер для высоконагруженного мультиязычного веб-приложения. Построили инфраструктуру, которая ускорила разработку в 3 раза, обеспечила стабильность продакшена и позволила команде безопасно тестировать гипотезы в изолированных средах.

Клиент

Онлайн-сервис с актуальной медицинской информацией для широкой аудитории.

Задача

Требовалось запустить с нуля весь процесс сборки и развертывания, автоматизировать его, создать дополнительные среды помимо Production.

Основная цель – ускорить процесс разработки и развертывания фич в промышленной эксплуатации.

Бизнес-задачи

  • Увеличить скорость вывода новых функций и обновлений на рынок.

  • Минимизировать риски и простои при обновлении продакшн-среды.

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

Технические задачи

  • Полностью автоматизировать процесс деплоя, исключив ручные ошибки.

  • Организовать изолированные среды DEV, TEST, PROD с идентичной конфигурацией.

  • Настроить отказоустойчивый и масштабируемый пайплайн для стека технологий (PHP/Laravel, Java, Node.js).

Решение

Внедрение GitLab CI/CD в связке с подходом Infrastructure as Code позволяет оптимизировать управление инфраструктурой: все настройки серверов и рабочих окружений хранятся в виде кода, а процесс их развёртывания полностью автоматизирован.

Это значит, что мы можем в любой момент воссоздать нужную конфигурацию, видим историю всех изменений, и вся команда понимает, как устроена система. Автоматизация, повторяемость, прозрачность и контроль версий — ключевые преимущества такого подхода.

Выбор GitLab CI (инструмент для автоматической сборки, тестирования и развертывания кода) был обусловлен его обширным функционалом, который оптимально подходит для небольших команд. 

Инструмент Terraform для управления облачной инфраструктурой Yandex Cloud обеспечил скорость создания идентичных сред и снизил операционные риски.

Платформа Docker стала стандартом для контейнеризации разнородных компонентов приложения.

Этапы, сроки и инструменты

  1. Анализ и проектирование пайплайна (2 недели). Изучение архитектуры приложения, согласование рабочего процесса команды. Инструменты: GitLab, Terraform, Docker.

  2. Инфраструктура как код (3 недели). Вся облачная инфраструктура — сети, балансировщики нагрузки, вычислительные мощности для тестовой, разработочной и рабочей сред — описали в виде кода. Это позволяет, например, по запросу разворачивать полноценную тестовую среду всего за 15 минут, а когда она больше не нужна — так же быстро ее удалять.

  3. Разработка CI/CD-пайплайна (4 недели). Настройка GitLab CI для мультиязычного стека:

    • для PHP/Laravel: сборка, статический анализ, прогон юнит-тестов;

    • для Java: сборка с помощью Maven, прогон юнит-тестов, создание артефактов;

    • для Node.js: сборка с помощью npm;

    • общий этап: сборка Docker-образов, интеграционное тестирование, деплой в целевые среды; всего создано более 20 задач в пайплайне.

  4. Внедрение workflow и обучение (2 недели). Настройка ветвления Git, внедрение процесса: Merge Request → сборка → деплой в TEST → тестирование аналитиком → деплой в PROD. Обучение команды.

Результат

Мы создали все необходимые изолированные рабочие пространства — для первичной проверки идей и для полноценного тестирования. Настроили автоматическую передачу обновлений сначала на проверку, затем на тестирование аналитиками, а потом уже в реальную работу системы. Благодаря этому выстроился четкий и понятный порядок внедрения новых возможностей: от проверки гипотезы в безопасной песочнице до её появления у конечных пользователей. 

  • С нуля создан полный CI/CD-конвейер, покрывающий 100% процесса разработки и деплоя.

  • Развернуты и автоматизированы 3 независимые среды (DEV, TEST, PROD) с идентичной конфигурацией.

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

  • Инфраструктура полностью описана кодом, что обеспечивает её воспроизводимость и простоту аудита.

Бизнес-эффект

Благодаря выстроенному и автоматизированному процессу сборки и развертывания, удалось значительно ускорить развитие веб-портала.

  • Новые возможности и доработки стали выходить в три раза быстрее, чем раньше. Раньше деплой занимал 2-3 часа и делался вручную раз в неделю. После внедрения — 15-20 минут, полностью автоматически, несколько раз в день.

  • Повышение стабильности и качества продукта. Ежедневно в среде TEST прогонялось в среднем 50 автоматических сборок, что позволяло выявлять и исправлять ошибки до попадания к пользователям. Количество инцидентов в PROD, связанных с деплоем, сократилось до нуля. Иными словами при обновлениях в работающей системе больше не возникает сбоев и проблем — ни одного инцидента с момента внедрения. 

  • Масштабируемость процесса. К проекту смогли безопасно и быстро подключаться новые разработчики, такую же инфраструктуру стало возможно тиражировать для новых сервисов.

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

Трудности

Главной трудностью было заставить работать вместе разрозненные части системы, написанные на разных технологиях (PHP, Java, Node.js), и объединить их в один четкий и быстрый процесс поставки обновлений.

Решение потребовало создания кастомных Docker-образов-сборщиков и оптимизации этапов для избежания дублирования. 

Мы разработали специальные универсальные сборщики и перестроили процесс так, чтобы исключить лишние повторяющиеся операции.

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

Технологии

GitLab, Docker, Terraform, Yandex Cloud, PHP, Laravel, Nginx, Java, Maven, Node.js, npm.


Хотите узнать подробнее об услуге?
Узнать подробнее
snippet
Другие работы
Разработка цифрового продукта для российского банка
Создание приложения управления сном для компании «Аскона»
Создание единой системы авторизации для крупной российской компании
Анализ процессов крупной производственной компании
Усиление команды по разработке системы управления грузоперевозками для компании «ТЕХНОНИКОЛЬ»
Автоматизация финансовой аналитики для «МК Лизинг»
Разработка корпоративного портала для обучения сотрудников крупной технологической компании
Разработка цифрового продукта для российского банка
Создание приложения управления сном для компании «Аскона»
Создание единой системы авторизации для крупной российской компании
Анализ процессов крупной производственной компании
Усиление команды по разработке системы управления грузоперевозками для компании «ТЕХНОНИКОЛЬ»
Автоматизация финансовой аналитики для «МК Лизинг»
Разработка корпоративного портала для обучения сотрудников крупной технологической компании
Оставьте заявку на проект
Оставьте контакты, чтобы обсудить проект и условия сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Оставьте свои контакты
SimbirSoft регулярно расширяет штат сотрудников.
Отправьте контакты, чтобы обсудить условия сотрудничества.
  • Python-paзработчик
  • Node.js-разработчик
  • Project-менеджер
  • Системный аналитик (финтех)
  • iOS-разработчик
  • React-разработчик
  • Golang-разработчик
  • 1С-аналитик
  • Data-инженер
  • C++-разработчик
  • DWH-аналитик
  • SRE-инженер
  • SDET Java
  • QA Fullstack Java/Kotlin
  • Бухгалтер по расчету заработной платы
  • Data Scientist/NLP-инженер
  • Java-разработчик
  • Специалист тендерного отдела
  • Системный аналитик ЦФТ
  • Сетевой инженер/системный аналитик
  • 1С-аналитик (ритейл)
  • SDET JS/TS
  • DevSecOps
Прикрепить резюме, до 10 Мб*
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Расскажите, какие задачи сейчас на вашем проекте.
Проконсультируем и предложим подходящих специалистов, а также сориентируем по ставкам на аутстаф.
Направление
Количество специалистов
Middle
TeamLead
Senior
TechLead
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Экспресс-консультация
Заполните все поля формы.
Эксперт свяжется с вами в течение рабочего дня.
Тематика
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Порекомендуйте друга — получите вознаграждение!
  • Python-paзработчик
  • Node.js-разработчик
  • Project-менеджер
  • Системный аналитик (финтех)
  • iOS-разработчик
  • React-разработчик
  • Golang-разработчик
  • 1С-аналитик
  • Data-инженер
  • C++-разработчик
  • DWH-аналитик
  • SRE-инженер
  • SDET Java
  • QA Fullstack Java/Kotlin
  • Бухгалтер по расчету заработной платы
  • Data Scientist/NLP-инженер
  • Java-разработчик
  • Специалист тендерного отдела
  • Системный аналитик ЦФТ
  • Сетевой инженер/системный аналитик
  • 1С-аналитик (ритейл)
  • SDET JS/TS
  • DevSecOps
Ваши данные
Данные кандидата
Прикрепить резюме, до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Отправить
Отправлено
Заказать демонстрацию
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.