Статьи

Эффективные микросервисы CI / CD с GitHub Actions и Ballerina

Вступление

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

Вам также может понравиться: Полная коллекция CI / CD

Недавно GitHub Actions вышел из бета-версии и доступен для общего пользования. Действия GitHub предоставляют удобный механизм для реализации конвейеров CI / CD с использованием их концепции рабочих процессов, прямо из наших репозиториев GitHub. Вместо того, чтобы устанавливать собственное программное обеспечение, оно доступно как облачный сервис для всех. 

В этой статье мы проверим, как GitHub Actions дополняет использование языка Ballerina , платформы, которая специализируется на разработке и развертывании микросервисов. С помощью действия Ballerina GitHub , которое доступно на GitHub Marketplace, мы можем создать среду разработки Ballerina со встроенным CI / CD с помощью GitHub. Мы специально рассмотрим три сценария развития с использованием Ballerina. 

  • Развертывание микросервисов балерины с Kubernetes.
  • Развертывание балерины без сервера с помощью AWS Lambda.
  • Развертывание модуля «Балерина» до Центра Балерины.

Балерина Микросервис Развертывание с Kubernetes

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

Давайте создадим простой сервис Ballerina, чтобы продемонстрировать эту функциональность. Эта служба просто принимает полезную нагрузку двоичного запроса, которая передает содержимое в соединитель Azure Computer Vision , который затем связывается с облачной службой и выполняет преобразование изображения в текст. Здесь мы требуем, чтобы приложение создавалось, тестировалось и развертывалось в нашем кластере Kubernetes каждый раз, когда мы выполняем обновление кода для нашего сервиса. Это можно сделать, определив рабочий процесс GitHub Actions для нашего репозитория. Основные шаги для этого следующие:

  • Извлеките код проекта Ballerina в рабочее пространство.
  • Постройте код и запустите модульные тесты.

    • Передайте ключи API как секреты.
    • Создайте уникальный образ Docker для каждой сборки и разверните его в DockerHub.
  • Укажите имя пользователя / пароль DockerHub в качестве секрета.
  • Выполните kubectl для развертывания встроенного приложения в кластер Kubernetes.

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


Джава