Jump to content

DevOps

Страница защищена ожидающими изменениями
(Перенаправлено с DevSecOps )

DevOps — это методология в разработке программного обеспечения и ИТ-индустрии. Используемый как набор практик и инструментов, DevOps интегрирует и автоматизирует работу по разработке программного обеспечения ( Dev ) и ИТ-операций ( Ops ) как средство улучшения и сокращения жизненного цикла разработки систем . [1] DevOps дополняет гибкую разработку программного обеспечения ; некоторые аспекты DevOps возникли благодаря гибкому методу работы.

Автоматизация — важная часть DevOps. Программисты и архитекторы программного обеспечения должны использовать « фитнес-функции », чтобы держать свое программное обеспечение под контролем. [2]

Определение [ править ]

Помимо кросс-функциональной комбинации (и портфеля ) терминов и концепций «разработка» и «операция», ученые и практики не разработали универсального определения термина «DevOps». [а] [б] [с] [д] Чаще всего DevOps характеризуется ключевыми принципами: совместное владение, автоматизация рабочих процессов и быстрая обратная связь.С академической точки зрения Лен Басс , Инго Вебер и Лимин Чжу — трое исследователей компьютерных наук из CSIRO и Института программной инженерии — предложили определить DevOps как «набор практик, предназначенных для сокращения времени между внесением изменения в систему и изменение внедряется в обычное производство, обеспечивая при этом высокое качество». [6] Однако этот термин используется в нескольких контекстах. В наиболее успешном варианте DevOps представляет собой сочетание конкретных практик, изменений в культуре и инструментов. [7]

История [ править ]

Предложения объединить методологии разработки программного обеспечения с концепциями развертывания и эксплуатации начали появляться в конце 80-х — начале 90-х годов. [8]

Примерно в 2007 и 2008 годах представители сообществ разработчиков программного обеспечения и ИТ выразили обеспокоенность тем, что разделение между двумя отраслями, в которых пишут и создают программное обеспечение полностью отдельно от тех, кто его развертывает и поддерживает, создает фатальный уровень дисфункции внутри компании. промышленность. [9]

, прошла первая конференция под названием DevOps Days В 2009 году в Генте , Бельгия . Конференцию основал бельгийский консультант, менеджер проекта и практикующий Agile Патрик Дебуа. [10] [11] Конференция теперь распространилась на другие страны. [12]

В 2012 году отчет под названием «Состояние DevOps» был впервые опубликован Аланной Браун из Puppet Labs . [13] [14]

По состоянию на 2014 год ежегодный отчет State of DevOps опубликовали Николь Форсгрен , Джин Ким, Джез Хамбл и другие. Они заявили, что внедрение DevOps ускоряется. [15] [16] Также в 2014 году Лиза Криспин и Джанет Грегори написали книгу «Более гибкое тестирование», содержащую главу о тестировании и DevOps. [17] [18]

В 2016 году метрики DORA по пропускной способности (частота развертывания, время выполнения изменений) и стабильности (среднее время восстановления, частота неудач изменений) были опубликованы в отчете о состоянии DevOps. [13] Однако методология и метрики исследования подверглись критике со стороны экспертов. [19] [20] [21] [22] В ответ на эту критику был опубликован отчет о состоянии DevOps за 2023 год. [23] опубликованные изменения, которые обновили показатель стабильности «среднее время восстановления» до «время восстановления после неудачного развертывания», признавая путаницу, которую вызвал предыдущий показатель. [24]

с подходами Связь другими

Многие из идей, фундаментальных для практик DevOps, вдохновлены или отражают другие хорошо известные практики, такие как бережливое производство и цикл Деминга « Планируй-Делай-Проверяй- Действуй» , а также подход Toyota и гибкий подход к разбивке компонентов и размерам партий. [25] В отличие от предписывающего подхода «сверху вниз» и жесткой структуры ITIL 1990-х годов, DevOps является «восходящим» и гибким подходом, поскольку он был создан разработчиками программного обеспечения для своих собственных нужд. [26]

Гибкий [ править ]

