В книге описана методика построения конвейера по доставке изменений от разработчиков к клиенту. Сейчас об этом говорят как о DevOps, небольшой исторический экскурс. Термин DevOps начал активно пиарится с 2009, а книга вышла в 2010. В книге используется термин CI/CD как предтеча DevOps.
Стоит ли ее читать спустя 7 лет после выхода?
Да - если вы занимаетесь процессами, в книге детально описаны именно процессы: процессы доставки изменений, процессы контроля над изменениями, процессы управления зависимостями.
Нет - если вы хотите познакомиться с технологиями. В техническом планет книга безнадежно устарела.
Что еще хочется отметить. Перевод очень тяжелый, книга читается с большим трудом. Через некоторые абзаца и главы просто приходится продираться.
Пройдемся чуть подробнее по частям из которых состоит книга.
В первой части авторы поверхностно рассматривают фундамент для построения конвейера, а именно стратегию управления конфигурациями, непрерывную интеграцию и стратегию тестирования. Несмотря на то, что в первой части много очевидных вещей, именно их игнорирование приводит к проблемам. Авторы предпочитают работать на мастере(магистрале) и не любят активное ветвление.
Во второй части описаны процессы построения конвейера. Описано все достаточно подробно, с хорошими примерами почему так надо делать, и к чему приводит не следование этим простым советам. Естественно не обойден процесс тестирования(автоматизированного) и процесс развертывания готового приложения. Приведены несколько стратегий, также даны рекомендации по тому, как надо проектировать приложение для того что бы иметь возможность откатить изменения в случае проблемы. Но повторюсь, эта книга про процессы, а не про конкретные решения.
В заключительной части, авторы рассматривают процессы управления изменениями в данных, в инфраструктуре, в коде, в зависимостях. Авторы ратуют за полное автоматизированное развертывание инфраструктуры, с использованием любых автоматических средств, но с большой ненавистью говорят об и использовании интерфейса пользователя для настройки. Если что то можно положить на версионный контроль, то это надо положить.
Авторы показывают, как можно встроить виртуализацию в конвейер непрерывного развертывания, сейчас, это выглядит вполне разумным и даже обязательным. Тогда это было на самом переднем краю. Процесс управления изменениями данных, на мой взгляд спорен, но он правилен. Всегда должна быть возможность откатить любые изменения. Все остальное в разделе, достаточно банально. Процесс управлениями компонентами и зависимостями, описан просто отлично, со всеми возможными шаблонами и подходами. По разделу видно, что авторы много и долго ходили по граблям. Про управления версиями, добротно, подробно, хотя очень сильно устарело технически. Но, только после прочтения раздела, я осознал всю мощь ClearCase и насколько он серьезный продукт. Шаблонов ветвления авторы приводят, но крайне куце, скажу больше, авторы большие фанаты работы на транке(main для git).
Последняя, 15 глава. На мой взгляд, самая главная. В ней подводится итог всего того, о чем написано в книге и самое главное, что она для процессников. Это глава о процессах и рисках, и о зрелости. Представленная в главе матрица зрелости процессов по CMMI, истинный бриллиант. Да, сейчас она уже немного устарела, но это не умоляет ее ценности. Особо хочу обратить внимание на то, что в модели присутствует уровень -1. Процессы могут деградировать и об этом никогда не стоит забывать. Так же в главе, очень сжато и емко описан жизненный цикл проекта, сравнивается предложенный авторами подход с подходом описанным в ITIL. Что приятно, кратко описано управление рисками. На мой взгляд лучшая глава из всей книги.