img

9 расширений Docker, которые должен попробовать каждый разработчик

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

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

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

Расширения Docker

Docker extensions marketplace

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

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

real docker extensions image

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

  1. Drone CI

Drone CI – это расширение Docker, которое позволяет выполнять непрерывную интеграцию прямо на ваших ноутбуках. Мы все знаем, что непрерывная интеграция (CI - continuous integration) – это первый шаг к DevOps. Когда разработчики пишут программный код, они сохраняют его в инструменте управления исходным кодом, например, Git. После чего они тестируют и создают код с помощью инструмента непрерывной интеграции. CI – это неотъемлемая часть любого DevOps-подхода. Drone CI – это инструмент CI с открытым исходным кодом, который очень легко настроить и которым очень легко пользоваться. И теперь, когда у вас есть это расширение, вы можете выполнять CI прямо на своем ноутбуке. Вам только нужен yml-файл для того, чтобы определить инструкции, и все. 

Давайте создадим простое Node.js-приложение для того, чтобы мы могли работать с нашими дополнительными модулями. Скопируйте пример приложения - https://github.com/pavanbelagatti/Simple-Node-App 

Вы можете установить расширение Drone CI прямо из вкладки расширений на рабочем столе Docker.

drone extension

После того, как вы его установите, нажмите на него, и вы увидите следующую панель управления:

drone ci extension

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

Нажмите «Import pipelines», чтобы импортировать проект. Расширение покажет все проекты, в которых есть файлы с расширением .drone.yml. Выбертие и импортируйте проект, чтобы испытать его локально. 

Для примера я импортировал свой проект Simple-Node-App. Это простое node.js-приложение, которое содержит простые тесты. 

Import pipelines

Следующий шаг – запуск конвейера. Для этого нам необходимо добавить несколько простых параметров, и как только мы нажмем кнопку «Run»/«Play» (Запуск), то мы увидим, что произойдет следующие:

pipeline details

Заполните необходимые поля, такие как инструкции для запуска, секретный файл, если он у вас есть (можно просто указать файл secret.txt), файл среды и т.д.

pipeline step details

Как только вы запустите приложение, то увидите, как конвейер начал выполняться. 

pipeline execution

  1. Disk Usage

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

disk usage

Нажмите «Install» (Установить), и расширение тут же будет установлено. Откройте расширение, и вы увидите панель управления:

disk usage image

Здесь вы можете видеть список объектов и объем дискового пространства, который они занимают. Нажмите «Reclaim space» (Освободить пространство), и вы сможете что-то удалить и освободить тем самым пространство.  

delete objects

Вы можете удалить объекты, которые не представляют для вас ценности, а уже после приступить к освобождению дискового пространства. 

  1. vcluster

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

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

Убедитесь, что вы подключили Kubernetes в настройках на рабочем столе Docker. 

enable kubernetes

Расширение vcluster можно легко найти во вкладке расширений на рабочем столе Docker, и его можно легко установить одним нажатием кнопки. 

vcluster extension

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

vcluster image

Нажмите «Create new cluster» (Создать новый кластер). Дайте своему кластеру название, заполните необходимые поля и нажмите «Create» (Создать). 

create new cluster

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

pavmeg cluster

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

vcluster list

vcluster list

  1. Microcks

Microcks – это платформа с открытым исходным кодом, которая предназначена для имитации и тестирования API и микрослужб. Вы можете локально развернуть макеты и поэкспериментировать с REST API. И теперь, когда у вас есть расширение Docker, вы можете грамотно имитировать и тестировать API на уровне событий. Расширение Microcks доступно для использования на рабочем столе Docker, и вы можете его легко установить одним нажатием кнопки. 

microcks

Нажмите на вкладку «Launch Microcks» (Запустить Microcks).

microcks stopped

microcks launched

Microcks начнет работать, и вы сможете получить доступ к localhost:8080 для тестирования вашего API. 

Давайте перейдем к localhost:8080, и перед вами должна появиться панель управления Microcks.

microcks api

Нажмите на вкладку «APIs and Services» (API и службы).

add api

Выберите «REST API» и нажмите «Next» (Далее). 

