Проведение DevOps-трансформации с внедрением «Инфраструктура как код» для ИТ-компании
Мы провели DevOps-трансформацию с внедрением «Инфраструктура как код» (Infrastructure as Code, IaC), чтобы повысить надежность и скорость разработки.
Подход позволил стандартизировать оптимизацию и контроль качества при интеграции кастомных модулей в платформу управления данными.
Клиент
ИТ-компания, вендор, разработчик широкой линейки ПО.
Задача
Над проектом работали несколько команд, каждая со своими устоявшимися подходами и практиками разработки.
Требовалось объединить процессы в единую систему с использованием принципов IaC:
1. Внедрить единые стандарты для сборки, тестирования и поставки ПО (CI/CD) для всех команд.
2. Ускорить процесс выхода обновлений продукта.
3. Повысить качество и безопасность кода продукта, автоматизировать рутинные и специфичные операции.
5. Создать прозрачную и управляемую IT-инфраструктуру.
Решение
1. Внедрили сквозную автоматизацию сборки и развертывания приложений:
-
Создали единый конвейер (CI/CD) для быстрой и предсказуемой поставки обновлений разработчиков.
-
Автоматизировали сборку и развертывание разнородных модулей (Java, NodeJS) через GitLab CI/CD.
2. Организовали надежные и воспроизводимые процессные среды:
-
Развернули и настроили полноценные среды для разработки (dev), тестирования (test) и предрелизной проверки (release).
-
Обеспечили идентичность всех окружений для корректной работы функционала в разных средах.
3. Встроили безопасность в процесс разработки:
-
Обеспечили автоматическое сканирование кода и docker-образов на уязвимости и анализ используемых библиотек на каждом этапе.
-
Обеспечили исправление security-дефектов благодаря их раннему обнаружению.
4. Обеспечили сохранность данных:
-
Автоматизировали регулярное резервное копирование БД Postgres.
-
Снизили риски потери данных и простоев в случае инцидентов.
5. Повысили скорость и качество тестирования:
-
Внедрили централизованную платформу для визуализации результатов автоматических тестов.
-
Автоматизировали запуск комплексных тестов по расписанию и по требованию, что ускорило цикл обратной связи (feedback-цикл) для команды тестирования.
6.Автоматизировали процесс пересборки обновлений ядра под Astra Linux.
7. Организовали прозрачный и контролируемый процесс поставки ПО заказчику:
-
Автоматизировали финальный этап — сборку и публикацию дистрибутивов в защищенном артефакт-хранилище.
-
Исключили ручные ошибки при подготовке релизов и обеспечили версионность всех поставок.
Результат
Создали надежную, быструю и управляемую систему поставки ПО, которая ускоряет разработку, повышает качество продукта и снижает риски.
Технологии
-
Astra Linux
-
Docker
-
Docker Compose
-
GitLab CI/CD
-
Bash
-
Java
-
Node.js
-
PostgreSQL
-
OpenSearch
-
SonarQube
-
Trivy
-
Allure Server
-
Sonatype Nexus
-
Cron