Поделиться через


Цепочка инструментов DevOps

Цепочка инструментов DevOps — это набор инструментов, позволяющих командам DevOps совместно работать в течение всего жизненного цикла продукта и решать основные принципы DevOps.

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

Рекомендации по цепочке инструментов DevOps

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

  • Вы можете использовать различные виды связок инструментов DevOps:

    • Все в одном: предоставляет полное решение, которое может не интегрироваться с другими сторонними инструментами. Цепочка инструментов "все в одном" может быть полезной для организаций, начинающей свое путешествие DevOps. Пример. Цепочка инструментов Azure DevOps с полного стека.
    • Настроено: позволяет командам использовать и смешивать существующие инструменты, которые они знают и уже используют в более широкой цепочке инструментов DevOps. Интеграция необходима для таких типов цепочки инструментов, чтобы избежать ненужных переключений между экранами, ведения входа в несколько мест и необходимости совместного использования информации между инструментами. Пример: цепочка инструментов Azure DevOps и GitHub.
  • Рекомендуется использовать цепочки инструментов, которые регулярно обновляются и имеют помощь при необходимости через электронную почту или веб-портал. Это требование для любого продукта или службы, который находится на критическом пути к рынкам.

Планирование

  • Рассмотрите возможность внедрения инструмента, поддерживающего методики непрерывного планирования :
    • Планирование выпусков
    • Эпическая идентификация и идентификация признаков
    • Приоритизация
    • Оценка
    • Определение истории пользователя
    • Уточнение невыполненной работы
    • Планирование спринтов
    • Daily Scrum
    • Проверка спринта
    • ретроспективное собрание.

Непрерывная интеграция и непрерывная доставка

  • При реализации непрерывной интеграции (CI)/Непрерывная доставка (CD) рекомендуется использовать средство, которое поддерживает:
    • Системы управления версиями. Все в проекте должно быть проверка в один репозиторий управления версиями, например Git: код, тесты, скрипты баз данных, скрипты сборки и развертывания, а также все, что необходимо для создания, установки, запуска и тестирования приложения.
    • Стратегия ветвления.
    • Автоматизированные сборки.
  • Обратите внимание, что выбор репозитория также зависит от требований к независимости и месту размещения данных. Если данные должны размещаться локально в стране или регионе, отличном от США, вам потребуется репозитории Azure DevOps, если GitHub Repos не может использоваться.
  • Чтобы свести к минимуму объем конфигурации вручную, необходимой для подготовки ресурсов, рассмотрите возможность внедрения инфраструктуры в качестве кода (IaC). IaC позволяет применять методики проектирования программного обеспечения, такие как тестирование и управление версиями, что делает инфраструктуру и развертывания автоматизированными, согласованными и повторяющимися. Сохраняйте скрипты и шаблоны под управлением версиями, как и любой другой код, который вы поддерживаете.
  • Применяйте средства сканирования кода, чтобы как можно скорее обнаруживать дефекты кода. Включите проверка предварительного развертывания для проверки и подтверждения изменений перед любым развертыванием (например, функция what-if).
  • Средства CI/CD ускоряют время на рынок вашего продукта. Средства, позволяющие параллелизировать задачи и воспользоваться преимуществами эластичной масштабируемости в облачной инфраструктуре, повышающей производительность процесса CI/CD.
  • Рекомендуется использовать функции средства CI/CD, поддерживающие меру производительности DevOps. Панели мониторинга и отчеты могут отслеживать аспекты процесса разработки, такие как время выполнения, время цикла, скорость работы и т. д.

Непрерывные операции

Непрерывные операции — это фокус, который помогает организациям поддерживать непрерывность выходных данных между внутренними системами и клиентами посредством непрерывной доставки критически важных служб или функций. Цели непрерывных операций:

  • Чтобы сократить или устранить необходимость запланированных простоев или прерываний, таких как запланированное обслуживание, оптимизация емкости и развертывание.
  • Чтобы повысить общую надежность и устойчивость систем в трех аспектах, с людьми, процессами и инструментами.

Использование облачных средств для:

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

Совместная работа и обратная связь

  • Циклы быстрой обратной связи находятся в основе процесса CI/CD. Средство CI/CD использует обратную связь для разрешения условий в логике рабочего процесса CI/CD и отображает сведения, как правило, через панель мониторинга.

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

  • Любое средство, выбранное для совместной работы, должно поддерживать следующие методики совместной работы:

    • Совместная работа на базе Kanban
    • Совместная работа с вики-контентом
    • Совместная работа по модели ChatOps
    • Комната команды

Рекомендации по цепочке инструментов DevOps для целевых зон Azure

Цепочка инструментов DevOps для реализации целевой зоны Azure должна учитывать все ранее рассмотренные этапы DevOps:

  • Планирование
  • CI/CD (включая возможности автоматизации, такие как инфраструктура как код)
  • Операции
  • Совместная работа и отзывы

Ознакомьтесь с рекомендациями по развертыванию целевой зоны и рекомендациям по выбору варианта реализации в разделе "Выбор внедрения целевой зоны".

Независимо от выбранной методологии (запускайте небольшие и расширяющие или масштабируемые предприятия), существует несколько распространенных топологий, которые предприятия, как правило, следуют за разработкой рабочих процессов DevOps и цепочками инструментов.

  • Полная цепочка инструментов Azure DevOps. Для предприятий, которые уже инвестировали в экосистему Майкрософт, эта топология позволяет им воспользоваться всеми преимуществами собственных интеграции между продуктами и службами Майкрософт и оптимизировать ключевые процессы.
  • Цепочка инструментов Azure DevOps и GitHub. Эта топология позволяет использовать преимущества Azure и GitHub в рамках хорошо интегрированного решения.

