Рубрики
Uncategorized

CI/CD с Docker для начинающих

Docker — это платформа DevOps, которая в основном используется для создания, развертывания и запуска приложений, используя … Tagged with Docker, DevOps, новички.

Docker — это платформа DevOps, которая в основном используется для создания, развертывания и запуска приложений, используя концепцию контейнеризации. С Docker разработчики могут легко упаковать все зависимости и библиотеки приложения и выпустить его в виде единого пакета.

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

Почему докер?

Docker-это проект с открытым исходным кодом, который изменил то, как программное обеспечение создается и поставляется, предоставляя возможный способ контейнерирования приложений. За последние несколько лет это привело к большому энтузиазму вокруг контейнеров на всех этапах жизненного цикла программного обеспечения, от разработки до тестирования до производства. Docker стал очень основной платформой за короткое время с момента своего дебюта в 2013 году. Большие гиганты, такие как Amazon, Cisco, Google, Microsoft, Red Hat, VMware и другие, создали инициативу Open Container для разработки общей стандартизации вокруг нее.

Вот обзор нескольких широко используемых команд.

Источник изображения: Tania Rasciai

Вот несколько ключевых преимуществ использования Docker

  • Вы получаете высокий уровень контроля над всеми изменениями, потому что они сделаны с использованием контейнеров и изображений Docker. Таким образом, вы можете вернуться к предыдущей версии, когда захотите.
  • С Docker вы получите гарантию, что, если функция работает в одной среде, она также будет работать и в других.
  • Docker, когда используется с DevOps, упрощает процесс создания топологии приложения, воплощающей различные взаимосвязанные компоненты.
  • Это облегчает процесс конфигурации балансировки нагрузки при введении и встроенных концепциях обслуживания.
  • Это позволяет использовать CI/CD, используя их, что удобнее использовать по сравнению с использованием его с Docker.

Прочитайте нашу полную статью о той же «Роль Docker в DevOps»

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

Вы можете просто и плавно мигрировать приложения в производство, устраняя все трения между ними. Что -то, что когда -то было утомительным заданием, теперь может быть таким же простым, как:

Docker Stop Container-ID; Docker Run New-Image

И в случае, если что-то пойдет не так при развертывании новой версии приложения, вы всегда можете быстро катиться или изменить другой контейнер:

Docker Stop Container-ID; Docker начинает другие контейнеры-ид

Теперь мы узнаем о том, как Docker интегрируется с конвейером CI/CD. Давайте теперь посмотрим, как Docker играет ключевую роль в трубопроводе CI/CD. Начнем с того, что Docker поддерживается большинством систем сборки, таких как Jenkins, Bamboo, Travis и т. Д. Итак, как это работает, так это то, что в каждом проекте есть файл Docker, зарегистрированный в его хранилище кода вместе с остальной частью кода для приложения. Файл Docker, как мы узнали ранее, имеет инструкции по созданию изображения Docker. После регистрации в GitHub Jenkins вытаскивает код, использует часть файла Docker для создания изображения Docker.

Вы можете использовать поддерживаемый плагин Docker для этой цели. При создании нового изображения Docker Jenkins будет пометить изображение новым номером сборки, в данном случае, 1.0. При успешной сборке это изображение может быть использовано для запуска тестов.

Как только тесты будут успешными, его можно подтолкнуть к репозиториям изображений, известным как реестры Docker, либо к внутреннему репозиторию для компании, либо внешним на Docker Hub. Затем репозиторий изображения может быть интегрирован в платформу хостинга контейнеров, такую как Amazon ECS для размещения наше приложение. Весь этот цикл автоматизированных действий от внесения изменений в приложение к строительству, тестирования, выпуска и, наконец, развертывания в производстве, завершает трубопровод CI/CD.

Следующим шагом является развертывание этого изображения в производстве. Крупные поставщики облачных услуг, такие как Amazon, Google, Azure, все контейнеры поддержки. Google Container Engine поддерживает рабочие контейнеры в производстве на кластерах Kubernetes.

Kubernetes — это технология оркестровки контейнера, которая является альтернативным решением Docker Swarm, которое мы узнали ранее. У AWS есть ECS, которая означает услуги контейнеров EC2, он предоставляет еще один механизм для запуска контейнеров в производстве.

В рамках таких решений, как Pivotal Cloud Foundry, есть PKS, которая означает ключевую службу контейнеров, которая опять же использует Kubernetes внизу. Наконец, собственная платформа для хостинга Docker, Docker Cloud использует Docker Swarm под обработкой контейнеров. Как вы можете видеть, контейнеры и Docker поддерживаются повсюду, и есть много вариантов для размещения контейнеров в Интернете.

Вывод

Из -за эффективности виртуализации ОС контейнеризация обеспечивает гораздо больший масштаб приложений в виртуализированных средах. При разработке и тестировании приложения могут быть построены, протестированы и развернуты гораздо быстрее. Использование контейнеров определенно процветает и до сих пор было принято многими компаниями.

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

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

Получите бесплатный курс Docker здесь

Оригинал: «https://dev.to/kodekloud/ci-cd-with-docker-for-beginners-48e6»