Author:Kyle Brown, Bobby Woolf, Joseph Yoder
There are more applications running in the cloud than there are ones that run well there. If you’re considering taking advantage of cloud technology for your company’s projects, this practical guide is an ideal way to understand the best practices that will help you architect applications that work well in the cloud, no matter which vendors, products, or languages you use.
Tags
Support Statistics
¥.00 ·
0times
Text Preview (First 20 pages)
Registered users can read the full content for free
Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.
Page
1
(This page has no text content)
Page
2
List of Patterns Adapter Microservice How can the application take advantage of existing functionality without abandoning the microservices approach? Aggregate How do you tie together the groups of tightly related concepts and the values that belong within them in a subdomain? Anti-Corruption Layer How can we design the system so that the Bounded Contexts (BCs) can interact without being tightly coupled together? Application Database How should a cloud-native application store the data it uses so that it can run as a stateless application? Application Package What features of a computer language ecosystem are required to implement a Cloud Application? Backend Service How can multiple applications share the same reusable functionality? Big Ball of Mud What is the simplest possible architecture for an application that helps get something working quickly to get
Page
3
needed feedback? Bounded Context How do you clearly define the logical boundaries (edges) of a domain and subdomain(s) where particular terms and rules apply? Browser Application What is the easiest, most universal Client Application for any user that does not assume a specific hardware or software configuration? Client Application How can an end user take advantage of the services provided by an application running in the cloud? Cloud Application How can I build applications to take the maximum advantage of all the features of the cloud for the best future proofing and agility? Cloud Database How should a cloud-native application store data persistently in a cloud environment? Cloud-Native Architecture How can I architect an application to take maximum advantage of the cloud platform it will run on? Columnar Database How can an application most efficiently store data for performing analytics, such as in a data
Page
4
warehouse? Command-Line Interface How can an end user automate activities like bulk loads, bulk changes, or scheduled execution of activities using the services provided by an application running in the cloud? Command Query Responsibility Segregation (CQRS) How do you optimize throughput for query and updates by multiple clients that have numerous cross-cutting views of the data? Configuration Database How can a cloud service store its service state such that all of the nodes in the service can share and access the state? Containerize the Application How can an application be packaged to facilitate greater deployment density and platform portability? Data Module How can I align my data model with my application model so that both are easier to maintain and can evolve quickly? Database-as-a-Service How does an application have access to an Application Database?
Page
5
Dispatcher How can a client access a microservices application through a channel-specific service interface when the business functionality is spread across an evolving set of domain-specific APIs? Distributed Architecture How can I architect my application so that parts of it can be developed, deployed, and run independently? Document Database How can an application most efficiently store and retrieve data when the future structure of the data is not well known? Domain Event How do you model those aspects of a design that correspond to things that happen during the various scenarios encountered by the system? Domain Microservice How should a set of microservices in an architecture provide the business functionality for an application? Domain Service How do you model those operations within a subdomain that do not belong to a specific Entity or Aggregate? Event How do you represent a change in one component to be communicated to other components?
Page
6
Event API How can the reactive components in an event-driven architecture know what events to expect? Event Backbone How can reactive components receive the events they are interested in without being coupled directly to the event notifiers that generate the events? Event Choreography When a change occurs in one component, how can a variable number of other components react accordingly? Event Notifier How and when should a component announce changes to other components? Event Sourcing As an application’s state changes constantly and unpredictably due to evolving conditions, how can you audit the history that created the current state? Event Storming How do you get the stakeholders to understand and describe the elements and events around the domain and subdomain? External Configuration How can I build my application once and yet be able to deploy it to multiple environments that are configured differently?
Page
7
Extract Component How do you separate loosely related parts of the code in our monolith into distinct deployable units? Graph Database How can an application most efficiently store and retrieve interrelated data entities by navigating their relationships? Hairline Cracks How do you identify the areas within a monolith application that are candidate boundaries for microservices? Interaction Model How do you avoid mixing business and presentation logic inside your Client Application? Key-Value Database How can an application most efficiently store and retrieve independent data entities that are always looked up by the same key? Lift and Shift What is the simplest possible way to move an existing application to the cloud? Micro Frontend How do you avoid creating a monolithic Single-Page Application by placing too much functionality in a common front-end?
Page
8
Microservices How do you architect an application as a set of interconnected modules that can be developed independently? Mobile Application How do you provide the most optimized user experience on a mobile device and take advantage of the features that make mobile computing unique? Model Around the Domain How can you encourage stakeholders to explain enough of the domain requirements in a way that reveals the relevant capabilities for the application you are building? Modular Monolith How can I architect my application to make it easier to maintain and evolve quickly? Monolith to Microservice Proxy How can developers change the code in the monolith to access and use the functionality that was replaced with microservices? New Features as Microservices While strangling a monolith, how do you avoid adding new functionality to the monolith that will later have to be modernized into microservices? Pave the Road How can we encourage teams to move to the cloud and adopt these new technologies without letting each team go in their own direction and work at cross purposes?
Page
9
Playback Testing How do you ensure that the new microservices architecture maintains the same functionality as the old monolithic system, especially when the amount of detailed end-to-end application knowledge of the existing application may be limited? Polyglot Persistence How can an application store its Data Modules in the type of database that works best for the application’s data structure and how it accesses the data? Polyglot Development What computer language(s) should be used for implementing microservices? Public API How do you best enable third-party applications to interact programmatically with a Cloud Application? Reactive Component How can you construct an application that can react to events? Refactor the Monolith How can I make an existing application easier for multiple teams to maintain and able to run effectively in a multi-computer environment? Refactor then Extract How do we address coupling within the monolith to facilitate extraction into microservices?
Page
10
Relational Database How can an application store well- structured data that it needs to query dynamically? Replace as Microservice How can we move complex and important pieces of functionality that are tightly coupled in the monolith to microservices with minimal impact? Replicable Application How can an application run reliably on an unreliable platform and scale to handle greater client load the way the platform scales? Replicated Database How can a Cloud Database provide the same quality of service as a cloud-native application, with the same availability, scalability, and performance as the application? Repositories How do we address coupling within the monolith to facilitate extraction into microservices? Self-Managed Data Store How does a microservice store its state? Service API How should an application expose its functionality to clients that want to use the application?
Page
11
Service Orchestrator How does a microservice perform a complex task, one that is performed in multiple steps? Single-Page Application How do you design the front end of your application to provide the best mix of client responsiveness and server optimization? Start Small How can we start adopting cloud services and moving existing applications to the cloud or writing new applications for the cloud, possibly using microservices? Stateless Application How can an application support concurrent requests efficiently and recover from failures without losing data? Strangle the Monolith How can we replace a monolithic architecture with a microservices architecture while reducing overall risk? Transform Monolith into Microservices How do you keep the original monolithic system working while you substitute pieces of functionality with microservices over time? Virtualize the Application What is the simplest possible way to package an application so that it can easily be deployed to traditional IT or to the cloud?
Page
12
Web Form Application How do you build a user interface to provide basic functionality to the largest possible set of users using the largest possible set of devices and hardware? List of Supporting Patterns Application Services How can you protect the internals of a bounded context? Context Map How do you understand the relationships and boundaries between different domains within a complex system? Macro Service How can we extract larger internally entangled components from the monolith to implement with microservices? Repositories How do you mediate between an Aggregate’s entities and the persistent storage for their values? Ubiquitous Language How can adopting shared vocabulary minimize communication gaps between stakeholders for various domains and subdomains? Wrap the Monolith How do we decouple the monolith and new microservices from one another during the migration
Page
13
process?
Page
14
Praise for Cloud Application Architecture Patterns I’ve witnessed the authors’ deep understanding of software architecture for decades. Cloud Application Architecture Patterns distills that hard-won wisdom into a blueprint, a practical guide for building and modernizing applications in the cloud. From cloud-first thinking to microservices and event architecture design, this book is an essential resource for developers and architects navigating the complexities of modern software development. —Kerrie Holley, author of LLMs and Generative AI for Healthcare: The Next Frontier Years of knowledge on migrating and evolutioning complex, high-volume systems, distilled into an easy-to-digest format. If I had access to this material at the start of my career, many projects would have been far easier! —Diego Oliveira, software developer manager, Amazon
Page
15
This book has been an absolute pleasure to read. Cloud Application Architecture Patterns is exactly what I’ve been looking for to help level up my teams and tech leads. I’ll be recommending it for our tech book club later this year. —Michael Keeling, senior staff software engineer at Kiavi and author of Design It!: From Programmer to Software Architect These patterns give you a simple path to building cloud applications the right way. A valuable read for developers at any skill level. —Steve Berczuk, principal software engineer, Cambridge Mobile Telematics
Page
16
As someone who’s wrestled with the complexities of cloud application architecture, I can confidently say this book is a game-changer. Brown, Woolf, and Yoder have delivered a truly practical and insightful guide. It’s not just theory; it’s a roadmap. They expertly break down proven architectural practices, clearly explaining why certain choices are superior in the cloud. I particularly appreciated how they connected the dots between different technical decisions and adoption patterns, showing how they all fit into a cohesive strategy. Finally, a resource that empowers you to not just follow a template, but to intelligently chart your own course. If you’re serious about building efficient, robust cloud applications, this book is an absolute must-read. —William A Brown, CEO, CIO, architect, cloud application engineering, distinguished engineer emeritus, and coauthor of SOA Governance: Achieving and Sustaining Business and IT Agility
Page
17
This book will help architects to apply the right pattern in cloud architecture development, as well as application modernization and migration. —Elizabeth Koumpan, distinguished engineer, BPO CTO This is probably the most comprehensive book covering end- to-end cloud architecture that I have read. The chapters are easy to read and have a great flow. This will be my go-to playbook for years to come. —Jim Episale, IBM CIO chief integration and data architect, STSM
Page
18
This book belongs on the bookshelf of every software engineer and architect! It was written by three seasoned software experts, each with decades of practical, real-world experience. Unlike many vendor platform-centric publications, the authors are delightfully technology- neutral. The book covers everything one needs to architect and design modern cloud applications. The authors explain the principles and practices of cloud architecture using well- established architecture patterns. I strongly recommend this book for those developing new applications or migrating a legacy monolith to the cloud. —Dave Thomas, CEO, Bedarra Corporation This book is all about getting applications to work with the cloud, rather than in spite of the cloud. —Sam Newman, technologist, author of Building Microservices and Monolith To Microservices
Page
19
Cloud Application Architecture Patterns Designing, Building, and Modernizing for the Cloud Kyle Brown, Bobby Woolf, and Joseph Yoder Foreword by Sam Newman
Page
20
Cloud Application Architecture Patterns by Kyle Brown, Bobby Woolf, and Joseph Yoder Copyright © 2025 Kyle Brown, Bobby Woolf, and Joseph Yoder Enterprises. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com. Acquisitions Editor: Megan Laddusaw Development Editor: Melissa Potter Production Editor: Ashley Stussy Copyeditor: Piper Editorial Consulting, LLC
Comments 0
Loading comments...
Reply to Comment
Edit Comment