Skip to content
Kendrick's Website Kendrick's GitHub Kendrick's Youtube Kendrick's Travel blog

[Book Review] Release It! - Design and Deploy Production-Ready Software for Large-Scale Distributed Systems

5 min read
Cover

Introduction

The book I'm introducing now has the original title 'Release It!'.

Release it! 2nd edition - Amazon

The second edition was published in 2018, and Kyobo Bookstore introduces the author as follows:

A professional programmer and architect who has designed, built, and engineered systems for the US government, banking, finance, agriculture, and retail industries. As Engineering Director at Totality Corporation, he performed various interesting projects and led operations teams. Through this experience, he gained a unique perspective on building highly reliable software. He also writes numerous articles and editorials and is a popular speaker at technical conferences.

Author Michael Nygard provides his 35 years of experience and practical, realistic know-how through this book.

Table of Contents

Part 1: Building Stability This chapter explains how to ensure high availability of servers.

Part 2: Design for Operation Introduces patterns that are good to know in modern operating environments.

Part 3: System Delivery Explains how to handle large amounts of data.

Part 4: Systematic Problem Solving Talks about troubleshooting after service 1.0 deployment and chaos engineering.

Book Review

Unlike other translated books, this book shows effort to convey accurate information to readers through careful explanation of terms and accurate translation. For example, in practice, Production is often used interchangeably as live server, commercial, operation, real server, etc., but it provides detailed information even about differences in terms that could be translated as one word since they're roughly similar.

For example, in Chapter 1, instead of just translating distribution, deployment, and delivery as deployment, they divide them into placement, delivery, etc., and explain why.

Especially in the case of operations books, the same word is sometimes translated differently, which sometimes makes me wonder if I've developed dyslexia, but this book compensates for this problem with accurate term selection and explanation.

There are also many interesting analogies regarding term explanations. For example:

4.7 Scale Effects Biology's square-cube law explains why we can never see elephant-sized spiders. An insect's weight is proportional to volume, so it becomes O(n^3). Leg strength is proportional to cross-sectional area, so it becomes O(n^2). If you scale an animal 10 times larger, the strength-to-weight ratio becomes 1/10 of what it was when small, and the legs can't support it. We always face these scale effects. ...omitted... For example, a database server that maintained well when 10 computers called might collapse without fail when 50 computers are added.

Moreover, like Java's POJO, there are concepts that everyone naturally knows but doesn't know the appropriate terms for, and these are very well organized in this book.

For example, I learned the appropriate term for sudden loads that frequently occur during actual development through this book.

When a group of servers applies sudden load all at once, this is called a dogpile.

Numerous Real Cases

This book vividly reveals anti-patterns, errors, and important operational content through various cases.

Particularly noteworthy is the case study in Chapter 6. Here, the author specifically unfolds actual error situations he directly experienced in timeline format. The tracking of issues that occurred during each holiday after service launch, the problems that occurred, and the process up to post-analysis create tension for readers.

Similar situations from my 10 years of development experience come to mind and make me sweat, making me wonder if this is a thriller.

Security

Security-related topics are divided into 10 sections in the book, with each section concisely summarized to about one chapter. These sections cover essential security content for actual service operation, and after reading this book, I got the impression that this content is very effectively compressed.

Silicon Valley Mantra

Software is eating the world. Either you disrupt the market or you get disrupted. Move fast and break things!

The above sentence is a famous mantra in Silicon Valley. After encountering this sentence in Chapter 16, the thought that came to mind was that if we replace software with artificial intelligence (AI), it would very appropriately reflect the state of modern technology. It was a passage that made me think deeply about the technological changes we will face in the future.

Impressive Content

I'm sharing below the topics I personally found impressive while reading the book:

  • Practical advice and warnings about microservices
  • Clarifying misunderstandings about DevOps team composition and roles
  • Innovative perspectives on programmable infrastructure
  • Deep insights into version-controlled URLs
  • Fail fast

Conclusion

  1. Since the 2nd edition came out in 2018, technologies that emerged afterward are not introduced.

  2. It has similar content to the book 'DevOps Handbook' I read last year, but this book covers a slightly more modern background, so it feels like a series.

  3. Also, this book mentions at the beginning that the target audience is intermediate level.

Since each chapter is actually enough content to be covered separately as one book, it's good to know that it briefly covers definitions and cases of each term and doesn't explain very deeply.

It's listed in the Must-read books section below. https://github.com/charlax/professional-programming?tab=readme-ov-file

📖 Release It!: this books goes beyond code and gives you best practices for building production-ready software. It will give you about 3 years worth of real-world experience.

"This review was written after receiving the book for Hanbit Media's <I am a Reviewer> activity."