Дежол на предприятии (2 части серии)
Во-первых, давайте начнем с 2 обычно слышших заявлений:
Предприятие не делает DevOps или выпуск сложно
— подписан, каждый разработчик предприятия когда-либо
В то время как компании Enterprise, как правило, имеют много бюрократии (особенно вокруг выпуска), мы все еще должны смотреть, чтобы улучшить темп, на котором мы доставляем рабочие программы нашим клиентам.
Ага! Любая организация, чьи клиенты, регуляторы и разработчики и разработчики ценят быстрее, более надежные программные выпуски с меньшим количеством риска могут использовать эти мыслительные процессы.
Начнем с простого общего видения того, что devops на самом деле есть.
Дежол это Набор практик Это работает на Автоматизация процессов Так что программные команды могут Создание, тест и выпуск Программное обеспечение быстрее и надежно.
От Атласский дежопт
Цель
Что мы стремимся к достижению здесь? Мы надеемся:
- Сократите время, необходимое для нашей работы (включая исправления ошибок), чтобы приземлиться в руках нашего пользователя
- Сократить время, чтобы стать осознать проблему в производстве
- Уменьшить риск и долговечность простоя, из-за выпуска
- Уменьшить воздействие любой конкретной ошибки, представленной
Нормально, но, как?
Git Master является священным
Вы должны убедиться, что последняя версия вашего кода всегда развертывается. Если вам нужно «вырезать релиз» и ветвь Off Master, вы будете менее склонны выпустить на регулярной основе.
Если ваш код не «готов к выпуску» в любое время, ваша способность безопасно отвечать, когда дерьмо попадает в поклонник сильно затронут.
Подумайте об этом, если вам сначала нужно откатиться ваш код на «известное» безопасное место, то это еще один шаг в процессе, прежде чем вы даже можете начать фиксацию своего производственного происшествия.
Чтобы сохранить главную «готовую продукцию», все слияния на мастеру также должны быть готовы к производству.
Это достигается на 2 ключевых вещами:
- Автоматизация
- Все, что дает вам уверенность в выпуске, должна быть автоматизирована, и она должна предотвратить объединение ветвей для мастера, если они потерпят неудачу
- Ваша автоматизация должна сделать это очень трудно случайно сломать производство
- Практика кодирования
- Напишите свой код таким образом, чтобы вам безопасно развернуть до производства, не вызывая отключения из-за ошибки.
- Функция переключается, ключевые камни и обратная совместимость — это лишь некоторые из техник, которые могут помочь сохранить продукцию готовности.
Часть 2 этой серии «Практики кодирования» дадут некоторые примеры способов, чтобы ваш код был готовым к производству.
Вы строим это, вы бежите
Человек, лучше всего разместил для исправления проблем с функцией, — это человек, который только что писал код для него. Если этот человек отвечает за дело с любыми проблемами с клиентами с этим произведением работ, они будут:
- Лучше понять проблемы, когда они возникают
- Будьте более склонны заботиться, при написании кода
- Иметь лучший контекст и стимул для улучшения поддержки этого кода в будущем
Получавшись в этом процессе DEV, по крайней мере, вовлеченным в этот процесс, качество программного обеспечения будет дано хороший шанс улучшить, если только через эмпатию для пользователя и себя.
Смотрите Atlassian’s Tair на Вы строим его, вы запускаете это И другой на некоторых их идеях вокруг Инженерия надежности на сайт
Небольшие релизы лучше всего
Если вы проведете год разработки программного обеспечения, прежде чем дать ему пользователю, вы тратите год на создание риска. Любая часть этих лет (или даже месяцев) развитие может (и вероятность) иметь неоткрытую ошибку.
Если что-то пойдет не так (и он будет), вам придется просеять весь год кода и функций, чтобы обнаружить проблему.
С другой стороны, если вы сделаете одно изменение и разверните его на продукцию, у вас, скорее всего, уволюсь на развертывание до производства. Почему? Ну, если это сломается, гораздо легче иметь уверенность в том, какие изменения вызвали проблему … И вы можете просто откатиться к предыдущей версии (или даже написать тест, исправить ошибку и переделать).
Из-за нашей новой уверенности в нахождении проблем и быстро отказывается от обратной связи, риск любого 1 изменения — резко уменьшается Отказ Мы также Массово увеличение наша способность избегать простоя, из-за введенной ошибки.
С дополнительной уверенностью мы можем выпустить быстрее, что дает нам гораздо лучший контекст, когда дела пойдут не так, как и, мы только что закончили работать над этим разделом кода. Это только помогает дать нам уверенность, нам нужно выпустить еще быстрее каденции и так далее.
Проще говоря:
Небольшие изменения риска для освобождения
Для дальнейшего чтения здесь — интересная статья Кент Бек о приеме небольших изменений в экстремальные: Тестирование границ сотрудничества
Вот также интересный читал на Полезность вытяжных запросов Я думаю, что ключ на вынос здесь должен быть такой маленький, очень короткие ветви лучше всего.
Автоматизированное тестирование является ключом
Другой Линхпин в нашем плане DevOps — это тестирование. Если у нас нет достаточного автоматического тестирования, чтобы дать нам уверенность в выпуске, то план распадается. Если мы полагаемся на ручное тестирование для этой уверенности, и это руководство проводится после объединения мастера, то ваше ручное тестирование становится блокатором для производства. Тем не менее, потому что вы объединились на мастеру, вы не просто блокируете свой код, но и любой другой код, который объединен после вашего. Это оказывает давление на QA, вызывая ненужные задержки или заставляют их отбросить свои стандарты тестирования.
Это не значит, что ручное исследование тестирования не имеет своего места, это может. Просто с достаточным автоматическим тестированием ручное тестирование не должно блокировать выпуск. Однако если используется правильно, его можно использовать для проверки функциональности (часто лучше всего, кто-то с кем-то с опытом первого лица в бизнесе). Ручное тестирование никогда не следует использовать для чего-либо, что вы когда-либо хотите бежать больше, чем один раз, чтобы дать вам уверенность, вы не сломали что-то.
Для 2 очень интересных точек зрения на соответствующие автоматизированные уровни тестирования, проверьте эти статьи:
Кент Бек
Кент C. Додс.
(Видимо, все кенты имеют сильные чувства про испытаниями!)
Однако, если ваши QAS находят вопросы, что если развернуто для производства, повлияет на пользователей, то вам повезло! Следующим постом в этой серии «Практика кодирования DEVOPS» приведет вас к нескольким методам, чтобы избежать блокировки развертываний производства, а также поддерживая безопасную и надежную производственную среду.
Next Up — это несколько простых методов кодирования DEVOPS, чтобы следовать, чтобы гарантировать, что мастер готов к выпуску в любое время.
Дежол методы кодирования
Дилан Уотсон · 6 · 7 мин прочитан
Дежол на предприятии (2 части серии)
Оригинал: «https://dev.to/dylanwatsonsoftware/the-enterprise-devops-mindset-49g2»