sysadmin.su
219 subscribers
279 photos
28 videos
223 files
2.09K links
Админам/sre/devops’ам будет интересно!
Download Telegram
Forwarded from Книжный куб (Alexander Polomodov)
CNCF Platforms White Paper - I

Ну и в продолжение поста про Kubecon я решил рассказать про whitepaper от CNCF на тему платформ. Документ состоит из 7 пунктов

1. Why platforms?
Собственно документ начинается со списка преимуществ платформ и того, какие проблемы они решают:
- уменьшают когнитивную нагрузку на продуктовые команды
- улучшают надежность и устойчивость продуктов, развернутых поверх платформ
- ускоряют разработку и доставку продуктов за счет переиспользования платформенных инструментов
- уменьшают риски: безопасности, регуляторные, функциональных багов
- помогают использовать эффективно сервисы и мощности публичных облаков

2. What is a platform
Здесь дается определение платформы в виде коллекции возможностей, что определены и представлены в соотоветствии с потребностями пользователей платформы. Здесь важно, что все эти возможности интегрированы вместе и предоставляют возможность выполнять типичные сценарии пользователей платформы. Критически важно, что не все возможности платформенные команды должны реализовывать сами (их могут предоставлять облачные провайдеры или внутренние команды в организации). Так как эти платформе направлены на внутренних разработчиков, то их называют internal developer platform. Дальше авторы отдельно разбирают уровни зрелости платформ
Platform maturity
- продуктовые разработчики могут получать возможности платформы on-demand и сразу использовать их для запуска своих приложений
- продуктовые разработчики могут получать пространство для сервисов и сразу использовать их для запуска пайплайнов и задач для хранения артефактов, конфигурации и сбора телеметрии
- администраторы стороннего софта могут получать свои зависимости по требованию, например, баззы данных, а дальше использовать их в своих решениях
- продуктовые разработчики могут получать полное окружение с темплейтами вместе с run-time и development-time сервисами для специфичных сценарием (Web, ML, ...)
- продуктовые разработчики и менеджеры могут наблюдать за функциональностью, производительностью и костами развернутых сервисов через стандартные инструменты и дашборды

3. Attributes of successful platforms
В этом пункте авторы рассказывают про свойства платформ, которые
- platform as a product - к созданию платформ надо подходит как к созданию продукта
- user experience - надо ориентироваться на опыт разработчиков (DexEx, про него я недавно разбирал white paper)
- documentation and onboarding - здесь приводится пример того что могут предлагать платформы "the platform could offer a reusable supply chain workflow for building, scanning, testing, deploying, and observing a web application on Kubernetes. Such a workflow could be offered with an initial project template and documentation, a bundle often described as a golden path"
- self-service - возможность самостоятельно использовать сервисы
- reduced cognitive load for users - платформа должна уменьшать нагрузку
- optional and composable - продукты должны иметь возможность использовать нужные части платформ, а нехватающие части закрывать самостоятельно
- secure by default - безопасность должна быть встроена в платформы по умолчанию

4. Attributes of successful platform teams
Платформенные команды отвечают за следующие зоны
- исследование требований пользователей и создание роадмапа фичей
- маркетинг, евангелирование и адвокатство ценностей, которые предлагает платформы
- управление и разработка интерфейсов для использования и изучение возможностей и сервисов, включая портал, API, документацию, шаблоны и CI инструменты
Самое важное в том, что платформенные команды должны изучать потребности платформенных пользователей и дальше информировать и постоянно улучшать возможности и интерфейсы, что предоставляют платформы. Для этого можно использовать стандартные продуктовые инструменты, например, описанные в книге Мартина Кагана "Inspired", про которую я писал раньше.

Продолжение в постах 2 и 3.

#Kubernetes #SRE #DistributedSystems #PlatformEngineering #SoftwareDevelopment #Software #ProductManagement