Ускорение работы GitLab пайплайна с 20 часов до 2
Оптимизация пайплайна: failfast, обмен артефактами, параллелизация сборок, выделение отдельных kubernetes раннеров для разных задач, сборка под разные архитектуры с помощью разных эмуляторов, внедрение кэша minio
Миграция CI/CD с GitLab CI в Jenkins
Функционала GitLab оказалось недостаточно для сборки и тестирования крупного проекта. Jenkins с его кастомизацией больше подходил для этого проекта. Конфигурация Jenkins с помощью JCASC, пайплайны на groovy
Аутентификация kubernetes в Active Directory
Внедрена OIDC аутентификация kubernetes. В качестве OIDC провайдера используется keycloak, генерация конфигов kuberos
Автоматизация нагрузочных тестов
Деплой инфраструктуры в Яндекс Облако, проведение тестов, сбор и публикация результатов, уничтожение инфраструктуры
Деплой инфраструктуры в Яндекс Облако
Автоматизация деплоя в ArgoWorkflow: деплой kubernetes кластера Terraform‘ом, интеграция с Hashicorp Vault, добавление кластера в ArgoCD, деплой инфраструктурных приложений с помощью ArgoCD: cert-manager, prometheus, tekton, деплой бизнес приложений
Построение CI/CD пайплайна на стеке Argo
Разработаны Helm чарты, по хуку из GitHub ArgoWorkflow запускает линтеры, сборк и тесты, обновляет манифесты для ArgoCD
Разработка кастомных prometheus экспортеров
Внедрение автоматизированной системы мониторинга
Внедрение системы мониторинга инфраструктуры на базе Prometheus, Grafana, Alertmanager, Alerta. Настройка дашбордов и маршрутизации алертов.
Для автоматического добавления устройств использовали service discovery Hashicorp Consul, физические устройства описаны в NetBox, настроена интеграция NetBox с Consul и Prometheus
Внедрение подхода Infrtastructure as Code
Описание в коде “боевых” нагруженных сервисов компании, настроенных в ручном режиме: кластер postgreSQL, бэкенд на Java, фронтенд.
Позволило получить точное описание сервисов и настроить тестовые стенды.
Инструменты: Ansible, Molecule, GitLab