Мотивы создания современного DevOps и некоторых стандартных практик DevOps, таких как автоматизированная сборка и тестирование, непрерывная интеграция и непрерывная поставка , зародились в мире Agile, который восходит (неформально) к 1990-м годам, а формально к 2001 году. такие методы, как экстремальное программирование, не могли «удовлетворить клиента за счет ранней и непрерывной поставки ценного программного обеспечения». [27] если только они не возьмут на себя ответственность за операции и инфраструктуру своих приложений, автоматизируя большую часть этой работы. Поскольку Scrum стал доминирующей структурой Agile в начале 2000-х годов и в нем не учитывались инженерные практики, которые были частью многих команд Agile, движение за автоматизацию операций и функций инфраструктуры отделилось от Agile и расширилось до того, что стало современным DevOps. Сегодня DevOps фокусируется на развертывании разработанного программного обеспечения, независимо от того, разработано ли оно с использованием методологий, ориентированных на Agile, или других методологий.

АрхОпс [ править ]

ArchOps представляет собой расширение практики DevOps, начиная с артефактов архитектуры программного обеспечения вместо исходного кода для оперативного развертывания. [28] ArchOps утверждает, что архитектурные модели являются первоклассными объектами в разработке, развертывании и эксплуатации программного обеспечения.

Непрерывная интеграция и доставка (CI/CD) [ править ]

Автоматизация — это основной принцип достижения успеха DevOps, а CI/CD — важнейший компонент. [29] Кроме того, улучшение сотрудничества и взаимодействия между командами и внутри них помогает ускорить вывод продукции на рынок и снизить риски. [30]

Мобильный DevOps [ править ]

Mobile DevOps — это набор практик, который применяет принципы DevOps специально к разработке мобильных приложений. Традиционный DevOps фокусируется на оптимизации процесса разработки программного обеспечения в целом, но у мобильной разработки есть свои уникальные проблемы, требующие индивидуального подхода. [31] Mobile DevOps — это не просто ветвь DevOps, специфичная для разработки мобильных приложений, а расширение и переосмысление философии DevOps в связи с весьма специфическими требованиями мобильного мира.

Проектирование надежности сайта [ править ]

В 2003 году компания Google разработала проектирование надежности сайтов (SRE) – подход, позволяющий постоянно внедрять новые функции в крупномасштабные системы высокой доступности, сохраняя при этом высокое качество обслуживания конечных пользователей. [32] Хотя SRE предшествовал развитию DevOps, их обычно рассматривают как связанные друг с другом.

Производственная система Toyota, бережливое мышление кайдзен ,

Производственная система Toyota, также известная под аббревиатурой TPS, послужила источником вдохновения для бережливого мышления с акцентом на постоянное совершенствование , кайдзен , поток и небольшие партии. Принцип андон-корда, позволяющий создавать быструю обратную связь, роиться и решать проблемы, основан на TPS. [33] [34]

, смещение влево безопасности DevSecOps

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

Статическая проверка программного обеспечения с помощью статического тестирования безопасности приложений (SAST) — это тестирование «белого ящика», в котором особое внимание уделяется безопасности. В зависимости от языка программирования для такого статического анализа кода необходимы разные инструменты. Анализируется состав программного обеспечения, особенно библиотек, а версия каждого компонента сверяется со списками уязвимостей, публикуемыми CERT и другими экспертными группами. При предоставлении программного обеспечения клиентам основное внимание уделяется библиотечным лицензиям и их совпадению с лицензией распространяемого программного обеспечения, особенно лицензиям с авторским левом .

При динамическом тестировании, также называемом тестированием «черного ящика» , программное обеспечение тестируется без знания его внутренних функций. В DevSecOps эту практику можно назвать динамическим тестированием безопасности приложений (DAST) или тестированием на проникновение. Целью является раннее обнаружение дефектов, включая уязвимости межсайтового скриптинга и SQL-инъекций . Типы угроз публикуются открытым проектом безопасности веб-приложений , например, TOP10, [35] и другими органами.

DevSecOps также описывается как культурный сдвиг, включающий целостный подход к созданию безопасного программного обеспечения путем интеграции образования в области безопасности, безопасности по дизайну и автоматизации безопасности. [36]

Культурные изменения

Инициативы DevOps могут привести к культурным изменениям в компаниях [37] изменяя способы взаимодействия операторов , разработчиков и тестировщиков в процессах разработки и доставки. [38] Заставить эти группы работать слаженно — важнейшая задача при внедрении DevOps на предприятии. [39] [40] DevOps — это не только инструментальная цепочка, но и культура. [41]

Микросервисы [ править ]

Хотя в принципе DevOps можно применять с любым архитектурным стилем, архитектурный стиль микросервисов становится стандартом для создания непрерывно развернутых систем. Сервис небольшого размера позволяет создавать архитектуру отдельного сервиса посредством непрерывного рефакторинга. [42]

