C микросервисами и монолитом разобрались в предыдущей статье, но какое отношение микросервисы имеют к kubernetes. Да самое, что ни на есть прямое. Kubernetes это предназначенный для контейнерной оркестровки фреймворк с открытым исходным кодом от Google.
На самом деле они идут в связке docker — microservices — kubernetes.
Микросервисы — это маленький сервис, docker это изоляция этих сервисов и чтобы как-то этим управлять, ещё часто говорят, оркестрация или управление, как управление в симфоническом оркестре. Вот это тоже самое, то есть получается kubernetes управляет этим симфоническим оркестром в контейнере.
Kubernetes позволяет инсталлировать, деплоить ваше приложение за секунды, и он имеет функционал Health Check. Если приложение не работает должным образом, мы его убиваем перезапускаем на другой машине. Если одна из нод вашего кластера выпадает, мы переносим наши приложение на другую. Это все делается автоматически.
Оркестровка описывает, то как сервисы должны взаимодействовать между собой и в этой нише kubernetes не единственный оркестратор, ему в спину дышит Docker Swarm Mesos, Nomad и другие.
Давайте разберемся в чём отличие оркестраторов
Ближайший конкурент наверное это docker Swarm. Docker Swarm не очень хорошо себя показывает как минимум в моей практике. Не очень себя хорошо показывают в больших инсталляциях большее 5000, mesos он хорош если у вас есть какие-то ещё не просто контейнера, а есть например, какие-нибудь приложения. Как раньше было в Твиттере — java applications. Это хороший конкурент, но kubernetes он всё же более ориентирован на контейнер. Mesos сейчаc взял kubernetes как scheduler вместо марафона для контейнеров. То есть в принципе всё движется в кубернетес.
В чём недостатки других оркестраторов разобрались,но в чём же всё-таки kubernetes лучше конкурентов?
Он скорее всего наиболее протестирован, он не принадлежит какой-то одной компании. Как бы за кулисами очень много игроков, которые имеют возможность его развивать. Если какая-то компания обанкротится, мы не останемся у разбитого корыта. Кубернетес сейчас стандарт де-факто по оркестрации контейнеров. Им пользуются Cisco, IBM, Google, Intel, Microsoft. В общем все большие компании пользуются им уже в продакшене.
Кроме того что оркестратор обеспечивает работу разработчикам, это еще не хилая экономия для бизнеса. Он позволяет существенно сэкономить на технических и человеческих ресурсов. Давай разберемся какой именно профит ты можешь получить используя kubernetes.
Profit 1 Стабильность работы
Преимущества номер один, у вас больше нет этих палок и скотча вокруг ваших инсталляций, то есть всё как бы Mainstream. Это дорогого стоит.
Profit 2 Меньше количества задействованной техники
Он позволяет утилизировать машины максимально. В общем без kubernetes вы бы запустили одно приложение, запустили вторую виртуалку запустили второе приложение. С учетом kubernetes он автоматом переносит и размещает ноды таким образом, размещая приложение, чтобы максимально утилизировать процессорную загруженность
Profit 3 Меньшее количество задействованного персонала
Меньше техники или меньше покупать виртуальных машин в том же амазоне и меньше людей нужно для того, чтобы его обслуживать, потому, что есть ли его использовать постоянно, то есть вам нужно один два человека, которые работают и его настраивать. Нет тут такого, что вот если у меня сейчас появилось 10000 машин, то мне нужно нанять еще 5 человек. Он как бы позволяет экономить на ресурсах в том числе на человеческих ресурсах.
Profit 4 Кubernetes это Open Sorсe
Кубернетес можно запустить у себя на ноутбуке, можно запустить у себя в подвале для майнинга каких-то криптовалют или запустить его в каком-то Облаке. ES можно запустить только в амазоне. То есть например для компаний это очень дорого, то есть используем кубернетес, не используем Amazon вообще, потому что он очень дорогой. Идеального решения на все случаи жизни конечно же не существует. Но теперь-то ты знаешь в чём преимущества и недостатки микросервисов и какой профит можно получить используя kubernetes, но а стоит ли на него переходить решать только тебе.
About The Author
Виктор Карабедянц
ИТ директор (CIO), руководитель нескольких DevOps команд. Профессиональный руководитель проектов по внедрению, поддержке ИТ систем и обслуживанию пользователей.