Если вы попросите трех человек описать DevOps, вы получите четыре разных ответа. Иногда разработчики, выполняющие операционную работу, являются маркировкой как DevOps. Другие говорят, что речь идет об автоматизации инфраструктуры и развертывания. Иногда вы можете видеть, что DevOps — современное название для Sysadmins. Мы видим, что термин имеет модное слово статус. Так что же тогда? Что такое DevOps? В этом посте я постараюсь пролить свет на значение, суммируя три основных принципа DevOps — Три способа –Кадопия Справочник DevOps Анкет
1. Принципы потока
Первый путь DevOps — это создание плавного потока работы через различные функциональные области в организации, от сбора требований до эксплуатационного программного обеспечения в производстве. Акцент делается на глобальные цели всей системы, а не на местных целях отдельных отделов. Чтобы прояснить концепцию, давайте посмотрим на пару ключевых выводов.
1.1 уменьшить размер партии
Работа в процессе (WIP) это объем работы, которая была начата, но еще не завершена. Большое количество WIP является признаком многозадачности и может помешать потоку работы. Чтобы ограничить WIP, мы должны уменьшить размеры партий. Идея происходит от Lean Manufacturing Анкет В производстве было распространено производство компонентов в больших партиях. Настройка нового механизма и переключение между рабочими местами было дорогостоящим и трудоемким. Следовательно, считалось практичным создавать как можно больше деталей после установки машины.
Например, производственная установка автомобиля будет производить много панелей для тела, чтобы уменьшить количество изменений. Это, однако, создает большое количество WIP. Изменчивость потока рабочих каскадов по всей производственной установке, что приводит к более длительному времени заказа Анкет Представьте, что произойдет, если на панелях кузова будет найден недостаток, когда собирается машина? Скорее всего, вся партия должна быть отброшена и воспроизведена. Создание больших партий задерживает обратную связь, и в случае ошибок необходимо переделать больше работы.
Те же идеи применяются к разработке программного обеспечения. Однако вместо машин и панелей кузова мы имеем дело с кодом. Каждый коммит в контроль версий увеличивает размер партии в Программное развитие потока ценностей Анкет
Размер партии-это устройство, в котором рабочие продукты перемещаются между этапами в процессе разработки.
Классический пример — это ежегодное график развертывания производства. Если развертывание осуществляется раз в год, размер партии огромный; Годовой набор развернулся за один шаг. Подобно автомобильному заводу, если что -то пойдет не так, вся партия должна быть отката. Затем следует приложить дополнительные усилия в передел, которые считались выполненными. И чтобы добавить оскорбление к травмам, сложно найти и исправить проблемы, которые привели к неудаче развертывания, если введено, скажем, 6 месяцев назад.
Подобные проблемы можно увидеть, когда долгоживущие Особенности филиалов используются. Чем дольше ветвь остается изолированной, и тем больше изменений она видит, тем больше размер партии. Со временем становится все труднее интегрировать его обратно в основную линию. Потенциал для конфликтов слияния высок. Поскольку обратная связь откладывается, потенциал для переработки высока. Эти факторы разрушают поток работы и увеличивают время выполнения развертывания.
Чтобы улучшить время выполнения развертывания, мы должны сделать размеры партий меньше. Долгоживущие филиалы не поощряются. Мы можем получить более быструю обратную связь, если мы интегрируемся рано и часто и развернули программное обеспечение с меньшими приращениями. Если мы продолжим уменьшать размер партии, мы в конечном итоге прибудем к Одиночный поток , где каждый коммит течет по всему потоку ценностей разработки программного обеспечения. После того, как все автоматические проверки прошли, изменения оказываются в производстве.
Команды, которые могут справиться с этим, используют такие практики, как разработка на основе багажника , Непрерывная интеграция , непрерывная доставка и Непрерывное развертывание Анкет Они инвестировали в автоматизацию тестов и разработали свое программное обеспечение для выпусков с низким уровнем риска. Они также организовали себя так, чтобы количество необходимых передачи сдавалось. Руководство требует связи и координации. К сожалению, даже при лучших обстоятельствах некоторые знания теряются. Это потенциальное место, в котором могут появиться ошибки, а работа может накапливаться, нарушая поток и увеличивая время выполнения развертывания.
1.2 Устраните ограничения
Постоянное определение и устранение ограничений в нашей работе является ключом к повышению пропускной способности и сокращению сроков заказа. В Помимо цели: теория ограничений , автор доктор Голдратт состояния
В любом потоке значений всегда есть направление потока, и всегда есть одно и только одно ограничение; Любое улучшение, не сделанное в этом ограничении, является иллюзией.
Пример из потока значений технологии — Создание окружающей среды Анкет Если для настройки тестирования требуются часы, любые улучшения, которые мы делаем для работы, которые произойдут до того, как в потоке стоимости иллюзия является иллюзией.
Например, если мы сократим время настройки с 10 до 3 минут, мы получим более быстрые сборки. Но в целом ничего не делается быстрее. Создание окружающей среды по -прежнему является блокатором. Что еще хуже, WIP увеличивается. Новые сборки накапливаются еще быстрее, ожидая, чтобы их развернули в тестовой среде. Поскольку создание окружающей среды блокирует новую работу, проходящую через работу, шаги, которые должны произойти после того, как они голодают на работу. Мы должны найти ограничение в нашем потоке стоимости, устранить его, а затем найти следующий.
2. Принципы обратной связи
Второй путь DevOps — это создание быстрых петлей обратной связи, которые позволяют нам создавать более безопасные системы. Нравится вам это или нет, программное обеспечение сложно. Даже самые маленькие изменения могут иметь катастрофические последствия. Без быстрой обратной связи мы расстанавливаем причину и следствие. Ошибки могут проскользнуть незамеченными, только чтобы быть обнаруженными позже, когда стоимость и усилия по их исправлению выше.
2.1 Важность быстрой обратной связи
В идеале мы хотели бы видеть проблемы по мере их возникновения. Если вы написали какой -либо код в IDE или текстовом редакторе, который указывает на проблемы при их печати, то вы знаете, о чем я говорю. Ах, Красная кригская линия Анкет Легко исправить проблемы, когда они обнаружили вскоре после того, как они были созданы. Кроме того, мы можем учиться у них.
Разработчик не может чему -то научиться, когда кто -то кричит на них за то, что они сломали шесть месяцев назад — поэтому нам нужно как можно быстрее предоставить обратную связь всем, а не в минуты, а не месяцы
К сожалению, у нас нет Красная кригская линия В наших редакторах по будущим производственным вопросам. Мы не имеем их для нежелательных или плохо спроектированных функций. Следующая лучшая вещь — сократить время между тем, когда вводится проблема, и когда она обнаружена.
В средах, где качество Чувака проблема , мы невольно откладываем обратную связь. Например, если QA отвечает исключительно за правильность работы, созданной разработчиками или операциями, отвечает за программное обеспечение в производстве, качество отображается дальше от источника. Обратная связь получает путем передачи работы в следующий рабочий центр в потоке стоимости. К сожалению, Handovers создают задержки. Работа может накапливаться, потому что, скажем, QA занят тестированием чего -то другого, или операции не могут предоставить среду тестирования.
Без немедленной обратной связи мы рискуем передавать дефекты в нижестоящие рабочие центры. Следовательно, это может создать нарушения в потоке работы. Мало того, что проблемы более сложны и требуют много времени, чтобы исправить, когда они обнаруживаются позже в потоке стоимости, но и рискуют увеличить Работайте-процесс Анкет Например, если QA доступен, чтобы проверить вашу работу, скажем, завтра, вы не будете ждать, пока они закончат. Вместо этого вы будете работать над чем -то другим. Однако, если возникают какие -либо проблемы, вам придется многозадачность между старой и новой работой. Быстрая обратная связь, с другой стороны, предотвращает начало новой работы и приближает нас к Одиночный поток Анкет
2.2 Качество толчки ближе к источнику
Это кажется нелогичным, но добавление большего количества этапов проверки и процессов утверждения увеличивает вероятность неудач. Конечно, наличие большего количества глаз на проблему должно привести к лучшим результатам, верно? Это может быть правдой, если все будут полностью проинформированы о работой. Но когда мы начинаем продвигать принятие решений дальше от того, где выполняется работа, эффективность процессов одобрения уменьшается.
Получение разрешений от людей, которые отдаляются от работы, имеет несколько проблем. Прежде всего, у них нет самой современной информации. Во -вторых, они могут быть заняты другой работой. Одобрения могут начать накапливаться, создавая задержки. Под временным давлением решения могут быть резиновыми. Эти меры контроля качества дают вам ложное чувство безопасности. Чтобы получить более быструю и более полезную обратную связь, мы должны вместо этого поднять качество ближе к источнику.
Качество не должно быть исключительно ответственностью QA. Каждый должен найти и исправить проблемы в своей области контроля. В потоках ценностей технологий быстрая обратная связь, близкая к источнику, может быть достигнута, например, с автоматизацией сборки, автоматического тестирования, автоматической безопасности и проверки уязвимости, автоматических развертываний, производственной телеметрии и оповещения. Автоматизация помогает нам быстро обнаружить проблемы, восстанавливаться от них и научиться их предотвратить.
В дополнение к конечным пользователям, У нас должна быть сочувствие Для наших внутренних клиентов. Проектирование программного обеспечения с учетом тестируемости делает работу QA более эффективной. Операции не должны быть обязанностью выяснить, как настроить, развернуть и контролировать программное обеспечение. И мы не должны забывать о целях информационной безопасности, продаж и маркетинга. Думая об этих проблемах на раннем этапе, мы создаем качество ближе к источнику.
3. Принципы постоянного обучения
Третий способ создать культуру постоянного обучения и экспериментов. Быстрая обратная связь позволяет нам учиться на наших ошибках. Но это только часть решения. Мы хотим постоянно улучшать, экспериментировать и создавать новые знания во всей организации. В конце концов, организации, которые могут учиться быстрее, чем другие, имеют конкурентное преимущество.
3.1. Культура высокого доверия
В условиях низкой трастовой работы за инциденты часто сопровождаются имя, стыд, вина шаблон. Это, однако, препятствует людям и всей организации от обучения. Наказание за ошибки заставляет вас оставаться в зоне комфорта; Это счастливое маленькое место, где у вас меньше шансов вызвать проблемы. Вам отговорило экспериментировать, пробовать новые вещи и спрашивать «Что, если» вопросы. Вместо того, чтобы взять на себя ответственность, удобнее скрывать неудачи под обложками. Люди с меньшей вероятностью будут говорить и предлагать новые решения существующих проблем. Те, кто пытается внедрять инновации, встречаются с сопротивлением.
Когда небольшие сигналы отказа постоянно удерживаются, они накапливаются, пока не произойдет большая катастрофа. Непосредственный ответ руководства состоит в том, чтобы добавить дополнительные процессы и разрешения, чтобы избежать будущей катастрофы. Это приводит к более низкой пропускной способности и более длительным срокам заказа, но не решает основную проблему.
Рон Веструм, В своей статье 2004 года под названием «Типология организационных культур» , описывает это как имеющая культуру патологической организации.
Когда дела идут не так, патологический климат поощряет поиск козла отпущения […] Патологическая среда будет препятствовать взять на себя ответственность, и можно ожидать, что они будут скрывать их проблемы.
Веструм определяет три доминирующих типа организационной культуры — патологические, бюрократические и генеративные. На противоположной стороне к патологии у нас есть Генеративные организации Анкет
Генеративные организации требуют расширения прав и возможностей для максимальной производительности. Умы людей используются для достижения целей организации посредством культуры сознательного исследования. Им рекомендуется говорить, думать нестандартно и действовать как полностью сознательные участники великого кооперативного предприятия.
Отчет о штате DevOps 2014 Далее говорит, что в генеративных средах понимается, что постоянное улучшение приводит к постоянному уровню пропускной способности и стабильности. Обучение активно продвигается. Всем рекомендуется проводить эксперименты, чтобы узнать, как улучшить как процессы, так и продукты и услуги, которые они создают. Вместо того, чтобы обвинять людей в ошибках, они рассматривают способы перепроектирования системы, чтобы предотвратить еще одну. И когда случаются сбои, они рассматриваются как возможности обучения. Когда столкнулись с инцидентами, безупречные послеобеднения проводятся. Результаты передаются всей организации для превращения местных открытий в глобальные улучшения.
Удаляя вину, вы устраняете страх; Удалив страх, вы обеспечиваете честность; и честность позволяет профилактика
3.2. Непрерывное улучшение
Команды, которые слишком заняты, чтобы улучшить свою ежедневную работу, и регулярно полагаются на обходные пути, увеличивают свой технический долг. Мало того, что они будут продолжать страдать, но и страдания со временем увеличиваются. Процессы разлагаются, производительность падает, а пропускная способность уменьшается.
Улучшение не следует рассматривать как дополнительное занятие, что вы делаете, когда у вас есть дополнительное время. Это должно быть непрерывным, частью ежедневной рутины каждой команды. Время должно быть сознательно зарезервировано, чтобы погасить технические долги, выполнять эксперименты, улучшить рабочие процессы и создать новые знания. В непрерывной культуре улучшения улучшение того, как мы работаем, важнее, чем выполнение работы!
Резюме
Справочник DevOps излагает три основных принципа. Короче говоря, они:
- Плавный поток работы от разработки к операциям к клиентам
- Усиление петли обратной связи так что исправления и улучшения могут быть постоянно внесены
- Создание культуры с высокой точки зрения, которая поощряет эксперименты и обучение на неудаче
Этот пост охватил то, что я нашел наиболее ценным. Но книга рассказывает о различных практиках, которые соответствуют принципам. Это рекомендуемое чтение для всех, кто интересуется DevOps.
Оригинал: «https://dev.to/indrekots/the-three-ways-of-devops-4p68»