Философия DevOps. Искусство управления IT - Кэтрин Дэниелс


IT-принцип "agile" стал мантрой цифровой эпохи. С ростом проектов, переходом от монолитных приложений к системе микросервисов, увеличением и накоплением продуктов возникают вопросы, которые требуют совершенно иного подхода. Теперь наибольший интерес вызывает находящаяся на стыке разработки и операционного управления методология DevOps.

DevOps – это не просто набор техник, это философия. Разработчики, зацикленные на пользователях, должны уделять внимание поддержке и ее запросам. Сисадмины должны сообщать о проблемах продукта и вносить свой вклад в улучшение процесса работы. Но налаживание связей внутри компании – это лишь первый шаг. Чтобы продукт стал простым и удобным, придется вложить время и ресурсы в его доработку. Конфигурация через центральную службу, внедрение простым копированием, отсутствие внешних зависимостей, обдуманные метрики вместо мусора в логах – вот лишь часть задач, которые придется решать на этом пути.

Книга "Философия DevOps" познакомит вас с техническими, культурными и управленческими аспектами devops-культуры и позволит организовать работу так, чтобы вы получали удовольствие от разработки, поддержки и использования программного обеспечения.

Содержание:

  • Вступительное слово 1

  • Вступительное слово Джона Оллспоу 1

  • Вступительное слово Николь Форсгрен 1

  • Предисловие 2

  • Часть I. Основы devops 4

  • Часть II. Сотрудничество 20

  • Часть III. Близость 36

  • Часть IV. Инструменты 54

  • Часть V. Масштабирование 71

  • Часть VI. Объединение культур devops 91

  • Об авторах 107

  • Примечания 107

Дженнифер Дэвис, Кэтрин Дэниелс
Философия DevOps. Искусство управления IT

Jennifer Davis

Katherine Daniels

Effective DevOps. Building a Culture of Collaboration, Affinity, and Tooling at Scale

© 2016 Jennifer Davis, Katherine Daniels

© Перевод на русский язык ООО Издательство "Питер", 2017

© Издание на русском языке, оформление ООО Издательство "Питер", 2017

© Серия "Бестселлеры O’Reilly", 2017

Вступительное слово

Иван Евтухович

В мире, где такие фразы, как "дигитализация", "цифровая трансформация" и "технологические компании", давно набили оскомину, не вызывает сомнения, что эффективное управление ИТ-процессами является фактором выживания современной компании в любой сфере, будь то онлайн-продажи авиабилетов, интернет-торговля или дистанционное банковское обслуживание. Уже сейчас для многих компаний команды разработки и эксплуатации являются главным активом.

Александр Титов

Методология DevOps возникла как ответ на постоянный вызов делать программное обеспечение быстрее, качественнее и надежнее. Авторы книги рассказывают о том, что же такое DevOps, какие инструменты и технологии он в себя включает и как внедрять его внутри компании.

Никита Борзых

Особый акцент в книге сделан на корпоративную культуру доверия, сосредоточенную на коммуникации, сотрудничестве и интеграции между ИТ-подразделениями. Подход DevOps давно снискал большую популярность на Западе среди таких гигантов, как Amazon и Facebook, а теперь он все шире проникает в нашу страну. В книге приведены типичные антипаттерны внедрения DevOps, а также множество историй из жизни реальных компаний, которые внедряли у себя этот подход.

Наша компания с первых дней своего существования является проводником методологии DevOps. И конечно, мы очень рады, что книга "Философия DevOps" теперь доступна и на русском языке.

Ищите новые подходы, становитесь более гибкими, быстрыми и эффективными! Делитесь своими открытиями, используйте мировой опыт и участвуйте в развитии профессионального DevOps-сообщества России – DevOpsRU.com.

Иван Евтухович

Александр Титов

Никита Борзых

Управляющие партнеры "Express 42"

+7 495 088 42 84

Вступительное слово Джона Оллспоу

