Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wptelegram domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u632055791/domains/itg.az/public_html/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-pagenavi domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u632055791/domains/itg.az/public_html/wp-includes/functions.php on line 6114

Notice: Функция _load_textdomain_just_in_time вызвана неправильно. Загрузка перевода для домена kirki была запущена слишком рано. Обычно это индикатор того, что какой-то код в плагине или теме запускается слишком рано. Переводы должны загружаться при выполнении действия init или позже. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 6.7.0.) in /home/u632055791/domains/itg.az/public_html/wp-includes/functions.php on line 6114
Какие известные компании используют Docker в production и для чего?

Какие известные компании используют Docker в production и для чего?

В различных статьях и, тем более, комментариях к ним то и дело приходится встречаться с мнением, что Docker — удел неопытных энтузиастов, экзотических компаний-однодневок и каких угодно экспериментов, максимально удалённых от реального production. И вот пока коллеги готовят новые технические материалы, я решил на публично доступных примерах и фактах показать, что это скорее миф и стереотип, чем мир, в котором живёт ИТ сегодня.

Масштабы и тенденции докеризации

Отправная точка для этой статьи — статистика от сервиса мониторинга Datadog, которая впервые появилась в 2015 году и в последний раз была обновлена буквально на днях, в апреле 2017 года. Datadog — это не какая-то традиционная аналитическая компания, а известная своей дружелюбностью к облачным окружениям система мониторинга (код её агента написан на Python и опубликован как Open Source).

Имея в своём распоряжении огромную базу данных об устройстве инфраструктур в компаниях со всего мира, Datadog собрала статистику по адаптации Docker, которую сама охарактеризовала как «никакой шумихи, только факты». Собранная статистика представляет 10 тысяч компаний и 185 миллионов контейнеров, используемых для каких-либо целей (конечно, это вовсе не обязательно production, но по меньшей мере — часть инфраструктуры, которую имеет смысл мониторить). Вот полученные факты:

1. Если в начале марта 2016 года, около 13,6 % клиентов Datadog использовали Docker, то через год (т.е. к марту 2017 года) этот показатель вырос на ~38 %, составив 18,8%.

2. Docker запущен на 15 % всех хостов, представленных в мониторинге. Для сравнения: два года назад таких хостов было всего 3 %, и это куда более значительный рост.

3. Лидерами адаптации Docker являются крупные компании. Чем больше хостов у компании в мониторинге, тем вероятнее наличие Docker. Около 60 % организаций с 500+ хостами названы пользователями Docker. Последнее обновление исследования также зафиксировало рост интереса к Docker со стороны средних организаций (от 100 до 500 хостов): количество пользователей Docker среди них уже приблизилось к показателю среди крупных компаний.

4. Около 40 % пользователей Docker применяют такие инструменты для работы с контейнерами, как Kubernetes, Mesos, Amazon ECS и Google Container Engine. Год назад таковых было вдвое меньше.

5. Пользователи Docker примерно в 5 раз увеличивают число запущенных контейнеров в период с первого по десятый месяц его применения.

6. Чаще всего в Docker запускают следующие сервисы: nginx, Redis, Elasticsearch, Registry (18 % компаний, использующих Docker), PostgreSQL, MySQL, etcd, Fluentd, MongoDB, RabbitMQ.

7. В среднем на одном хосте запускается по 7 Docker-контейнеров. 9 месяцев назад показатель был ниже — по 5 контейнеров.

8. Средняя продолжительность жизни Docker-контейнера — 2,5 дня; для сравнения, у виртуальной машины — 23 дня. Существенная зависимость была зафиксирована от наличия инструментов оркестровки — в компаниях без них контейнеры в среднем живут по 5,5 дней.

Статистика Sysdig

Схожую статистику по Docker собрали в Sysdig (публикация от 12 апреля 2017 года) — сервисе, специализирующемся на мониторинге Docker и отличающимся хорошей поддержкой связанных с ним технологий. Правда, там проанализировали гораздо меньше: всего 45 000 контейнеров. Из интересного в их разрезе данных можно отметить большую популярность Kubernetes (43 % от всех пользователей, и в эту же категорию включены продукты вроде OpenShift и Tectonic), Quay (22 % пользователей на фоне 15 % у Docker Registry).

