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