Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
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: реализация безопасности и проверка баз кода для соответствия требованиям