Docker — технология, вокруг которой нынче огромное количество хайпа. «Shitstorm» — именно таким словом окрестил в твиттере докеровые войны один из моих немецких знакомых. Ну и конечно, вместе с «Microservices» и «Reactive», слово «Docker» прочно вошло в тройку ведущих айтишных баззвордов последних двух лет.

Неделю назад на московской встрече CodeFreeze Александр aatarasoff Тарасов из Альфа-Лаборатории (подразделение Альфа-банка) рассказал от том, как они внедряли у себя Docker, какой получили профит, какую боль и т.п. Интрига в том, что, с одной стороны, Альфа-банк — это банк, то есть, «кровавый энтерпрайз». С другой стороны… внедрили же.



Под катом — короткое описание того, о чем рассказал нам Александр и видеозапись его выступления.


Docker в банке

Docker на локальной машине и Docker в продакшене — это две большие разницы. Поиграться с технологией легко, заставить работать в промышленных масштабах — сложно.

Полгода назад в недрах Альфа-Лаборатории (Альфа-Банк) Александр Тарасов с коллегами начали строить новую микросервисную архитектуру для одного из пилотных проектов. Они почти полностью поменяли стек используемых технологий на фронтенде и существенно изменили его на миддленде. В качестве средства упаковки и дистрибуции выбрали Docker. Два месяца назад они довели начатый проект до боя и открыли сервис клиентам.

В докладе освещены следующие темы:
  • причины выбора Docker'а;
  • почему один Docker — в поле не воин, и что нужно ещё для продакшена;
  • какой итоговый стек технологий использовали в своём решении;
  • какие преимущества получили;
  • с какими проблемами столкнулись и как их решали.


В докладе мало теории, но много практики, личного опыта и ощущений.

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


  1. igor_suhorukov
    13.08.2015 15:01

    Александр, жаль что так поздно читал этот доклад( Если бы в 18:00, было бы гораздо больше народа из Deutsche Bank


    1. aatarasoff
      13.08.2015 15:34
      +2

      В 18:00 многие ещё работают, а до места ещё добраться нужно.
      Ну а если не смогли попасть — смотрите видео, а возникшие вопросы всегда можно задать докладчику.


      1. igor_suhorukov
        13.08.2015 15:41
        +1

        Бегло посмотрел. Спасибо, интересный доклад!

        Видел решение по работе с kubernetes через браузер в проекте fabric8

        hawt.io screenshot
        hawt.io


    1. 23derevo
      13.08.2015 15:37
      +1

      Игорь, и гораздо меньше народу из сотни других компаний. Не дойчем единым :)

      Мы раньше проводили ивенты в 19:00, но потом перенесли на 20:00, чтобы все спокойно успевали добраться.


      1. igor_suhorukov
        13.08.2015 15:44
        -1

        Алексей, где же ты был, когда я планировал свой доклад на 19:00!?)

        «Аспектно-ориентированное программирование в распределенных системах для java разработчиков и QA» 9 сентября 19:00


  1. novoxudonoser
    13.08.2015 15:42
    +1

    Спасибо, очень интересный доклад.

    Вопросы к докладчику, если aatarasoff читает этот пост.

    Ну во первых прошу прощения, т.к. видио смотрел по диагонали (нет у меня 2х часов времени сейчас), вопросы могут быть не актуальные из за того что нибудь просмотрел.

    Какие базовые образы вы используете? Пробовали ли alpie?

    Как связываете контейнеры? dns через дирижёра? если так то как боритесь с падением nginx при запуске если dns не доступен?


    1. aatarasoff
      13.08.2015 15:54
      +2

      >Какие базовые образы вы используете? Пробовали ли alpie?
      Debian, Ubuntu, Alpine. Образы в основном собираем сами и кладём в приватный репозиторий.

      >Как связываете контейнеры?
      В основном nginx на том же хосте работает как прокси, либо через клиентский экземпляр consul-а (HTTP + DNS).

      >dns через дирижёра?
      Есть локальные клиенты на каждом сервере, где требуется discovery.

      >как боритесь с падением nginx при запуске если dns не доступен?
      Nginx конфигурируется с помощью consul template, который не использует DNS, и строго говоря nginx зависит от consul-a лишь через сгенерированный конфигурационный файл, который просто не будет обновляться, если с последним возникнут какие-либо проблемы.


      1. novoxudonoser
        13.08.2015 15:58

        За consul template большое вам спасибо, бегленко глянул, выглядит очень интересно


      1. aml
        13.08.2015 18:41
        +1

        nginx можно заставить не падать при недоступном dns. Для этого в директиве проксирования адрес бэкенда должен быть не фиксированным, а содержать хотя бы одну переменную. Тогда ресолвер работает не на старте, а на каждом запросе. И не крашит nginx, если dns недоступен. Есть и недостатки у такого подхода, как вы понимаете.


  1. krestjaninoff
    22.08.2015 19:26
    +1

    Интересный доклад. С удовольствием послушал.


  1. sn00p
    24.08.2015 18:22

    Для ентерпрайза сыровато.
    Вот, например, из совсем недавнего github.com/docker/docker/issues/14181


    1. 23derevo
      25.08.2015 10:47

      ну-ка, покажите мне софт без багов


      1. sn00p
        25.08.2015 14:31

        Чтобы вот так вот сразу kernel panic? Затрудняюсь найти подобное что-то.