Полная цепочка инструментов Azure DevOps

Схема цепочки инструментов Azure DevOps с полным стеком.

Этап DevOps Инструменты
Планирование Azure Boards предоставляет мощные и гибкие возможности планирования разработчикам и другим пользователям, включая иерархические невыполненные работы, настраиваемые доски Kanban, широкие возможности настройки процессов, панели мониторинга групп и пользовательские отчеты.
CI/CD Azure Repos позволяет создавать частные репозитории Git и поддерживать различные клиенты Git, стратегию ветвления и защиту. Azure Repos также предоставляет локализованное расположение данных в облаке, чтобы обеспечить соответствие европейским правилам. Azure Pipelines позволяет клиентам настраивать автоматизированные конвейеры для CI/CD, включая расширенные отчеты о тестах, и обеспечивает мощную поддержку многоэтапных конвейеров. Точные разрешения, шлюзы, пользовательские проверка и автоматизированные отчеты о результатах тестирования в Azure Pipelines помогают обеспечить безопасность, соответствие требованиям и рекомендации по безопасному развертыванию в организации и поддерживать параллельные шаги выполнения и масштабируемости. Артефакты Azure предоставляют веб-канал для хранения пакетов и проверки и проверки каждого пакета для целей безопасности, а также обеспечивает детальный контроль разрешений и аудит. Планы тестирования Azure в Azure DevOps предоставляют решение для управления тестами на основе браузера для изучения, ручного и пользовательского тестирования. Пользователи планов тестирования Azure также обычно используют Azure Boards для планирования и управления проектами. Вы можете связать истории пользователей и другие требования к тестируемым случаям и документировать ошибки, обнаруженные с помощью тестирования. Внедрение расширений Marketplace для DevOps для улучшения анализа статического кода с помощью таких средств, как сканеры учетных данных, сканеры с открытым кодом, ошибки и сканеры уязвимостей и многое другое.
Операции Панели мониторинга Azure и отчеты предоставляют пользовательские отчеты для мониторинга метрик производительности ключевых служб. Система диагностики Azure и Application Insights — это стандартные методы отслеживания работоспособности и состояния ресурсов Azure. Azure Monitor обеспечивает централизованный мониторинг и управление. служба автоматизации Azure можно использовать для создания автоматизации на основе событий для диагностики и устранения проблем.
Совместная работа и отзывы Вики-сайт Azure DevOps позволяет обмениваться информацией с членами других команд и поддерживать совместное редактирование содержимого и структуры. Azure Boards предоставляет совместную работу Kanban и поддержку комментариев и обсуждений в элементах невыполненной работы. Вы можете интегрировать Microsoft Teams с Azure DevOps для полного взаимодействия с командой.

Цепочка инструментов Azure DevOps и GitHub

Схема цепочки инструментов Azure DevOps и GitHub.

Этап DevOps Инструменты
Планирование Azure Boards предоставляет стабильное и масштабируемое решение для планирования, управления репозиториями, визуализации данных и иерархической организации рабочих элементов. Он интегрируется с GitHub, поэтому можно связать рабочие элементы и фиксации GitHub. Он также позволяет выбрать идеальный рабочий процесс, будь то простой, нестандартный рабочий процесс или настраиваемый рабочий процесс, который вы создаете с помощью мощного и гибкого механизма настройки Azure Boards. Когда необходимо визуализировать данные, Azure Boards помогает легко создавать и настраивать пользовательские панели мониторинга и отслеживать ход выполнения в течение жизненного цикла проекта.
CI/CD Используйте версию GitHub Enterprise (GHE), которая включает репозиторий GitHub и GitHub Advanced Security (GHAS). GHAS включает CodeQL, сканирование кода, проверку секретов и проверку зависимостей. GHE также предлагает codespaces, облачную интегрированную среду разработки, которую можно использовать для разработки кода и замены Visual Studio Code, которые организации обычно включают в сценарии Azure DevOps с полным стеком. Вы можете использовать GitHub Actions для автоматизации рабочих процессов, отличных от сборки, если репозитории находятся в GitHub. Если у вас есть более сложные сценарии, в которых требуется доступ к коду извне GitHub или требуется централизованное управление для шаблонов рабочих процессов и конвейеров сборки, используйте Azure Pipelines. Для Azure Boards можно интегрировать Azure Pipelines с репозиториями GitHub. Сведения об интеграции Azure DevOps и GitHub см. в статье "Работа с Azure DevOps" и GitHub. Пакеты GitHub — это служба пакетов программного обеспечения, которая позволяет размещать собственные пакеты в частном или общедоступном режиме. GitHub предлагает поддержку реестра контейнеров для размещения образов Docker или OCI. Для публикации, установки или удаления пакетов и обеспечения безопасности управления жизненным циклом пакетов требуются маркеры доступа. Чтобы автоматизировать пакеты, можно интегрировать пакеты GitHub с GitHub Actions, API GitHub и веб-перехватчики для создания рабочих процессов DevOps, включающих код, CI и развертывания всех в одном интерфейсе.
Операции GitHub Аналитика предоставляет аналитические отчеты на основе данных из экземпляра GitHub Enterprise Server, чтобы помочь вам понять и улучшить процесс доставки программного обеспечения. Для целевой зоны диагностика и управления используйте службы Azure, рекомендуемые в сценарии Azure DevOps с полным стеком.
Совместная работа и обратная связь Обсуждения GitHub можно использовать для обмена вопросами, идеями, беседами, запросами на комментарии (RFC), планированием ресурсов и объявлениями. Используйте Azure Boards , чтобы легко создавать и настраивать пользовательские панели мониторинга и отслеживать ход выполнения в течение жизненного цикла проекта. Внедрение Microsoft Teams для полного взаимодействия с командой.