Автоматизация DevOps [ править ]

Он также поддерживает согласованность, надежность и эффективность внутри организации и обычно обеспечивается общим репозиторием кода или контролем версий. Как предполагает исследователь DevOps Рави Теджа Ярлагадда: «Через DevOps предполагается, что все функции могут выполняться, контролироваться и управляться централизованно с помощью простого кода». [43]

Автоматизация с контролем версий [ править ]

Многие организации используют контроль версий для реализации технологий автоматизации DevOps, таких как виртуальные машины , контейнеризация (или виртуализация на уровне ОС ) и CI/CD . В статье «DevOps: разработка цепочки инструментов в банковской сфере» отмечается, что, когда команды разработчиков работают над одним и тем же проектом, «всем разработчикам необходимо вносить изменения в одну и ту же кодовую базу, а иногда и редактировать даже одни и те же файлы. Для эффективной работы существуют должна быть системой, которая помогает инженерам избегать конфликтов и сохранять историю кодовой базы». [44] с системой контроля версий Git и платформой GitHub , упомянутыми в качестве примеров.

GitOps [ править ]

GitOps произошел от DevOps. Конкретное состояние конфигурации развертывания контролируется версией . Поскольку наиболее популярным средством контроля версий является Git , подход GitOps был назван в честь Git . Изменениями в конфигурации можно управлять с помощью методов проверки кода и откатить их с помощью контроля версий. По сути, все изменения в коде отслеживаются, добавляются в закладки, и внесение любых обновлений в историю может быть упрощено. Как пояснили в Red Hat , «видимость изменений означает возможность быстро отслеживать и воспроизводить проблемы, повышая общую безопасность». [45]

См. также [ править ]

Примечания [ править ]

  1. ^ Дайк и др. (2015) «Насколько нам известно, не существует единого определения терминов «проектирование выпуска» и «DevOps». Как следствие, многие люди используют свои собственные определения или полагаются на другие, что приводит к путанице в отношении этих терминов. [3]
  2. ^ Джаббари и др. (2016) «Результаты этого исследования показали необходимость определения, поскольку отдельные исследования не дают последовательного определения DevOps». [4]
  3. ^ Эрих и др. (2017) «Мы заметили, что существуют различные пробелы в изучении DevOps: нет единого мнения ни о том, какие концепции охватывает DevOps, ни о том, как определяется DevOps». [5]
  4. ^ Эрих и др. (2017) «Мы обнаружили, что в академической литературе существует мало единого мнения о характеристиках DevOps». [5]

