Лекция "DevOps"
Автор: Mikhail Sidorov • Май 10, 2021 • Лекция • 1,029 Слов (5 Страниц) • 276 Просмотры
Лекция DevOps
На основе инкрементальной модели появилась такая технология как Agile, гибкая разработка
Devops – это набор практик для повышения эффективности процессов разработки (development) и эксплуатации (operation) программного обеспечения за счет интеграции и взаимодействия специалистов с помощью инструментов автоматизации. В наше время данный способ поменял подход совместной работы ИТ-команд для создания и последующей поставки программного обеспечения.
DevOps позиционируется как Agile-подход для устранения организационных и временных барьеров между командами разработчиков и других участников жизненного цикла ПО (тестировщиками, администраторами, техподдержкой), чтобы они могли быстрее и надежнее собирать, тестировать и выпускать релизы программных продуктов
Само понятие DevOps зародилось в начале 2000-х годов, когда в ИТ-мире больших корпораций возникла проблема рассогласования рабочих процессов, при которой нормальная работа программного продукта нарушена из-за функционального и организационного разделения тех, кто пишет код, и тех, кто выполняет его развертывание и поддержку. У разработчиков и специалистов по эксплуатации продукта часто бывают разные и даже противоречащие друг другу цели, руководители подразделений и ключевые показатели эффективности. Рабочие места разнопрофильных участников жизненного цикла ПО зачастую располагаются в разных локациях. Такая разрозненность и нарушение коммуникации внутри компании приводит к удлинению сроков решения задач, сверхурочной работе, сорванным релизам и недовольству клиентов
Главные принципы Devops:
- Удовлетворение потребностей заказчика как основной приоритет
- Изменение требований приветствуются даже на поздних этапах (Agile-процессы)
- Продукт в рабочем состоянии нужно выпускать чаще (от пары недель до месяцев)
- Постоянное взаимодействие между разработчиками и представителями бизнеса
- Обеспечение рабочего пространства мотивированным специалистам
- Постоянная и непрерывная коммуникация между участниками как с самой командой, так и внутри команды
- Стейкхолдеры должны иметь возможность мониторить ритм разработки и тд
Проблема заключалась в том, что большинство организаций не могло развернуть производственные изменения в кратчайшие сроки. В случае, когда система будет выведена из строя, команда не могла быстро восстановить ее, так как информация частично хранится в головах инженеров и не является полной. Даже имея на руках полный набор документации о системе, быстро восстановить такую систему невозможно. Так же много команд видели проблему во взаимодействиях команд разработки и эксплуатации. За один релиз происходило огромное количество изменений.
В таких ситуациях помогли технологии DevOps. Основной методологией, которую рекомендуется применять для предотвращения случая выше, является «Infrastructure as a Code». В DevOps она позволяет описать всю инфраструктуру в виде кода и впоследствии использовать ее повторно для масштабирования с уже настроенной рабочей версией (целиком или по частям). Кроме того, можно отслеживать изменения.
В Devops мы определяем технологический поток для создания ценности как процесс. Входом является формирование бизнес-цели, концепции или идеи, и начинается, когда мы принимаем в разработку данную работу, добавляя определенные усилия. Команда разработчиков следуют итеративному процессу и превращают это в пользовательские истории и спецификации, которые внедряются в код в создаваемое приложение.
При каждом изменении в любой части ПО, инфраструктуре, конфигурации или данных – версия проходит через конвейер поставки, в котором создается ПО, составляются БД, строятся среды, выполняются тесты и в конечном итоге развертывание этого ПО. Платформа, которая перемещает систему ПО по этому конвейеру состоит из множества инструментов (управление конфигурацией, сборкой, релизами, хранилищем и тд)
Devops (как Agile-практика) ориентирован на командную работу, где рассматриваются все моменты жизненного цикла ПО, от кода до эксплуатации продукта:
...