Docker мёртв
Сказать, что для Docker'а 2017 год выдался тяжёлым, было бы преуменьшением. Не могу вспомнить ни одного столь раскрученного и хорошо обеспеченного деньгами стартапа из Долины, кроме Uber'а, который бы провёл 2017 год так же невнятно, как Docker.
2017 стал тем годом, когда Docker, великолепный образчик программного обеспечения, был полностью уничтожен плохим бизнес-управлением. Эта заметка — сторонний взгляд на то, как и где Docker пошёл не туда, и как попытки что-либо исправить оказались слишком слабыми и запоздалыми.
Docker — хорошее ПО
Скажем често, Docker помог произвести революцию в разработке программного обеспечения. Взять за основу такие базовые линуксовые вещи, как контрольные группы, пространства имён, изоляцию процессов и т.д. и объединить их в одном инструменте — это потрясающее достижение. В 2012 году я пытался понять, как сделать среду разработки более портативной. Рост популярности Docker'а позволил превратить среду разработки в простой, версионируемый Docker-файл. Используемый инструментарий из Packer'а, Vagrant'а, VirtualBox'а и тонны обвязки ужался до одного Docker'а. Docker UI, на самом деле, тоже хорош! Это хороший инструмент с большим количеством приложений. Ребята из команды Docker'а должны гордиться тем инструментарием, который им удалось выстроить.
Docker — любимчик Долины
Ранний успех Docker'а помог компании выстроить большое сообщество вокруг своего продукта. Этот же ранний успех позволял поднимать финансирование раунд за раундом. Известные инвесторы, вроде Goldman Sachs, Greylock Partners, Sequoia Capital и Insight Venture выстраивались в очередь с самосвалами денег для Docker'а. На сегодняшний день, Docker поднял вложений на общую сумму от $242 до $250 миллионов долларов.
Но, как и многие хорошо финансировавшиеся стартапы 2010-х годов, Docker совершил некоторое количество кадровых ошибок. В процессе роста Docker'а, в компании остались неразогнанными некоторые паршивые люди. И это стало причиной моей личной неприязни к руководству этой компании. Продукт всё ещё качественный, но это СОВЕРШЕННО не извиняет поведение компании. К сожалению, это довольно распространенная ситуация среди любимчиков Долины, и продолжаться так больше не должно.
Kubernetes вредит Docker'у
Незавидная судьба Docker'а была приближена ростом Kubernetes. Docker не сделал никаких подвижек в сторону поддержки Kubernetes, облюбованного сообществом свободного ПО инструмента контейнерной оркестрации. Всё внимание компании было отдано конкурирующему продукту — Docker Swarm. Это решение было принято несмотря на то, что Kubernetes как раз ставил во главу угла контейнеры именно на основе Docker. Кстати сказать, Docker Captains в начале года подтвердили, что обсуждения Kubernetes в статьях, на митапах и конференциях компанией не одобрялись.
И на dockercon17 повторялась эта анти-Kubernetes мантра. А потом, внезапно, на dockercon EU 17 Docker решили поставить всё на Kubernetes. Внезапная перемена настроения, очевидно была связана с уверенным ростом господства Kubernetes. И ситуация эта подкрепилась ещё тем, что Docker стал спонсором и участником на KubeCon + CloudNativeCon North America 2017
Moby?
Никто не понял, что Docker имел в виду, когда объявил о Moby на dockercon17 в апреле. Moby был представлен как новая основная ветка проекта Docker. Но о релизе Moby не было объявлено заранее. Миллионы голосов возопили от ужаса, когда на GitHub'е Docker вдруг сменился на Moby (https://github.com/moby/moby/pull/32691), когда Соломона Хайкс выступал на dockercon17. Настолько резкие и плохо продуманные изменения даже потребовали прямого вмешательства сотрудников GitHub.
И плохо продуманы были не только сами изменения, но и объявления об этих изменениях. Потом пришлось извиняться и на пальцах объяснять, что именно произошло Всё это еще больше сгущает тучи на и так пасмурном небе экосистем контейнеризации и Docker'а (или теперь уже Moby?). Некоторые до сих пор не отошли от того, как Docker выкатывал Moby. Бренд Docker'а от этого, конечно, тоже пострадал.
Холодные объятия для Kubernetes
Запоздалое и неуклюжее принятие Docker'ом Kubernetes в самый последний возможный момент — признак надвигающегося падения. Когда Соломона Хайкеса спросили жив ли Docker Swarm, он ответил (в Твиттере): "Docker продолжит поддерживать и Kubernetes и Swarm на высшем уровне и будет стимулировать их взаимное развитие. Открытость и возможность выбора создают более здоровую экосистему для всех." Проблема же здесь в том, что Docker Swarm поддерживается недостаточно хорошо. Совсем нет. Команда разработки Docker Swarm и горстка их опенсурсных разработчиков не смогут тягаться с сообществом Kubernetes. Как бы не был хорош Docker UI, Kubernetes UI гораздо лучше. Это почти как если бы Docker опустился до статуса маргинальной консалтинговой фирмы в мире контейнеров.
Заключение
Главная проблема Docker'а — отсутствие четкого курса руководства. Такое ощущение, что стратегия держалась на одном конкретном человеке. И его отодвигали все дальше и дальше от центра компании, хотя он все еще находится в ней. Компания перестроилась и сфокусировалась на поддержке энтерпрайза. Этот сдвиг оправдан с точки зрения инвесторов (у компании есть фидуциарные обязательства, в конце концов). Но этот сдвиг, определённо, снизил крутость бренда, которая изначально питала его дикий успех. Как говорится, "великую цивилизацию никто не может убить. Кроме неё самой". И с Docker именно так и произошло.
Бонус: Теория Заговора!
Conspiracy Theory: Docker knows it is over for them. The technical folk decided to roll out Moby drastically and embraced Kubernetes suddenly to make sure their work still lives on. #Docker #DevOps
— Chris Short (@ChrisShort) December 29, 2017
Я вкинул в Твиттер теорию обо всех подозрительных происшествиях с Docker в 2017-м: возможно, Docker знают о том, что конец компании близок. В то время, когда судя по организационным изменения компания готовится прекратить свое существование (и, скорее всего, будет куплена кем-то большим), техническое ядро компании тоже решает провести реорганизацию. Передача сontainerd CNCF, Moby как апстрим для Docker'а и внезапная дружба с Kubernetes — выглядит как попытка спасти все хорошее, что было сделано ребятами из Docker. Это позволит продать компанию крупной организации, типа Oracle или Microsoft, и не беспокоиться о том, что технологические достижения сотрудников Docker будут погребены под лицензионными ограничениями. Так будет лучше и для разработчиков и для компании. Излишне говорить, что 2018 будет очень интересным годом для Docker.
Оригинал статьи — https://chrisshort.net/docker-inc-is-dead/