В основу этого руководства положены десятилетия изучения теории рационального использования высокопроизводительных технологических организаций. Мы проделали эту работу, помогая компаниям преобразовываться. Наши исследования подтвердили эффективность методов DevOps. Также были использованы материалы бесед с экспертами в соответствующих областях и анализ около ста практических примеров, о которых шла речь на конференции DevOps Enterprise Summit.
Книга разделена на шесть частей, описывающих теорию DevOps, принципы использования «трех путей», особый взгляд на обоснование теории, изложенной в книге «Проект “Феникс”. Роман о том, как DevOps меняет бизнес к лучшему» и предназначенной для каждого, кто когда-то занимался технологическими процессами создания продуктов (обычно это понятие включает управление, разработку, тестирование, эксплуатацию и информационную безопасность) или был иным образом вовлечен в указанные процессы. Также книга предназначена для руководителей бизнеса и маркетологов, ведь именно в этих областях обычно зарождаются технологические инициативы.
Не следует ожидать, что в книге есть глубокий анализ любого из этих направлений, а также DevOps, Agile, ITIL, принципов бережливого управления или описания улучшения процессов. Но каждая из тем затрагивается и разъясняется в других специализированных изданиях, если требуется.
Наша цель — сформировать базовые знания о важнейших концепциях в каждой из областей. Это нужно, чтобы понять основы, а также ввести терминологию и формулировки, необходимые на практике работы для взаимодействия с коллегами, вовлеченными в процесс создания IT-ценностей. Ну и для того, чтобы сформулировать общие цели.
Книга окажется полезной руководителям бизнеса и другим заинтересованным лицам, если они полагаются на технологические организации.
Кроме того, книга предназначена тем, кто в своих организациях лишь отчасти сталкивается с описанными здесь проблемами (например, с длительным временем развертывания или со сложным развертыванием, сопряженным с неприятностями). Такие читатели, оказавшиеся в относительно удачном положении, смогут извлечь пользу из понимания принципов DevOps, особенно касающихся общих целей, обратной связи и непрерывного обучения.
В части I приведен краткий обзор истории DevOps и представлены основы теории и ключевые темы из соответствующих областей знаний, развивавшихся несколько десятилетий. Затем мы представим принципы верхнего уровня — подход «трех путей»: обеспечение полного цикла разработки, петля обратной связи, культура непрерывного обучения и экспериментирования.
В части II описывается, когда и как надо начинать, представлены такие концепции, как поток создания ценности, принципы и шаблоны организационного проектирования, адаптационные шаблоны, а также приводятся практические примеры.
В части III описывается, как ускорить процесс разработки через формирование основы для конвейерного развертывания — быстрого и эффективного автоматизированного тестирования, непрерывной интеграции, непрерывной поставки и проектирования низкорискового процесса релизов.
В части IV обсуждаются способы ускорения и усиления обратной связи путем создания эффективной телеметрии для обнаружения, более глубокого анализа и решения проблем, достижения поставленных целей, формирования обратной связи, позволяющей разработке и эксплуатации безопасно развертывать изменения, встраивать A/B-тестирование в повседневную деятельность и создавать процессы взаимной проверки и координации для повышения качества результатов.
В части V описывается, как ускорять непрерывное обучение, формируя соответствующую внутреннюю культуру, преобразуя небольшие открытия в глобальные улучшения и правильно резервируя время для организационного обучения и усовершенствований.
И наконец, в части VI мы расскажем, как правильно обеспечивать безопасность и проверять соответствие ее требованиям в повседневной работе, интегрируя превентивный контроль безопасности в общие хранилища исходного кода и услуг, функции обеспечения безопасности — в конвейер развертывания. Необходимо улучшать телеметрию для обеспечения более успешного обнаружения ошибок и восстановления, защиты конвейера развертывания и достижения целей по изменению управления.
Вводя кодификацию этих приемов, мы надеемся ускорить внедрение методов DevOps, повысить их успешность и уменьшить количество энергии, необходимой для запуска преобразований DevOps.