(Самые популярные сервисы, запускаемые в Docker, по версии Sysdig)

Статистика из России

Наконец, мы обратились к российским коллегам из okmeter.io, мониторинг которых используем в своих проектах. Согласно полученным статистическим данным, у пользователей этого сервиса тоже наблюдается стабильный и значительный рост популярности Docker. Если в январе 2016 года всего 9 % компаний использовали Docker, а установлен он был на 3 % хостов, то в апреле 2017 года процент компаний почти удвоился, составив 17 %, а хостов — вырос более чем в 7 раз, поднявшись до 23 %. Таким образом, показатель числа пользователей очень близок к самой большой выборке от Datadog, а распространённость Docker на хостах у клиентов okmeter.io оказалась в полтора раза выше.

Истории успеха от Docker Inc

От общего — к частностям. На сайте самой Docker Inc, конечно же, есть раздел с клиентами и их историями успехов. В нём можно найти по-настоящему известные бренды. Не буду заниматься полным перечислением и вместо этого приведу примеры некоторых из них с указанием годов внедрений/обновлений.

BBC News

BBC News ежедневно только на английском языке публикует по 80 тысяч новостей, обслуживанием которых занимается система, работающая на 150 серверах с приложениями на JVM и PHP. В инфраструктуре было десять различных окружений для Continuous Integration, запускающих огромное количество заданий, используемых 500+ разработчиками. Задания выполнялись очень долго (полчаса на постановку в расписание и еще полчаса на исполнение) и последовательно. Перейдя на контейнеры в 2015 году, от получаса на планирование удалось избавиться, т.к. запуск задач стал параллельным, а время исполнения заданий сократилось. Вдобавок, новое окружение стало более открытым, масштабируемым и надёжным, что позволило ему стать лучшей практикой, адаптированной в других проектах BBC. (Подробности о проекте доступны в 2-страничном PDF-файле.)

eBay

Один из крупнейших интернет-магазинов столкнулся с ограничениями виртуальных машин, которые использовались для оптимизации процессов разработки приложений. Перейдя на Docker для непрерывной интеграции, в компании организовали процесс, который обеспечивает выкат контейнеризированных приложений на ноутбуки разработчиков, тестовые окружения и в production. В 2014 году команда eBay PaaS Team в своём технологическим блоге публиковала подробности об используемой модели CI с Mesos. В 2015 году представители eBay рассказывали об использовании Docker-контейнеров с Kubernetes (и OpenStack).

Expedia

Туристическая компания Expedia (более 18 тысяч сотрудников в 60 странах) в ~2012 году решила перейти на облачную инфраструктуру, благодаря чему её инженеры начали свой путь к микросервисной архитектуре. Для создания и деплоя таких приложений понадобились подходящие и надёжные инструменты. Результатом стало то, что в 2016 году более 200 контейнеризированных приложений были запущены в production с использованием Docker (хостятся в AWS). Дополнительно у разработчиков есть свой дата-центр, в который у разработчиков также налажен деплой. Среди используемых инструментов упоминаются Docker Engine, Docker Trusted Registry (более 1000 репозиториев) и Docker Compose. На YouTube доступно выступление специалистов Expedia с подробностями об их применении Docker в production. Кстати, в этом году лондонское подразделение Expedia выложило в GitHub свой образовательный курс по Docker для разработчиков, состоящий из 8 уроков.

Groupon

Сервис электронной торговли Groupon был одним из ранних пользователей Docker: ещё в 2014 году инженеры этой компании внедрили контейнеры для нужд непрерывной интеграции. В том же году на конференции DockerCon они представили свой Open Source-проект DotCi — плагин для Jenkins, упрощающий управление заданиями (со встроенной поддержкой Docker). Уже тогда он стал критически важным инструментом для управления процессами сборки и релизов, о чём говорил прессе технический директор Groupon.

PayPal

