Культура — одна из тех вещей, где мы все знаем, что это такое, но не может это объяснить. Ну, по словам Википедия , культура — «социальное поведение и нормы, найденные в человеческих обществах». Но простыми словами, это все о людях: как они взаимодействуют, как они ведут себя, как они говорят, а что они практикуют. И культура является основой успешной реализации DevOps.
Джон Уиллис , Установленный докладчик и писатель на тему DevOps, придумал термин Cams (Культура, автоматизация, измерение, обмен) на разговоре, где он объяснил, что культура DevOps о нарушении силосов. Но то, что я нахожу большинство ударяя о своем обсуждении культуры, как суммирован в Девенс Словарь Является ли наблюдение, которое «воспитание A безопасную среду для инноваций и производительности является ключевой проблемой для руководства и непосредственно выступает против наших племенных управленческих инстинсов. » Таким образом, отправной точкой для вашего DEVOPS TRYSE — хорошее руководство. После этого только о том, как вырастить свою команду, чтобы стать высокопроизводительным.
Высокопроизводительная команда в DevOps, согласно Последние исследования это то, что
- Развертывание часто означает несколько раз в день.
- Доставляет изменения с быстрым временем выполнения (минуты) после того, как он был нажат на общий репозиторий.
- Имеет короткую (снова, минут) среднее время для восстановления (МТТР).
- Имеет небольшую частоту изменений (описано здесь ).
Итак, как вы выращиваете высокопроизводительную культуру DevOps? Вы создаете культуру, которая создаст команду, которая доставляет вовремя с уверенностью предсказуемым образом. Вот вещи, которые помогут вам туда добраться.
Увеличение частоты развертывания
Увеличение частоты развертывания можно рассматривать как противоречие для доставки надежного способа. Но работа в небольших партиях не совсем новое. Scrum и Экстремальное программирование являются двумя системами управления для разработки программного обеспечения, которые подчеркивают доставку в короткие циклы. Хотя частота развертывания варьируется от одного пользователя к следующему, люди, которые практикуют Scrum, обычно развернут в два раза. И уверена, что это может показаться быстро, если вы новичок до Agile. Но есть некоторые компании, которые найдут это смехом, чтобы вызвать две недели «короткий цикл».
Высокие исполнители известны за несколько развертываний в день. Средняя высокопроизводительная команда делает четыре ежедневных развертывания, а некоторые делают больше, чем это. Etsy делает восемьдесят, а Amazon и Netflix развертывают тысячи раз каждый день, согласно эта учеба . Это кажется сумасшедшим, но это так увеличивает пропускную способность доставки и позволяет организациям все время получить обратную связь. Клиенты или заинтересованные стороны не должны ждать спринта до конца. Как только разработка завершила кодирование и проверено, что изменение добавляет значение (и ничего не нарушает), нет никаких причин, чтобы продолжать в ожидании развертывания.
Работа в небольших партиях — это больше, чем практика. Это мышление. Это требует, чтобы все члены организации-разработчиков, операторов, бизнесменов и, главное, лидеры — подумайте об этом все время. Результатом будет то, что вы увеличите сотрудничество с клиентами, потому что у них будет что-то, чтобы попробовать каждый день.
Когда вы инкубируете идею слишком долго, она становится устаревшей и бесполезной. Доставить и делать это часто.
Найти контрмеры для увеличения скорости
Как вы узнаете, если что-то работает или нет, если вы не измеряете его?
Измерение играет большую роль в создании высокопроизводительной команды. Важно, чтобы вы определили, что останавливает вас от доставки вовремя. Высокие исполнители имеют все виды метрик, чтобы помочь им сделать это.
Одна очень важная метрика — время ведения. Время заказа — это то, сколько времени требуется для реализации изменения производственной среды после того, как код был предан в управлении версией. По сути, это сколько времени нужно для развертывания и тестовых изменений кода. Это важно, потому что это не значит, насколько быстрыми коды разработчики; Изменение может занять недели, которые будут доставлены.
Знаете ли вы, что вызывает большие времена ведущего в вашем рабочем процессе? Вы не можете.
Например, вы можете работать с долгоживаемыми филиалами. Вы измеряете время, необходимое для объединения функции в ветку Master? Если вы проводите слишком много времени на эту задачу, у которого нет много ценности, пришло время найти контрмер.
По словам Лестной тренировочной компании Флага Соответствия являются «действиями, предпринятыми для уменьшения или устранения корней причин проблем, которые мешают вам достичь ваших целей. » Таким образом, хорошая контрмера в приведенном выше примере состоит в том, чтобы использовать развитие базы баки. Вы всегда будете совершать мастер-филиал, сократив вопрос о необходимости тратить слишком много времени, исправляя конфликты слияния.
После того, как вы применили контрмеры, вам может потребоваться применить еще один где-то еще. Но будет трудно определить, что, если вы не измеряете все, что вы делаете.
Наличие культуры непрерывного обучения в вашей организации поможет вам стать лучше через доску. Вы не перестанете улучшить, как только вы сделали переход от развертывания один раз в месяц до двух недель. Вы будете продолжать работать, чтобы определить, что мешает вам делать ежедневные развертывания. И развертывание — это только один пример. Как насчет охвата кода? Ручное тестирование? Неизменная инфраструктура? Список продолжается. Но идея состоит в том, что у вас всегда будет шанс улучшить то, что остается.
Прекратите указывать пальцами
Там нет ничего более вредного в культуре, чем указывая пальцами, когда что-то пойдет не так. Никто, который спровоцировал время простоя, сказал, что «мне скучно. Давайте принесем систему вниз, просто для удовольствия ». (Ну, если только они хакеры.) И если коллеги заставляют кого-то чувствовать себя виновным после того, как время простоя, этот человек признал ошибкой в следующий раз? Скорее всего, не.
Ошибка неизбежна, поэтому организации должны обнимать ее. Лучше найти механизмы, чтобы уменьшить время, необходимое для восстановления от неудачи, чем пытаться избежать ошибок. Один из способов избежать неудачи — делать развертывание реже, но это прекращает инновации.
Что вам нужно в вашей организации, это безупречная культура .
Это культура, которая принимает, что мы все иногда делаем ошибки. Возможность сказать: «Я облажался. Мне жаль. Может кто-нибудь помочь мне исправить это? »Поможет вашей организации сосредоточиться на решении, а не на проблему. И если нет стигмы, связанной с виной, команда может быть честной о том, кто еще способствовал проблеме.
Важно построить доверие в вашей команде. Делать ошибки не должны быть наказуемым преступлением. Вместо этого вы должны предвидеть неудачу, а затем выйти из строя. Netflix делает все время — они приносят серверы вниз, чтобы проверить их неисправную архитектуру.
Теперь, рассказывая руководство, которое вы хотите намеренно вызывать проблемы не звучат хорошо. Но что, если вы сделали это в среде, отличной от производства? Что если только затронуло только определенные пользователи? Это способы, которыми вы можете включить эксперименты и построить доверие в команде.
Пусть ваши люди учатся на своих ошибках. Найдите способы предотвратить их снова происходить. Когда что-то плохое случается, это не о одном человеке. Хватит указывать пальцами, чтобы все принимают ответственность за их ошибки. Здоровая организация охватывает неудачу и учится у него.
Включить производственную среду
Высокие исполнители имеют низкую частоту отказов. Развертывание обычно не терпит неудачу, потому что высокопроизводительные команды развертываются в небольших партиях, у них есть практика на месте, которые уменьшают время задержки, а главное, у них есть способ быстро восстанавливаться в случае какого-либо сбоя.
Как это возможно?
Ну, один вариант — иметь подобную продукции. Это позволяет всем экспериментировать с тем, что он хотел работать на производственном сервере. И это позволяет команде практиковать развертывание, как если бы они делали это в производственной среде.
Например, если вы используете Jenkins в качестве инструмента CI, вы можете убедиться, что у каждого разработчика есть собственная копия Jenkins, установленных локально. Почему? Имея находящиеся на местном уровне на своих машинах, позволит разработчикам проверить свой код перед интеграцией его в контроль источника. Поток будет таким: выполнять некоторые изменения, потяните последние изменения с репозитория, закрепите любые конфликты, имитируйте интеграцию локально, и если он работает, толкайте изменения. Делая это, практика непрерывной интеграции будет иметь команду всегда готовой к доставке.
Работа на строительстве культуры Это всегда готово Практикуя перед тем, как жить жить. Это включает в себя здание, упаковку, тестирование, развертывание, откатывание назад … вы называете его. Вы избегаете каких-либо сюрпризов, когда выходите в жизнь, и это уменьшит ваш уровень отказов, увеличивая доверие в команде.
Сделай это снова, но Лучше Каждый раз
Вы начнете видеть преимущества всего, что я описал здесь, как только вы сделали это привычкой. Ведь практика делает идеально. Люди могут не видеть ценность этих инициатив сразу, но не расстраиваются. Просто продолжайте толкать, пока все не получит его.
Содействие безопасной среде для инноваций и производительности должна быть главной целью в каждом реализации DevOps. Строительство доверия в команде приносит огромные преимущества, потому что члены будут чувствовать право собственности при выполнении вещей.
Когда вы вознаградите определенное поведение, вы видите это поведение чаще. Поэтому убедитесь, что все, что вы вознаграждаете, способствуют созданию высокопроизводительной культуры.
Оригинал: «https://dev.to/scalyr/growing-a-high-performance-devops-culture-gk2»