В настоящее время мы являемся свидетелями качественных изменений в подходах к разработке программного обеспечения. Эти фундаментальные изменения затрагивают все, что связано с проектированием, разработкой и использованием программ. Практически все успешные компании осознали, что программное обеспечение – это не просто код, который можно разрабатывать и запускать на выполнение. На самом деле любая программа – это некий объект, с которым осуществляется взаимодействие.

Новый подход к разработке программного обеспечения является более универсальным, целостным и лучше отражает действительность, с которой ежедневно сталкиваются команды разработчиков ПО. Давно ушли в прошлое те времена, когда для описания разработки и поддержки программ применялись производственные метафоры. Когда-то считалось, что программы, как и любые другие товары, проектировались, планировались и, наконец, запускались в производство. Теперь же слово "наконец" к описанию процесса разработки ПО не применяется. Этот процесс представляет собой бесконечный цикл адаптации, изменения и обучения.

В этой книге изложены тысячи примеров преодоления затруднений, с которыми сталкиваются разработчики программ в попытках упростить свою работу.

В 2009 году на конференции Velocity 09, проводимой издательством О'Reilly, я и мой друг Пол Хэммонд представили презентацию "10+ Deploys a Day: Dev and Ops Cooperation at Flickr". Несмотря на то что часть материала презентации была посвящена вопросам непрерывного развертывания, многие зрители обращали больше внимания на часть "10+ развертывание", а не на часть "Сотрудничество". Я считаю, что было бы ошибкой полагать, что технологии или "железо" нужно рассматривать отдельно от социального или культурного "софта". Эти компоненты неразрывно связаны и в одинаковой степени важны для достижения успеха. Другими словами, люди, процессы и программное обеспечение связаны между собой гораздо сильнее, чем принято думать.

Я настоятельно советую читателям не совершать ошибку, полагая, что технологии существуют отдельно от людей и процессов. Ваши конкуренты тут же воспользуются вашей ошибкой и съедят вас живьем.

Вряд ли вы найдете рассматриваемые в этой книге темы в типовых учебных программах по информатике либо в курсах профессионального лидерства или в курсах, предназначенных для разработчиков программ. Эти темы появились на этапе прагматической зрелости, которая, в свою очередь, появляется лишь в результате напряженной работы.

В этой книге вы найдете исчерпывающий набор указаний. И я призываю вас, дорогие читатели, использовать эти указания применительно к вашему контенту и к вашей среде.

Джон Оллспоу, технический директор, Etsy, Бруклин, Нью-Йорк

Вступительное слово Николь Форсгрен

В 2003 году Николас Карр в своей работе "IT Doesn’t Matter" заявил о том, что информационные технологии не являются стратегически важными для бизнеса. И поскольку эта статья была опубликована в журнале Harvard Business Review , она получила признание в корпоративной среде. Но с тех пор много воды утекло. Начиная с 2009 года наиболее инновационные команды и компании продемонстрировали, что технологии могут играть ключевую роль в создании реальной стоимости и обеспечении конкурентного преимущества. Эта технологическая революция получила название DevOps. После прочтения книги вы узнаете о том, как влиться в ряды инновационных компаний и начать создавать стоимость с помощью технологий.

Советы и рекомендации, изложенные в книге, коррелируют с моим опытом работы, полученным за последние десять лет. Как известный специалист в этой области и как ведущий исследователь State of DevOps Reports, я знаю, что ключевым компонентом любой трансформации в направлении DevOps является сильная организационная культура. Она служит фактором, задающим переход от традиционной ИТ-структуры к DevOps, а также ставит во главу угла информационный поток. На основе данных, предоставленных более чем 20 тысячами профессионалов в области DevOps, можно прийти к выводу о том, что сильная организационная культура способствует продвижению ИТ-организации и росту ее производительности в целом. Лучшим ИТ-организациям присуща удвоенная производительность, большая рентабельность и доля рынка по сравнению с конкурентами. И вовсе не случайно книга начинается дискуссией, посвященной аспектам культуры, общения и доверия. Значительная часть книги посвящена обоснованию важности вклада этих факторов в процесс трансформации в сторону DevOps. Нам, как технарям, нравится начинать с использования инструментов и, возможно, даже процессов. Но время от времени практика показывает, что культура, наравне с упомянутыми ранее ИТ и производительностью организации, имеет большое значение для успешного применения инструментов и технологий. Обязательно прочитайте части II–III, посвященные сотрудничеству и близости соответственно, независимо от того, начинаете ли вы трансформацию DevOps и хотите знать, что нужно реализовывать и что требуется отслеживать, или же вы поднимаете существующую практику DevOps на новый уровень и ищете способы оптимизации и устранения проблем.

