Конвейер CI / CD Azure DevOps с AKS
Микросервисы считаются сейчас одной из тенденций в веб-приложениях и архитектурах платформ. Архитектура на основе микросервисов дает ряд преимуществ по сравнению с монолитной архитектурой. Благодаря Microsoft конвейеры Azure DevOps считаются одними из самых простых в настройке конвейеров CI/CD для выпуска новой сборки для служб AKS.
Кластер Kubernetes – это очень важная система оркестровки контейнеризации в отрасли. Решение, которое Microsoft предложила для создания микросервисов с использованием Kubernetes, называется Azure Kubernetes Service или AKS.
Преимущества Kubernetes:
• Развертывание приложений быстро и предсказуемо, а также легкое координирование развертывания системы.
• Ограничение связи между контейнерами.
• Постоянный контроль и управление контейнерами.
• Повышение надежности и доступности.
• Масштабирование приложения для обработки изменений нагрузки на лету по мере необходимости.
• Лучшее использование ресурсов инфраструктуры.
Так зачем использовать решения Azure AKS?
• Размещение вашей среды Kubernetes.
• Простая интеграция со службами Azure, такими как балансировка нагрузки, хранилище BLOB-объектов Azure, Azure Active Directory, шлюз приложений, диспетчер трафика Azure и т.д.
• Быстрое и простое развертывание.
• Простое и безопасное управление контейнерными приложениями.
• Непрерывная интеграция за счет принятия концепции Azure Pipeline для создания образов Docker для более быстрого развертывания и надежности.
• Создание ресурсов и инфраструктуры внутри кластера Azure Kubernetes с помощью файлов манифеста развертываний и служб.
• Служба управления AKS предоставляется бесплатно в Microsoft Azure.
Далее хотелось бы рассмотреть поэтапно стратегию развертывания AKS:
1. Разработчик отправляет исходный код в репозиторий Azure.
2. Azure pipeline запускает сборку путем клонирования кода приложения из репозитория Azure либо в агент сборки, размещенный на сервере Microsoft, либо в самоуправляемые агенты сборки.
3. Агенты сборки Azure будут строить задание и генерировать развертываемые артефакты, которые можно отправить в место размещения в промежуточном каталоге артефактов.
4. Azure pipeline создает образ докера с артефактами кода приложения, маркирует изображение и отправляет его в реестр контейнеров Azure.
5. Azure pipeline помечает код приложения, который был помещен в контейнер, и отправляет код в репозиторий Azure.
6. Azure pipeline выполняет команды kubectl для повторного развертывания модулей.
Процесс повторного развертывания начинается с извлечения последнего образа из реестра контейнеров Azure.
7. Процесс развертывания служб Azure Kubernetes:
• ConfigMap для хранения нечувствительных переменных среды.
• Секреты хранения конфиденциальных переменных среды.
• Постоянные тома, хранилище BLOB-объектов и т. д.
• Хранилище ключей Azure для хранения секретов DevOps, учетных записей служб и управления сертификатами TLS/SSL.
• Управляемые службы Azure.
8. Создание объектов Kubernetes (сервисы, объект Ingress и т. д.) для взаимодействия с подами.
9. Настройка балансировщика нагрузки, правил пересылки и назначение внешнего общедоступного IP-адреса (контроллер входящего трафика).
10. Пользователи получают доступ к приложению с общедоступных URL-адресов.
Опубликовано 02.11.2020