0%

With the immense cost savings and scalability the cloud provides, the rationale for building cloud native applications is no longer in question. The real issue is how. With this practical guide, developers will learn about the most commonly used design patterns for building cloud native applications using APIs, data, events, and streams in both greenfield and brownfield development.

You'll learn how to incrementally design, develop, and deploy large and effective cloud native applications that you can manage and maintain at scale with minimal cost, time, and effort. Authors Kasun Indrasiri and Sriskandarajah Suhothayan highlight use cases that effectively demonstrate the challenges you might encounter at each step.

  • Learn the fundamentals of cloud native applications
  • Explore key cloud native communication, connectivity, and composition patterns
  • Learn decentralized data management techniques
  • Use event-driven architecture to build distributed and scalable cloud native applications
  • Explore the most commonly used patterns for API management and consumption
  • Examine some of the tools and technologies you'll need for building cloud native systems

Table of Contents

  1. Preface
    1. Conventions Used in This Book
    2. O’Reilly Online Learning
    3. How to Contact Us
    4. Acknowledgments
  2. 1. Introduction to Cloud Native
    1. What Is Cloud Native?
    2. Designed as a Collection of Microservices
    3. Use Containerization and Container Orchestration
    4. Automate the Development Life Cycle
    5. Dynamic Management
    6. Methodology for Building Cloud Native Apps
    7. Designing the Application
    8. Developing the Application
    9. Connectivity, Compositions, and APIs
    10. Automating the Development, Release, and Deployment
    11. Running in a Dynamic Environment
    12. Control Plane for Dynamic Management
    13. Observability and Monitoring
    14. Design Patterns for Building Cloud Native Apps
    15. Communication Patterns
    16. Connectivity and Composition Patterns
    17. Data Management Patterns
    18. Event-Driven Architecture Patterns
    19. Stream-Processing Patterns
    20. API Management and Consumption Patterns
    21. Reference Architecture for Cloud Native Apps
    22. Summary
  3. 2. Communication Patterns
    1. Synchronous Messaging Patterns
    2. Request-Response Pattern
    3. Remote Procedure Calls Pattern
    4. Summary of Synchronous Messaging Patterns
    5. Asynchronous Messaging Patterns
    6. Single-Receiver Pattern
    7. Multiple-Receiver Pattern
    8. Asynchronous Request-Reply Pattern
    9. Summary of Asynchronous Messaging Patterns
    10. Service Definition Patterns
    11. Service Definitions in Synchronous Communication
    12. Service Definition in Asynchronous Communication
    13. Technologies to Implement Synchronous Messaging Patterns
    14. RESTful Services
    15. GraphQL
    16. WebSocket
    17. gRPC
    18. Summary of Synchronous Messaging Technologies
    19. Technologies to Implement Asynchronous Messaging Patterns
    20. AMQP
    21. Kafka
    22. NATS
    23. Testing
    24. Security
    25. Observability and Monitoring
    26. DevOps
    27. Summary
  4. 3. Connectivity and Composition Patterns
    1. Connectivity Patterns
    2. Service Connectivity Pattern
    3. Service Abstraction Pattern
    4. Service Registry and Discovery Pattern
    5. Resilient Connectivity Pattern
    6. Sidecar Pattern
    7. Service Mesh Pattern
    8. Sidecarless Service Mesh Pattern
    9. Technologies for Implementing Service Connectivity Patterns
    10. Summary of Connectivity Patterns
    11. Service Composition Patterns
    12. Service Orchestration Pattern
    13. Service Choreography Pattern
    14. Saga Pattern
    15. Technologies for Implementing Service Composition Patterns
    16. Summary of Service Composition Patterns
    17. Summary
  5. 4. Data Management Patterns
    1. Data Architecture
    2. Types and Forms of Data
    3. Data Stores
    4. Relational Databases
    5. NoSQL Databases
    6. Filesystem Storage
    7. Data Store Summary
    8. Data Management
    9. Centralized Data Management
    10. Decentralized Data Management
    11. Hybrid Data Management
    12. Data Management Summary
    13. Data Composition Patterns
    14. Data Service Pattern
    15. Composite Data Services Pattern
    16. Client-Side Mashup Pattern
    17. Summary of Data Composition Patterns
    18. Data Scaling Patterns
    19. Data Sharding Pattern
    20. Command and Query Responsibility Segregation Pattern
    21. Summary of Data Scaling Patterns
    22. Performance Optimization Patterns
    23. Materialized View Pattern
    24. Data Locality Pattern
    25. Caching Pattern
    26. Static Content Hosting Pattern
    27. Summary of Performance Optimization Patterns
    28. Reliability Patterns
    29. Transaction Pattern
    30. Summary of Transaction Reliability Pattern
    31. Security: Vault Key Pattern
    32. How it works
    33. Summary of the Vault Key Pattern
    34. Technologies for Implementing Data Management Patterns
    35. Relational Database Management Systems
    36. Apache Cassandra
    37. Apache HBase
    38. MongoDB
    39. Redis
    40. Amazon DynamoDB
    41. Apache HDFS
    42. Amazon S3
    43. Azure Cosmos DB
    44. Google Cloud Spanner
    45. Summary of Technologies
    46. Testing
    47. Security
    48. Observability and Monitoring
    49. DevOps
    50. Summary
  6. 5. Event-Driven Architecture Patterns
    1. Event-Driven Architecture
    2. Exactly Once Processing
    3. Message Broker Categories
    4. CloudEvents
    5. Event Schema
    6. Event-Delivery Patterns
    7. Producer-Consumer Pattern
    8. Publisher-Subscriber Pattern
    9. Fire and Forget Pattern
    10. Store and Forward Pattern
    11. Polling Pattern
    12. Request Callback Pattern
    13. Summary of Event-Delivery Patterns
    14. State Management Patterns
    15. Event Sourcing Pattern
    16. Summary of State Management Pattern
    17. Orchestration Patterns
    18. Mediator Pattern
    19. Pipe and Filter Pattern
    20. Priority Queue Pattern
    21. Summary of Orchestration Patterns
    22. Technologies for Event-Driven Architecture
    23. Apache ActiveMQ
    24. RabbitMQ
    25. Amazon SQS
    26. Amazon SNS
    27. Azure Event Grid
    28. Azure Service Bus Queues
    29. Google Cloud Pub/Sub
    30. Summary of Message Broker Technologies
    31. Testing
    32. Security
    33. Observability and Monitoring
    34. DevOps
    35. Summary
  7. 6. Stream-Processing Patterns
    1. What Is a Stream?
    2. What Is Stream Processing?
    3. Streaming Data Processing Patterns
    4. Transformation Pattern
    5. Filters and Thresholds Pattern
    6. Windowed Aggregation Pattern
    7. Stream Join Pattern
    8. Temporal Event Ordering Pattern
    9. Machine Learner Pattern
    10. Summary of Streaming Data Processing Patterns
    11. Scaling and Performance Optimization Patterns
    12. Sequential Convoy Pattern
    13. Buffered Event Ordering Pattern
    14. Course Correction Pattern
    15. Watermark Pattern
    16. Summary of Scaling and Performance Optimization Patterns
    17. Reliability Patterns
    18. Replay Pattern
    19. Periodic Snapshot State Persistence Pattern
    20. Two-Node Failover Pattern
    21. Summary of Reliability Patterns
    22. Technologies
    23. Esper
    24. Siddhi
    25. ksqlDB
    26. Apache Spark
    27. Apache Flink
    28. Amazon Kinesis
    29. Azure Stream Analytics
    30. Google Dataflow
    31. Summary of Stream-Processing Technologies
    32. Testing
    33. Security
    34. Observability and Monitoring
    35. DevOps
    36. Summary
  8. 7. API Management and Consumption Patterns
    1. API Management Patterns
    2. API Gateway Pattern
    3. API Microgateway Pattern
    4. Service Mesh Sidecar as an API Gateway Pattern
    5. Technologies for Implementing API Management Patterns
    6. Summary of API Management Patterns
    7. API Consumption Patterns
    8. Direct Frontend-to-Microservices Communication Pattern
    9. Frontends Consuming Services Through API Gateway Pattern
    10. Backend for Frontends Pattern
    11. Summary of API Consumption Patterns
    12. Summary
  9. 8. Cloud Native Patterns in Practice
    1. Building an Online Retail System
    2. Product Catalog
    3. Order Management
    4. Order Tracking and Prediction
    5. Product Recommendations
    6. Customer and Partner Management
    7. Building the High-Level Architecture
    8. Building External APIs
    9. Connecting Services
    10. Performing Data Management
    11. Using Event-Driven Architecture
    12. Using Stream Processing
    13. Implementing Dynamic Management in a Cloud Environment
    14. Summary
  10. Index
3.140.186.241