Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
DevOps объединяет разработку (dev) и операции (Ops) для объединения людей, процессов и технологий в планировании приложений, разработке, доставке и операциях. DevOps обеспечивает координацию и совместную работу между ранее разложенными ролями, такими как разработка, ИТ-операции, проектирование качества и безопасность.
Teams внедряет культуру, методики и инструменты DevOps для повышения доверия к приложениям, которые они создают, лучше отвечают потребностям клиентов и достигают бизнес-целей быстрее. DevOps помогает командам постоянно предоставлять клиентам ценность, создавая более надежные продукты.
DevOps и жизненный цикл приложения
DevOps влияет на жизненный цикл приложения на протяжении всего этапа планирования, разработки, доставки и операций . Каждый этап зависит от других этапов, а этапы не зависят от ролей. Культура DevOps подразумевает участие всех ролей на каждом этапе в определённой степени.
На следующей схеме показаны этапы образа жизни приложения DevOps:
Цели и преимущества DevOps
Когда команда принимает культуру, методики и инструменты DevOps, они могут достичь удивительных вещей:
Ускорение выхода на рынок
Благодаря повышению эффективности, улучшению совместной работы команды, средствам автоматизации и непрерывному развертыванию команды могут быстро сократить время от создания продукта до запуска на рынке.
Адаптация к рынкам и конкуренции
Культура DevOps требует, чтобы команды были ориентированы на клиента в первую очередь. Женившись на гибкости, совместной работе команды и сосредоточиться на опыте клиентов, команды могут постоянно доставлять ценность своим клиентам и повысить их конкурентоспособность на рынке.
Обеспечение стабильности системы и надежности
Внедряя методики непрерывного улучшения, команды могут создавать повышение стабильности и надежности продуктов и служб, которые они развертывают. Эти методики помогают сократить количество сбоев и рисков.
Улучшение среднего времени восстановления
Среднее время восстановления метрики указывает, сколько времени требуется для восстановления после сбоя или нарушения. Чтобы управлять сбоями программного обеспечения, нарушениями безопасности и планами непрерывного улучшения, команды должны измерять и работать над улучшением этой метрики.
Принятие культуры DevOps
Чтобы полностью реализовать DevOps, необходимо принять культуру DevOps. Для культивирования культуры DevOps требуются глубокие изменения в том, как люди работают и сотрудничают. Когда организации придерживаются культуры DevOps, они создают среду для эволюции высокопроизводительных команд. При внедрении методик DevOps автоматизирует и оптимизирует процессы с помощью технологий, без перехода к культуре DevOps в организации и ее людях, вы не получите полных преимуществ DevOps.
На следующем изображении отражены ключевые аспекты культуры работы с действующими сайтами Майкрософт.
Ниже приведены ключевые компоненты культуры DevOps:
- Совместная работа, видимость и выравнивание: отличительной чертой здоровой культуры DevOps является совместная работа между командами. Совместная работа начинается с видимости. Разработка, ИТ и другие команды должны делиться своими процессами DevOps, приоритетами и опасениями друг с другом. Планируя свою совместную работу, они лучше способны согласовывать цели и критерии успеха в контексте бизнеса.
- Сдвиги в области задач и ответственности: по мере выравнивания команд они берут на себя ответственность и вовлекаются в другие этапы жизненного цикла, а не ограничиваются исключительно теми, что соответствуют их основным обязанностям. Например, разработчики становятся ответственными не только за инновации и качество, установленные на этапе разработки, но и за производительность и стабильность изменений, которые они вносят на этапе эксплуатации. В то же время ИТ-операторы обязательно включают управление, безопасность и соответствие требованиям в план и этап разработки.
- Короткие циклы выпуска: команды DevOps остаются гибкими, выпуская программное обеспечение в коротких циклах. Более короткие циклы выпуска упрощают планирование и управление рисками, так как прогресс является добавочным, что также снижает влияние на стабильность системы. Сокращение цикла выпуска также позволяет организациям адаптироваться и реагировать на развитие потребностей клиентов и конкурентное давление.
- Непрерывное обучение: высокопроизводительные команды DevOps устанавливают менталитет роста. Они быстро обнаруживают ошибки и включают полученные уроки в свои процессы. Они стремятся постоянно улучшить, повысить удовлетворенность клиентов и ускорить инновации и адаптируемость рынка.
Реализация методик DevOps
Вы реализуете DevOps, следуя рекомендациям DevOps (описанным в следующих разделах) на протяжении всего жизненного цикла приложения. Некоторые из этих методик помогают ускорить, автоматизировать и улучшить конкретный этап. Другие охватывают несколько этапов, помогая командам создавать удобные процессы, которые помогают повысить производительность.
Непрерывная интеграция и непрерывная поставка (CI/CD)
Непрерывная интеграция (CI) — это практика, используемая командами разработчиков для автоматизации, слияния и тестирования кода. CI помогает перехватывать ошибки в начале цикла разработки, что делает их менее дорогостоящими для устранения. Автоматические тесты выполняются в рамках процесса CI, чтобы обеспечить качество. Системы CI создают артефакты и передают их в процессы выпуска для частого развертывания.
Непрерывная доставка (CD) — это процесс, с помощью которого код создается, тестируется и развертывается в одной или нескольких средах тестирования и рабочей среды. Развертывание и тестирование в нескольких средах повышает качество. Системы CD создают развертываемые артефакты, включая инфраструктуру и приложения. Автоматизированные процессы выпуска используют эти артефакты для релиза новых версий и исправлений для существующих систем. Системы, отслеживающие и отправляющие оповещения, постоянно выполняются для обеспечения видимости всего процесса CD.
Управление версиями
Управление версиями — это практика управления кодом в версиях— отслеживание редакций и журнал изменений для упрощения проверки и восстановления кода. Эта практика обычно реализуется с помощью систем управления версиями, таких как Git, которые позволяют нескольким разработчикам совместно работать с кодом разработки. Эти системы предоставляют четкий процесс слияния изменений кода, которые происходят в одних и тех же файлах, обрабатывают конфликты и откатывают изменения к предыдущим состояниям.
Использование управления версиями является основной практикой DevOps, помогая командам разработчиков совместно работать, разделять задачи программирования между участниками команды и хранить весь код для простого восстановления при необходимости. Управление версиями также является необходимым элементом в других методиках, таких как непрерывная интеграция и инфраструктура в качестве кода.
Разработка гибкого программного обеспечения
Agile — это подход к разработке программного обеспечения, который подчеркивает совместную работу команды, отзывы клиентов и пользователей и высокую адаптацию к изменению с помощью коротких циклов выпуска. Команды, которые практикуют Agile, обеспечивают постоянные изменения и улучшения для клиентов, собирают их отзывы, а затем учатся и корректируют свои действия на основе желаний и потребностей клиентов. Agile значительно отличается от других более традиционных методологий, таких как водопадная модель, которая включает длительные циклы выпуска, определяемые последовательными фазами. Канбан и Scrum являются двумя популярными платформами, связанными с Agile.
Инфраструктура как код
Инфраструктура как код определяет системные ресурсы и топологии в описательном порядке, что позволяет командам управлять этими ресурсами по мере их написания. Эти определения также можно хранить и управлять их версиями в системах управления версиями, где их можно проверять и возвращать — опять же как код.
Практика инфраструктуры в качестве кода помогает командам развертывать системные ресурсы надежным, повторяемым и контролируемым способом. Инфраструктура как код также помогает автоматизировать развертывание и снижает риск человеческой ошибки, особенно для сложных крупных сред. Это повторяющееся надежное решение для развертывания среды позволяет командам поддерживать среды разработки и тестирования, идентичные рабочей среде. Дублирование сред в центры обработки данных и облачные платформы также становится проще и эффективнее.
Управление конфигурацией
Управление конфигурацией относится к управлению состоянием ресурсов в системе, включая серверы, виртуальные машины и базы данных. С помощью средств управления конфигурацией команды могут развертывать изменения в управляемом, систематическом способе, уменьшая риски изменения конфигурации системы. Teams используют средства управления конфигурацией для отслеживания состояния системы и помогают избежать смещения конфигурации, что заключается в том, как конфигурация системного ресурса отклоняется с течением времени от требуемого состояния, определенного для него.
Наряду с инфраструктурой как код, можно легко шаблонизировать и автоматизировать определение системы и конфигурацию, которые помогают командам управлять сложными средами в крупных масштабах.
Непрерывный мониторинг
Непрерывный мониторинг означает полное видение производительности и работоспособности всего стека приложений в режиме реального времени. Эта видимость варьируется от базовой инфраструктуры, на котором выполняется приложение, до компонентов программного обеспечения более высокого уровня. Видимость осуществляется с помощью сбора данных телеметрии и метаданных и настройки оповещений для предопределенных условий, которые требуют внимания от оператора. Данные телеметрии состоят из данных событий и журналов, собранных из различных частей системы, которые хранятся, где их можно анализировать и запрашивать.
Высокопроизводительные команды DevOps гарантируют, что они устанавливают интерактивные, значимые оповещения и собирают богатые данные телеметрии, чтобы они могли получать аналитические сведения из огромных объемов данных. Эти аналитические сведения помогают команде устранять проблемы в режиме реального времени и видеть, как улучшить приложение в будущих циклах разработки.
Planning
На этапе планирования команды DevOps генерируют идеи, определяют и описывают функции и возможности приложений и систем, которые они планируют создавать. Команды отслеживают ход выполнения задач с низкой и высокой степенью детализации, от отдельных продуктов до нескольких продуктовых портфелей. Команды используют следующие методики DevOps для планирования с гибкостью и видимостью:
- Создание невыполненных работ.
- Отслеживание ошибок.
- Управление разработкой программного обеспечения Agile с помощью Scrum.
- Используйте доски Kanban.
- Визуализировать ход выполнения с помощью панелей мониторинга.
Обзор извлеченных уроков и приемов, которые компания Microsoft использовала для поддержания планирования DevOps в своих программных командах, см. в статье Как корпорация Microsoft планирует с DevOps.
Развитие
Этап разработки включает все аспекты разработки кода программного обеспечения. На этом этапе команды DevOps выполняют следующие задачи:
- Выберите среду разработки.
- Написание, тестирование, проверка и интеграция кода.
- Создайте артефакты из кода для развертывания по различным средам.
- Используйте управление версиями, обычно Git, для совместной работы над кодом и параллельной работы.
Чтобы быстро внедрять инновации, не жертвуя качеством, стабильностью и производительностью, команды DevOps:
- Используйте высокопроизводительные средства.
- Автоматизируйте обычные и ручные шаги.
- Выполняет итерацию в небольших размерах путем автоматического тестирования и непрерывной интеграции (CI).
Общие сведения о методиках разработки, принятых Корпорацией Майкрософт для поддержки перехода на DevOps, см. в статье "Разработка Майкрософт с помощью DevOps".
Доставить
Доставка — это процесс последовательного и надежного развертывания приложений в рабочих средах, в идеале с помощью непрерывной доставки (CD).
На этапе доставки команды DevOps:
- Определите процесс управления выпусками с четкими этапами утверждения вручную.
- Установите автоматические шлюзы для перемещения приложений между этапами до окончательного выпуска клиентам.
- Автоматизируйте процессы доставки, чтобы сделать их масштабируемыми, повторяемыми, контролируемыми и проверенными.
Доставка также включает развертывание и настройку базовой инфраструктуры среды доставки. Команды DevOps используют такие технологии, как инфраструктура как код (IaC),контейнеры и микрослужбы для обеспечения полностью управляемых сред инфраструктуры.
Методы безопасного развертывания могут выявлять проблемы, прежде чем они влияют на взаимодействие с клиентом. Эти методики помогают командам DevOps часто обеспечивать удобство, уверенность и спокойствие.
Основные принципы и процессы DevOps, развиваемые корпорацией Майкрософт, чтобы обеспечить эффективные системы доставки, описаны в статье о том, как Корпорация Майкрософт предоставляет программное обеспечение с помощью DevOps.
Operations
Этап операций включает обслуживание, мониторинг и устранение неполадок приложений в рабочих средах, включая гибридные или общедоступные облака, такие как Azure. Команды DevOps нацелены на надежность системы, высокий уровень доступности, надежную безопасность и нулевое время простоя.
Автоматизированная доставка и безопасные методики развертывания помогают командам быстро выявлять и устранять проблемы при их возникновении. Для поддержания бдительности требуются широкие возможности телеметрии, интерактивные оповещения и полная видимость приложений и базовых систем.
Методы, которые Корпорация Майкрософт использует для работы сложных онлайн-платформ, описаны в разделе "Как Корпорация Майкрософт работает с надежными системами с devOps".
Дальнейшие шаги
- Планирование эффективных рабочих нагрузок с помощью DevOps
- Разработка современного программного обеспечения с помощью DevOps
- Предоставление услуг качества с помощью DevOps
- Управление надежными системами с помощью DevOps
Другие ресурсы
- Решения DevOps в Azure
- Путешествие DevOps в Майкрософт
- Начало работы DevOps с Azure
- Безопасность в DevOps (DevSecOps)
- Что такое проектирование платформы?
Обучение и сертификация
- Начало работы с Azure DevOps
- Введение DevOps Dojo: создание эффективности, которая поддерживает ваш бизнес
- AZ-400: начало работы с процессом преобразования DevOps
- Упрощение взаимодействия и совместной работы
- Экзамен AZ-400: проектирование и реализация решений Microsoft DevOps
- AZ-400: реализация безопасности и проверка баз кода для соответствия требованиям