Автоматизация платформы и DevOps для AKS
Kubernetes — облачно-ориентированная конструкция и для требует облачного подхода к развертыванию и эксплуатации. Azure и Kubernetes — это открытые и расширяемые платформы с широкими функциональными возможностями и хорошо спроектированными интерфейсами API, которые предоставляют возможности и все необходимые средства автоматизации в полном объеме. Планируйте DevOps и автоматизированный подход, используя степень автоматизации и общие рекомендации по DevOps.
Рекомендации по проектированию
Ниже приведены некоторые рекомендации по проектированию для автоматизации платформы AKS и DevOps:
При определении подхода к проектированию и автоматизации следует учитывать ограничения служб Azure и непрерывной интеграции и непрерывной поставки (CI/CD). Другой пример см. в разделе ограничения на использование GitHub.
При защите и защите доступа к разработке, тестированию, Q&A и рабочим средам следует учитывать параметры безопасности с точки зрения CI/CD. Развертывания происходят автоматически, поэтому соответствующим образом сопоставьте управление доступом.
Для уникальной идентификации каждого развернутого ресурса рекомендуется использовать префиксы и суффиксы с четко определенными соглашениями. Эти соглашения об именовании устраняют конфликты при развертывании решений рядом друг с другом и улучшают общую гибкость и пропускную способность команды.
Инвентаризация рабочих процессов для поддержки проектирования, обновления и развертывания решения в обычных и аварийном режиме аварийного восстановления (DRP). Рассмотрите возможность сопоставления конвейеров в соответствии с этими рабочими процессами, обеспечивая максимальное понимание и производительность.
Вот некоторые примеры сценариев и конвейеров, которые следует учитывать:
- Развертывание, исправление и обновление кластеров
- Развертывание и обновление приложений
- Развертывание и поддержка дополнительных компонентов
- Отработка отказа для аварийного восстановления
- Сине-зеленые развертывания
- Обслуживание канареечных сред
Рассмотрите возможность использования сети службы для добавления в рабочие нагрузки дополнительных возможностей обеспечения безопасности, шифрования и ведения журнала.
Рассмотрите возможность развертывания других ресурсов, таких как подписки, теги и метки, для поддержки возможностей DevOps, отслеживая развертывания и относящихся к ним артефактов.
Рассмотрите влияние смены парадигмы серверы cattle ("крупный рогатый скот") и pets ("домашние животные"). Предположите, что модули Pod и другие аспекты Kubernetes являются временными и соответствующим образом согласовывайте свою инфраструктуру автоматизации и конвейера. Не полагайтесь на то, что IP-адреса или другие ресурсы должны быть фиксированными или постоянными.
Рекомендации по проектированию
Ниже приведены некоторые рекомендации по проектированию для автоматизации платформы AKS и DevOps:
Полагайтесь на конвейеры или действия, чтобы:
- Развернуть примененные методики в группе.
- Устранить большую часть накладных расходов, благодаря использованию сложившихся практик (не требуется повторно изобретать колесо).
- Обеспечить предсказуемость и аналитические сведения об общем качестве и гибкости.
Выполнять развертывание рано и часто с помощью конвейеров на основе триггеров и запланированных конвейеров. Конвейеры на основе триггеров обеспечивают надлежащую проверку изменений, а запланированные конвейеры управляют поведением в изменяющихся средах.
Разделить развертывание инфраструктуры и развертывание приложения. Основные изменения инфраструктуры меньше, чем приложения. Рассматривайте каждый тип развертывания как отдельный поток и конвейер.
При выполнении развертывания используйте параметры ориентированные на облако. Используйте инфраструктуру как код для развертывания инфраструктуры, включая плоскость управления, и используйте Helm и шаблон оператора в Kubernetes для развертывания и обслуживания собственных компонентов Kubernetes.
Используйте GitOps для развертывания и обслуживания приложений. GitOps использует репозиторий Git как единый источник истинности, позволяя предотвратить различия в настройке параметров и повысить производительность и надежность во время откатов и связанных процедур.
Используйте удостоверения Pod и поставщика Azure Key Vault для драйвера Secrets Store CSI для защиты секретов, сертификатов и строк подключения.
Стремитесь к максимальному параллелизму развертывания, избегая жестко закодированных элементов конфигурации и параметров.
Полагайтесь на хорошо известные соглашения в рамках инфраструктуры и развертываний, связанных с приложениями. Используйте контроллеры допуска вместе с надстройкой "Политика Azure" для Kubernetes, чтобы проверить и применить соглашения между другими определенными политиками.
Обеспечить, чтобы "сдвиг влево" выполнялся с учетом:
- Обеспечения безопасности путем добавления средств проверки уязвимостей, таких как ранее сканирование контейнеров в конвейере.
- Политики, используя политику в качестве кода и применения политик, ориентированных на облако, через контроллеры допуска.
Рассматривайте все ошибки, ошибки или сбои в работе, как возможность автоматизировать и улучшить общее качество решения. Интегрируйте этот подход в инфраструктуру сдвига влево и платформу Обеспечение надежности информационных систем (SRE).