DevOps: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
ESSch (обсуждение | вклад) |
QBA-bot (обсуждение | вклад) м Защитил страницу DevOps: повторяющиеся неконсенсусные правки ([Редактирование=только автоподтверждённые] (истекает 11:19, 28 октября 2024 (UTC)) [Переименование=только автоподтверждённые] (истекает 11:19, 28 октября 2024 (UTC))) |
||
(не показано 46 промежуточных версий 26 участников) | |||
Строка 2: | Строка 2: | ||
[[Файл:Схема взаимодействия в методологии Devops.svg|альт=Схема взаимодействия в методологии Devops. Разработка + Тестирование + Эксплуатация = DevOps|мини|Иллюстрация, показывающая вариант DevOps как пересечения разработки, эксплуатации и тестирования]] |
[[Файл:Схема взаимодействия в методологии Devops.svg|альт=Схема взаимодействия в методологии Devops. Разработка + Тестирование + Эксплуатация = DevOps|мини|Иллюстрация, показывающая вариант DevOps как пересечения разработки, эксплуатации и тестирования]] |
||
'''DevOps''' ([[акроним]] от {{lang-en|development}} |
'''DevOps''' ([[акроним]] от {{lang-en|development}} & {{lang-en2|operations}}) — методология автоматизации технологических процессов сборки, настройки и развёртывания программного обеспечения. Методология предполагает активное взаимодействие специалистов по [[Разработка программного обеспечения|разработке]] со специалистами по [[Техническая поддержка|информационно-технологическому обслуживанию]] и взаимную интеграцию их технологических процессов друг в друга для [[Обеспечение качества|обеспечения высокого качества программного продукта]]. Предназначена для эффективной организации создания и обновления программных продуктов и услуг. Основана на идее тесной взаимозависимости создания продукта и эксплуатации программного обеспечения, которая прививается команде как культура создания продукта. |
||
⚫ | Организациям, которым необходимы частые выпуски программного обеспечения, может понадобиться DevOps, т.е. автоматизация технологических процессов сборки, настройки и развёртывания программного обеспечения. Дневной цикл выпусков ПО может быть гораздо более интенсивным у организаций, которые выпускают несколько разнонаправленных приложений. |
||
== Общее обозначение == |
|||
⚫ | |||
Методология фокусируется на стандартизации окружений разработки с целью |
Методология фокусируется на стандартизации окружений разработки с целью быстрого переноса программного обеспечения через стадии жизненного цикла ПО, способствуя быстрому выпуску версий программного продукта. В идеале, системы [[Автоматизация сборки|автоматизации сборки и выпуска]] должны быть доступны всем разработчикам в любом окружении, и у разработчиков должен быть контроль над окружением разработки, а информационно-технологическая инфраструктура должна становиться более сфокусированной на приложении. |
||
Задача DevOps — сделать |
Задача инженеров автоматизации технологических процессов сборки, настройки и развёртывания программного обеспечения (DevOps engineers) — сделать процессы разработки и поставки программного обеспечения согласованным с эксплуатацией, объединив их в единое целое с помощью инструментов автоматизации. |
||
DevOps-движение возникло в 2009 году и было призвано решить проблемы взаимодействия команд разработки и эксплуатации программных продуктов |
Движение за автоматизацию технологических процессов сборки, настройки и развёртывания программного обеспечения (DevOps-движение) возникло в 2009 году и было призвано решить проблемы взаимодействия команд разработки и эксплуатации программных продуктов. В том же году в Бельгии была организована серия конференций «DevOps Days»<ref name = devopsdaysghent>{{cite web|last=Debois|first=Patrick|title=DevOps Days Ghent|url=http://www.devopsdays.org/events/2009-ghent/|publisher=DevopsDays|accessdate=2019-08-19|archive-date=2011-03-24|archive-url=https://web.archive.org/web/20110324001757/http://www.devopsdays.org/events/2009-ghent/|deadlink=no}}</ref><ref>Один из соавторов DevOps Cookbook, Джон Уиллис, написал [http://itrevolution.com/the-convergence-of-devops/ фантастический пост] {{Wayback|url=http://itrevolution.com/the-convergence-of-devops/ |date=20190825060050 }} об этом событии.</ref>. Затем «DevOps-дни» проходили в различных городах и странах мира. |
||
== Возникновение == |
|||
⚫ | |||
Истоками того, что стало современным DevOps, включая некоторые стандартные принципы, такие как: [[автоматизация сборки]] и тестирование, [[непрерывная интеграция]] и [[непрерывная доставка]] — возникли в мире [[Agile]], который (неофициально) датируется 1990-ми годами, а формально — 2001 годом. Команды разработчиков, использующие такие методы, как [[экстремальное программирование]], не смогли бы «удовлетворить потребности заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения»<ref>{{Cite web|url=https://agilemanifesto.org/iso/ru/principles.html|title=Основополагающие принципы Agile-манифеста|website=agilemanifesto.org|access-date=2021-11-10|archive-date=2022-01-20|archive-url=https://web.archive.org/web/20220120224001/https://agilemanifesto.org/iso/ru/principles.html|deadlink=no}}</ref>, если бы эти методы не включали в себя обязанности по настройке операций и поддержанию инфраструктуры разрабатываемого приложения (в максимально автоматизированном режиме). Поскольку [[SCRUM|Scrum]] стал доминирующей гибкой структурой в начале 2000-х годов, и в нем отсутствовали инженерные методы, которые были частью многих Agile команд, движение за автоматизацию операций/функций инфраструктуры отделилось от Agile и расширилось до того, что стало современными DevOps. Сегодня DevOps фокусируется на развертывании разработанного программного обеспечения, независимо от того, разработано ли оно с помощью гибких или других методологий. |
|||
⚫ | Поскольку DevOps — это командная работа (между сотрудниками, занимающимися разработкой, операциями и тестированием), нет единого инструмента «DevOps»: это скорее набор (или «инструментальная цепочка DevOps»), состоящий из нескольких инструментов. Как правило, инструменты DevOps вписываются в одну или несколько из этих категорий, что отражает ключевые аспекты разработки и доставки программного обеспечения |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | Несмотря на то, что доступно множество инструментов, некоторые категории из них имеют особо важное значение в настройке инструментальных средств DevOps для использования в организации. Некоторые попытки идентифицировать эти основные инструменты можно найти в существующей литературе<ref>{{cite web| |
||
⚫ | |||
⚫ | Такие инструменты, как [[Docker]] |
||
⚫ | Поскольку DevOps — это командная работа (между сотрудниками, занимающимися разработкой, операциями и тестированием), нет единого инструмента «DevOps»: это скорее набор (или «инструментальная цепочка DevOps»), состоящий из нескольких инструментов. Как правило, инструменты DevOps вписываются в одну или несколько из этих категорий, что отражает ключевые аспекты разработки и доставки программного обеспечения<ref>{{статья |заглавие=Gartner Market Trends: DevOps – Not a Market, but Tool-Centric Philosophy That supports a Continuous Delivery Value Chain |издательство=[[Gartner]] |язык=en |тип=journal |число=18 |месяц=2 |год=2015}}</ref>: |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
# Непрерывная поставка; |
|||
# Непрерывная интеграция. |
|||
⚫ | Несмотря на то, что доступно множество инструментов, некоторые категории из них имеют особо важное значение в настройке инструментальных средств DevOps для использования в организации. Некоторые попытки идентифицировать эти основные инструменты можно найти в существующей литературе<ref>{{cite web|title=DevOps Stack on a Shoestring Budget|last=Theakanath|first=Thomas|url=https://laptrinhx.com/devops-stack-on-a-shoestring-budget-3951133938/|website=laptrinhx.com|accessdate=2016-02-05|archiveurl=https://web.archive.org/web/20220321201516/https://laptrinhx.com/devops-stack-on-a-shoestring-budget-3951133938/|archivedate=2022-03-21|deadlink=no}}</ref>. |
||
⚫ | |||
[[Agile]] и DevOps похожи, но Agile представляет собой изменение мышления и практики (что должно привести к организационным изменениям), а DevOps уделяет больше внимания внедрению организационных изменений для достижения своих целей.<ref name="Agile Now">{{статья |заглавие=We need more Agile IT Now! |ссылка=http://www.drdobbs.com/architecture-and-design/we-need-more-agile-it-now/240169361?queryText=Release%2Bmanagement |издание=Dr. Dobb’s The world of software Development |место=San Francisco |издательство=UBM |язык=und |автор=Ambler, Scott W. |число=12 |месяц=2 |год=2014}}</ref> |
|||
⚫ | Такие инструменты, как управление контейнеризацией ([[Docker]], [[Kubernetes]]), непрерывной интеграцией ([[Jenkins]], [[GitLab]]), развёртывания сред по шаблону ([[Puppet]], [[Ansible]], [[Terraform]]) и многие другие — часто используются и часто упоминаются в дискуссиях по инструментам DevOps<ref>{{Cite web|title = Stronger DevOps Culture with Puppet and Vagrant|url = https://puppetlabs.com/blog/stronger-devops-culture-with-puppet-and-vagrant|website = Puppet Labs|accessdate = 2015-10-22|archiveurl = https://web.archive.org/web/20160129110938/https://puppetlabs.com/blog/stronger-devops-culture-with-puppet-and-vagrant|archivedate = 2016-01-29|deadlink = yes}}</ref>. |
||
⚫ | |||
⚫ | |||
[[Непрерывная доставка|Continuous delivery]] и DevOps похожи по своим значениям (и часто сочетаются), но они представляют собой две разные концепции: |
[[Непрерывная доставка|Continuous delivery]] и DevOps похожи по своим значениям (и часто сочетаются), но они представляют собой две разные концепции: |
||
Строка 43: | Строка 45: | ||
# Администрирования базы данных; |
# Администрирования базы данных; |
||
# Координаторов |
# Координаторов |
||
# Автоматизации процессов в поставке программного обеспечения |
# Автоматизации процессов в поставке программного обеспечения<ref name="CD_HJ">{{книга |заглавие=Continuous Delivery: reliable software releases through build, test, and deployment automation |ссылка=https://archive.org/details/continuousdelive0000humb |издательство={{iw|Pearson Education}} |isbn=978-0-321-60191-9 |ref=Humble |язык=en |автор=Humble, Jez; Farley, David |год=2011}}</ref>. |
||
Continuous delivery — это подход к автоматизации аспекта поставки, который фокусируется на: |
Continuous delivery — это подход к автоматизации аспекта поставки, который фокусируется на: |
||
Строка 60: | Строка 62: | ||
Методики DevOps делают простые процессы более программируемыми и динамическими. С помощью DevOps можно максимизировать предсказуемость, эффективность, безопасность и ремонтопригодность операционных процессов. |
Методики DevOps делают простые процессы более программируемыми и динамическими. С помощью DevOps можно максимизировать предсказуемость, эффективность, безопасность и ремонтопригодность операционных процессов. |
||
Интеграция DevOps предназначена для доставки продукта, непрерывного тестирования, тестирования качества, разработки функций и обновлений обслуживания для повышения надежности и безопасности и обеспечения более быстрого цикла разработки и развертывания |
Интеграция DevOps предназначена для доставки продукта, непрерывного тестирования, тестирования качества, разработки функций и обновлений обслуживания для повышения надежности и безопасности и обеспечения более быстрого цикла разработки и развертывания<ref name="ieeexplore.ieee.org">{{статья |doi=10.1109/MS.2015.27 |ссылка=http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=7006384 |заглавие=Continuous Delivery: Huge Benefits, but Challenges Too |издание={{iw|IEEE Software}} |том=32 |номер=2 |страницы=50 |язык=en |тип=journal |автор=Chen, Lianping |год=2015 |archivedate=2016-06-09 |archiveurl=https://web.archive.org/web/20160609191706/http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=7006384 }}</ref>. |
||
DevOps дает преимущества в управлении выпуском программного обеспечения для организации путем стандартизации среды разработки. События можно более легко отслеживать, а также разрешать документированные процессы управления и подробные отчеты. Подход DevOps предоставляет разработчикам больше контроля над средой, предоставляя инфраструктуре более ориентированное на приложения понимание. |
DevOps дает преимущества в управлении выпуском программного обеспечения для организации путем стандартизации среды разработки. События можно более легко отслеживать, а также разрешать документированные процессы управления и подробные отчеты. Подход DevOps предоставляет разработчикам больше контроля над средой, предоставляя инфраструктуре более ориентированное на приложения понимание. |
||
== Преимущества |
== Преимущества == |
||
Компании, которые используют DevOps, сообщили о значительных преимуществах, в том числе: значительно сокращении времени выхода на рынок, улучшении удовлетворенности клиентов, улучшении качества продукции, более надежных выпусках, повышении производительности и эффективности, а также увеличении способности создавать правильный продукт путем быстрого экспериментирования |
Компании, которые используют DevOps, сообщили о значительных преимуществах, в том числе: значительно сокращении времени выхода на рынок, улучшении удовлетворенности клиентов, улучшении качества продукции, более надежных выпусках, повышении производительности и эффективности, а также увеличении способности создавать правильный продукт путем быстрого экспериментирования<ref name="ieeexplore.ieee.org"/>. |
||
Однако, исследование, выпущенное в январе 2017 года компанией «F5 Labs», на основе опроса почти 2200 ИТ-руководителей и специалистов отрасли, показало, что только один из пяти опрошенных полагает, что DevOps оказывает стратегическое влияние на их организацию, несмотря на рост использования. В том же исследовании было установлено, что только 17 % определили DevOps как ключевой инструмент |
Однако, исследование, выпущенное в январе 2017 года компанией «F5 Labs», на основе опроса почти 2200 ИТ-руководителей и специалистов отрасли, показало, что только один из пяти опрошенных полагает, что DevOps оказывает стратегическое влияние на их организацию, несмотря на рост использования. В том же исследовании было установлено, что только 17 % определили DevOps как ключевой инструмент<ref>{{статья |заглавие=New research questions strategic importance of DevOps despite rise in usage |ссылка=http://www.cloudcomputing-news.net/news/2017/jan/23/devops-usage-continues-rise-strategic-importance-needs-more-working-out/ |издание=CloudTech |язык=en |тип=journal |автор=Bourne, James |число=23 |месяц=1 |год=2017 |archivedate=2017-03-01 |archiveurl=https://web.archive.org/web/20170301060212/http://www.cloudcomputing-news.net/news/2017/jan/23/devops-usage-continues-rise-strategic-importance-needs-more-working-out/ }}</ref>. |
||
== Архитектурные условия == |
|||
== DevOps и архитектура == |
|||
Чтобы эффективно использовать DevOps, прикладные программы должны соответствовать набору архитектурно значимых требований (ASR), таких как: возможность развертывания, изменяемость, тестируемость и возможности мониторинга. |
Чтобы эффективно использовать DevOps, прикладные программы должны соответствовать набору архитектурно значимых требований (ASR), таких как: возможность развертывания, изменяемость, тестируемость и возможности мониторинга. |
||
Хотя в принципе можно использовать DevOps с любым архитектурным стилем, |
Хотя в принципе можно использовать DevOps с любым архитектурным стилем, стиль микросервисов становится стандартом для построения постоянно развёрнутых{{уточнить}} систем. Поскольку размер каждого сервиса невелик, появляется возможность изменять каждый отдельный сервис посредством непрерывного рефакторинга, что уменьшает необходимость в большом предварительном дизайне и позволяет выпускать программное обеспечение на ранней стадии непрерывно. |
||
==GitOps== |
|||
== Варианты DevOps == |
|||
GitOps эволюционировал из DevOps<ref>{{Cite web|url=https://thenewstack.io/getting-started-with-gitops/|title=Getting Started with GitOps|date=2021-12-13|website=TheNewStack.io|access-date=2022-04-05|archive-date=2022-09-20|archive-url=https://web.archive.org/web/20220920172851/https://thenewstack.io/getting-started-with-gitops/|deadlink=no}}</ref><ref>{{Cite web |access-date=2022-04-05 |website=ContainerJournal.com |url=https://containerjournal.com/features/gitops-workflows-and-principles-for-kubernetes/ |title=GitOps Workflows and Principles for Kubernetes |date=2022-04-01 |archive-date=2022-09-20 |archive-url=https://web.archive.org/web/20220920171447/https://containerjournal.com/features/gitops-workflows-and-principles-for-kubernetes/ |deadlink=no }}</ref><ref>{{Cite web|url=https://thenewstack.io/kubernetes-at-scale-without-gitops-is-a-bad-idea/|title=Kubernetes at Scale without GitOps Is a Bad Idea|date=2022-03-07|website=TheNewStack.io|access-date=2022-04-05|archive-date=2022-09-20|archive-url=https://web.archive.org/web/20220920171715/https://thenewstack.io/kubernetes-at-scale-without-gitops-is-a-bad-idea/|deadlink=no}}</ref>. В рамках этого подхода, специфическое состояние конфигурации [[Система_управления_версиями | коммитится]] в [[Git]], давшего имя подходу. В теории, вместо Git может использоваться другая [[Система_управления_версиями|система контроля версий]], но на практике это почти всегда Git. Использование [[Система_управления_версиями|системы контроля версий]] позволяет применять практики [[Просмотр_кода|код ревью]], и откатывать конфигурацию назад. |
|||
По скольку DevOps это про проход к культуре в командах, а команды разные и разные продукты, то он сильно адаптируется. Так появляются различные его варианты: DevSecOps, [[DataOps|DataOps]]. |
|||
== |
== Примечания == |
||
{{примечания}} |
{{примечания}} |
||
{{ВС}} |
|||
{{rq|style}} |
|||
[[Категория:Разработка программного обеспечения]] |
[[Категория:Разработка программного обеспечения]] |
Текущая версия от 11:19, 21 октября 2024
DevOps (акроним от англ. development & operations) — методология автоматизации технологических процессов сборки, настройки и развёртывания программного обеспечения. Методология предполагает активное взаимодействие специалистов по разработке со специалистами по информационно-технологическому обслуживанию и взаимную интеграцию их технологических процессов друг в друга для обеспечения высокого качества программного продукта. Предназначена для эффективной организации создания и обновления программных продуктов и услуг. Основана на идее тесной взаимозависимости создания продукта и эксплуатации программного обеспечения, которая прививается команде как культура создания продукта.
Организациям, которым необходимы частые выпуски программного обеспечения, может понадобиться DevOps, т.е. автоматизация технологических процессов сборки, настройки и развёртывания программного обеспечения. Дневной цикл выпусков ПО может быть гораздо более интенсивным у организаций, которые выпускают несколько разнонаправленных приложений.
Методология фокусируется на стандартизации окружений разработки с целью быстрого переноса программного обеспечения через стадии жизненного цикла ПО, способствуя быстрому выпуску версий программного продукта. В идеале, системы автоматизации сборки и выпуска должны быть доступны всем разработчикам в любом окружении, и у разработчиков должен быть контроль над окружением разработки, а информационно-технологическая инфраструктура должна становиться более сфокусированной на приложении.
Задача инженеров автоматизации технологических процессов сборки, настройки и развёртывания программного обеспечения (DevOps engineers) — сделать процессы разработки и поставки программного обеспечения согласованным с эксплуатацией, объединив их в единое целое с помощью инструментов автоматизации.
Движение за автоматизацию технологических процессов сборки, настройки и развёртывания программного обеспечения (DevOps-движение) возникло в 2009 году и было призвано решить проблемы взаимодействия команд разработки и эксплуатации программных продуктов. В том же году в Бельгии была организована серия конференций «DevOps Days»[1][2]. Затем «DevOps-дни» проходили в различных городах и странах мира.
Возникновение
[править | править код]Истоками того, что стало современным DevOps, включая некоторые стандартные принципы, такие как: автоматизация сборки и тестирование, непрерывная интеграция и непрерывная доставка — возникли в мире Agile, который (неофициально) датируется 1990-ми годами, а формально — 2001 годом. Команды разработчиков, использующие такие методы, как экстремальное программирование, не смогли бы «удовлетворить потребности заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения»[3], если бы эти методы не включали в себя обязанности по настройке операций и поддержанию инфраструктуры разрабатываемого приложения (в максимально автоматизированном режиме). Поскольку Scrum стал доминирующей гибкой структурой в начале 2000-х годов, и в нем отсутствовали инженерные методы, которые были частью многих Agile команд, движение за автоматизацию операций/функций инфраструктуры отделилось от Agile и расширилось до того, что стало современными DevOps. Сегодня DevOps фокусируется на развертывании разработанного программного обеспечения, независимо от того, разработано ли оно с помощью гибких или других методологий.
Таким образом, косвенно, потребность в DevOps родилась из-за растущей популярности методологии разработки Agile, поскольку это привело к увеличению количества выпускаемых версий.
Набор инструментов
[править | править код]Поскольку DevOps — это командная работа (между сотрудниками, занимающимися разработкой, операциями и тестированием), нет единого инструмента «DevOps»: это скорее набор (или «инструментальная цепочка DevOps»), состоящий из нескольких инструментов. Как правило, инструменты DevOps вписываются в одну или несколько из этих категорий, что отражает ключевые аспекты разработки и доставки программного обеспечения[4]:
- Кодирование — разработка и анализ кода, инструменты контроля версий, слияние кода;
- Сборка — инструменты непрерывной интеграции, статус сборки;
- Тестирование — инструменты непрерывного тестирования, обеспечивающие быструю и своевременную оценку бизнес-рисков;
- Упаковка — репозиторий артефактов, предварительная установка приложения;
- Релиз — управление изменениями, официальное утверждение выпуска, автоматизация выпуска;
- Настройка — конфигурация и управление инфраструктурой, Инфраструктура как инструменты кода;
- Мониторинг — измерение производительности приложений, взаимодействие с конечным пользователем;
- Непрерывная поставка;
- Непрерывная интеграция.
Несмотря на то, что доступно множество инструментов, некоторые категории из них имеют особо важное значение в настройке инструментальных средств DevOps для использования в организации. Некоторые попытки идентифицировать эти основные инструменты можно найти в существующей литературе[5].
Такие инструменты, как управление контейнеризацией (Docker, Kubernetes), непрерывной интеграцией (Jenkins, GitLab), развёртывания сред по шаблону (Puppet, Ansible, Terraform) и многие другие — часто используются и часто упоминаются в дискуссиях по инструментам DevOps[6].
Сравнение с Continuous delivery
[править | править код]Continuous delivery и DevOps похожи по своим значениям (и часто сочетаются), но они представляют собой две разные концепции:
DevOps применяется в более широких аспектах и сосредоточен вокруг:
- Организационных изменений: в частности, для поддержки более тесного сотрудничества между различными типами работников, занимающихся поставкой программного обеспечения;
- Разработчиков;
- Операций;
- Гарантии качества;
- Управления;
- Системного администрирования;
- Администрирования базы данных;
- Координаторов
- Автоматизации процессов в поставке программного обеспечения[7].
Continuous delivery — это подход к автоматизации аспекта поставки, который фокусируется на:
- Объединении различных процессов;
- Выполнении их быстрее и чаще.
Они имеют общие конечные цели и часто используются вместе для их достижения. DevOps и Continuous delivery используют гибкие методы: небольшие и быстрые изменения с целенаправленным результатом для конечного клиента.
Цели
[править | править код]Конкретные цели DevOps охватывают весь процесс поставки программного обеспечения. Они включают:
- Сокращение времени для выхода на рынок;
- Снижение частоты отказов новых релизов;
- Сокращение времени выполнения исправлений;
- Уменьшение количества времени на восстановления (в случае сбоя новой версии или иного отключения текущей системы).
Методики DevOps делают простые процессы более программируемыми и динамическими. С помощью DevOps можно максимизировать предсказуемость, эффективность, безопасность и ремонтопригодность операционных процессов.
Интеграция DevOps предназначена для доставки продукта, непрерывного тестирования, тестирования качества, разработки функций и обновлений обслуживания для повышения надежности и безопасности и обеспечения более быстрого цикла разработки и развертывания[8].
DevOps дает преимущества в управлении выпуском программного обеспечения для организации путем стандартизации среды разработки. События можно более легко отслеживать, а также разрешать документированные процессы управления и подробные отчеты. Подход DevOps предоставляет разработчикам больше контроля над средой, предоставляя инфраструктуре более ориентированное на приложения понимание.
Преимущества
[править | править код]Компании, которые используют DevOps, сообщили о значительных преимуществах, в том числе: значительно сокращении времени выхода на рынок, улучшении удовлетворенности клиентов, улучшении качества продукции, более надежных выпусках, повышении производительности и эффективности, а также увеличении способности создавать правильный продукт путем быстрого экспериментирования[8].
Однако, исследование, выпущенное в январе 2017 года компанией «F5 Labs», на основе опроса почти 2200 ИТ-руководителей и специалистов отрасли, показало, что только один из пяти опрошенных полагает, что DevOps оказывает стратегическое влияние на их организацию, несмотря на рост использования. В том же исследовании было установлено, что только 17 % определили DevOps как ключевой инструмент[9].
Архитектурные условия
[править | править код]Чтобы эффективно использовать DevOps, прикладные программы должны соответствовать набору архитектурно значимых требований (ASR), таких как: возможность развертывания, изменяемость, тестируемость и возможности мониторинга.
Хотя в принципе можно использовать DevOps с любым архитектурным стилем, стиль микросервисов становится стандартом для построения постоянно развёрнутых[уточнить] систем. Поскольку размер каждого сервиса невелик, появляется возможность изменять каждый отдельный сервис посредством непрерывного рефакторинга, что уменьшает необходимость в большом предварительном дизайне и позволяет выпускать программное обеспечение на ранней стадии непрерывно.
GitOps
[править | править код]GitOps эволюционировал из DevOps[10][11][12]. В рамках этого подхода, специфическое состояние конфигурации коммитится в Git, давшего имя подходу. В теории, вместо Git может использоваться другая система контроля версий, но на практике это почти всегда Git. Использование системы контроля версий позволяет применять практики код ревью, и откатывать конфигурацию назад.
Примечания
[править | править код]- ↑ Debois, Patrick DevOps Days Ghent . DevopsDays. Дата обращения: 19 августа 2019. Архивировано 24 марта 2011 года.
- ↑ Один из соавторов DevOps Cookbook, Джон Уиллис, написал фантастический пост Архивная копия от 25 августа 2019 на Wayback Machine об этом событии.
- ↑ Основополагающие принципы Agile-манифеста . agilemanifesto.org. Дата обращения: 10 ноября 2021. Архивировано 20 января 2022 года.
- ↑ Gartner Market Trends: DevOps – Not a Market, but Tool-Centric Philosophy That supports a Continuous Delivery Value Chain (англ.) : journal. — Gartner, 2015. — 18 February.
- ↑ Theakanath, Thomas DevOps Stack on a Shoestring Budget . laptrinhx.com. Дата обращения: 5 февраля 2016. Архивировано 21 марта 2022 года.
- ↑ Stronger DevOps Culture with Puppet and Vagrant . Puppet Labs. Дата обращения: 22 октября 2015. Архивировано из оригинала 29 января 2016 года.
- ↑ Humble, Jez; Farley, David. Continuous Delivery: reliable software releases through build, test, and deployment automation (англ.). — Pearson Education[англ.], 2011. — ISBN 978-0-321-60191-9.
- ↑ 1 2 Chen, Lianping. Continuous Delivery: Huge Benefits, but Challenges Too (англ.) // IEEE Software[англ.] : journal. — 2015. — Vol. 32, no. 2. — P. 50. — doi:10.1109/MS.2015.27. Архивировано 9 июня 2016 года.
- ↑ Bourne, James. New research questions strategic importance of DevOps despite rise in usage (англ.) // CloudTech : journal. — 2017. — 23 January. Архивировано 1 марта 2017 года.
- ↑ Getting Started with GitOps . TheNewStack.io (13 декабря 2021). Дата обращения: 5 апреля 2022. Архивировано 20 сентября 2022 года.
- ↑ GitOps Workflows and Principles for Kubernetes . ContainerJournal.com (1 апреля 2022). Дата обращения: 5 апреля 2022. Архивировано 20 сентября 2022 года.
- ↑ Kubernetes at Scale without GitOps Is a Bad Idea . TheNewStack.io (7 марта 2022). Дата обращения: 5 апреля 2022. Архивировано 20 сентября 2022 года.