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

Олег Овсиенко

Backend Team Lead,  DevOps специалист

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

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

Зам. руководителя отдела программирования ЗАО "Калуга Астрал"

 

   Backend Team Lead

   DevOps специалист

 

   telegram: @oleg_ovsienko

   email:        ovsienko@astral.ru

О себе

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

  1. Почему Docker?

  2. Старт разработки проекта.

  3. Билд сервер.

  4. Деплой на тестовый стенд.

  5. Multi-Branch Build.

  6. Развитие системы.

План

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

  • Стандартизация

Почему 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/data

docker-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