28
Практики DevOps при разработке большого проекта На примере МегаФон Банк API

кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Embed Size (px)

Citation preview

Page 1: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Практики DevOps при

разработке большого

проекта

На примере МегаФон Банк API

Page 2: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Представлюсь

Ветчинкин Кирилл Евгеньевич

Проектный опыт:

• ДБО ФГ Лайф

• ДБО Мегафон Банк

https://www.facebook.com/k.vetchinkin

Page 3: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

О проекте

API

Web Android IOS

Page 4: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

ИТ цели проекта

Надежность

Устойчивость к высоким нагрузкам

Легкое масштабирование

2

3

1

Page 5: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Микросервисная архитектура

API

Сервис 1 Сервис 2 Сервисы партнеров

Бд 2Бд 1

Page 6: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Инфраструктура

28 Микросервисов(в Prod x4)

Баз данных13

Серверов26

Среды2

Page 7: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Простой подход

Очевидно что старыми способами результата достичь не удастся

Test Production

Page 8: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Итоговая схема

План Код Сборка Выпуск

Test

Prod

Мониторинг

auto

manual

Автотесты

1

2

3

4

SLA

Page 9: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

План. Общий backlog

User story

DEV subtask QA subtask OPS subtask

Page 10: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Код. Что положить в Git

• Код• Приемочные тесты• Сценарии CI• Сценарии CD• Код инфраструктуры(Puppet, VM)• Софт• Документацию• Запросы SoapUI или Postman

Все что необходимо для развертывания данного проекта с нуля

Page 11: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Код. Gitflow или CI

Promiscuous Integration

Разработка на магистрали(CI)Feature Branch(Gitflow)

CI + Code review

Page 12: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Код. Promiscuous Integration

Page 13: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Код. Контроль качества

Code reviewСтатический анализатор

Git Локально + CI

Page 14: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

CI/CD. Общая схема

Git

Push

TeamCityCheckout

OctopusPush

Test Stage Prod

CI CD

Everywhere

Page 15: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Сборка. Шаги

Проверка кода

Сборка артефактов

Отправка в хранилище

Подкачка библиотек

Page 16: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Сборка. Документация

Актуальная документация после каждой сборки

Page 17: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Сборка. Обратная связь

Page 18: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Развертывание. Lifecycle

Page 19: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Развертывание. Среды, роли,

сервера

Page 20: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Развертывание. Шаги

Page 21: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Развертывание. Проекты

и остальные 24 сервиса

Page 22: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Автотесты

Когда – ежедневно и перед релизом

Что покрывают – требования User story

Пока не написаны и не пройдены автотесты Story считается не

сделанной

Они – независимы, идемпотентны

Page 23: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Принятие решения о

развертывании на Production

Можно

Нельзя

Тестировщик и PM принимают окончательное решение

Page 24: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Среды и инфраструктура

Page 25: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Мониторинг

Перевод Платеж Опрос

Page 26: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Итоги. % Инцидентов

Page 27: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере

Итоги. % Инцидентов

SLA за последние 3 месяца

Page 28: кирилл ветчинкин, практическое применение практик Dev ops при разработке большого проекта на примере