На прошлой неделе организация The Linux Foundation во время своего мероприятия Open Source Leadership Summit объявила о создании нового фонда для Open Source-проектов. Очередной независимый институт по развитию открытых [и востребованных в индустрии] технологий призван объединить в себе инструменты для DevOps-инженеров, а если быть точнее — для организации и реализации процессов непрерывной доставки, пайплайнов CI/CD. Организацию так и назвали: The Continuous Delivery Foundation (CDF).
Чтобы лучше понять, для чего вообще создаются подобные фонды при родительской организации Linux Foundation, достаточно взглянуть на более известный пример — CNCF (Cloud Native Computing Foundation). Этот фонд появился в 2015 году и с тех пор принял в свои ряды множество Open Source-проектов, по-настоящему определяющих современный ландшафт облачной ИТ-инфраструктуры: Kubernetes, containerd, Prometheus и т.п.
Сама же организация выступает в роли независимой площадки, на базе которой эти проекты управляются и развиваются в интересах разных участников рынка. Для этого в CNCF созданы технический и маркетинговый комитеты, приняты определённые стандарты и правила (если интересны детали, то рекомендуем к прочтению, например, CNCF TOC Principles)… И, как мы видим на «живых» примерах, схема работает: проекты, находящиеся в ведомстве CNCF, становятся более зрелыми, набирают популярность в индустрии, причём как среди конечных пользователей, так и среди разработчиков, участвующих в их развитии.
Следуя этому успеху (ведь многие «облачные» проекты CNCF уже вошли в повседневную жизнь DevOps-инженеров), общим тенденциям в ИТ и их проявлениям в мире Open Source, в The Linux Foundation решили «занять» (а правильнее будет сказать, что «продвинуть») новую нишу:
«Continuous Delivery Foundation (CDF) станет независимым от вендоров домом для важнейших Open Source-проектов, предназначенных для непрерывной доставки и спецификаций, ускоряющих процессы пайплайна. CDF будет способствовать взаимодействию ведущих разработчиков, конечных пользователей и вендоров из индустрии, продвигать CI/CD и методологии DevOps, определять и документировать лучшие практики, создавать руководства и обучающие материалы, которые позволят команде разработчиков ПО из любой точки мира реализовать лучшие практики CI/CD».
Идея
Основные ценности и принципы, которыми руководствуются в CDF, на данный момент сформулированы таким образом, что организация:
- … верит в силу непрерывной доставки и в то, что она даёт новые возможности разработчикам и командам, позволяет выпускать программное обеспечение высокого качества более часто;
- … верит в решения с открытым исходным кодом, совместное применение которых охватывает весь цикл доставки программного обеспечения;
- … культивирует и поддерживает экосистему Open Source-проектов, которые не зависят от вендоров, посредством совместной деятельности и взаимной совместимости;
- … продвигает и стимулирует среди специалистов, занимающихся непрерывной доставкой на практике, совместную работу, распространение своих практик и их улучшение.
Участники и проекты
Но красивые слова — удел маркетологов, который не всегда совпадает с тем, что происходит в действительности. И в этом смысле первое впечатление об организации можно составить по тем, кто же из компаний её сформировал и какие проекты стали её «первенцами».
Основные члены CDF — это 8 компаний, а именно: входящий в топ-10 банков США Capital One и куда более знакомые IT-инженерам представители индустрии в лице CircleCI, CloudBees, Google, Huawei, IBM, JFrog и Netflix. Некоторые из них уже рассказали о столь знаменательном событии в своих блогах, но об этом — чуть ниже.
К участникам CDF также относятся и конечные пользователи его проектов — аналогичная категория есть и у CNCF, где можно встретить eBay, Pinterest, Twitter, Wikimedia и многих других. В случае нового фонда таких участников пока всего 15, но и среди них уже фигурируют интересные и известные имена: Autodesk, GitLab, Puppet, Rancher, Red Hat, SAP и присоединившаяся буквально позавчера Sysdig.
Теперь, пожалуй, о главном — о проектах, заботу по которым поручили CDF. Таковых на момент создания организации оказалось четыре:
Jenkins и Jenkins X
Jenkins — вряд ли нуждающаяся в особом представлении система для CI/CD, написанная на Java, существующая уже долгие годы (подумать только: первый релиз — в виде Hudson — состоялся 14 лет назад!), за которые она обросла бесчисленной армией плагинов.
Главной коммерческой структурой, стоящей за Jenkins на сегодняшний день, можно считать CloudBees, техническим директором которой является оригинальный автор проекта (Kohsuke Kawaguchi) и которая стала одним из основателей фонда.
Jenkins X — этот проект тоже во многом обязан CloudBees (как легко догадаться, его главные разработчики числятся в штате той же компании), однако, в отличие от собственно Jenkins, решение совсем новое — ему лишь год.
В рамках Jenkins X предлагается готовое решение для организации CI/CD для современных облачных приложений, развёртываемых в рамках кластеров Kubernetes. Для этого JX предлагает автоматизацию пайплайнов, встроенную реализацию GitOps, окружения с предварительным просмотром релизов и другие возможности. Архитектура Jenkins X представляется следующим образом:
Стек продукта — Jenkins, Knative Build, Prow, Skaffold и Helm. Подробнее о проекте мы уже писали на хабре.
Spinnaker
Spinnaker — созданная в Netflix платформа для непрерывной доставки, исходный код которой был открыт в 2015 году. В настоящее время в её разработке активное участие принимает и Google: их совместными усилиями продукт развивается как решение для крупных организаций, DevOps-команды которых обслуживают множество команд разработчиков.
Ключевыми концепциями в Spinnaker для описания сервисов являются приложения (applications), кластеры (clusters) и группы серверов (server groups), а их доступностью для внешнего мира занимаются балансировщики нагрузки (load balancers) и файрволы (firewalls):
Подробнее о базовом устройстве Spinnaker можно прочитать в документации проекта.
Платформа позволяет работать со множеством облачных окружений включая Kubernetes, OpenStack и различных облачных провайдеров (AWS EC2, GCE, GKE, GAE, Azure, Oracle Cloud Infrastructure), а также интегрироваться с различными продуктами и сервисами:
- с CI-системами (Jenkins, Travis CI) в пайплайнах;
- с Datadog, Prometheus, Stackdriver и SignalFx — для событий мониторинга;
- со Slack, HipChat и Twilio — для уведомлений;
- с Packer, Chef и Puppet — для виртуальных машин.
Вот что написали в Netflix по поводу включения Spinnaker в новый фонд:
«Успех Spinnaker в значительной мере случился благодаря замечательному сообществу компаний и людей, которые его используют и вносят свой вклад в развитие. Передача Spinnaker в CDF усилит это сообщество. Данный шаг будет способствовать появлению изменений и инвестиций от других компаний, которые наблюдали за происходящим со стороны. Открытые двери для новых компаний принесут в Spinnaker очередные инновации, от которых выиграют все».
А в публикации Google по случаю создания Continuous Delivery Foundation отдельно отмечается, что «Spinnaker — многокомпонентная система, которая концептуально согласуется с Tekton». Так мы приходим к последнему проекту, вошедшему в новый фонд.
Tekton
Tekton — фреймворк, представленный в виде общих компонентов для создания и стандартизации CI/CD-систем, подразумевающих работу пайплайнов в различных окружениях включая обычные виртуальные машины, serverless и Kubernetes.
Сами эти компоненты — «выполненные в стиле Kubernetes» ресурсы (реализованные в самом K8s как CRD), выступающие в роли строительных блоков для определения пайплайнов. Краткая иллюстрация их использования в кластере K8s представлена здесь.
Поддерживаемый в Tekton стек продуктов покажется уже знакомым: Jenkins, Jenkins X, Skaffold и Knative. В Google Cloud считают, что Tekton решает «проблему совместной работы Open Source-сообщества и ведущих вендоров над модернизацией инфраструктуры для CI/CD».
…
По аналогии с CNCF, в CDF создан технический комитет (Technical Oversight Committee, TOC), в обязанности которого входит рассмотрение вопросов (и принятие решений) по включению новых проектов в фонд. Другой информации о самой организации на сайте CDF пока не так много, но это нормальное явление и лишь вопрос времени.
Закончим же цитатой из анонса JFrog:
«Теперь, став одной из компаний только созданного фонда Continuous Delivery Foundation, мы выведем своё обязательство [по созданию технологии, которая универсальна в своей поддержке других решений для CI/CD] на новый уровень. Эта новая организация будет, следуя идеям сотрудничества и открытости, управлять будущими стандартами непрерывной доставки, которые ускорят цикл выпуска программного обеспечения. С принятием Jenkins, Jenkins X, Spinnaker и других технологий под крыло этого фонда мы видим у CI/CD светлое будущее!»
P.S.
Читайте также в нашем блоге:
acmnu
Кстати, может кто знает проект, позволяющий более менее красиво открисовывать и контролировать большие графы операций, где воркерами являются разные системы и скрипты? Дело в том, что пока у вас 10-15 джобов — все хорошо. Но когда их становится 1000, да ещё и в разных системах (Jenkins, Tower, Pupet и т.д.), то понять что куда и зачем очень сложно.
Из систем, которые пытаются исправить эту беду я знаю Concourse CI и OpenStack Zuul. Первые предоставляет хорошую визуализацию, а второй умеет абстрагироваться от движков и формализовать взаимосвязи. Но хотелось бы нечто умееющее и это и то и, обязательно, с установкой на хост, а не в облаке.
hellt
Apache airflow можно посмотреть
acmnu
Выглядит неплохо. Спасибо.