Рубрики
Uncategorized

Соображения среды развития для контейнерных приложений

Когда приложение строится и развернуто в качестве контейнера, есть несколько соображений, которые необходимо … Tagged с DevOps, Docker.

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

Почему это важно?

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

Каковы проблемы?

Многие среды разработки предоставляются разработчикам в виде виртуального изображения рабочего стола. Некоторые варианты виртуализации затрудняют, а иногда и невозможным, чтобы запустить Docker внутри них. Существует также влияние на время, необходимое для разработчиков, чтобы проверить изменения в приложении. Запуск сборки Docker, а затем остановка и запуск приложения иногда могут занять много времени. Очень важно попытаться уменьшить количество времени, необходимого для изменения кода, чтобы быть в состоянии протестировать.

Есть ли компромисс?

Хорошим средним уровнем является предоставление инструментов и документации, чтобы разрешить тестирование кода в разработчике IDE, а также из работающего контейнера в качестве отображенного тома. Расположение скомпилированного кода может быть отображено в качестве тома в местоположение, которое он находится в контейнере. Это позволяет использовать код, созданный из разработчика IDE, будет использоваться в работающем контейнере. Однако в контейнерах, таких как контейнеры на основе Java, для применения изменений кода все еще необходимо перезапуск.

Краткое изложение различных маршрутов к изменениям тестирования следующим образом:

  1. Полностью тестирование в IDE

    • Плюсы:
      • Быстрое применение и тестирование изменений
      • Нет проблем, если в виртуальном изображении рабочего стола (VDI)
    • Минусы:
      • Не известно, сломали ли изменения сборка Docker
      • Не известно, необходимы ли изменения конфигурации для запуска контейнера
  2. Запуск последнего изображения приложения в качестве контейнера с Mounts Volume

    • Плюсы:
      • Код работает в контейнере
      • Изменения конфигурации известны
      • Не требуется сборка Docker
    • Минусы:
      • Не известно, сломали ли изменения сборка Docker
      • Контейнер может потребоваться возобновить после изменений.
  3. Запуск сборки Docker и запуск полученного изображения в качестве контейнера

    • Плюсы:
      • Нет разницы между местной и реальной средой
    • Минусы:
      • Запуск сборки Docker и запуск изображения в качестве контейнера после каждого изменения кода может занять очень долгое время

Вывод

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

Оригинал: «https://dev.to/leading-edje/development-environment-considerations-for-containerized-applications-2okm»