Хостинг Docker-контейнеров: специализированная платформа или классический VPS?

Хостинг Docker-контейнеров: специализированная платформа или классический VPS? Технологии, Хостинг, Docker, VPS, Длиннопост

Сейчас практически во всех IT проектах разработка ПО осуществляется с использованием технологий контейнеризации. А Docker давно стал повседневным инструментом в работе большинства разработчиков.

Итак, вам нужно запустить свой проект на основе Docker-контейнеров, но для этого не целесообразно разворачивать собственную инфраструктуру и поднимать целый кластер Kubernetes. В этом случае вы можете арендовать и настроить классический VPS либо воспользоваться специализированной облачной платформой, заточенной для хостинга Docker-контейнеров.

Начнем с классики, аренда VPS для запуска Docker-контейнеров.

Это наиболее популярный на данный момент вариант хостинга для небольших проектов. По самой технологии написано огромное количество гайдов и инструкций, поэтому я не буду останавливаться на деталях.

Опишу основные особенности запуска Docker-контейнера на классическом VPS, которые важны для сравнения.

  • Вы должны сразу арендовать сервер с конкретной конфигурацией и определенными ресурсами (CPU, память, диск).

  • Вам нужно настроить сервер для возможности оперировать Docker контейнерами и решить множество сопутствующих задач:

    • Необходимо установить Docker

    • Определить как будет происходить деплой приложения: как образ? или код будет загружаться на сервер и там уже запускаться в контейнере? как в этом случае будут проходить релизы обновлений?

    • Если приложений будет несколько, то вам дополнительно необходимо настроить прокси (Traefik, Nginx, HAproxy и т.д.)

  • Мониторинг контейнера. Для понимания потребления ресурсов каждым отдельным контейнером вам нужны собственные метрики. Инструментарий панели управления классического VPS как правило позволяет отследить показатели загруженности сервера в целом, но не каждого запущенного контейнера.

  • Вопрос гибкости оплаты, далеко не все провайдеры VPS предлагают модель оплаты pay-as-you-go. Если ваш контейнер потребляет в разное время разный обьем ресурсов, или вы периодически его выключаете, это никак не скажется на ваших затратах.  Вы арендуете именно сервер с определенным набором ресурсов, и платите за эти ресурсы в полном обьеме.

У VPS присутствуют все характеристики физического сервера: есть root и SSH доступ, можно установить любое окружение и программное обеспечение, свой выделенный IP-адрес. С точки зрения пользователя, VPS ничем не отличается от физического сервера, предлагая аналогичные возможности, он понятен и при этом обладает гибкостью облачного решения, это его основное преимущество. Но в то же время это инструмент максимально универсальный и для решения специфических задач необходимо приложить дополнительные усилия по его настройке и кастомизации.

Далее рассмотрим вариант запуска приложений на специализированной платформе для хостинга Docker-контейнеров.

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

Яркие примеры это такие платформы как Koyeb, Dokku. Сотни тысяч  пользователей предпочитают запускать свои проекты на этих сервисах вместо настройки привычных VPS.

Мы рассмотрим преимущества запуска приложений на специализированной платформе на примере Российского решения - платформы Dockhost.

  • Имеет полностью настроенную инфраструктуру и панель управления заточенную для запуска и управления контейнерами.  Пользователю не нужно делать никаких дополнительных настроек.

  • Пользователь может просто запустить Docker-контейнер из готового образа, используя любой публичный или приватный реестр образов (например DockerHub). Либо воспользоваться встроенным инструментом GitOps и подключить Git репозиторий со своим кодом. Платформа сама соберет и запустит контейнер из Dockerfile при изменения в Git репозитории. При этом пользователь получает возможность откатывать релизы при необходимости, система автоматически пересоберет и запустит контейнер с нужной версией кода.

  • Позволяет легко масштабировать ваш проект как вертикально так и горизонтально, вслед за увеличением нагрузки.

  • Пользователь сам выбирает и резервирует объём ресурсов, необходимых для запуска проекта. При этом платит только за фактически потребляемые контейнером ресурсы по модели pay-as-you-go. Если ваш контейнер потребляет в отдельный период меньше ресурсов, или вам пришлось временно его остановить, оплата будет пропорциональна фактической активности вашего проекта.

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

Как представитель специализированных платформ для хостинга Docker-контейнеров, Dockhost обладает всем необходимым функционалом чтобы дать возможность разработчику не думать о настройке инфраструктуры и сфокусироваться на разработке своего продукта. Это основная идея таких специализированных платформ, которая привлекает пользователей по всему миру. Ведь для каждого дела важно подобрать подходящий инструмент.

Например, швейцарский нож тоже отличный универсальный инструмент, им можно закрутить пару винтов в любом месте, и эта универсальность выглядит очень удобной. Но когда нам нужно собрать мебель или сделать любую другую работу где нужно закрутить много винтов, мы предпочитаем поискать отвертку или шуруповерт, потому что это удобнее и эффективнее для выполнения именно этой задачи.
Эта аналогия наиболее ярко иллюстрирует, почему для хостинга Docker-контейнеров лучше выбирать специализированные платформы, которые уже имеют под капотом полностью настроенную инфраструктуру и инструменты управления контейнерами. На базе платформ Koyeb, Dokku, Dockhost и других похожих решений разработчики могут строить проекты любой сложности, собирая их как конструктор из отдельных сервисов.