кирилл ветчинкин, практическое применение практик dev...
TRANSCRIPT
Практики DevOps при
разработке большого
проекта
На примере МегаФон Банк API
Представлюсь
Ветчинкин Кирилл Евгеньевич
Проектный опыт:
• ДБО ФГ Лайф
• ДБО Мегафон Банк
https://www.facebook.com/k.vetchinkin
О проекте
API
Web Android IOS
ИТ цели проекта
Надежность
Устойчивость к высоким нагрузкам
Легкое масштабирование
2
3
1
Микросервисная архитектура
API
Сервис 1 Сервис 2 Сервисы партнеров
Бд 2Бд 1
Инфраструктура
28 Микросервисов(в Prod x4)
Баз данных13
Серверов26
Среды2
Простой подход
Очевидно что старыми способами результата достичь не удастся
Test Production
Итоговая схема
План Код Сборка Выпуск
Test
Prod
Мониторинг
auto
manual
Автотесты
1
2
3
4
SLA
План. Общий backlog
User story
DEV subtask QA subtask OPS subtask
Код. Что положить в Git
• Код• Приемочные тесты• Сценарии CI• Сценарии CD• Код инфраструктуры(Puppet, VM)• Софт• Документацию• Запросы SoapUI или Postman
Все что необходимо для развертывания данного проекта с нуля
Код. Gitflow или CI
Promiscuous Integration
Разработка на магистрали(CI)Feature Branch(Gitflow)
CI + Code review
Код. Promiscuous Integration
Код. Контроль качества
Code reviewСтатический анализатор
Git Локально + CI
CI/CD. Общая схема
Git
Push
TeamCityCheckout
OctopusPush
Test Stage Prod
CI CD
Everywhere
Сборка. Шаги
Проверка кода
Сборка артефактов
Отправка в хранилище
Подкачка библиотек
Сборка. Документация
Актуальная документация после каждой сборки
Сборка. Обратная связь
Развертывание. Lifecycle
Развертывание. Среды, роли,
сервера
Развертывание. Шаги
Развертывание. Проекты
и остальные 24 сервиса
Автотесты
Когда – ежедневно и перед релизом
Что покрывают – требования User story
Пока не написаны и не пройдены автотесты Story считается не
сделанной
Они – независимы, идемпотентны
Принятие решения о
развертывании на Production
Можно
Нельзя
Тестировщик и PM принимают окончательное решение
Среды и инфраструктура
Мониторинг
Перевод Платеж Опрос
Итоги. % Инцидентов
Итоги. % Инцидентов
SLA за последние 3 месяца