CI/CD

Agenda

  • CI/CD
  • Gitlab CI

CI/CD

  • CI - Continuous integration
  • CD - Continuous delivery

CI/CD

1. Plan

  • Работа с требованиями и ожиданиями от заинтересованных лиц
  • тестирование документации
  • архитектурные диаграммы
  • закладывается изменение или дополнения к существующей системе
  • утверждение

2. Code

  • Пишется код
  • Юнит тесты

3.Build

  • Собираются артефакты
    • Docker container
    • .js, .css, .html фаилы
  • тестирование сборки
    • фаилы существуют
    • контейнер отправлен в artifactory

4. Test

  • Integration Test
  • E2E Tests
  • Manual Test

5. Release

  • Сборка всего приложения
  • Тестирование всего приложения
    • Smoke test
    • extended test
    • critical path test
  • Написание Release notes

6. Deploy

  • Доставка приложения конечным пользователям
    • (Обновите приложение)
  • Тестирование доставки версии
    • номер сборки
    • версия приложения

7,8. Operate & Monitor

  • Сбор телеметрии
  • работа с инцидентами
  • отображения графиков
    • Для разработчиков
      • CPU Utilization
      • Memory Utilization
    • Для не технических людей
      • кол-во активных пользователей
      • кол-во проданных товаров
      • средний чек
      • среднее кол-во товаров

7,8. Operate & Monitor

Most common CI/CD

  • Jenkins
  • Github actions
  • Gitlab pipelines
  • Travis CI
  • Circle CI
  • AWS CodeBuild
  • Jetbrains

By Code

  • No-code (UI builder)
  • Low-code (yaml) - Github, Gitlab, Travis CI, Circle CI
  • Code - jenkins file

Low-code advantages

  • Descriptive
  • You can still write any code blocks
  • Less cognitive load
  • Reusable and extensible

Low-code disadvantages

  • Too high-level
  • hard to organize reusability
  • Hard to find reusable blocks (e.g. no rights to read)
  • Hard to debug (no emulator)

Demo

CI/CD

By vitalic gorodkov

CI/CD

  • 121