Определение DevOps
DevOps — это сочетание разработки (Dev) и эксплуатации (Ops). Это объединение людей, процессов и технологий, позволяющее постоянно предоставлять преимущества клиентам.
Что DevOps означает для сотрудников? DevOps позволяет представителям ранее разрозненных подразделений — разработки, ИТ-операций, обеспечения качества и безопасности — координировать свои действия и совместно создавать более качественные и надежные продукты. Внедрив культуру DevOps вместе с соответствующими методиками и инструментами, команды получают возможность лучше реагировать на потребности клиентов, повышать доверие к создаваемым приложениям и быстрее достигать бизнес-целей.
Преимущества DevOps
Команды, применяющие культуру, методы и инструменты DevOps, становятся высокоэффективными, быстрее создают более совершенные продукты и повышают уровень удовлетворенности клиентов. Оптимизация совместной работы и повышение продуктивности также являются обязательным условием для достижения таких бизнес-целей:
Этап эксплуатации включает обслуживание, мониторинг и устранение неполадок приложений в рабочих средах. Внедряя методики DevOps, различные подразделения стремятся обеспечить надежность системы и высокую доступность, свести простои к нулю, а также повысить уровень безопасности и усовершенствовать управление. Команды DevOps стремятся выявлять проблемы, прежде чем они повлияют на качество обслуживания клиентов, и оперативно устранять их при возникновении. Для этого необходимы широкие возможности телеметрии и функциональных оповещений, а также полная прозрачность приложений и базовой системы.
Культура DevOps
Внедрение методик DevOps позволяет автоматизировать и оптимизировать процессы с помощью технологий, но все начинается с культуры внутри организации и людей, которые в ней работают. Чтобы привить культуру DevOps, нужно кардинально изменить подход персонала к работе и сотрудничеству. Но если организация придерживается культуры DevOps, она может создать все условия для развития высокопроизводительных команд.
Совместная работа, прозрачность и согласованность
Изменения в сфере участия и ответственности
Сокращение циклов выпуска
Непрерывное обучение
Методики DevOps
Помимо внедрения культуры DevOps, команды воплощают в жизнь подход DevOps, применяя определенные методики на протяжении всего жизненного цикла приложения. Некоторые из этих методик помогают ускорить, автоматизировать и улучшить выполнение конкретного этапа. Другие охватывают несколько этапов, помогая командам создавать целостные процессы, которые позволяют повысить продуктивность.
Непрерывная поставка и непрерывная интеграция (CI/CD)
Управление конфигурацией — это управление состоянием ресурсов в системе, включая серверы, виртуальные машины и базы данных. Используя инструменты управления конфигурацией, команды могут контролируемо и систематически развертывать изменения, снижая риски изменения конфигурации системы. Команды используют инструменты управления конфигурацией, чтобы отслеживать состояние системы и предотвращать отклонения в конфигурации, из-за которых конфигурация системного ресурса со временем начинает отличаться от заданного для него требуемого состояния.
В сочетании с инфраструктурой как кодом определение и настройку системы можно легко шаблонизировать и автоматизировать, что позволяет упростить управление сложными средами в нужном масштабе.
Управление версиями
Управление версиями — это методика работы с кодом в версиях, то есть отслеживание исправлений и истории изменений для упрощения анализа и восстановления кода. Эта методика обычно реализуется с помощью систем управления версиями, таких как Git, которые позволяют нескольким разработчикам совместно работать над созданием кода. Эти системы обеспечивают четкий процесс объединения изменений кода в одних и тех же файлах, разрешения конфликтов и отката изменений до более ранних состояний.
Использование управления версиями является фундаментальной практикой DevOps, которая помогает командам разработчиков взаимодействовать, делить задачи по написанию кода между участниками команд и сохранять весь код для быстрого восстановления в случае необходимости.
Управление версиями также является необходимым элементом в других методиках, таких как непрерывная интеграция и инфраструктура как код.
Гибкая разработка программного обеспечения
Гибкая методика — это подход к разработке программного обеспечения, при котором особое внимание уделяется совместной работе команд, отзывам клиентов и пользователей и высокой адаптируемости к изменениям в течение коротких циклов выпуска. Команды, применяющие гибкую методику, постоянно предоставляют клиентам изменения и улучшения, собирают их отзывы, а затем учитывают пожелания и потребности клиентов и адаптируются к ним. Гибкая методика существенно отличается от других более традиционных систем, таких как каскадная методология, которая предусматривает длительные циклы выпуска с последовательными этапами. С гибкой методикой связаны две популярные концепции — канбан и Scrum.
Инфраструктура как код
Инфраструктура как код определяет системные ресурсы и топологии описательным образом, что позволяет командам управлять этими ресурсами по мере написания кода. Эти определения и их версии также могут храниться в системах управления версиями, где их можно просматривать и отзывать, как и в случае с кодом.
Использование инфраструктуры как кода помогает группам развертывать системные ресурсы надежным, воспроизводимым и контролируемым образом. Инфраструктура как код также помогает автоматизировать развертывание и снижает риск возникновения ошибок, связанных с человеческим фактором, особенно в сложных крупных средах. Это воспроизводимое надежное решение для развертывания сред позволяет командам поддерживать среды разработки и тестирования, идентичные рабочим. Дублирование сред в различные центры обработки данных и на различные облачные платформы также становится проще и эффективнее.
Управление конфигурацией
Управление конфигурацией — это управление состоянием ресурсов в системе, включая серверы, виртуальные машины и базы данных. Используя инструменты управления конфигурацией, команды могут контролируемо и систематически развертывать изменения, снижая риски изменения конфигурации системы. Команды используют инструменты управления конфигурацией, чтобы отслеживать состояние системы и предотвращать отклонения в конфигурации, из-за которых конфигурация системного ресурса со временем начинает отличаться от заданного для него требуемого состояния.
В сочетании с инфраструктурой как кодом определение и настройку системы можно легко шаблонизировать и автоматизировать, что позволяет упростить управление сложными средами в нужном масштабе.
Непрерывный мониторинг
Непрерывный мониторинг означает полное отслеживание в реальном времени производительности и работоспособности всего стека приложения — от базовой инфраструктуры, в которой выполняется приложение, до программных компонентов более высокого уровня. Процесс отслеживания состоит из сбора телеметрии и метаданных, а также настройки оповещений для предварительно определенных условий, которые требуют внимания со стороны оператора. Телеметрия содержит данные о событиях и журналы, собираемые из различных частей системы, которые хранятся в расположениях, где их можно анализировать и запрашивать.
Высокопроизводительные команды DevOps настраивают функциональные информативные оповещения и собирают расширенную телеметрию, чтобы получать полезные сведения из огромных объемов данных. Эти сведения помогают команде решать проблемы в реальном времени и дают представление о том, как улучшить приложение в будущих циклах разработки.
DevOps и облако
Внедрение облачных технологий в корне изменило способы создания, развертывания и эксплуатации приложений. Внедряя DevOps, команды получают дополнительные возможности для улучшения методик работы и качества обслуживания клиентов.
Облачная гибкость
Kubernetes
Бессерверные вычисления
Как DevOps применяется в Майкрософт
Сотрудничество между командами
Установка на повышение профессиональной компетенции
Изменения с помощью технологий