К основному содержимому
#Kubernetes

CNCF Platforms White Paper - I

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

Ну и в продолжение поста про 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