Автоматизация платформы и 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).