Ситуация в мире облачных вычислений сейчас отчасти напоминает мобильный рынок в разрезе операционных систем. В том смысле, что Amazon являет собой «Apple облачных технологий». Аналогию портит лишь то, что у Apple есть и свой облачный сервис, но по сравнению с ресурсами Amazon это не более чем потребительская игрушка.
Посмотрите сами: у Amazon сейчас самое большое разнообразие облачных сервисов, где каждый может запускать свои приложения, арендовать инфраструктурные компоненты или виртуальные машины. Amazon очень хорошо чувствует себя в конкурентной борьбе с другими компаниями, точно так же как Apple со своими блестящими продуктами — iPhone, iPad и, конечно, iOS. Перечисленные устройства, несомненно, хороши — и продажи только подтверждают это. В четвёртом квартале финансового 2013 года было продано 33,8 миллиона iPhone и 14,1 миллиона iPad. Однако, как бы то ни было, это устройства, контролируемые одним производителем. И до того, как ОС Android смогла составить iOS серьёзную конкуренцию, Apple была авторитарным правителем.
То же самое сейчас делает Amazon — у неё очень качественные сервисы, которыми пользуется большая часть рынка, и поэтому компания Джеффа Безоса ведёт себя как безраздельный властитель, фактически задавая «моду» на тарифы и способы предоставления облачных услуг. Поэтому то, что нам всем сейчас нужно, — это некий «Андроид» облачного рынка. Компания, которая за счёт опенсорсного решения сможет изменить рынок облачных вычислений и сделать его более конкурентной средой — такой же, какой стала мобильная индустрия благодаря борьбе iOS и Android, подстёгиваемой миноритарными операционными системами типа Windows Phone и BlackBerry. Разумеется, авторитарность Amazon не означает, что компания стагнирует или не занимается инновационными проектами. Просто это всегда чёрный ящик: клиенты вынуждены идти за вендором и играть по его правилам.
Тут нельзя не кивнуть на очевидное: ведь есть на облачном рынке живые открытые проекты! Когда появились амазоновские EC2 и S3, многие попытались сделать их аналоги, свободные от вендорского гнёта. А свобода в данном случае означает в первую очередь возможность не только использовать, но и модифицировать. На этом после играли RackSpace с OpenStack. Гиганты индустрии EMC и VMware создали Cloud Foundry. Однако это не то, что спасло или могло бы спасти рынок.
OpenStack — это вовсе не Android рынка облачных вычислений. Это просто проект, который позволяет компаниям разворачивать облачные сервисы внутри собственных дата-центров. По сути, это Open Source-версия проприетарного продукта vSphere, который продаёт компания VMware. Виртуализация и так лежит в корне большинства сервисов Amazon, но клиенты хотят большего. Им нужна кастомизация, ведь они уже и так платят за виртуализацию и запуск своих сервисов на облаках Amazon.
Более того, OpenStack, будучи флагманом open source-движения в облаках, переживает сейчас не лучшие времена. Буквально вчера в колонке «Почему OpenStack погубит его собственное сообщество» я рассуждал о проблемах проекта. И главная из них в том, что у сообщества нет ярко выраженного лидера:
«Вот и получается, что интереснейший и важнейший открытый проект для облачного рынка, его главная надежда живёт без царя в голове. То есть формально такой царь определён, и это OpenStack Foundation, но проект всё же управляется истинно демократическим способом, то есть самим сообществом. Подкованные в политике читатели, однако, могут возразить, что при демократическом строе народ всё-таки избирает правителя, а здесь какая-то сплошная охлократия. И они, возражающие читатели, будут как никогда правы. Поскольку сообщество — это главное преимущество и, вместе с тем, головная боль OpenStack. То, что может как спасти проект, так и обречь его на погибель».
Вопрос, однако же, в том, существует ли какая-то технология, которая может стать для облаков тем же, чем «Андроид» стал для мира мобильных ОС? Один из интереснейших претендентов на это гордое звание — проект CTL-C, над которым работает Лукас Карлсон (Lucas Carlson) в CenturyLink. Карлсон — это персонаж, известный ИТ-сообществу как человек, создавший сервис AppFog. Как рассказывает он сам, однажды к нему в голову пришла отличная идея — Heroku для PHP! Конечно, если не знать, что такое Heroku, то восторгаться тут совершенно нечем. Это сервис, который позволяет разработчикам создавать приложения прямо на виртуальных машинах в облаке. Однако, в отличие от Amazon, он не даёт клиентам возиться с самими виртуальными машинами: клиенты просто получают доступ к удобному интерфейсу для разработки и запуска своих приложений.
Идея оказалась столь привлекательной и популярной, что в 2010 году сервис в пику Amazon купила компания Salesforce. Однако у Heroku было одно ограничение: разрабатывать можно было только приложения на Ruby. И поэтому Лукас Карлсон решил создать аналог Heroku для более популярного языка — PHP. Он основал сервис PHPFog, который впоследствии перерос в AppFog и оброс большим сообществом разработчиков, распространившись далеко за рамки PHP: сегодня AppFog поддерживает множество языков программирования.
AppFog постигла судьба Heroku — его купила более крупная компания, телекоммуникационный гигант CenturyLink. И теперь Лукас Карлсон работает в компании над проектом CTL-C. Проблема того же AppFog была в том, что это всё-таки PaaS, то есть продукт для разработчиков, продающих свои решения различным компаниям. А бизнес все ещё не готов тратить большие деньги на PaaS, и уж тем более располагать и разрабатывать свои приложения где-то вне своей инфраструктуры. Если крупным компаниям и нужны облака, то IaaS, а не PaaS.
CTL-C — это как раз своеобразное объединение IaaS и PaaS, дополненное технологиями AppFog. Но с добавлением одной важной составляющей, без которой продукт CenturyLink мало чем отличался бы от Amazon S3. Карлсон добавил в CTL-C популярную опенсорсную технологию под названием Docker. С функциональной точки зрения это способ запаковать код приложения в подобие цифрового контейнера для переправки между компьютерами или виртуальными машинами. И это, по мнению Лукаса, способно дать бизнесу сразу две ключевых возможности. Первая — кастомизация облачного решения, вторая — возможность на лету перемещать разработки в собственное облако или ЦОД.
Docker не только позволяет упаковать код для простого перемещения между машинами, но и определяет логику работы приложений с виртуальной машиной. Он разбивает виртуальный сервер на модули, каждый из которых может работать с отдельным приложением. Это позволяет значительно удешевить сервис для конечных пользователей. Раньше мы арендовали выделенные серверы, потом разбили их на виртуальные машины и арендовали уже их, а теперь и сами машины оказались разделёнными на модули.
CTL-C с Docker, вполне возможно, и образуют структуру, которая сможет противостоять Amazon и его безраздельной власти на рынке. «Время, когда существовали барьеры между IaaS, PaaS, контейнерами Docker и Linux, а также облачными сервисами и традиционной инфраструктурой, — это время подходит к концу», — говорит Лукас Карлсон.