
Эволюция системы CI/CD продукта Новый Астрал Отчет

Олег Овсиенко
Backend Team Lead, DevOps специалист
Астрал Отчет | Технология создания

Астрал Отчет | Технология создания

Зам. руководителя отдела программирования ЗАО "Калуга Астрал"
Backend Team Lead
DevOps специалист
telegram: @oleg_ovsienko
email: ovsienko@astral.ru
О себе

Астрал Отчет | Технология создания
-
Почему Docker?
-
Старт разработки проекта.
-
Билд сервер.
-
Деплой на тестовый стенд.
-
Multi-Branch Build.
-
Развитие системы.
План

Астрал Отчет | Технология создания
- Стандартизация
Почему Docker?
- Воспроизводимость
- Консистентность
- сборка (docker build)
- поставка (docker run)
- конфигурация (environment variables)


Астрал Отчет | Технология создания
Старт разработки






Астрал Отчет | Технология создания
Запуск проекта на компьютере разработчика


Астрал Отчет | Технология создания
Админы


Астрал Отчет | Технология создания
docker-compose.yml
version: '3'
services:
abonents.app:
image: webreport/abonents.app
build:
context: .
dockerfile: Abonents/Abonents.App/Dockerfile
depends_on:
- postgresql
- rabbitmq
frontend:
image: webreport/frontend
build:
context: ./FrontEnd
dockerfile: Dockerfile
postgresql:
image: postgres:10.6
rabbitmq:
image: rabbitmq:3-management
Астрал Отчет | Технология создания
docker-compose.override.yml
version: '3'
services:
abonents.app:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- DbConnectionString=${WEBREPORT_ABONENTS_DB}
- RabbitMqHost=rabbitmq
- RabbitMqPort=5672
- RabbitMqUserName=user
- RabbitMqPassword=passwor
- Issuer=http://identity.app
- IssuerExternal=http://localhost:32002
ports:
- "32002:80"
postgresql:
environment:
- POSTGRES_PASSWORD=login
- POSTGRES_USER=password
ports:
- "5432:5432"
volumes:
- /var/lib/postgresql/data
Астрал Отчет | Технология создания
Недостатки подхода



Астрал Отчет | Технология создания
CI (Continious Integration)


Docker Registry


Астрал Отчет | Технология создания
Этапы сборки МС (микросервиса)


Астрал Отчет | Технология создания
Триггеры (Сборка отдельного МС)


Астрал Отчет | Технология создания
Отладка с использованием образов из docker registry
version: '3'
services:
abonents.app:
image: dockerhub.astralnalog.ru/webreport/dev/abonents.app
environment:
- ASPNETCORE_ENVIRONMENT=Development
- DbConnectionString=${WEBREPORT_ABONENTS_DB}
- RabbitMqHost=rabbitmq
- RabbitMqPort=5672
- RabbitMqUserName=user
- RabbitMqPassword=passwor
- Issuer=http://identity.app
- IssuerExternal=http://localhost:32001
ports:
- "32002:80"
depends_on:
- postgresql
- rabbitmq
postgresql:
image: postgres:10.6
environment:
- POSTGRES_PASSWORD=login
- POSTGRES_USER=password
ports:
- "5432:5432"
volumes:
- /var/lib/postgresql/datadocker-compose.remote.yml

Астрал Отчет | Технология создания
Мониторинг


Астрал Отчет | Технология создания
Билд агенты


Астрал Отчет | Технология создания
CD (Release Pipline)


Астрал Отчет | Технология создания
CD (Release Tasks)


Астрал Отчет | Технология создания
Отладка с использованием тестового стенда




Backend
developer
Frontend
developer
QA









Астрал Отчет | Технология создания
Поддержка нескольких тестовых контуров



Астрал Отчет | Технология создания
Multi-Branch Build


Triggers
Tasks

Астрал Отчет | Технология создания
Multi-Branch Release


Pipline
Tasks

Астрал Отчет | Технология создания
Развитие системы
- Выделить отдельные пулы агентов для сборки и релиза
- Рассмотреть возможность использования GitLab
- Развернуть отдельный стенд для теста контейнеров перед релизом




Вопросы

Олег Овсиенко
Backend Team Lead, DevOps специалист
Астрал Отчет | Технология создания
Эволюция системы CI/CD продукта Новый Астрал Отчет
By ovsienko
Эволюция системы CI/CD продукта Новый Астрал Отчет
- 267