Докерный артикул (2 части серии)
Докер становится все более популярным и кажется, что каждая компания теперь обращается к ней, чтобы сделать процесс разработки и развертывания более эффективным. Причина в том, что Докер решает некоторые распространенные проблемы, которые были оказаны довольно долго в разработке программного обеспечения.
Контекст
Большинство современных приложений имеют аналогичные настройки. Все они используют комбинацию различных технологий для сборки полной функциональности приложений. Примером будет приложение, которое использует комбинацию следующих служб:
Node.js для веб-сервера
Rectjs для frontend.
Mongodb как база данных
Система обмена сообщениями — Редис
Инструмент оркестрации — Anisible
Теперь, если у вас есть небольшой опыт развития, вы уже знаете, что у каждого технологии есть версия, приложение зависит от. Также приложение не изолировано, что просто плавает вокруг. Он должен работать в среде, которая может быть разработкой, тестом или производственной средой. Поскольку среды могут отличаться в ОС, версии, аппаратном обеспечении и т. Д., Очевидно, что приложение и его технологии с их соответствующими версиями должны работать то же самое на разных средах.
Без Docker это означает, что каждая среда, в которой приложение работает на (локальная среда Dev, тестирование или производственный сервер), необходимо настроить с правильными версиями этих сервисов, чтобы приложение могло работать должным образом.
Поэтому возникают следующие проблемы
Совместимость каждого сервиса с базовой ОС
Совместимость каждой службы с библиотеками и зависимостями ОС (одна услуга требует версийки ОС Библиотеки. Еще одна услуга — версительная техника одинаковой библиотеки)
Каждый раз, когда версия любых обновлений обслуживания вам может потребоваться перепроверьте совместимость с базовой инфраструктурой ОС
«Матрица из ада»
Для нового разработчика для настройки окружающей среды с правой ОС и сервисными версиями
Docker Solution
Каждая услуга имеет и может управлять своими необходимыми зависимостями ОС для себя, в комплекте и изолированных в собственном контейнере
Измените компоненты, не влияющие на другие услуги
Изменить базовую ОС, не влияя на любой из услуг
В результате Docker следует избегать типичных «работ на моих машинах». Например, в процессе разработки разработчики и тестеры будут иметь одинаковые среды, в которых приложение работает, поскольку эта среда упакована в контейнеры докеров, которые, как и файл, могут быть переданы как артефакт.
Также облегчить вещи для разработчиков, уже есть сотни готовных документов докера с различными средами в официальном репозитории докера. Например, если мне нужна Postgres DB для локального разработки приложения, я могу просто потянуть готовые Postgrees Image с необходимой для версии, и с одной командой у меня есть Postgres DB работает на месте. Еще лучше, если мне нужны 2 разные версии Postgres DB для 2 отдельных приложений, без проблем. Я могу вытащить второе изображение докера и начать еще один экземпляр Postgres с другой версией, используя одну команду.
Полное и бесплатное курс Kubernetes & Docker на YouTube
Докерный артикул (2 части серии)
Оригинал: «https://dev.to/techworld_with_nana/what-problems-does-docker-really-solve-496a»