Работая консультантом в наиболее инновационных компаниях, я пришла к выводу о том, что наиболее трудная часть реализации и составления предварительного плана технологической трансформации DevOps заключается в невозможности дать однозначный ответ, который подходил бы для всех ситуаций. Все зависит от того, что именно считается корректным для вашей команды и вашей организации. Поэтому мне нравится, что именно эта мысль постоянно подчеркивается в книге. Не существует единственного простого решения всех проблем. Чтобы внедрить собственное решение DevOps и добиться успеха, нужно использовать подходящие инструменты и компоненты. Помимо частей II–III обязательно обратитесь к части IV, в которой описаны инструменты, необходимые для выполнения произвольной трансформации DevOps. Особенно мне нравится, что при описании инструментов идет речь не только о технологических аспектах, но и о ключевых компонентах культуры, в рамках которой эти инструменты используются.

Одна из наиболее приятных особенностей книги заключается в ее доступности для разной аудитории. Часть V, посвященная масштабируемости, особенно полезна для рядовых участников и руководителей команд. Я использую материал, изложенный в этой части, в качестве справочника для себя и своих клиентов. Главы 4 и 11, включающие описание терминологии и обзор экосистемы, соответственно будут полезными как для технарей (в качестве терминологической базы), так и для руководителей, нуждающихся в актуальном справочном пособии. Эта книга является позитивным и полезным введением в DevOps, включающим сведения, которые отсутствуют в университетских учебниках. Я была бы просто счастлива, если бы в свое время могла использовать подобное пособие в своей преподавательской деятельности.

Мы живем и работаем в поистине удивительные времена, когда интеграция технологий в бизнес привела к превращению каждой фирмы в софтверную компанию. Благодаря современным технологиям потребители могут использовать новые способы получения доступа к требуемым средствам, причем этот доступ осуществляется с невиданной ранее скоростью. Компаниям приходится прилагать максимум усилий, чтобы не отставать от конкурентов. На основе своего опыта работы с компаниями, внедрявшими DevOps, я пришла к выводу, что прежние методы (итеративная и каскадная модели) не позволяют поддерживать необходимую скорость обмена данными в организации. Авторы книги рассматривают проблемы технологической трансформации, выполняемой с помощью устаревших способов, и захватывающие возможности, открывающиеся в результате внедрения DevOps. Читайте книгу и выбирайте собственный путь! Повторяйте, учитесь, растите и выбирайте свой путь перехода к DevOps!

Николь Форсгрен, доктор философии, директор компании Chef Software, Сиэтл, Вашингтон

Предисловие

Представьте себе такой сценарий. Небольшая веб-компания начала сталкиваться со следующими проблемами. Веб-сайт этой компании "тормозит" и периодически "ложится" в случае непредвиденного роста числа пользователей. Сотрудники все чаще выражают недовольство по причине увеличения трудозатрат, требуемых для предоставления услуг, а также в силу необходимости разработки и выкатки нового функционала. Между глобально распределенными командами разработчиков появляются барьеры, вызванные использованием разных языков и часовых поясов. Растет количество взаимных обвинений, вызванных стрессом из-за роста "падений" сайта. Это приводит к росту подозрительности и снижению степени прозрачности при взаимодействии между группами сотрудников.

