Во вторник организация CNCF (Cloud Native Computing Foundation) объявила о публичной доступности своей «инфраструктурной лаборатории» — CNCF Community Infrastructure Lab (CIL). Это означает, что Open Source-проекты, связанные с микросервисной архитектурой и «облачным» (cloud native) подходом, могут бесплатно получить в своё распоряжение инфраструктуру для тестирования функционирования и производительности своих наработок в облаке нужного масштаба.
CNCF — проект The Linux Foundation, созданный в конце 2015 года с целью способствовать широкому принятию подхода cloud native — «вычислительной парадигмы, оптимизированной для современных распределённых окружений, способных масштабироваться до десятков тысяч самовосстанавливающихся многопользовательских узлов». Подразумевается, что такие (cloud native) системы запускают приложения, разбитые по контейнерам, динамически управляются и являются ориентированными на микросервисную архитектуру. А поскольку всё это происходит с подачи Linux Foundation, речь идёт о проектах с открытым исходным кодом (Open Source). И сегодня среди поддерживаемых в CNCF проектов можно увидеть много знакомых DevOps-миру названий: Kubernetes, containerd, Prometheus, CNI, CoreDNS, Linkerd и др.
CNCF Cluster: первая версия
С самого своего появления CNCF организация стремилась обеспечивать инфраструктуру для Open Source-проектов. Со временем это вылилось в создание специального кластера — CNCF Cluster. Первую его реализацию представили около года назад, а его конфигурация была основана на процессорах Intel Xeon (и подарена компанией Intel), выглядела следующим образом:
Уже тогда CNCF Cluster назывался «крупнейшим в мире бесплатно доступным кластером из bare metal-серверов для развития cloud native computing». И за время существования его первой версии к облачным ресурсам CNCF успели обратиться такие проекты, как Kubernetes, Apache ZooKeeper, Elasticsearch на Mesos, СУБД TiDB и другие. Однако самым масштабным пользователем оказалась платформа OpenShift.
Инженеры Red Hat развернули две инсталляции OpenShift: один кластер на 100 узлах bare metal и второй — на 2048 узлах виртуальных машин на базе облака OpenStack (Red Hat OpenStack Platform 10).
Цели эксперимента заключались в тестировании различных компонентов Docker (драйвер overlay2 для OverlayFS) и Kubernetes/OpenShift (HAProxy + Ingress, Persistent Volumes на базе Red Hat Container-Native Storage, реестр контейнеров) на достаточно большом масштабе. Результаты их теста подробно описаны в блоге OpenShift, а итоговые впечатления от эксперимента были сформулированы так:
Проделана большая работа. Как мы можем быть уверены, что сообщество и потребители выиграют от неё? Во-первых, мы добавляем абсолютно все [полученные результаты] в upstream. Вдобавок, мы создаем настолько много настроек, лучших практик и оптимизаций конфигов для продукта, насколько это возможно… и документируем всё остальное. [..] CNCF Cluster — невероятно ценный актив для Open Source-сообщества. Второй этап тестирования производительности на кластере CNCF снова обеспечил нас полезной информацией, которую мы используем в грядущих релизах.
Одним из заметных ограничений первого CNCF Cluster было максимальное время его использования — до 2 недель. С ним столкнулись в своих запросах такие проекты, как Cilium и etcd. Но их не оставили без внимания: на помощь пришёл сотрудник американской компании Packet, специализирующейся на предоставлении ресурсов bare metal по запросу*… И вот пришло время, когда это предложение распространилось на весь кластер CNCF, который вместе с Packet получил вторую инкарнацию.
* Кстати, в Open Source-сообществе Packet была известна и ранее — благодаря своей безвозмездной помощи для kernel.org.
CNCF Cluster: новая версия
Итак, для нужд CNCF в Packet предлагают облако, финансово лимитированное 25 тысячами USD в месяц и географически распределённое по всему миру (включая США, Нидерланды, Японию).
Доступны серверные варианты 5 типов (7 конечных конфигураций) на базе:
- Intel Atom C2550 (4 cores @ 2.4Ghz);
- Intel Xeon E3-1240 v3 (4 cores @ 3.4Ghz);
- Intel E3-1578L (4 Physical Cores @ 2.0 GHz base / 3.40 GHz burst);
- 2 x Intel Xeon E5-2650 v4 (24 cores @ 2.2 GHz);
- 2 × Cavium ThunderX ARMv8 SoC's;
- 2 x Intel Xeon E5-2640 v3 (16 cores @ 2.6Ghz);
- 2 x Intel E5-2620 v4 (16 total cores @ 2.1Ghz).
Типовая конфигурация сервера Packet, предлагаемая для развёртывания приложения
Среди официально поддерживаемых операционных систем для серверов с процессорами Intel упоминаются Ubuntu 14.04 и 16.04, Debian 8, CentOS 7, Scientific Linux, Container Linux, RancherOS, NixOS, FreeBSD, а для ARMv8 этот список гораздо короче, зато дополнен CoreOS. Сетевые возможности включают в себя анонсирование своего IP-пространства, BGP/Anycast и поддержку IPv6.
Взаимодействовать с предлагаемыми конфигурациями можно по специальному API, доступному по протоколу HTTP, а также с помощью готовых клиентов, уже реализованных на Ruby, Python, PHP, Go, Java, Node.js. Одна из особенностей Packet — интеграция предлагаемых ею ресурсов с популярными инструментами/сервисами для работы с облачными окружениями и контейнерами, такими как Rancher, Terraform, Mesosphere DC/OS, Kontena, Docker Machine и Docker Cloud, Apache jclouds и Apache Libcloud, а также системой управления конфигурациями Ansible и сетевым решением Project Calico.
Подача заявки на ресурсы
При получении ресурсов от CNCF CIL следует помнить, что приоритет отдаётся проектам, которые уже входят в официальный список CNCF, затем — компаниям-членам организации, а после этого — остальным разработчикам. Кроме того, проект должен удовлетворять следующим основным требованиям:
- запускаемый код должен быть Open Source (распространяться под лицензиями, одобренными OSI) на 100%;
- приложение должно позволять разработчикам тестировать или создавать непрерывно интегрируемые инфраструктуры с автоматизированным использованием крупного публичного облака и без принудительного применения виртуализации;
- в тестировании должны использоваться контейнеры, если это уместно.
Чтобы запросить ресурсы для своего проекта, необходимо создать issue в Git-репозитории CNCF Cluster. Для текста заявки заготовлен достаточно подробный шаблон, который просит рассказать о том, для кого из сообщества и конечных пользователей будут полезны проводимые тестирования и как они «помогут развить cloud native computing (в частности — контейнеризацию, оркестровку, микросервисы или любую их комбинацию)». Примеры уже реализованных запросов (правда, пока они относятся только к старому кластеру) можно увидеть в закрытых issues.
P.S.
Возможно, вам не нужны эти ресурсы прямо сейчас (и/или вы не разрабатываете Open Source-код), но полезно знать… возможно, даже не столько об этом конкретном предложении, сколько о самих примерах сотрудничества в индустрии на благо современным технологиям и, конечно, Open Source.
Читайте также в нашем блоге: «Linux Foundation представила бесплатный вводный онлайн-курс по Kubernetes».
Автор: shurup