Изучение методик DevOps

Завершено

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

Схема, показывающая методики DevOps.

Управление версиями

Управление версиями — это практика управления обновлениями кода, сохраняя его в назначенных репозиториях, отслеживая его редакции и сохраняя журнал изменений. Это упрощает проверку кода и возможность восстановления после ошибок программирования. Кроме того, системы управления версиями (VCS), такие как Git, позволяют совместно с несколькими разработчиками редактировать код, используя такие функции, как клонирование репозитория, pull-реквесты, слияние изменений кода, разрешение конфликтов и поддержка откатов. Использование управления версиями является основной практикой DevOps. Управление версиями также является обязательным условием для таких методик, как непрерывная интеграция и инфраструктура в качестве кода.

Непрерывная интеграция (CI) и непрерывное тестирование

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

Непрерывная доставка (CD)

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

Непрерывный мониторинг

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

Непрерывная безопасность (DevSecOps)

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

Инфраструктура как код (IaC)

Инфраструктура как код является неотъемлемой частью современных методик разработки и эксплуатации программного обеспечения. Он включает использование методов программирования для подготовки служб инфраструктуры и управления ими. IaC определяет компоненты инфраструктуры, такие как серверы, сетевые устройства и базы данных с помощью кода. Такой код обычно находится в VCS, который управляет и отслеживает изменения конфигураций инфраструктуры. Использование кода упрощает автоматическую подготовку и настройку инфраструктуры, повышение эффективности, согласованности и масштабируемости. Кроме того, IaC может быть интегрирован (и часто является) интегрированным с CI/CD, предоставляя комплексную стратегию доставки программного обеспечения путем объединения подготовки инфраструктуры, сборки приложений, тестирования и развертывания в одной непрерывной, полностью автоматизированной последовательности.