Столкнувшись с подобными проблемами, менеджмент организации принимает решение о devops-трансформации. Для реализации этого решения нанимается несколько сотрудников, формирующих новую devops-группу. Члены этой группы исполняют обязанности по вызову, то есть к ним обращаются члены эксплуатационной группы в случае возникновения неразрешимых проблем. Члены devops-группы являются экспертами в своей предметной области и лучше подготовлены к решению проблем. Но если у членов эксплуатационной группы нет ни времени, ни возможностей для получения новых навыков, одни и те же проблемы будут возникать снова и снова.

Рано или поздно членам devops-группы надоест исполнять роль посредников между группой разработчиков и эксплуатационной группой. Вместо того чтобы убрать напряжение, подобное "решение" менеджмента приведет к росту недопонимания, поскольку ни одна из групп не причастна к процессам планирования, обмена сообщениями и отслеживания ошибок, реализуемых членами другой группы.

В результате менеджмент заявляет о провале идеи с формированием devops-группы и перестает выделять время, деньги и усилия в развитие devops-группы и эксплуатационной группы. К членам этих групп начинают относиться как к некомпетентным бездельникам, которые способствуют "падениям сайта" и только "мешают" разработчикам, выполняющим "реальную" работу. Вполне естественно, что члены этих групп, не выдержав груза обвинений в некомпетентности, начинают увольняться из организации, еще более затрудняя исполнение обязанностей оставшимися сотрудниками.

Первое знакомство с devops

В чем причина появления проблем в описанной ситуации? Вроде бы внедрение "devops" являлось хорошей идеей, но создание devops-группы привело к негативным последствиям. Что нужно изменить, чтобы добиться значительного улучшения ситуации и реального устранения проблем? На протяжении всей книги вы увидите, как можно выполнить эффективные преобразования на основании devops-мышления.

Не рассматривайте эту книгу в качестве сборника бесспорных рекомендаций по внедрению devops-подхода. Мы не предлагаем вам devops "из коробки", devops в качестве услуги и не говорим вам, что вы некорректно внедряете devops-решения. В этой книге вы найдете коллекцию идей и подходов по улучшению сотрудничества между отдельными сотрудниками, по достижению однородности на уровне отдельной группы и организации в целом и по использованию инструментов на уровне компании или организации. Вы также увидите, каким образом эти концепции способствуют изменению и адаптации организаций в случае возникновения необходимости в этом. Поскольку каждая организация является уникальной, не существует единого универсального подхода по внедрению devops. Существующие общие подходы должны применяться в каждой организации различным образом. В результате улучшается качество создаваемого в этой организации программного обеспечения, а также улучшается эффективность работы и повышается благосостояние сотрудников.

Результативность является следствием того, что "делаются нужные, правильные вещи". А эффективность является следствием того, что "правильно создаются эти самые вещи".

– Питер Ф. Друкер

Эффективность определяется как способность делать правильные вещи и достигать желаемых результатов. Чтобы делать правильные вещи, нужно осознать поставленные задачи и выявить связь между конкретными краткосрочными целями и поставленными задачами.

Мы выражаем надежду, что сможем помочь вам идентифицировать правильные вещи в вашей среде на основе вашей культуры, включая применяемые процессы и инструменты. Идеи и принципы, излагаемые на протяжении всей книги, применимы к организации в целом, а не только на уровне групп разработчиков и технической поддержки. В процессе написания книги мы даже сами использовали эти идеи и принципы.

В то время как наша цель при написании книги заключалась в том, чтобы поделиться универсальными историями, советами и практиками с менеджментом организаций, который сможет адаптировать и использовать их в качестве своих рабочих методологий, каждой из нас присущи свои уникальные знания и опыт. Разнообразные идеи, использованные при написании книги, были порождены коллективным опытом. Этот опыт получен на основе анализа работы частного и общественного сектора, маленьких стартапов и огромных корпоративных сред, а также отделов, распределенных по должностям, от разработки ПО до его поддержки, контроля качества, консалтинга и многого другого.

КАК ПРАВИЛЬНО ПИСАТЬ СЛОВО "DEVOPS"?