Доклад "От DevOps к Platform Engineering" на конференции DevOpsConf 2022 про модель Platform Engineering. https://enabling.team/from-devops-to-platform-engineering
Игорь КурочкинEnabling.teamОт DevOps кPlatform Engineering
View Slide
Кто я?• Ex-Scalaxy• Ex-Qik, Ex-Skype, Ex-Microsoft• Ex-Express 42• Enabling.team2https://enabling.team/ikurochkin
3А вы где?
4А вы где?
От DevOps к Platform Engineering• Отчеты State of DevOps (DORA, Puppet, Express 42)• Конференции DevOps Enterprise Summit• Конференции DevOpsConf и DevOops• Издательство IT Revolution и книги по DevOps• Консорциум Linux Foundation (Cloud Native, FinOps, CD)5https://cloud.google.com/blog/products/devops-sre/take-the-2022-state-of-devops-survey
От DevOps к Platform Engineering• Сообщество platformengineering.org• Митапы Platform Engineers• Первая конференция PlatformCon 2022• Отчет Humanitec DevOps Benchmarking• Практики в Technology Radar от ThoughtWorks• Платформенные сервисы и инструменты6
7Platform Engineering — этокогда DevOps инженеры начинают общаться друг с другом!
8Platform Engineering — этокогда DevOps инженеры начинают общаться друг с другом!
9Platform Engineering — этокогда DevOps инженеры начинают общаться друг с другом!
10Platform Engineering — этокогда DevOps инженеры начинают общаться друг с другом!
11Platform Engineering — этокогда DevOps инженеры начинают общаться друг с другом!
12Platform Engineering — этокогда DevOps инженеры начинают общаться друг с другом!
13https://cloud.google.com/architecture/devops/capabilitieshttps://github.com/devops-ru/awesome-devops_ru
14PlatformEngineering
15Platform Engineering
16
17
18
19
20
21https://www.effx.com/blog/platform-engineering-vs-site-reliability-engineering
22https://gigamonkeys.com/flowers/https://medium.com/adobetech/why-do-organizations-need-a-platform-team-910d79893e0aPeter Seibel
Модель эффективности23E = (Nt − Np) * (1 + Nps * b)
Модель Platform Engineering24E = (Nt − Np) * (1 + Nps * b)
E = (Nt − Np) * (1 + Nps * b)E — общая эффективностьNt — количество всех инженеровNp — количество платформенных инженеровs — коэффициент масштабированияb — коэффициент повышения эффективности25
26Nt = 10
27Nt = 100
28Nt = 200
29Nt = 400
30Nt = 10001465
Если 25% инженеров* будутплатформенными, то эффективностьинженеров увеличится!**31* для организации в 1000 инженеров** увеличится до 1465 инженеров*** это не точно
E = (Nt − Np) * (1 + Nps * b)32Twitter, Adobe ?s — коэффициент масштабирования 0,7 ?b — коэффициент повышенияэффективности2 % ?
Коэффициент масштабирования33
Коэффициент повышения эффективности34
E = (1000 − Np) * (1 + Nps * b)35
36КоэффициентмасштабированияЭффективность платформенных команд, Npss=1 1 5 10 50 100 200 250s=0,9 1 4 8 34 63 118 144s=0,8 1 4 6 23 40 69 83s=0,7 1 3 5 15 25 41 48s=0,6 1 3 4 10 16 24 27
Дисфункции платформенных команд• Размер команд• Состояние команд• Отсутствие команд• Перегрузка команд• Взаимодействие команд37
Team-first подход• Команды небольшие• Стабильные• Минимальная единица• Ограничиваем нагрузку• Ограничиваем взаимодействие38
Team-first подход250 платформенных инженеров:• 35 команд по 7-8 инженеров• 4 кластера по 7-8 команд• Platform команды• Enabling команды39
Platform API• UI, API, CLI• Golden paths• Paved roads• InnerSource40
Platform team API41https://github.com/TeamTopologies/Team-API-template
42https://github.com/TeamTopologies/TeamAPI-As-Code
43https://teamleadconf.ru/spb/2021/abstracts/7723
44Коэффициент повышения эффективности2% 1% 0,5% 0%• Решают не те проблемы• Делают долго• Делают сложно
Цель платформенных команд?• Снижение Cognitive load• Повышение Team Autonomy• Улучшение Developer Experience• Повышение Developer Effectiveness45
Как измерить?• 4 key metrics (DF, LD, MTTR, CFR) ?• SPACE framework• Team Cognitive load metrics• Team Autonomy metrics• Developer Experience metrics• Developer Effectiveness metrics• InnerSource metrics46
Как измерить?47• 4 key metrics (DF, LD, MTTR, CFR) ?• SPACE framework• Team Cognitive load metrics• Team Autonomy metrics• Developer Experience metrics• Developer Effectiveness metrics• InnerSource metrics
Как делать быстро и не сложно?• Соберите боли• Сделайте Thinnest Viable Platform (TVP)• Измерьте• Повторите48https://github.com/TeamTopologies/Thinnest-Viable-Platform-examples
Где найти боли?• Разработчики и QA• Ops и DevOps инженеры• Техлиды и тимлиды• Scrum мастера и Agile коучи• PO и PM• CTO49
50* PaE = (1000 − Np) * (1 + Nps * b)
E = (1000 − Np) * (1 + Nps * b) * Pa51
E = (1000 − Np) * (1 + Nps * b) * Pa52
53https://www.facebook.com/permalink.php?story_fbid=648553149496033&id=100030240605929
54https://express42.com/devops-report-2020/
Давайте исследуем!• Исследование Platform Engineering• Пишите на почту [email protected]• Или в телеграм IgorKurochkin55
Что еще почитать?56https://leanpub.com/platformstrategyhttps://teamtopologies.com/book https://teamtopologies.com/workbook
Итого• Состояние DevOps и Platform Engineering• Модель Platform Engineering• Team Topologies для платформенных команд• Продуктовый подход в платформе• Исследование Platform Engineering57
Давайте обсудим!• Презентация enabling.team/devopsconf2022• Почта [email protected]• Твиттер IgorKurochkin• Линкедин ikurochkin• Телеграм IgorKurochkin58PlatformConf 2023