- PVSM.RU - https://www.pvsm.ru -
На дворе 2017 год, а в различных статьях и, тем более, комментариях к ним то и дело приходится встречаться с мнением, что Docker — удел неопытных энтузиастов, экзотических компаний-однодневок и каких угодно экспериментов, максимально удалённых от реального production. И вот пока коллеги готовят новые технические материалы, я решил на публично доступных примерах и фактах показать, что это скорее миф и стереотип, чем мир, в котором живёт ИТ сегодня.

Отправная точка для этой статьи — статистика от сервиса мониторинга Datadog [1], которая впервые появилась в 2015 году и в последний раз была обновлена буквально на днях, в апреле 2017 года. Datadog — это не какая-то традиционная аналитическая компания, а известная своей дружелюбностью к облачным окружениям система мониторинга (код её агента написан на Python и опубликован [2] как 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 дней.
Схожую статистику по Docker собрали в Sysdig (публикация [3] от 12 апреля 2017 года) — сервисе, специализирующемся на мониторинге Docker и отличающимся хорошей поддержкой связанных с ним технологий. Правда, там проанализировали гораздо меньше: всего 45 000 контейнеров. Из интересного в их разрезе данных можно отметить большую популярность Kubernetes (43 % от всех пользователей, и в эту же категорию включены продукты вроде OpenShift и Tectonic), Quay (22 % пользователей на фоне 15 % у Docker Registry).

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

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

От общего — к частностям. На сайте самой Docker Inc, конечно же, есть раздел с клиентами [5] и их историями успехов. В нём можно найти по-настоящему известные бренды. Не буду заниматься полным перечислением и вместо этого приведу примеры некоторых из них с указанием годов внедрений/обновлений.
BBC News ежедневно только на английском языке публикует по 80 тысяч новостей, обслуживанием которых занимается система, работающая на 150 серверах с приложениями на JVM и PHP. В инфраструктуре было десять различных окружений для Continuous Integration, запускающих огромное количество заданий, используемых 500+ разработчиками. Задания выполнялись очень долго (полчаса на постановку в расписание и еще полчаса на исполнение) и последовательно. Перейдя [6] на контейнеры в 2015 году, от получаса на планирование удалось избавиться, т.к. запуск задач стал параллельным, а время исполнения заданий сократилось. Вдобавок, новое окружение стало более открытым, масштабируемым и надёжным, что позволило ему стать лучшей практикой, адаптированной в других проектах BBC. (Подробности о проекте доступны в 2-страничном PDF-файле [7].)
Один из крупнейших интернет-магазинов столкнулся с ограничениями виртуальных машин, которые использовались для оптимизации процессов разработки приложений. Перейдя [8] на Docker для непрерывной интеграции, в компании организовали процесс, который обеспечивает выкат контейнеризированных приложений на ноутбуки разработчиков, тестовые окружения и в production. В 2014 году команда eBay PaaS Team в своём технологическим блоге публиковала [9] подробности об используемой модели CI с Mesos. В 2015 году представители eBay рассказывали [10] об использовании Docker-контейнеров с Kubernetes (и OpenStack).
Туристическая компания Expedia (более 18 тысяч сотрудников в 60 странах) в ~2012 году решила перейти на облачную инфраструктуру, благодаря чему её инженеры начали свой путь к микросервисной архитектуре. Для создания и деплоя таких приложений понадобились подходящие и надёжные инструменты. Результатом [11] стало то, что в 2016 году более 200 контейнеризированных приложений были запущены в production с использованием Docker (хостятся в AWS). Дополнительно у разработчиков есть свой дата-центр, в который у разработчиков также налажен деплой. Среди используемых инструментов упоминаются Docker Engine, Docker Trusted Registry (более 1000 репозиториев) и Docker Compose. На YouTube доступно выступление [12] специалистов Expedia с подробностями об их применении Docker в production. Кстати, в этом году лондонское подразделение Expedia выложило в GitHub свой образовательный курс [13] по Docker для разработчиков, состоящий из 8 уроков.
Сервис электронной торговли Groupon был одним из ранних пользователей Docker: ещё в 2014 году инженеры этой компании внедрили [14] контейнеры для нужд непрерывной интеграции. В том же году на конференции DockerCon они представили [15] свой Open Source-проект DotCi — плагин для Jenkins, упрощающий управление заданиями (со встроенной поддержкой Docker). Уже тогда он стал критически важным инструментом для управления процессами сборки и релизов, о чём говорил [16] прессе технический директор Groupon.
Всем известный сервис электронных платежей PayPal (обрабатывает 200+ платежей каждую секунду) использует частное облако OpenStack, в котором запущены более 100 тысяч виртуальных машин (в них работают все веб-приложения и сервисы). Стояла задача модернизации инфраструктуры с тем, чтобы сделать её более отзывчивой, безопасной и экономически эффективной. Как средство был выбран путь рефакторинга существующих приложений (на Java и C++) с целью их контейнеризации и удобного деплоя как в своё облако, так и в публичное (что может оказаться рентабельнее, чем поддержка собственной инфраструктуры). Результатом стало внедрение [17] в 2014 году стека технологий Docker в production, включающего Docker Commercially Supported Engine (CS Engine), Docker Trusted Registry и Docker Compose. Контейнеры сосуществуют с виртуальными машинами и позволили значительно сократить общее количество ВМ, что привело к оптимизации инфраструктуры. Кроме того, скорость выката новых приложений значительно сократилась благодаря легковесности контейнеров (по сравнению с виртуализацией). В 2015 году инженеры PayPal пошли дальше, выступив на на конференции DockerCon SF c докладом (видео [18], презентация [19]) о своей инфраструктуре в нескольких дата-центрах, CI с Jenkins и работе с Docker-образами. А в 2016 году на LinuxCon NA рассказали [20] о том, что система CI в PayPal, использующая Git, Docker, Mesos, Jenkins, Aurora и Travis CI API, привела к 10-кратной экономии.

(Оркестровка Docker в PayPal)
Популярное новостное издание The Washington Post имело сложности с растущим числом приложений, написанных на разных языках (Java, Scala, Node, Python, Go). Решив построить систему непрерывного деплоя для своей инфраструктуры на базе AWS, инженеры выбрали [21] Docker Engine и Docker Compose. Текущее окружение насчитывает более 2500 Docker-контейнеров, которые полностью обслуживают и весь production, в том числе веб-сайт для онлайн-читателей (новости, мобильное приложение, мобильная версия сайта), их платформу для публикаций Arc Publishing и систему аналитики новостей.
Среди прочих крупных пользователей Docker, указанных на сайте компании-разработчика, можно найти General Electric Appliances, New Relic, New York Times, Spotify, Uber, Yelp и Яндекс (речь про PaaS Cocaine [22]). Кстати, о России. Использование Docker в российских компаниях/российскими инженерами — это тоже реальность. Вот несколько примеров:

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

(Активная дружба Microsoft с Docker)
Особого внимания стоит растущая экосистема проектов, создаваемая индустрией: Kubernetes от Google, Tectonic и Quay от CoreOS, RancherOS, Apache Mesos и DC/OS, Contiv от Cisco… Наконец, упомяну широкое сотрудничество с некоммерческими организациями и проектами, такими как Cloud Foundry [32], Open Containers Initiative [33], Cloud Native Computing Foundation [34].
Docker действительно «выстрелил» и, не являясь какой-то сверхновой и сверхсложной технологией, пришёл в нужное время занять своё место в мире DevOps и CI/CD. Сами мы тоже используем его в production не один год, рассказываем о своём опыте и будем делать это впредь. Подписывайтесь на наш хаб, если вам это интересно :)
Автор: shurup
Источник [35]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/253248
Ссылки в тексте:
[1] Datadog: https://www.datadoghq.com/docker-adoption/
[2] опубликован: https://github.com/DataDog/dd-agent
[3] публикация: https://sysdig.com/blog/sysdig-docker-usage-report-2017/
[4] okmeter.io: https://okmeter.io/
[5] клиентами: https://www.docker.com/customers
[6] Перейдя: https://www.docker.com/customers/bbc-news-reduce-ci-job-time-over-60
[7] PDF-файле: https://www.docker.com/sites/default/files/CS_BBCNews_01.25.2015_1.pdf
[8] Перейдя: https://www.docker.com/customers/ebay-simplifies-application-deployment
[9] публиковала: http://www.ebaytechblog.com/2014/04/04/delivering-ebays-ci-solution-with-apache-mesos-part-i/
[10] рассказывали: https://www.nextplatform.com/2015/11/12/inside-ebays-shift-to-kubernetes-and-containers-atop-openstack/
[11] Результатом: https://www.docker.com/customers/expedia-uses-docker-trusted-registry-help-them-revolutionize-travel
[12] выступление: https://www.youtube.com/watch?v=SZ9TDc-4Kdg
[13] образовательный курс: https://github.com/gscheibel/expedia-docker-for-devs
[14] внедрили: https://www.docker.com/customers/groupon-streamlines-application-delivery-and-maintenance-docker
[15] представили: https://engineering.groupon.com/2014/misc/dotci-and-docker/
[16] говорил: http://www.zdnet.com/article/docker-1-0-brings-container-technology-to-the-enterprise/
[17] внедрение: https://www.docker.com/customers/paypal-uses-docker-containerize-existing-apps-save-money-and-boost-security
[18] видео: https://www.youtube.com/watch?v=pPCn4gggrnQ
[19] презентация: https://www.slideshare.net/Docker/slideshare-paypal
[20] рассказали: https://www.linux.com/blog/paypal-reduces-costs-10x-open-source-ci
[21] выбрали: https://www.docker.com/customers/washington-post-runs-production-apps-docker
[22] PaaS Cocaine: https://habrahabr.ru/company/yandex/blog/209324/
[23] взгляд: https://habrahabr.ru/company/oleg-bunin/blog/311830/
[24] доклад: http://ritfest.ru/2017/abstracts/2653
[25] доклад: http://www.highload.ru/2016/abstracts/2275.html
[26] впечатления: https://jug.ru/2016/10/docker-in-production/
[27] OpenShift: https://openshift.com/
[28] сотрудничает: https://www.nixp.ru/news/13875.html
[29] предлагается: https://www.docker.com/docker-suse-linux-enterprise-server-sles
[30] не ограничивается: https://www.docker.com/microsoft
[31] купила: https://www.nixp.ru/news/13990.html
[32] Cloud Foundry: https://www.cloudfoundry.org/members/
[33] Open Containers Initiative: https://www.opencontainers.org/about/members
[34] Cloud Native Computing Foundation: https://www.cncf.io/about/members/
[35] Источник: https://habrahabr.ru/post/326784/
Нажмите здесь для печати.