На пересечении понятий «облака», «open source» и «открытое ПО» есть одна очень важная точка современного облачного ландшафта под названием OpenStack. Важность этого явления для рынка облачных технологий трудно переоценить. OpenStack для облаков — это примерно то же, что концепция открытого ПО для софтверного рынка. Сотрудничество в рамках OpenStack начали Rackspace и NASA, а уже потом это переросло в целый комплекс проектов открытого ПО, предназначенного для создания облачной инфраструктуры силами open source-разработчиков.
Однажды мы уже писали об OpenStack в рамках истории про «облако в облаке», запущенной той же RackSpace:
«По сути, OpenStack — это комплекс программного обеспечения с открытым исходным кодом, который позволяет развёртывать собственные облака и облачные хранилища. В прошлом году Rackspace передала права на код и торговую марку OpenStack некоммерческой организации OpenStack Foundation, и это позволило множеству крупных компаний присоединиться к работе над платформой. Сейчас над разработкой OpenStack трудятся Cisco, HP, Dell, AMD, Intel, NEC и многие другие».
OpenStack — это единственное по-настоящему открытое решение для развёртывания облачной инфраструктуры. Заклятые друзья проекта Citrix и Eucalytptus хороши тем, что ядро каждого из этих продуктов разработано проприетарно — внутри компании, а затем уже выложено для разработки сообществом. OpenStack же с самого начала был исключительно открытым продуктом, и это определило как его успехи, так и проблемы, о которых мы поговорим подробно.
Сегодня OpenStack — это семь основных компонентов: сервисы обработки данных (Nova), хранения объектных данных (Swift), управления идентификацией и доступом (Keystone), каталога образов (VM Glance), портал самообслуживания Horizon, сетевой контроллер Quantum, сервис хранения блочных данных Cinder. Все эти решения используются для создания как частных, так и публичных облаков.
В случае с частными облаками в сообществе OpenStack выделяются три основные группы потребителей. Первая — это компании, имеющие собственный мощный ЦОД, для которого требуется реализовать управление ресурсами по гибкой облачной модели. Вторая группа — компании, в принципе, работающие с облаками, но пока не готовые перемещать критические данные и вычисление в публичное облако. Они разрабатывают собственные приватные решения, которые благодаря архитектуре OpenStack затем легко выводятся на публичную платформу. Третья и, пожалуй, самая многочисленная группа — свободные разработчики-экспериментаторы. Посредством OpenStack они в сжатые сроки и без затрат могут развернуть платформу и выяснить, насколько облачные технологии в принципе подходят для выполнения задач их организации. Привлекательность платформы для третьей группы пользователей обусловлена тем, что, в отличие от своих конкурентов, OpenStack является полностью опенсорсным решением, распространяющимся на соответствующих условиях и по подобающим лицензиям.
Раньше у OpenStack был вполне конкретный хозяин — облачный провайдер Rackspace. Но, как уже было сказано, последняя компания предприняла важнейший стратегический шаг в истории OpenStack и передала права на проект организации OpenStack Foundation. Так появились соответствующая торговая марка и возможность совместной работы над проектом для ряда крупных компаний, прежде не участвовавших в разработке. Однако, несмотря на звучность имён, все эти компании вовсе не владеют продуктом или его компонентами, никто из них не ведёт его за собой. Все они являются спонсорами: AT&T, Canonical, HP, IBM, Nebula, Rackspace, Red Hat и SUSE — платиновыми, Cisco, Dell, NetApp и Yahoo — золотыми.
Вот и получается, что интереснейший и важнейший открытый проект для облачного рынка, его главная надежда, живёт без царя в голове. То есть формально такой царь определён, и это OpenStack Foundation, но проект всё же управляется истинно демократическим способом, то есть самим сообществом. Подкованные в политике читатели, однако, могут возразить, что при демократическом строе народ всё-таки избирает правителя, а здесь какая-то сплошная охлократия. И они, возражающие читатели, будут как никогда правы. Поскольку сообщество — это главное преимущество и, вместе с тем, головная боль OpenStack. То, что может как спасти проект, так и обречь его на погибель.
Недавно бывший лидер проекта Эндрю Шафер (Andrew Shafer) опубликовал весьма едкий и пессимистичный пост под ироничным названием «To whom it may concern» (в официальных документах англоязычных стран эта фраза — аналог нашего «для предъявления по месту требования»). Основная его мысль, послужившая предметом сегодняшней колонки, заключается в том, что неуправляемое сообщество OpenStack с большой вероятностью может погубить проект.
Если проследить историю успешных опенсорсных проектов, то становится понятно, что лучшие из них имели модульную, распределённую структуру разработки. Модульный принцип — это то, что сделало Linux такой популярной, и то, чего не может или не хочет внедрять сообщество, работающее над OpenOffice. В Linux независимые энтузиасты работают над отдельными субпроектами, и это освобождает их от необходимости детально погружаться во все без исключения принципы работы системы. OpenOffice придерживается принципиально иной позиции: хочешь работать над проектом — будь добр изучить его вдоль и поперёк. Не удивительно, что Linux процветает, а OpenOffice теряет интерес разработчиков.
Однако модульная структура может сыграть злую шутку с проектом, что, в частности случилось и с OpenStack. В качестве живого примера Эндрю Шафер приводит историю с компонентом Ceilometer, который предназначен для мониторинга среды OpenStack:
«Ceilometer — это трагедия, поданная как фарс. По моему мнению, он вообще не должен был существовать или, по крайней мере, не должен предоставляться клиентам в том виде, в котором он находится сейчас.
То, как исполнен Ceilometer, — это смесь наивных идей с глупыми мечтами, причём реализованная без понимания того репутационного урона, который проект может нанести всему OpenStack. Кроме того, этот компонент и решение о его разработке вообще ставит под вопрос процесс принятия решений в сообществе. Это ужасный проект, даже по стандартам OpenStack».
Причина инцидента, по мнению Шафера, состоит в политике сообщества. А если точнее, в существовании роли технического лидера проекта (Project Technical Lead), принятой в OpenStack:
«Воспринимаемый престиж роли PTL оттеняет другие разумные предложения сообщества. Технический лидер — это роль, которая позволяет разделять видение проекта и управление этим проектом. Я считаю, что пытаться заставить различные команды в рамках OpenStack совместно работать над релизом подобного компонента — это бесполезная трата времени».
Чтобы спасти ситуацию, бывший лидер сообщества рекомендует OpenStack обратить внимание на несколько собственных призывов. Во-первых, OpenStack необходимо сфокусироваться на пользователях, а не на вендорах: сейчас проект в большей степени решает проблемы вендоров, чем развивает идею открытого облака. Во-вторых, нужно избавиться от роли PTL и привычки выбирать его каждый цикл разработки. В-третьих, OpenStack надлежит стать значимым для пользователей брендом, самостоятельной единицей, а не технологией, которую вендоры продают своим корпоративным клиентам.
Приведённые советы, без сомнения, могут помочь сообществу, но главная беда находится на поверхности: у OpenStack просто нет единой движущей силы, а OpenStack Foundation не подходят на эту роль. Сильный лидер при этом вовсе не означает, что проект необходимо коммерциализировать. Таким лидером может стать RedHat — один из главных на сегодняшний день участников сообщества. Или компания поменьше — например, Mirantis. Но в любом случае кто-то должен взять на себя ответственность за будущее главной надежды открытых облаков. Ведь ответственность, поделённая на всех, не принадлежит в итоге никому. Иначе охлократия была бы идеальным политическим строем.