direct api

Дайте API имя (Name), укажите версию (Version) и источник (Resource) и нажмите «Next».

API properties

Для того, чтобы провести эксперимент, введите фиктивные полезные данные в поле JSON Reference Payload (контрольные полезные данные JSON), как показано ниже, и нажмите «Next». 

API reference resource

Последний шаг – это Review (Проверка), и как только вы проверите все данные, которые вы ввели, нажмите «Next». 

API review

В списке вы должны увидеть API, который вы только что создали. 

pavmeg api

Нажмите на него, чтобы просмотреть список операций управления данными (CRUD), которые вы можете выполнять с конечными точками. Давайте протестируем GET.

API Get

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

API endpoints

  1. OpenShift

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

openshift extension

Расширение OpenShift доступно для использования на рынке расширений Docker. После того, как вы его установите, он автоматически распознает контексты Kubernetes и образы контейнеров. Вы можете переключать контексты и входить в разные кластеры. Выберите контейнеры, которые вы хотите развернуть, из раскрывающегося списка и нажмите «Deploy» (Развернуть).

  1. Portainer

Portainer – это известная платформа управления контейнерами, с помощью которой разработчики могут легко управлять своими контейнерами. Portainer делает процесс управления хостами контейнеров довольно простым, а управление кластерами Docker Swarm и Kubernetes еще проще. Уникальная особенность Portainer заключается в том, что он запускается локально и предоставляет стандартный пользовательский интерфейс, с помощью которого вы можете создавать и публиковать образы контейнеров и управлять приложениями. И все это можно делать из одного места. 

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

portainer extension

  1. Snyk

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

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

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

snyk extension

Давайте выберем какой-нибудь образ, который мы хотим просканировать. 

snyk image vulnerabilities

Расширение сканирует выбранный нами образ и выводит список его уязвимостей, а также подробную информацию о каждой из них. 

  1. JFog Xray Scan

Jfog Xray Scan – это расширение, которое помогает сканировать образы на наличие уязвимостей. Это расширение предоставляет список всех возможных уязвимостей ваших образов Docker. Расширение JFog доступно для использования на рынке расширений, и его легко можно установить одним нажатием кнопки. После того, как оно будет установлено, вам нужно будет войти в свою учетную запись JFog, после чего появится панель инструментов, где вы можете выбрать образы, которые вы хотите проверить. 

jfrog xray extension

jfrog extension

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

Image vulnerabilities

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

Image scanning process

И наконец, перед вами появится список уязвимостей, который были обнаружены в этом образе, а также сопутствующие риски. 

jfrog xray images

Если вы нажмете на любой из объектов, то вы увидите более подробный анализ уязвимостей с более детальной информацией. 

Image indepth analysis

  1. okteto

okteto – это необычный инструмент, который приносит разработчикам исключительно удовольствие. Он увеличивает продуктивность разработчиков за счет предварительно настроенной среды, которая позволяет начать разработку сразу, а не тратить время на ручную настройку. В сочетании с подходящей CI/CD платформой это может ускорить цикл разработки и выпуска программного обеспечения. Кроме того, здесь есть среда предварительного просмотра (такая же как среды тестирования и разработки), где вы можете поэкспериментировать и посмотреть, что не так, прежде чем вносить окончательные изменения в рабочую среду. okteto также упрощает для разработчиков разработку облачно-ориентированных приложений.

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

okteto extension

okteto details extension

Заключение

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

 

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии про
img
Docker — популярная платформа виртуализации на уровне ОС. Она поставляет приложения в пакетах (контейнерах), которые, представля
img
Хуки в Git — это bash-скрипты, которые запускаются до или после команд Git, например, коммитов и пушей. Они позволяют автоматизи
img
  Nomad и Kubernetes – это две самые популярные платформы оркестровки, предназначенные для оркестровки динамических рабочих нагр
img
  Давайте узнаем о новом Ops-течении – GitOps! DevOps поспособствовал цифровизации многих компаний. Речь идет о командах разрабо
img
  Канареечное (canary) развёртывание – это метод разработки и развертывания программного обеспечения, который позволяет выпускат
ОСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59