Мнение инженера: Почему не нужно всегда и везде использовать Docker



    В нашем блоге мы много пишем о развитии облачного сервиса 1cloud и перспективных технологиях, вроде Docker. Контейнеры за последний год стали настоящим хитом, однако такая популярность имеет и обратную сторону. Инженер Ник Барретт (Nick Barret) в своем блоге задался вопросом, почему сейчас контейнеры Docker начинают использовать даже для решения не подходщяих для этого инструмента задач?

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

    Но сегодня контейнеры Docker используют для всего подряд, и, по словам Барретта, это приводит его в замешательство.

    Для иллюстрации этого инженер предлагает рассмотреть ситуацию с запуском хранилища образов (Docker Registry) на Docker (v2). Здесь он собирается:

    • запустить единичный инстанс с Go binary;
    • на коробке с большим местом под диск и пропускной способностью;
    • и относительно низкими CPU/памятью.

    Это одноразовая коробка, которая не нужна в Kubernetes-кластере, кроме того, в данном случае инженера не интересуют возможность Docker по ее масштабированию. Значит все это можно запустить сразу на «железе».

    Беда в том, что в параметрах установки не найти информации о том, как это можно сделать. По сути, «официальный» путь – использовать образ Docker. По счастью, Dockerfile – не более чем ограниченный сценарий для работы, поэтому можно использовать путь: docker/distribution -> Registry Image -> Dockerfile. К этому Барретт пришел опытным путем.

    Существуют и другие варианты работы вне Docker. Речь о datastores (временных хранилищах). Допустим, необхоимо запустить кластер Elasticsearch или Galera. Docker-контейнеры предложат быструю установку, что выглядит довольно заманчиво.

    Но не нужно торопиться. Как можно конфигурировать эти сервисы под множественные среды (test/prod кластеры)? Они не читают ENVvars, и ничего не знают об использующихся инструментах раскрытия внутреннего сервиса. Эти типы систем имеют собственные конфиги, они могут быть elasticsearch.yml или my.cnf. В этом и ему подобных случаях Dockerfile до ужаса бесполезен, говорит Барретт.

    Инженер уверен, что самым распространенным решением является простая установка других утилит внутри образа, которые бы загружали конфигурацию перед запуском сервиса. И по его мнению, это надругательство над самой идеей существования контейнеров без неспециализированного софта. Инструменты, наподобие pyinfra и Ansible для такой работы куда более удобны (они не устанавливают ненужный хлам, чтобы сгенерировать конфиг).

    Ведь можно использовать легкодоступные инстансы Elasticsearch/Galera/и т.д., что намного полезнее на стадии разработки продукта. Возможность мгновенно запустить единичный Elasticsearch-инстанс, привязанный к определенной ветке приложений, сэкономит массу времени. Это однозначно лучший способ развертывания stateless-приложений, из когда либо созданных. Поэтому Баррет советует «просто не заморачиваться» с созданием кластеров или комплексного постороннего софта с помощью контейнеров Docker.
    1cloud.ru
    320,00
    IaaS, VPS, VDS, Частное и публичное облако, SSL
    Поделиться публикацией

    Похожие публикации

    Комментарии 4

      +1
      Коробку? Лолчто?
        +3
        Больше похоже на какой то перевод, но переводчик ничего не понимает в контейнерах и кластерах, поэтому и текст получился непонятный.
        +1
        Они не читают ENVvars, и ничего не знают об использующихся инструментах раскрытия внутреннего сервиса

        Простите что???
          0
          Дорогой 1cloud.ru, вам надо либо менять переводчика, либо нанимать в пару к нему технического корректора (хотя вернее будет сказать — «переводчика для переводчика»). У вас в каждом посте что-то с языком такое, что читать после пары абзацев уже страшновато.

          Это, конечно, если вам интересно хорошее отношение к вашим постам. Если же вы постите просто чтобы ссылка на 1cloud.ru почаще появлялась на страницах Хабра, переходите на постинг картинок. Кошечки, комиксы, демотиваторы ИТ-ной направленности, да просто красивые девушки — выбирайте тему по вкусу! У вас же блог корпоративный, его не закроют, да и вам про контент никто не скажет, а все же картинки будут скорее всего без пассажей вроде тех, что выше уже отметили (и то не все отметили, кстати).

          Можно тексты на бытовые темы, чтобы не было проблем с терминологией. «Докер — не для всех (как я расставался с Леной)» — чем не вариант?

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

          Самое читаемое