Когда Мэтью Пик, руководитель технического отдела компании HBC Digital, попытался объяснить суть контейнеров и платформы Docker своей жене, она окрестила их его «техноштучками с пластиковыми контейнерами».

Он глубоко призадумался над способом, которым он мог бы объяснить концепцию контейнеров руководству корпорации Hudson’s Bay Co., учредителю таких сетей розничной торговли как Saks Fifth Avenue, Lord & Taylor и др. Как обычно, когда дело касалось технических нюансов, он понимал, что для описания контейнеров влиятельным лицам в корпорации нужно подобрать более подходящие слова.

«Нам нужен был новый способ продажи контейнеров непосвященным людям, — поделился Пик на саммите Container Summit, посвященном контейнерным технологиям. — Нужно было сделать акцент не на технологии, а на том, что именно она дает бизнесу и насколько это полезная концепция — самовосстанавливающаяся, переносимая, более быстрая».

Он спроектировал небольшую рабочую среду для экспериментов и демонстрации того, как контейнеры могут ускорить разработку и дать возможность программистам быстрее реагировать на нужды бизнеса в стремительно меняющихся условиях розничной торговли. Ему это удалось, и теперь корпорация HBC старается использовать контейнеры во всех новых проектах.

Разработчики из других компаний, таких как Uber и Jet.com, могут поделиться похожим опытом: они достигли определенных успехов, достаточных для привлечения на свою сторону руководства, особенно в сферах розницы и финансовых услуг, в которых команды разработчиков вынуждены работать быстро и менять приложения на лету. «Суть контейнеров заключается в ускорении [разработки] программного обеспечения, в переносе его с ноутбука в облако в кратчайшие сроки», — говорит Брайан Кэнтрилл, технический директор фирмы Joyent, провайдера хостинга для контейнеров и сопутствующих средств управления.

Первой показала, на что способны контейнеры в особо ответственных ситуациях, финансовая фирма Lucera, ранний приверженец контейнеров. Lucera предоставляет инфраструктуру как услугу для валютных бирж, которую генеральный директор Джейкоб Лавлесс называет «IaaS для взрослых». Компания Lucera воспользовалась контейнерами для разработки технологии биржевой торговли, которая могла увеличиваться и уменьшаться в масштабах со скоростью, соответствующей движению рынков. «Возможность подстраивать конфигурацию инфраструктуры под текущие запросы оказалась выгодным вложением средств», — отметил он.

История контейнеров

Разработчики сразу скажут, что технология контейнеров не нова. Эта концепция зародилась в мире Unix еще 30 лет назад. Сейчас контейнеры входят в моду, потому что решают фундаментальную задачу облачных вычислений, которая заключается в создании и управлении распределенными приложениями и в их эффективном масштабировании.

Контейнеры позволяют разработчикам упаковывать что угодно — приложение, сервис, скрипт — в неизменный формат, который можно затем взять и перенести, как грузовой контейнер, и работать с ним в любом окружении. Они могут по мере необходимости функционировать быстрее или медленнее, а также динамически менять свои объемы. Как объяснил генеральный директор компании Docker Бен Голуб, чтобы перенести приложения в облако, нужно было преодолеть убеждение, что «приложения монолитны, долговечны и работают на одном-единственном сервере».

Контейнеры активно поспособствовали сближению коллективов ИТ-разработчиков и технической поддержки, считает Ларри Гленн, вице-президент отдела разработки платформ и систем, опять-таки корпорации HBS Digital. «Платформа Docker сделала для интеграции разработчиков и сисадминов больше, чем что бы то ни было еще, — пояснил он. — [С появлением контейнеров] между разработчиками и техподдержкой больше нет непреодолимых разногласий. Контейнеры размывают границы понятия разработки как таковой». Следствием стало повышение продуктивности и эффективности совместной работы айтишников, а это существенный плюс для корпораций, штат разработчиков которых исчисляется тысячами.

Несмотря на энтузиазм приверженцев, движение за контейнеризацию все еще находится на начальном этапе — Кэнтрилл называет его «пубертатным» — и контейнерам предстоит еще проложить дорогу по нескольким направлениям, прежде чем они станут таким же повсеместным явлением, как сегодняшние виртуальные машины.

Одно из таких направлений — это стандартизация, в которой много путаницы даже для участников текущих проектов по стандартизации — фонда Cloud Native Computing Foundation и программы Open Container. Проблема заключается в том, что компания Docker сама хочет ззадавать стандарты. Если точнее, у платформы Docker открытый код, а компания Docker является членом органа стандартизации, к тому же, подобно Kleenex, ассоциирующейся с салфетками, Docker является синонимом контейнеров. Мы уже видели, к чему это может привести.

Однако экосистема контейнеров включает в себя и другие составляющие части помимо формата контейнеров Docker — например, рабочие среды и инструменты синхронизации и управления, которым нужно развиваться совместно с концепцией контейнеров таким образом, чтобы это не сдерживало процесс инноваций. Среди направлений, по которым должно идти развитие, участники саммита называют безопасность, постоянное хранение и упрощение пользования всей системой как таковой.

Закат эпохи VMware?

По поводу контейнеров не дает покоя один вопрос: что в связи с этим произойдет с текущими реализациями на платформе VMware? Прямо сейчас — ничего. VMware использует для работы контейнеры. Amazon Web Services, Azure, Google и OpenStack — все они поддерживают и используют контейнеры. Подходят ли эти среды наилучшим образом для работы контейнеров — вопрос открытый. На одной из крупнейших облачных платформ контейнеры все еще работают под управлением гипервизора. Сторонники контейнеров считают, что те же самые контейнеры будут работать намного эффективнее и дешевле на голом железе или под операционными системами с минимальным набором функций, такими как Triton компании Joyent, Alpine или одноименный продукт фирмы CoreOS.

И все же привычные виртуальные машины слишком обросли инфраструктурой, чтобы контейнеры со старта (или в принципе) могли их нивелировать. Контейнеры следует рассматривать как новый способ разработки приложений. Данные, полученные аналитическими компаниями Forrester, Gartner и др., свидетельствуют о том, что практически все новые приложения будут разрабатываться с прицелом на работу в облаке. Контейнеры станут логической стартовой площадкой для новых проектов.

Другой насущный вопрос заключается в том, с чего начать работу с Docker. Все разработчики в один голос говорят: просто начните. Начните понемногу, мелкими шагами, продемонстрируйте некий результат и снова вернитесь за добавкой. Но не медлите, чтобы вы успели увидеть, на что способны контейнеры и почему они инициируют перемены в важнейших областях облачных вычислений. «Если вы хотите узнать, что творится в сфере облаков, обратите внимание на приложения, — говорит Дэйв Бартолетти, главный аналитик фирмы Forrester. — Облако — это пространство для разработки новых интересных приложений. Функция облака как площадки для дешевых серверов безвозвратно осталась в 2010 году».