Всем известный сервис электронных платежей PayPal (обрабатывает 200+ платежей каждую секунду) использует частное облако OpenStack, в котором запущены более 100 тысяч виртуальных машин (в них работают все веб-приложения и сервисы). Стояла задача модернизации инфраструктуры с тем, чтобы сделать её более отзывчивой, безопасной и экономически эффективной. Как средство был выбран путь рефакторинга существующих приложений (на Java и C++) с целью их контейнеризации и удобного деплоя как в своё облако, так и в публичное (что может оказаться рентабельнее, чем поддержка собственной инфраструктуры). Результатом стало внедрение в 2014 году стека технологий Docker в production, включающего Docker Commercially Supported Engine (CS Engine), Docker Trusted Registry и Docker Compose. Контейнеры сосуществуют с виртуальными машинами и позволили значительно сократить общее количество ВМ, что привело к оптимизации инфраструктуры. Кроме того, скорость выката новых приложений значительно сократилась благодаря легковесности контейнеров (по сравнению с виртуализацией). В 2015 году инженеры PayPal пошли дальше, выступив на на конференции DockerCon SF c докладом (видеопрезентация) о своей инфраструктуре в нескольких дата-центрах, CI с Jenkins и работе с Docker-образами. А в 2016 году на LinuxCon NA рассказали о том, что система CI в PayPal, использующая Git, Docker, Mesos, Jenkins, Aurora и Travis CI API, привела к 10-кратной экономии.

(Оркестровка Docker в PayPal)

The Washington Post

Популярное новостное издание The Washington Post имело сложности с растущим числом приложений, написанных на разных языках (Java, Scala, Node, Python, Go). Решив построить систему непрерывного деплоя для своей инфраструктуры на базе AWS, инженеры выбрали Docker Engine и Docker Compose. Текущее окружение насчитывает более 2500 Docker-контейнеров, которые полностью обслуживают и весь production, в том числе веб-сайт для онлайн-читателей (новости, мобильное приложение, мобильная версия сайта), их платформу для публикаций Arc Publishing и систему аналитики новостей.

Другие примеры

Среди прочих крупных пользователей Docker, указанных на сайте компании-разработчика, можно найти General Electric Appliances, New Relic, New York Times, Spotify, Uber, Yelp и Яндекс (речь про PaaS Cocaine). Кстати, о России. Использование Docker в российских компаниях/российскими инженерами — это тоже реальность. Вот несколько примеров:

  • взгляд Badoo на год использования Docker в production;
  • доклад про разработку и деплой сервисов с помощью Docker и Kubernetes в Avito;
  • доклад от Aviasales.ru про миграцию поискового движка в Docker;
  • а для разнообразия — впечатления от использования Docker в банке (от архитектора Альфа-Лаборатории, отдела особого назначения Альфа-Банка).

Кстати, если вы тоже применяете Docker в production — пожалуйста, расскажите об этом в комментариях. Уверен, что многим это будет очень интересно!

(Просмотр Docker-контейнеров через утилиту baDocker, созданную в Badoo)

Принятие в ИТ

Популярность и распространённость программных продуктов, особенно образующих инфраструктуру, определяется не только их клиентами, но и тем, как их поддерживают гиганты индустрии. И уж тут про Docker не заявил только ленивый. В частности (примеров, конечно, гораздо больше, поэтому только о главном):

  1. Docker интегрируется/поддерживается/обслуживается в Amazon Web Services, Google Cloud Platform, IBM Bluemix, Jelastic, Microsoft Azure, OpenStack, Oracle Container Cloud Service, VMware vSphere Integrated Containers…
  2. Поддерживается в системах управления конфигурациями: Ansible, CFEngine, Chef, Puppet, Salt.
  3. Red Hat не просто «поддерживает» Docker, но развивает свою платформу OpenShift (на базе Kubernetes), Canonical официально сотрудничает, для SUSE предлагается специальная подписка.
  4. Microsoft не ограничивается Azure, а недавно и вовсе купила Deis.

(Активная дружба Microsoft с Docker)

Особого внимания стоит растущая экосистема проектов, создаваемая индустрией: Kubernetes от Google, Tectonic и Quay от CoreOS, RancherOS, Apache Mesos и DC/OS, Contiv от Cisco… Наконец, упомяну широкое сотрудничество с некоммерческими организациями и проектами, такими как Cloud FoundryOpen Containers InitiativeCloud Native Computing Foundation.

Итог

Docker действительно «выстрелил» и, не являясь какой-то сверхновой и сверхсложной технологией, пришёл в нужное время занять своё место в мире DevOps и CI/CD. Сами мы тоже используем его в production не один год, рассказываем о своём опыте и будем делать это впредь. Подписывайтесь на наш хаб, если вам это интересно 🙂