- PVSM.RU - https://www.pvsm.ru -

На прошлой неделе Kubernetes отметил своё 4-летие: первый коммит [1] в его публичной кодовой базе состоялся 6 июня 2014 года. По этому случаю один из его основателей, Joe Beda, поделился [2] в блоге проекта своими воспоминаниями о том, как всё начиналось.
А начиналось всё, как известно, гораздо раньше — с «идей, что были проверены опытом Google на протяжении 10 лет с Borg» — системой, которая в свою очередь «обязана своим существованием ещё более ранней работе в Google и вне его». Вот как описывает истоки Kubernetes, предшествовавшие первому коммиту, сам Джо:
Если говорить конкретно, Kubernetes начался с прототипов от Brendan Burns и моей продолжающейся работы Craig McLuckie с целью согласовать внутренние наработки Google с Google Cloud. Вместе с Бренданом и Крейгом мы хотели, чтобы люди могли воспользоваться нашими трудами, поэтому решили создать прототип в виде Open Source-проекта, который откроет миру лучшие идеи из Borg.

Joe Beda, Craig McLuckie и Brendan Burns (слева направо) — оригинальные авторы Kubernetes — на панельной дискуссии об истории проекта (видео [3] 2018 года)
Мы получили добро и занялись собственно созданием системы. Взяв прототип Брендана (на Java), мы переписали его на Go и собрали лишь тот необходимый минимум, что позволяет показать основные идеи. К этому времени наша команда выросла — её пополнили Ville Aikas, Tim Hockin, Brian Grant, Dawn Chen и Daniel Smith. Получив нечто работающее, мы нуждались в человеке, который навёл бы порядок, подготовив всё для публичного запуска. Этим человеком стал я. Не осознавая всей значимости момента, я создал новый репозиторий, поместил туда наработки и коммитнул их. Несмотря на то, что мне принадлежит первый публичный коммит в репозиторий, до этого момента было проделано много работы.


Joe Beda начинал свою карьеру в Microsoft (1997), перейдя оттуда в Google (2004), а затем был советником в CoreOS (2015) и создал свою компанию Heptio (2016)
Но первые наработки Kubernetes были очень сырыми:
Версия Kubernetes того времени была лишь тенью того, чем станет проект. Основные концепции присутствовали, но находились в очень сыром виде. Например, поды (pods) назывались задачами (tasks). Мы изменили это буквально за день до публичного коммита. [..] Однако, несмотря на эту сырость, даже такого начала было достаточно для того, чтобы вызвать интерес сообщества, которое быстро сплотилось, а со временем становилось только сильнее.
Очевидная причина последовавшего всплеска популярности Kubernetes — индустрия в целом пришла к тем же проблемам и не имела достаточно подходящего решения. Словам Джо вторит [4] Крейг:
Мы долго размышляли над тем, как сделать запуск приложений в production более прогрессивным, «оркестрированным». Просто основываясь на своём опыте с Google Compute Engine, мы из первых рядов увидели проблемы, с которыми компании сталкиваются при переносе рабочих нагрузок в облака. [..]
Если вы взглянете на историю, мы приняли решение открыть код Kubernetes и сделать его проектом, ориентированным на сообщество, гораздо раньше, чем того рекомендует привычный ход мысли, и по-настоящему сосредоточились на создании сообщества, которое будет открытым и вовлечённым. И это действительно принесло свои плоды: развитие Kubernetes ускорилось и он быстро стал стандартом для оркестровки контейнеров.
Публичный анонс Kubernetes состоялся через несколько дней после первого коммита — 10 июня 2014 года на первой конференции DockerCon. Это сделал Eric Brewer — вице-президент Google по инфраструктуре — в рамках доклада «Robust Containers» (видео [5], презентация [6]) следующими словами:
Сегодня мы выпускаем код Kubernetes. Это ещё одна система оркестровки… [..] Не буду её демонстрировать, т.к. у меня всего 25 минут на доклад. Позже сегодня это сделают Крейг и Брендан. [..] Причина, по которой мы сейчас публикуем Kubernetes как Open Source-проект, заключается в идеях [которыми мы хотим поделиться с сообществом].
… и кратким рассказом о базовой архитектуре Kubernetes и ключевых концепциях нового проекта: labels для подов (термин pod уже использовался в Google для обозначения групп контейнеров), replica set («группа подов с одинаковыми лейблами»), service («replica set с балансировкой нагрузки»), reconciler model («модель примирителя»; ключевая идея этого подхода — объявлять желаемое состояние, чтобы в дальнейшем система автоматизированно следила за соответствием ему).

Анонс Kubernetes на конференции DockerCon'14
Что было дальше с Kubernetes, нам известно уже не понаслышке… Подводя итог 4-летия, Джо отмечает, что «успех проекта был во многом обусловлен не просто кодом и технологией, а тем, как замечательная группа людей собралась вместе для того, чтобы сделать нечто особенное». И лучшей иллюстрацией тому служат ценности сообщества Kubernetes, которые представлены в репозитории проекта [7]:
Резюмирует же ценности проекта известная цитата Питера Друкера: «Культура ест стратегию на завтрак».
Читайте также в нашем блоге:
Автор: shurup
Источник [13]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/282576
Ссылки в тексте:
[1] первый коммит: https://github.com/kubernetes/kubernetes/commit/2c4b3a562ce34cddc3f8218a2c4d11c7310e6d56
[2] поделился: https://kubernetes.io/blog/2018/06/06/4-years-of-k8s/
[3] видео: https://www.youtube.com/watch?v=VgmDkaIM5Ls
[4] вторит: https://techcrunch.com/2018/06/06/four-years-after-release-of-kubernetes-1-0-it-has-come-long-way/
[5] видео: https://www.youtube.com/watch?v=YrxnVKZeqK8
[6] презентация: https://www.slideshare.net/Docker/brewerdockerconkeynote-140613153819phpapp02-37588923
[7] репозитории проекта: https://github.com/kubernetes/steering/blob/master/values.md
[8] Разработчики Kubernetes отвечают на вопросы пользователей Reddit: https://habr.com/company/flant/blog/353264/
[9] Зачем нужен Kubernetes и почему он больше, чем PaaS?: https://habr.com/company/flant/blog/327338/
[10] Истории успеха Kubernetes в production. Часть 8: Huawei: https://habrahabr.ru/company/flant/blog/349940/
[11] Kubernetes 1.10: обзор основных новшеств: https://habrahabr.ru/company/flant/blog/353114/
[12] Путеводитель CNCF по решениям Open Source (и не только) для cloud native: https://habrahabr.ru/company/flant/blog/350928/
[13] Источник: https://habr.com/post/413827/?utm_campaign=413827
Нажмите здесь для печати.