Отзыв на второе издание «Release It! Design and Deploy Production-Ready Software» Michael Nygard
Прикладных backend-программистов по навыкам можно разделить на 3 уровня:
- Те, кто умеют писать алгоритмы: переводить шаги, описанные человеческим языком, в корректный программный код. Это тот минимальный навык, который требуется от джунов, и этому учат в учебных заведениях.
- Те, кто умеют создавать приложения: объединять алгоритмы так, чтобы при каждом изменении бизнес-требований внесение изменений не замедлялось и уж точно всё не разваливалось. Эти навыки обычно впитываются уже с «молоком первого работодателя» и при чтении классических книг по software development.
- Те, кто умеют создавать системы: объединять свои и чужие приложения так, чтобы все вместе они выживали в условиях промышленной эксплуатации. Эти тигриные львы за свои года работы повидали уже всякого на продакшене и знают устройство hardware, сетей, ОС, протоколов и кучи стороннего софта, без которого «картинка целиком не сложится». По каждой из этих тем есть отдельные толстые книги. Требуются годы практики на их освоение.
Но что делать условному «мидлу», который уже вынужден отвечать за существующие системы? Откуда ждать угроз стабильности? Где в приложениях обычно уже находятся мины замедленного действия? Обо всём этом пишет Майкл Найгард во втором издании бестселлера «Release It! Design and Deploy Production-Ready Software».
Ещё первое издание 2007 года произвело на меня, тогда ещё не нюхавшего продакшена разработчика, неизгладимое впечатление. Существенно подняло мой уровень паранойи и мотивировало изучать распределённые системы.
На примере реальных инцидентов автор рассказывает, насколько, казалось бы, несущественные недочеты в современных сложных системах приводят к большим проблемам у бизнеса. Почему даже прикладным разработчикам важно знать как устроена современная инфраструктура.
Обновленная версия книги включает в себя новые главы, посвящённые современным технологиям и практикам разработки ПО, которые стали де-факто стандартом в отрасли: continuous delivery, cloud-native software, безопасность. Опытные разработчики вряд ли тут найдут для себя много нового, но подрастающему поколению эта книга точно откроет глаза на огромный пласт проблем, который пытаются абстрагировать от нас современные технологии. Жаль только, что не всегда им это удаётся.
Приятного чтения!