Сервисная инфраструктура на базе Docker

30.12.2017

Ниже я расскажу вам, как в одной конкретной компании, а потом — еще в нескольких, решали одну довольно простую задачу – построения инфраструктуры для продакшн, причем таким образом, чтобы разработчиков не напрягать, и всем было удобно.


Все началось с того, что я пришел работать в одну компанию, проработал там пару месяцев… И внезапно совпало некоторое количество факторов:

  • эта компания была довольно большим интернет-магазином. Она в то время входила по разным рейтингам в топ-15 интернет-магазинов страны;
  • в этой компании была группа из 25 разработчиков, которые все пилили in-house, там вообще исторически все писалась внутри – от управления складом и логистикой до web-морды, всех корзинок и так далее;
  • там был один админ, который рулил всем продакшном, деплоил код, разработчики писали, он делал git pull, на разные ноды наливал, Ansible у него был… У него все было прекрасно, и все это жило в Amazon, на AWS, на EC2.

И тут внезапно случился конец 14-го года. Все знают, что было в конце 14-го года – Amazon стал очень дорогой. Не так. Он стал очень-очень дорогой И в это же время уволился единственный админ.

И мы такие – 25 человек, Amazon, Ansible (как потом оказалось, не до конца написанный), огромный интернет-магазин – оборот миллионы рублей каждый день – падать нельзя, ломаться нельзя, жалеть тоже нельзя.

В общем, ситуация, как на картинке

Куда мы пошли?

Разумеется, в Docker, потому что, во-первых, нежная любовь, во-вторых, как я уже сказал, мы хотели все сделать с нуля и круто – мы модные, стильные, молодежные парни, Docker, хайп – все дела.

Что у нас получилось?

  • Мы хотели контейнеры – они у нас получились.
  • У нас есть машины – мы на них поднимаем контейнеры.
  • Все контейнеры друг друга видят.