I’ve just finished reading excellent book Release It!: Design and Deploy Production-Ready Software
If you are involved or plan to be involved in developing any system that must be available 24 x 7 x 365 then you owe it to yourself to read this book.
The key ideas you should understand are:
- system will fail
- life of software only begins when you release it into production
With that in mind the book is a treasure trove of useful advices how to make your system scale and succeed in production.
The book resonates with my own personal experience in developing and maintaining critical Python application and many things that Michael Nygard describes I learned the hard way: blocked threads, socket timeouts, integration point failures and latency, asynchronous handling, caching, database growth and of course “cold shivers” you get when the system goes down.
While book is sprinkled with notes about Java related issues it’s nevertheless technology agnostic which makes it a valuable source of information for every developer.
It gets two thumbs up from me.