Обзор книги: DevOps for Developers

Обзор книги: DevOps for Developers

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

DevOps for Developers — о чем книга?

Книга “DevOps for Developers” была опубликована в конце 2012-го года. Название обещало помочь разработчикам понять суть DevOps движения и то, что же из этого применимо и полезно для разработчиков. DevOps развивалось первоначально в основном системными администраторами, которым программисты «через забор перекидывали» свое программное обеспечение. Затем сисадмины должны были долгими часами пытаться запустить, а потом и (при счастливом стечении обстоятельств) настроить новое ПО и интегрировать его в надежную ИТ инфраструктуру. С другой стороны, разработчики тоже без запредельного энтузиазма реагируют на довольно жесткие требования со стороны бизнеса к регулярным частым релизам с новым функционалом. Другое дело, когда люди бизнес-сферы понимают необходимость рассматривать IT как важную составляющую ведения бизнеса, как, например, в проекте “The Phoenix Project” (англ.).

Рассматриваемая книга должна была заполнить пустоту в литературе по DevOps. В самом начале книги автор указывает на то, что понятие «разработчик» он применяет в довольно широком смысле, понимая под разработчиками программистов, тестировщиков и тех, кто адаптирует инфраструктуру как код. В итоге получилось довольно подробное введение в DevOps с точки зрения управления жизненным циклом приложения (ALM). Книга освещает полный спектр тем от гибких методологий разработки до непрерывного развертывания ПО с небольшими отступлениями на разные темы, например, спецификация по примерам. Разные подходы и концепции довольно хорошо связываются в книге между собой, однако широта материала для такой небольшой книги отразилась в глубине изложения материала: вероятнее всего книга будет мало полезна тем, кто уже хорошл знаком как с гибкими методами разработки, так и с концепцией DevOps.

Автор подходит к рассмотрению DevOps с трех разных перспектив: с точки зрения метрик и измерений, с точки зрения процесса и с технической точки зрения. Это идет вразер с привычным CAMS подходом, продвигаемым DevOps движением. Подход автора интересен, особенно если учесть, что процесс как таковой может быть как рассмотрен в аспекте Culture/Automation/Measurement/Sharing подхода, так и стать этаким show stopper в процессно-ориентированных организационных структурах.

Перспектива метрик и измерений описывает необходимость сведения воедино таких аспектов как обеспечение качества и тестирование на всем протяжении разработки, интеграция всей команды и координирование целей между dev и ops. Это, несомненно, важные пункты, но, тем не менее, автор мог бы подробнее осветить такие вопросы как непрерывное измерение стабильности и быстроты приложений, учет мнения ops (т.е. интеграторов систем, сисадминов), разделение задач мониторинга, а также взаимодействие в этих аспектах разработчиков и интеграторов.

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

Ну, и наконец, техническая перспектива отхватила самый большой кусок книги. Здесь представлены главы, посвященные непрерывному развертыванию (или как назвал это автор  “Automatic Releasing”), инфраструктуре как код (содержит множество примеров, иллюстрированных с помощью Puppet и Vagrant), а также глава о создании спецификации посредством примеров.

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

Об авторе книги

Михаэль Хютерман (Michael Hüttermann) занимает должность principal developer, delivery engineer и эксперта по гибким методологиям разработки и DevOps. Помогает различным проектам улучить процесс разработки и развертывания ПО. Обладатель награды Oracle Java Champion, Михаэль имеет сертификаты SCJA, SCJP, SCJD и SCWCD, член JCP и Agile Alliance, java.net JUGs Community Leader и основатель Cologne Java User Group. Он возглавлял секцию “Tools for Agility” на конференции “Agile 2009” в Чикаго. Михаэль дает семинары и презентации на передовых конференциях. Автор трех книг: “Agile Java-Entwicklung in der Praxis” (на немецком, O’Reilly, 2007), “Fragile Agile” (Hanser, 2010) и “Agile ALM” (Manning, 2011).