Наш эксперт,
Игорь Курочкин, рассказал про новый подход
Team Topologies на конференции DevOops 2019, которая проходила в Санкт-Петербурге в октябре 2019 года.
Идея доклада появилась после анонса
одноименной книги и первых выступлений от авторов подхода Matthew Skelton и Manuel Pais. Мы давно следили за авторами, еще с момента публикации работ по
DevOps Topologies, поэтому сразу оценили пользу от применения нового подхода и решили первыми рассказать о нем на ближайшей конференции.
В докладе рассматриваются следующие темы:
- DevOps как проблема взаимодействия команд разработки, тестирования и эксплуатации;
- Для анализа взаимодействия команд предлагается использовать инструмент Value Stream Mapping (VSM), позволяющий выявлять узкие места, задержки и источники потерь в потоке создания ценности от идеи до эксплуатации;
- Подход к визуализации DevOps топологий, включая типовые паттерны и анти-паттерны организации команд. Обсуждается различие между постоянной DevOps командой как анти-паттерном и временной DevOps командой как переходным вариантом;
- Подход Team Topologies к проектированию команд и их взаимодействия. Рассматриваются четыре типа команд: Stream-aligned team, ориентированная на поток создания ценности, Platform team, предоставляющая внутреннюю платформу, Enabling team, развивающая инженерные процессы и практики, Complicated-Subsystem team, отвечающая за сложные подсистемы;
- Поясняется отличие платформенной команды от инфраструктурных команд (Cloud, DevOps, Infrastructure, Operations). Платформенная команда рассматривается не как поставщик инфраструктуры, а как продуктовая команда, создающая и развивающая внутреннюю платформу для других инженерных команд;
- Вводится подход Platform as a Product (Платформа как продукт) с фокусом на Developer Experience, включая понимание пользователей платформы, их потребностей, пользовательских сценариев и метрик успеха платформы;
- Рассматривается подход Thinnest Viable Platform (TVP), который предполагает создание минимального, но достаточного набора API, документации и инструментов, необходимых для ускорения и упрощения работы команд, разрабатывающих программные сервисы и системы;
- Описывается подход Platform as a Service (Платформа как сервис), который предполагает предоставление платформенных возможностей другим командам в формате самообслуживания с минимальным вовлечением платформенной команды. Подход включает API, пользовательские интерфейсы, документацию, код, модули, инструменты, интеграции и процессы;
- Рассматривается концепция Platform Layers (Платформенные слои). В крупных организациях может существовать несколько платформенных команд, при этом платформа логически разделяется на слои, такие как инфраструктура и облако, платформы окружений, платформа непрерывной интеграции и поставки, платформы мониторинга и логирования, платформы для хранилищ данных и других базовых сервисов;
- Разбирается состав и возможные варианты Enabling команд, включая Accelerate team, DevOps Evangelist team и DevOps Advocacy team, а также их роль в масштабировании инженерных практик;
- Отдельное внимание уделяется целям и задачам Enabling команд, способам их взаимодействия с другими командами и используемым практикам и инструментам, включая проведение R&D, организация Dojo, создание и публикация технологических радаров (Technology Radar), проведение обучения и тренингов, направленных на развитие инженерной культуры и практик.
Подробнее в записи выступления и
презентации: