Docker — это контейнерный движок с открытым исходным кодом, который позволяет легко создавать легкие, портативные, самодостаточные контейнеры для любого приложения. Разработчики и системные администраторы могут компилировать и тестировать контейнеры на своих ноутбуках и развертывать их в производственных средах в пакетном режиме, включая виртуальные машины, «голое железо», кластеры OpenStack, облака, центры обработки данных и другие базовые платформы приложений. Контейнеры полностью изолированы и не имеют никакого интерфейса друг с другом. В этой статье будут представлены девять способов использования Docker, которые могут повысить вашу производительность.
1. Локальная зависимость
Вам нужно быстро попробовать Magento в вашей локальной системе или использовать MySQL для проекта? Или хотите попробовать большинство проектов с открытым исходным кодом? Тогда используйте Docker, это сэкономит вам много времени. Docker может повысить эффективность разработки разработчиков, позволяя нам быстро создавать среду разработки.
Машина в среде разработки обычно имеет относительно небольшой объем памяти. Раньше при использовании виртуализации часто приходилось добавлять память машине в среде разработки. С Docker можно легко запускать десятки сервисов в Docker.
2. Создайте среду
Если вы хотите собрать исходный код, но обнаруживаете, что соответствующая среда не готова. Тогда стоит подумать об использовании Docker. В конце концов, если вы используете традиционный метод установки программного обеспечения по одному, установка большого количества программного обеспечения действительно занимает много времени, а использование контейнерной технологии экономит время и усилия, почему бы не сделать это?
Это позволяет вам поместить среду выполнения и конфигурацию в код, а затем развернуть, одну и ту же конфигурацию Docker можно использовать в разных средах, что уменьшает связь между требованиями к оборудованию и средами приложений. Вот пример, на который стоит обратить внимание:docker golang builder.
3. Микросервисы
Вы используете микросервисы? Микросервисная архитектура — разделение монолитного приложения на слабо связанные отдельные сервисы.
Затем рассмотрите Docker, вы можете упаковать каждую службу как образ докера и использовать docker-compose для имитации производственной среды (checkout docker networks). Поначалу это может отнимать много времени и сил, но в долгосрочной перспективе это в конечном итоге приведет к огромной производительности.
4. Автоматизированное тестирование
Подумайте о том, как написать автоматизированные тестовые примеры интеграции, которые не требуют много времени для запуска и могут легко управляться пользователями.
Это не относится к запуску тестовых случаев в Docker, а к запуску тестовых случаев непосредственно с изображением. Есть большое преимущество, когда вы пишете тестовые примеры для образа докера. Вот краткое изложение моего процесса тестирования: запустить два образа докера (приложение + БД), загрузить данные при запуске MySQL и использовать API в докере приложения. видимыйэтот скриптдля быстрого примера.
5. Процесс развертывания
Вы можете развернуть себя, используя образ докера. Многие крупные хостинг-провайдеры поддерживают управляемый докер, если у вас есть выделенный узел/виртуальная машина с доступом к оболочке, все будет проще. Просто настройте докер и запустите свой образ на нужном порту.
6. Непрерывное развертывание
Говорят, что Docker, естественно, подходит для непрерывной интеграции/непрерывного развертывания, используя Docker в развертывании, непрерывное развертывание станет очень простым и начнется после ввода нового образа.
Что касается автоматизации этой части, то тут уже много вариантов на выбор, и Kubernetes — знакомое имя. Kubernetes — это система управления кластерами контейнеров и платформа с открытым исходным кодом, которая может реализовать автоматическое развертывание, автоматическое масштабирование и обслуживание кластеров контейнеров.
7. Мультиарендность
Интересный вариант использования Docker — мультитенантные приложения, где можно избежать перезаписи критически важных приложений. Если вы предоставляете службы приложений нескольким арендаторам (тенанты относятся к группе пользователей, например к организациям), приложения, разработанные с использованием решения с одним арендатором, могут быстро получать мультитенантные службы, если они используют субдомен + докер.
Примером этого сценария является разработка быстрой и простой в использовании многопользовательской среды для приложений IoT. База кода для такой мультитенантности очень сложна и трудна в обращении, а перепрограммирование такого приложения требует много времени и является пустой тратой денег. Используя Docker, можно легко и недорого создавать изолированные среды для нескольких экземпляров прикладного уровня каждого арендатора благодаря скорости запуска среды Docker и ее эффективным командам сравнения.
8. Несколько приложений с одного компьютера
Это в некоторой степени связано с микросервисами, упомянутыми выше, но даже если вы не используете микросервисы, а просто предоставляете сервисы, Docker все равно может очень хорошо управлять всеми сервисами на одной машине. Вы должны использовать монтирование папок для сохранения данных для каждого образа Docker на основе данных.
9. Масштабирование QPS (Масштабирование QPS)
Docker помогает вам легко масштабироваться по горизонтали, создавая еще один контейнер. Если вы сталкиваетесь с огромным пиковым трафиком, Docker может вам помочь — просто добавьте больше машин и увеличьте количество контейнеров, работающих за балансировщиком нагрузки.
Есть ли сценарии применения Docker, о которых не упоминалось в статье? Добро пожаловать, чтобы поделиться со всеми~
Ссылаться на:medium.com/@012part and/of…