IaaS, VPS, VDS, Частное и публичное облако, SSL
283,65
рейтинг
31 июля 2015 в 12:48

Разработка → Как Google и Docker запускают «революцию контейнеров» перевод



/ фото Derell Licht CC

Сегодня, когда все больше компаний используют облачные сервисы, идея о том, чтобы перенести свои приложения или сайты на виртуальные серверы не кажется чем-то столь необычным. Однако отрасль облачных вычислений сейчас находится на пороге революции, считает Брайан Кантрил, бывший инженер 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 Кейд Метц — мощь идеи контейнеров станет по-настоящему заметной, когда работать над ней будут все игроки сообща.
Автор: @1cloud Cade Metz
1cloud.ru
рейтинг 283,65
IaaS, VPS, VDS, Частное и публичное облако, SSL

Комментарии (31)

  • +5
    Интересно, кто-нибудь использует Docker в продакшн без проблем и костылей?
    • 0
      А расскажите про свои проблемы. Я как раз планирую внедрять докер.
      • 0
        Я на макбуке пробовал. Не самый лучший вариант, т.к. нативной версии нет, все работает через виртуалку с линуксом.

        Сходу docker-compose (бывший fig) — не работает. Ошибка в ssl, нужно использовать ключ-костыль. Приходится качать rc2 версию.

        Потом я пробовал создавать несколько связанных с собой контейнеров, так и не получилось их запустить, что-бы все работало гладко и без проблем. Например, запускаю их через compose, пытаюсь сделать exec bash через docker — ничего не выходит. В «compose ps» они в состоянии «run», в «docker ps» в состоянии «reboot».

        Я сейчас смотрю в сторону vagrant, он толще, но привычней и стабильней.
        • 0
          запускал docker-compose для одного проекта, реализовал связку с ним другого проекта, всё взлетело на раз. Использовал boot2docker.
          в то время как с vagrant-ом промучался, а когда завелось он регулярно ложился.
        • 0
          Попробуйте докер раннить внутри вагранта. Все-таки основная целевая система докера — это линукс, все остальное по стольку по скольку.
        • 0
          Использую docker-compose в продакшене, никаких проблем. Поднял свой приватный реестр.
    • 0
      Судя по этой статье, нет: sirupsen.com/production-docker.
    • +5
      Обычно докер запускают на продакшене не на макбуках.

      iron.io, например
    • 0
      Я использую. Проблем не обнаружено пока.
    • 0
      Для некоторых подсистем используем. К примеру, метрики неплохо в контейнере запускать (Graphite + Grafana и все-все-все). Если же вы используете Kubernetes, то у вас там всё в контейнерах )
    • 0
      Я пользуюсь… Кстати в гуглклауде…
      «Костылей» меньше чем раньше… Могу протестриорвать всю связку на домашнем сервере или насвоем лэптопе.
      Есть путь миграции старой легаси системы посредством распиливаниай на микросервисы и запихиванией а в контеэнреы и постепенной замене отдельных контеэров на новые сервицы…
      Общая продуктивность возрасла… Но конечно имело начальный инвест.
    • 0
      Поднял кластер kubernetes с хранилищем на ceph. Ну оно работает, конечно, но постоянно всплывают интересные вещи, k8s — он большой и сложный.
    • 0
      Вот статья про всевозможные костыли в проде
  • +1
    Тоже интересно знать, использует ли кто докер в продакшн. Контейнер с коллаборейшн сервером в тесте сейчас.
    • +1
      Есть небольшой опыт. Используем под выдачу демо версий нашего ПО потенциальным клиентам. На текущий момент всего лишь 30 контейнеров (максимум было ~40) на одной машине на btrfs диске с компрессией. Очень удобно быстро создать изолированную демку по запросу и присвоить на неё домен третьего уровня — все занимает до 10 секунд. Ещё классно, что при том что базовый образ весит ~2.5 GB, то общий объем 30 контейнеров не превышает сейчас 8.5GB. Работает все идеально. Написал свою систему запуска контейнеров «по требованию», если контейнер клиентом не используется, то он тушится (как на heroku). Пока доволен :)
      • 0
        Ещё классно, что при том что базовый образ весит ~2.5 GB
        оставлю тут ссылку на вот этот замечательный базовый образ: registry.hub.docker.com/_/alpine
        • 0
          Я имел ввиду под «базовым образом» не образ чистой ОС, а настроенный полностью контейнер с нашим софтом :) так то в качестве базового дистрибутива используем дефолтную Ubuntu :) Тем не менее спасибо за ссылку, посмотрю что это такое,
        • 0
          (привет) Ну для экспериментов классно. А вот много ли там софта есть в репо и в каком он состоянии, как говорят, «для продакшена»?
          • 0
            Хорошо работает для своего софта который собирается в статический блоб — go, c++. Разворачивать из альпины мускуль смысла, наверно, мало.
    • 0
  • +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 позволяет доставлять и запускать одинаковые образы и он уже написан…
    • 0
      Пункт 2) не не имеет того веса как его рисуют ИМХО.
      Ибо Контейнеры это не замена виртуалкам. В часности Докер это звено между виртуалками и пакетным менеджером. Докер имеет свойства и виртулаок и пакетных мэнеджеров, в новой смысловой комбинации.
      Например в оличии от пакетного мэнеджера у Докер контененра есть полная изоляция от другово контейнера. А так да как вы клиентам не даете использовать пакетный мэнеджер для дистрибудитива своих «аппов» так и с докером не будете… ;)
      • 0
        Проблемы две:
        — люди не понимают идею пакетного менеджера и тянут к себе непроверенные образы
        — docker уже используется для предоставления vm клиентам на общем хосте. По хорошему, нужно еще изолировать сам docker слоем выше него, но этого никто не делает.

        А изоляция между запущенными контейнерами и между контейнером и хостом не такая уж непробиваемая.

        Для понимающего админа это не проблема. Для google или другой компании со своим частным облаком это не проблема.
        Для облачного провайдера или его клиентов это может стать проблемой. Для большой части разработчиков, которые могут даже не осознавать опасность запуска у себя чужого кода, это уже стало проблемой, просто они могут этого не осознавать…

        Ну и почитайте саму статью — гиганты индустрии хотят заменить виртуалки на контейнеры. Для них это экономия ресурсов и оптимизация, для остального мира это может стать очередной модной технологией, в которой большинство не разбирается.
        Вот необдуманное использование этой технологии мне и не нравится =)
        • 0
          Докер наверно слишком многогранен и это его проблема. Но это точно не вм, и замену им он не сможет обеспечить никогда. Скорее заполнит нишу между… где то я доклад смотрел на тему " о докере и его месте… " И там это очень четко было в диаграмму эвалюции вируализации вписано. Между железом и вм. Вроде от мелкософта видео было это в мск что то было у них.…

          А экономия то и юзерам тоже, сравните вес трёх dev env vm, все равно в чем работающих. и тот же дев env собранный из контейнеров. На порядок меньше, а главное удобней в разы. Если понимать что это за технология.

          Использую уже пол года в прод стек контейнеров, кроме БД сервисов, но скоро и их туда же, все это для одного php проекта с приличной аудиторией, развертываемого как на своём железе так и на облачных площадках. И так же благодаря контейниризации освоился в CI и CD. через tutum
        • 0
          гиганты индустрии сделают это какраз по умному. Не будет, к примеру, там на одной виртуалке контенеров разных клиентов, если это не безопасно…
          • 0
            После прочтения множества статей и общения с некоторыми разработчиками\админами у меня в этом есть некоторые сомнения. Есть облака, в которых контейнеры просто запускаются на хосте пачками. В лучшем случае рассматривают docker как замену openvz — запускают же в нее клиентов — почему бы и сюда не запустить?..

            Плюс, помимо гигантов есть целое множество компаний поменьше, где бизнесу некогда заморачиваться безопасностью — нужно как можно быстрее выстрелить на рынке и поднять денег.
            • 0
              Подобные аргуемнты можно применить на почти любую тему безопасности ;)
              Подставте сюда «хешируем париоли», «используаем https», и т.д… ;) Так что не специфика докера.
              • 0
                «хешируем париоли» и «используаем https» не позволяют вам запустить непроверенный код у вас на машине ;)
                я никого не отговариваю от docker, я лишь выступаю за обдуманное использование технологий…
                • 0
                  а что скажите на счет github.com/docker/notary? конечно еще не релизная версия, но идея не плохая.
                  кто то уже использует?
                  • 0
                    Используют, я думаю.
                    Тут еще остается вопрос доверия создателю образа, но в целом, тенденция к лучшему.
                    И вот еще хорошая штука
                    Я потиху обновляю awesome-linux-containers, правда, не так часто, как хотелось бы
  • 0
    Мы используем докер в продакшне, уже больше года(с версии 0.7.4), в принципе каждый новый релиз приходится «прикручивать костыли», но в целом они больше связаны с нашим специфическим вариантом использования докера (короткоживущие контейнеры, много параллельных контейнеров). API,storage, фронтэнды крутятся на CoreOS — тоже бывают проблемы но в целом все достаточно стабильно.
    Некоторые детали я описывал здесь — habrahabr.ru/post/247969

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка