Сегодня, когда все больше компаний используют облачные сервисы, идея о том, чтобы перенести свои приложения или сайты на виртуальные серверы не кажется чем-то столь необычным. Однако отрасль облачных вычислений сейчас находится на пороге революции, считает Брайан Кантрил, бывший инженер Sun Microsystems и Oracle, который теперь занимает позицию директора по технологиям инфраструктурного проекта Joyent. Он считает, что виртуальные машины вскоре уступят свое место программным контейнерам, которые станут более эффективным инструментом для работы с современными приложениями.
Благодаря таким компаниям, как Google, Docker и другим, этот процесс уже запущен. Процесс может еще ускориться благодаря появлению независимой организации, занимающейся развитием идеи контейнеров — Cloud Native Computing Foundation, участниками которой являются Cisco, eBay, Goldman Sachs, IBM, Intel, Joyent, Twitter и, конечно, Google и Docker. Как видно, развитием технологий контейнеров занимается множество разных компаний, и по словам представителя Google Грейг МакЛаки (Crag McLuckie), новая организация ставит перед собой цель по «гармоничному объединению» всех этих технологий.
Новую организацию поддерживает и некоммерческой Linux Foundation, занимающейся развитием соответствующей открытой операционной системы (еще фонд развивает похожий проект Open Container Initiative, OCI). Разница заключается в том, что OCI работает над созданием общей спецификации контейнеров — стандарта, который позволит создавать контейнеры, работающие на всех компьютерах или в любых облачных сервисах —, а Cloud Native Computing ставит перед собой более масштабную цель, намереваясь объединить огромное количество инструментов для работы с контейнерами.
К примеру, Google предлагает инструмент под названием Kubernetes, который позволяет работать с контейнерами на большом количестве машин, другие компании также разрабатывают подобные сервисы. Новый фонд хочет сделать так, чтобы все эти инструменты могли работать вместе, и одновременно повысить их качество. Google передал код Kubernetes организации, другие компании также открывают код своих продуктов.
Kubernetes и так был open source-проектом, но теперь над его развитием смогут работать не только сотрудники Google, но и профессионалы из других компаний, создающих похожие проекты. И это то, что нужно, считает обозреватель Wired Кейд Метц — мощь идеи контейнеров станет по-настоящему заметной, когда работать над ней будут все игроки сообща.
Комментарии (27)
almuerto
31.07.2015 14:59+1Тоже интересно знать, использует ли кто докер в продакшн. Контейнер с коллаборейшн сервером в тесте сейчас.
dos
31.07.2015 17:57+1Есть небольшой опыт. Используем под выдачу демо версий нашего ПО потенциальным клиентам. На текущий момент всего лишь 30 контейнеров (максимум было ~40) на одной машине на btrfs диске с компрессией. Очень удобно быстро создать изолированную демку по запросу и присвоить на неё домен третьего уровня — все занимает до 10 секунд. Ещё классно, что при том что базовый образ весит ~2.5 GB, то общий объем 30 контейнеров не превышает сейчас 8.5GB. Работает все идеально. Написал свою систему запуска контейнеров «по требованию», если контейнер клиентом не используется, то он тушится (как на heroku). Пока доволен :)
farcaller
31.07.2015 18:39Ещё классно, что при том что базовый образ весит ~2.5 GB
оставлю тут ссылку на вот этот замечательный базовый образ: registry.hub.docker.com/_/alpinedos
31.07.2015 20:49Я имел ввиду под «базовым образом» не образ чистой ОС, а настроенный полностью контейнер с нашим софтом :) так то в качестве базового дистрибутива используем дефолтную Ubuntu :) Тем не менее спасибо за ссылку, посмотрю что это такое,
pleha
01.08.2015 22:37(привет) Ну для экспериментов классно. А вот много ли там софта есть в репо и в каком он состоянии, как говорят, «для продакшена»?
farcaller
01.08.2015 22:49Хорошо работает для своего софта который собирается в статический блоб — go, c++. Разворачивать из альпины мускуль смысла, наверно, мало.
MrFrizzy
31.07.2015 19:58+2Пообщался я на europython2015 с Mandy Waite — она делала keynote про kubernetes.
Так вот,
1) контейнеров много, просто docker стал стандартом де-факто.
Сейчас google мержит свои наработки в runc и завязывается на стек docker. Но это в большей степени потому, что докер — это экосистема доставки в большей степени, чем запуска.
2) контейнеры небезопасны (still yet). Долгое время небыло вообще спецификаций, сейчас есть rocket appc и новая opencontainers spec. Все остальное — читать код. И до сих пор нет ни одного документа по безопасности со списком всех возможных дыр хотя-бы для linux.
Так что запускать можно только доверенный код.
Вот моя выжимка из разных источников
3) google использует docker вместе с kubernetes для запуска 10000 одинаковых воркеров равномерно по свободным ресурсам датацентра. То есть в изоляции особо нет необходимости. Могли бы подойти решения вроде cgroups и net namespace (утилита ip или готовая обвязка). Просто docker позволяет доставлять и запускать одинаковые образы и он уже написан…shuron
01.08.2015 12:18Пункт 2) не не имеет того веса как его рисуют ИМХО.
Ибо Контейнеры это не замена виртуалкам. В часности Докер это звено между виртуалками и пакетным менеджером. Докер имеет свойства и виртулаок и пакетных мэнеджеров, в новой смысловой комбинации.
Например в оличии от пакетного мэнеджера у Докер контененра есть полная изоляция от другово контейнера. А так да как вы клиентам не даете использовать пакетный мэнеджер для дистрибудитива своих «аппов» так и с докером не будете… ;)MrFrizzy
01.08.2015 12:38Проблемы две:
— люди не понимают идею пакетного менеджера и тянут к себе непроверенные образы
— docker уже используется для предоставления vm клиентам на общем хосте. По хорошему, нужно еще изолировать сам docker слоем выше него, но этого никто не делает.
А изоляция между запущенными контейнерами и между контейнером и хостом не такая уж непробиваемая.
Для понимающего админа это не проблема. Для google или другой компании со своим частным облаком это не проблема.
Для облачного провайдера или его клиентов это может стать проблемой. Для большой части разработчиков, которые могут даже не осознавать опасность запуска у себя чужого кода, это уже стало проблемой, просто они могут этого не осознавать…
Ну и почитайте саму статью — гиганты индустрии хотят заменить виртуалки на контейнеры. Для них это экономия ресурсов и оптимизация, для остального мира это может стать очередной модной технологией, в которой большинство не разбирается.
Вот необдуманное использование этой технологии мне и не нравится =)Grunya_404
03.08.2015 06:38Докер наверно слишком многогранен и это его проблема. Но это точно не вм, и замену им он не сможет обеспечить никогда. Скорее заполнит нишу между… где то я доклад смотрел на тему " о докере и его месте… " И там это очень четко было в диаграмму эвалюции вируализации вписано. Между железом и вм. Вроде от мелкософта видео было это в мск что то было у них.…
А экономия то и юзерам тоже, сравните вес трёх dev env vm, все равно в чем работающих. и тот же дев env собранный из контейнеров. На порядок меньше, а главное удобней в разы. Если понимать что это за технология.
Использую уже пол года в прод стек контейнеров, кроме БД сервисов, но скоро и их туда же, все это для одного php проекта с приличной аудиторией, развертываемого как на своём железе так и на облачных площадках. И так же благодаря контейниризации освоился в CI и CD. через tutum
shuron
04.08.2015 23:21гиганты индустрии сделают это какраз по умному. Не будет, к примеру, там на одной виртуалке контенеров разных клиентов, если это не безопасно…
MrFrizzy
04.08.2015 23:31После прочтения множества статей и общения с некоторыми разработчиками\админами у меня в этом есть некоторые сомнения. Есть облака, в которых контейнеры просто запускаются на хосте пачками. В лучшем случае рассматривают docker как замену openvz — запускают же в нее клиентов — почему бы и сюда не запустить?..
Плюс, помимо гигантов есть целое множество компаний поменьше, где бизнесу некогда заморачиваться безопасностью — нужно как можно быстрее выстрелить на рынке и поднять денег.
rkononov
01.08.2015 12:08Мы используем докер в продакшне, уже больше года(с версии 0.7.4), в принципе каждый новый релиз приходится «прикручивать костыли», но в целом они больше связаны с нашим специфическим вариантом использования докера (короткоживущие контейнеры, много параллельных контейнеров). API,storage, фронтэнды крутятся на CoreOS — тоже бывают проблемы но в целом все достаточно стабильно.
Некоторые детали я описывал здесь — habrahabr.ru/post/247969
kai
Интересно, кто-нибудь использует Docker в продакшн без проблем и костылей?
dborovikov
А расскажите про свои проблемы. Я как раз планирую внедрять докер.
kai
Я на макбуке пробовал. Не самый лучший вариант, т.к. нативной версии нет, все работает через виртуалку с линуксом.
Сходу docker-compose (бывший fig) — не работает. Ошибка в ssl, нужно использовать ключ-костыль. Приходится качать rc2 версию.
Потом я пробовал создавать несколько связанных с собой контейнеров, так и не получилось их запустить, что-бы все работало гладко и без проблем. Например, запускаю их через compose, пытаюсь сделать exec bash через docker — ничего не выходит. В «compose ps» они в состоянии «run», в «docker ps» в состоянии «reboot».
Я сейчас смотрю в сторону vagrant, он толще, но привычней и стабильней.
dizews
запускал docker-compose для одного проекта, реализовал связку с ним другого проекта, всё взлетело на раз. Использовал boot2docker.
в то время как с vagrant-ом промучался, а когда завелось он регулярно ложился.
dborovikov
Попробуйте докер раннить внутри вагранта. Все-таки основная целевая система докера — это линукс, все остальное по стольку по скольку.
l0rda
Использую docker-compose в продакшене, никаких проблем. Поднял свой приватный реестр.
halyavin
Судя по этой статье, нет: sirupsen.com/production-docker.
cy-ernado
Обычно докер запускают на продакшене не на макбуках.
iron.io, например
zw0rk
Я использую. Проблем не обнаружено пока.
Suvitruf
Для некоторых подсистем используем. К примеру, метрики неплохо в контейнере запускать (Graphite + Grafana и все-все-все). Если же вы используете Kubernetes, то у вас там всё в контейнерах )
shuron
Я пользуюсь… Кстати в гуглклауде…
«Костылей» меньше чем раньше… Могу протестриорвать всю связку на домашнем сервере или насвоем лэптопе.
Есть путь миграции старой легаси системы посредством распиливаниай на микросервисы и запихиванией а в контеэнреы и постепенной замене отдельных контеэров на новые сервицы…
Общая продуктивность возрасла… Но конечно имело начальный инвест.
farcaller
Поднял кластер kubernetes с хранилищем на ceph. Ну оно работает, конечно, но постоянно всплывают интересные вещи, k8s — он большой и сложный.
MrFrizzy
Вот статья про всевозможные костыли в проде