Structure of the Book
The first part of this book explains the Serverless mindset. The Serverless mindset is a way of developing, deploying, and running software in which an organization retains the responsibility for building differentiated experiences for its customers and uses managed services for everything else. The key to the Serverless mindset is separating assets versus liabilities and differentiated versus undifferentiated capabilities. The book walks through several detailed technical examples of Serverless architectures. Many technologists take a narrow view of Serverless; these examples help explain the broader picture and value that Serverless delivers. The last chapter in Part I, “The Serverless Mindset,” addresses common objections to Serverless architectures and features several real-world case studies of Serverless in practice.
Part II compares Branch, the insurance company that I started in 2018, with the fictional Insureco, a representative enterprise insurance company. The goal of this part of the book is to give specific details on exactly how Branch handles all the intricacies of being a regulated, for-profit financial services company while being Serverless. This part also illustrates the massive benefits delivered over what might be considered a “best practices” enterprise today.
Part III tackles this question: “Okay, I buy all of this, but how can we get to Serverless from where we are now?” It considers the best metrics to use to align everyone across the business on how to measure success. It explains why the only viable method for making changes to existing systems is iterative replacement. Finally, it talks about continuing education and job retraining, which are critical parts of outsourcing functions that you no longer should have in-house.
Part III concludes with Chapter 11, “Your Serverless Journey,” which brings together everything that was previously discussed. It lays out a high-level set of observations on how generally to think about building serverless applications, as well as a tactical outline for how you can approach building serverless applications.
Finally, Part IV, “Appendixes,” and the companion website to this book feature a comprehensive listing of managed services, organized by category. Most people building software have no idea how much software developer time can be saved by leveraging managed services. Managed services can handle many functions of applications, from the core of an application, to authentication, search, image manipulation, customer communication, and even software development functions such as code review and testing. The directory provided herein gives examples and details that will help technologists and business leaders alike understand which services they can leverage today.