Ссылки [ править ]

  1. ^ Куртеманш, Мередит; Мелл, Эмили; Гиллс, Александр С. «Что такое DevOps? Полное руководство» . ТехТаржет . Проверено 22 января 2023 г.
  2. ^ Основы архитектуры программного обеспечения: инженерный подход . О'Рейли Медиа. 2020. ISBN  978-1492043454 .
  3. ^ Дайк, Андрей; Пеннерс, Ральф; Лихтер, Хорст (19 мая 2015 г.). «К определениям для разработки релизов и DevOps». 2015 Третий международный семинар IEEE/ACM по разработке релизов . ИИЭЭ . п. 3. дои : 10.1109/RELENG.2015.10 . ISBN  978-1-4673-7070-7 . S2CID   4659735 .
  4. ^ Джаббари, Рамтин; бин Али, Науман; Петерсен, Кай; Танвир, Биниш (май 2016 г.). «Что такое DevOps?: Систематическое картографическое исследование определений и практик». Материалы научного семинара 2016 года . Ассоциация вычислительной техники .
  5. Перейти обратно: Перейти обратно: а б Эрих, FMA; Амрит, К.; Данева, М. (июнь 2017 г.). «Качественное исследование использования DevOps на практике» (PDF) . Журнал программного обеспечения: эволюция и процесс . 29 (6): e1885. дои : 10.1002/смр.1885 . S2CID   35914007 .
  6. ^ Басс, Лен; Вебер, Инго; Чжу, Известняк (2015). DevOps: взгляд архитектора программного обеспечения . Аддисон-Уэсли. ISBN  978-0134049847 .
  7. ^ Муньос, Мирна; Негрете Родригес, Марио (апрель 2021 г.). «Руководство по внедрению или усилению подхода DevOps в организациях: практический пример». {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  8. ^ Чепмен, М., Гатти, Н.: Модель жизненного цикла услуги, Труды TINA '93, стр. I-205–I-215, сентябрь 1993 г.
  9. ^ Атласиан. «История DevOps» . Атласиан . Проверено 23 февраля 2023 г.
  10. ^ Мезак, Стив (25 января 2018 г.). «Истоки DevOps: что в названии?» . Devops.com . Проверено 6 мая 2019 г.
  11. ^ Дебуа, Патрик (9 октября 2008 г.). «Agile 2008 Торонто» . Достаточно документированной информации . Проверено 12 марта 2015 г.
  12. ^ Дебуа, Патрик. «Дни DevOps» . Дни DevOps . Проверено 31 марта 2011 г.
  13. Перейти обратно: Перейти обратно: а б Алана Браун; Николь Форсгрен; Джез Хамбл; Найджел Керстен; Джин Ким (2016). «Отчет о состоянии DevOps за 2016 год» (PDF) . Puppet Labs, DORA (DevOps Research . Проверено 24 апреля 2024 г.) .
  14. ^ «Марионетка — Аланна Браун» . Кукольные лаборатории . Проверено 27 апреля 2019 г.
  15. ^ Николь Форсгрен; Джин Ким; Найджел Керстен; Джез Хамбл (2014). «Отчет о состоянии DevOps за 2014 год» (PDF) . Puppet Labs, IT Revolution Press и ThoughtWorks . Проверено 24 апреля 2024 г.
  16. ^ «Отчет о состоянии DevOps за 2015 год» (PDF) . Puppet Labs, Pwc, IT Revolution Press. 2015 . Проверено 24 апреля 2024 г.
  17. ^ «Более гибкое тестирование» (PDF) . Октябрь 2014 года . Проверено 6 мая 2019 г.
  18. ^ Криспин, Лиза; Грегори, Джанет (октябрь 2014 г.). Больше гибкого тестирования . Аддисон-Уэсли. ISBN  9780133749571 . Проверено 6 мая 2019 г.
  19. ^ Тернер, Грэм (20 ноября 2023 г.). «Отчет: инженеры-программисты сталкиваются с негативной реакцией за сообщение о правонарушениях» . ЦИФРА . Проверено 5 января 2024 г.
  20. ^ Саран, Клифф. «Инженеры-программисты боятся высказываться открыто — Computer Weekly» . ComputerWeekly.com . Проверено 5 января 2024 г.
  21. ^ «75% инженеров-программистов столкнулись с преследованием в последний раз, когда они сообщили о правонарушении — ETHRWorldSEA» . ETHRWorld.com .
  22. ^ Камминс, Холли. «Холли Камминс на X» . X.com . Проверено 5 января 2024 г.
  23. ^ ДеБеллис, Дерек; Льюис, Аманда; Вильяльба, Даниэлла; Фарли, Дэйв. «Отчет о состоянии DevOps за 2023 год» . Исследование и оценка Google Cloud DevOps . Проверено 24 апреля 2024 г.
  24. ^ ДеБеллис, Дерек; Харви, Натан. «Отчет о состоянии DevOps за 2023 год: Культура – ​​это все» . Блог Google Cloud . Проверено 24 апреля 2024 г.
  25. ^ Кляйн, Брэндон Торин (01 мая 2021 г.). «DevOps: краткое понимание философии и науки DevOps» . Osti.gov . дои : 10.2172/1785164 . ОСТИ   1785164 . S2CID   236606284 .
  26. ^ «История и эволюция DevOps | Том Джерати» . 5 июля 2020 г. Проверено 29 ноября 2020 г.
  27. ^ «Принципы Agile-манифеста» . www.agilemanifesto.org . Проверено 6 декабря 2020 г.
  28. ^ Кастелланос, Камило; Корреал, Дарио (15 сентября 2018 г.). «Выполнение архитектурных моделей для анализа больших данных». Архитектура программного обеспечения . Конспекты лекций по информатике. Том. 11048. стр. 364–371. дои : 10.1007/978-3-030-00761-4_24 . ISBN  978-3-030-00760-7 .
  29. ^ Скромный, Джез; Фарли, Дэвид (2011). Непрерывная доставка: надежные выпуски программного обеспечения посредством автоматизации сборки, тестирования и развертывания . Pearson Education Inc. ISBN  978-0-321-60191-9 .
  30. ^ Чен, Ляньпин (2015). «Непрерывная доставка: огромные преимущества, но и проблемы». Программное обеспечение IEEE . 32 (2): 50–54. дои : 10.1109/MS.2015.27 . S2CID   1241241 .
  31. ^ Так, Рохин; Моди, Джалак (2018). Mobile DevOps: обеспечьте непрерывную интеграцию и развертывание ваших мобильных приложений . Пакт Паблишинг. стр. 12–18. ISBN  9781788296243 .
  32. ^ Бейер, Бетси; Джонс, Крис; Петофф, Дженнифер; Мерфи, Найл Ричард (апрель 2016 г.). Проектирование надежности сайта . О'Рейли Медиа. ISBN  978-1-4919-2909-4 .
  33. ^ Анализ ДНК DevOps , Брент Аарон Рид, Вилли Шауб, 14 ноября 2018 г.
  34. ^ Джин Ким; Патрик Дебуа; Джон Уиллис; Джезз Хамбл (2016). Справочник DevOps: Как создать гибкость, надежность и безопасность мирового уровня в технологических организациях .
  35. ^ «OWASP ТОП10» . Архивировано из оригинала 8 июня 2023 года . Проверено 8 июня 2023 г.
  36. ^ Уилсон, Гленн (декабрь 2020 г.). «DevSecOps: Руководство для лидеров по созданию безопасного программного обеспечения с компромиссным подходом, обратной связью и постоянным улучшением» . Переосмысление прессы. ISBN  978-1781335024 .
  37. ^ Анализ новых технологий: DevOps — это культурный сдвиг, а не технология (отчет). Гартнер.
  38. ^ Лукидес, Майк (7 июня 2012 г.). «Что такое DevOps?» . О'Рейли Медиа .
  39. ^ «Глоссарий Gartner в области ИТ – devops» . Гартнер . Проверено 30 октября 2015 г.
  40. ^ Джонс, Стивен; Ноппен, Йост; Леттис, Фиона (21 июля 2016 г.). Материалы 2-го международного семинара по DevOps, ориентированному на качество — QUDOS 2016 (PDF) . стр. 7–11. дои : 10.1145/2945408.2945410 . ISBN  9781450344111 . S2CID   515140 .
  41. ^ Мэнди Уоллс (25 сентября 2015 г.). «Создание культуры DevOps» . О'Рейли.
  42. ^ Чен, Ляньпин; Али Бабар, Мухаммед (2014). «Конференция IEEE/IFIP 2014 по архитектуре программного обеспечения». 11-я рабочая конференция IEEE/IFIP по архитектуре программного обеспечения (WICSA 2014) . IEEE. стр. 195–204. дои : 10.1109/WICSA.2014.45 . ISBN  978-1-4799-3412-6 .
  43. ^ Теджа Ярлагадда, Рави (9 марта 2021 г.). «DevOps и его практики». ССНН   3798877 .
  44. ^ Морисио, Маурицио (16 апреля 2021 г.). DevOps: разработка набора инструментов в банковской сфере . Туринский политехнический университет (лауреатская диссертация) . Проверено 16 августа 2021 г.
  45. ^ «Что такое GitOps?» . www.redhat.com . Проверено 30 марта 2023 г.

Дальнейшее чтение [ править ]

  • Дэвис, Дженнифер; Дэниелс, Рин (30 мая 2016 г.). Эффективный DevOps: создание культуры сотрудничества, взаимодействия и инструментов в большом масштабе . Севастополь, Калифорния: О'Рейли. ISBN  9781491926437 . OCLC   951434424 .
  • Ким, Джин; Дебуа, Патрик; Уиллис, Джон; Скромный, Джез; Олспоу, Джон (07 октября 2015 г.). Справочник DevOps: как обеспечить гибкость, надежность и безопасность мирового уровня в технологических организациях (первое издание). Портленд, Орегон. ISBN  9781942788003 . OCLC   907166314 . {{cite book}}: CS1 maint: отсутствует местоположение издателя ( ссылка )
  • Форсгрен, Николь; Скромный, Джез; Ким, Джин (27 марта 2018 г.). Accelerate: The Science of Lean Software и DevOps: создание и масштабирование высокопроизводительных технологических организаций (первое издание). ИТ Революция Пресс. ISBN  9781942788331 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6d7de9cbcc1622868aff5725a1c0b2d7__1717898160
URL1:https://arc.ask3.ru/arc/aa/6d/d7/6d7de9cbcc1622868aff5725a1c0b2d7.html
Заголовок, (Title) документа по адресу, URL1:
DevOps - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)