Для каких задач используется Docker cовместно с Kubernetes и для каких задач используется только одна из этих технологий?
Предположим мы открываем вакансии разработчиков. И смотрим описание стэков проектов.
На одних проектах - есть Docker + Kubernetes. На проектах второго типа есть только Docker без Kubernetes. На проектах третьего типа есть только Kubernetes без Docker. Бывают проекты четвёртого типа - на них не докера, не k8s.
Вопрос: при каких задачах архитектор примет решение использовать Docker + Kubernetes? При каких задачах архитектор примет решение использовать только Docker (без Kubernetes и без OpenShift)? При каких примерно задачах архитектор может принять решение использование только Kubernetes (без докера)? При каких примерно проектах не целесообразно использовать ни одну из этих двух технологий? (и близко похожие технологии тоже не нужны).
Подразумевается, что архитектор - толковый специалист, который формирует стэк с максимальной эффективностью, чтобы решить все задачи с наилучшим качеством и с наименьшими сроками.
Ответы (1 шт):
Поскольку более опытные люди не торопятся отвечать на вопрос, попробую сформулировать, как сам понимаю из своего небольшого опыта работы с этими технологиями.
Использование k8s почти всегда подразумевает и использование docker. Просто в вакансиях про него могут не писать, т.к. при упоминании k8s он просто подразумевается.
Только Docker целесобразно использовать, когда наши задачи подразумевают отдельные, относительно независимые куски логики. Которыми можно управлять отдельно, и не заботится о том, как деплой одних контейнеров будет взаимодействовать с другими контейнерами.
Kubernetes же хорошо подходит там, где у нас десятки или даже сотни контейнеров, которые зависят друг от друга, и деплой которых нужно сложным образом оркестрировать.
Совсем без этих технологий удобно обойтись там, где вообще не нужна виртуализация - например, когда у нас система с довольно стабильной структурой на собственных серверах, которую не нужно будет часто и гибко менять.