Architecting Cloud Native Applications
Book information
Description
Cover Title Page Copyright and Credits About Packt Contributors Table of Contents Preface Chapter 1: Understanding Cloud Native Concepts Establishing the context Rewiring your software engineering brain Defining cloud-native Powered by disposable infrastructure Composed of bounded, isolated components Scales globally Embraces disposable architecture Leverages value-added cloud services Welcomes polyglot cloud Empowers self-sufficient, full-stack teams Drives cultural change Summary Chapter 2: The Anatomy of Cloud Native Systems The cloud is the database Reactive Manifesto Turning the database inside out Bulkheads Event streaming Polyglot Persistence Cloud native database Cloud native patterns Foundation patterns Boundary patterns Control patterns Bounded isolated components Functional boundaries Bounded context Component patterns Data life cycle Single responsibility Technical isolation Regions and availability zones Components Data Accounts Providers Summary Chapter 3: Foundation Patterns Cloud-Native Databases Per Component Context, problem, and forces Solution Resulting context Example – cloud-native database trigger Event Streaming Context, problem, and forces Solution Resulting context Example – stream, producer, and consumer Event Sourcing Context, problem, and forces Solution Event-First Variant Database-First Variant Resulting context Example – database-first event sourcing Data Lake Context, problem, and forces Solution Resulting context Example – Data Lake consumer component Stream Circuit Breaker Context, problem, and forces Solution Resulting context Example – stream processor flow control Trilateral API Context, problem, and forces Solution Resulting context Example – asynchronous API documentation Example – component anatomy Summary Chapter 4: Boundary Patterns API Gateway Context, problem, and forces Solution Resulting context Example – CRUD service Command Query Responsibility Segregation (CQRS) Context, problem, and forces Solution Resulting context Example – inverse oplock Example – event sourced join Offline-first database Context, problem, and forces Solution Resulting context Example – offline-first counter Backend For Frontend Context, problem, and forces Solution Resulting context Example – Author BFF Example – Worker BFF Example – Customer BFF Example – Manager BFF External Service Gateway Context, problem, and forces Solution Outbound communication Inbound communication Resulting context Example – user authentication integration Summary Chapter 5: Control Patterns Event collaboration Context, problem, and forces Solution Resulting Context Example – order collaboration Event orchestration Context, problem, and forces Solution Resulting context Example – order orchestration Saga Context, problem, and forces Solution Resulting context Example – order collaboration with compensation Example – order orchestration with compensation Summary Chapter 6: Deployment Decoupling deployment from release Multi-level roadmaps Release roadmaps Story mapping Deployment roadmaps Task branch workflow Deployment pipeline Modern CI/CD npm Infrastructure as Code services Serverless Framework Zero-downtime deployment Blue-green deployment Canary deployment Multi-regional deployment Feature flags Versioning Synchronous API Database schema Asynchronous API Micro-frontend Trilateral API per container Summary Chapter 7: Testing Shifting testing to the left Test engineering Isolated testing Unit testing Component testing Transitive testing Integration testing Contract testing End-to-end testing Manual testing Example – end-to-end relay Submit order leg Order submitted leg Summary Chapter 8: Monitoring Shifting testing to the right Key performance indicators Real and synthetic traffic Real-user monitoring Synthetic transaction monitoring Observability Measurements Work metrics Resource metrics Events Telemetry Alerting Focus on recovery Performance Summary Chapter 9: Security Shared responsibility model Security by design Accounts as code Defense in depth Edge layer Component layer Data layer Encryption Data in transit Data at rest Envelope encryption Tokenization Domain events Disaster recovery Application security Federated identity management API gateway JWT assertion and filter patterns Regulatory compliance Summary Chapter 10: Cloud Native Application Design From monolithic to microservices and everything in between System design patterns Monolithic Client server Services Service-oriented architectures (SOAs) Microservices Why services matter Containers and serverless Containers and orchestration Registries Orchestration Container usage patterns Microservices with containers Hybrid and migration of application deployment Container anti patterns Serverless Scaling Serverless usage patterns Web and backend application processing Data and batch processing System automation Serverless anti patterns and concerns Development frameworks and approaches Summary Chapter 11: How to Choose Technology Stacks Cloud technology ecosystems Public cloud providers Independent software vendor (ISV) and technology partners Customer managed products Software as a Service Consulting partners Niche SI partners Regional SI partners Global SI partners Procurement in the cloud Cloud marketplaces Marketplace and service catalogs Cloud marketplace anti-patterns Licensing considerations Cloud vendor pricing models Example - AWS Lambda pricing Open source Cloud services Cloud services – vendor versus self-managed Self-managed approach Managed cloud services Vender lock-in Operating systems Windows versus Linux Do operating systems really matter any longer? Summary Chapter 12: Optimizing Cost Before the cloud Cloud cost view Cloud economics CapEx versus OpEx Cost monitoring Tagging best practices Cost optimization Compute optimization Storage optimization Serverless implications Cloud native toolkit Cloudability AWS Trusted Advisor Azure Cost Management Summary Chapter 13: Scalable and Available Introduction to the hyper-scale cloud infrastructure Always-on architectures Always-on – key architectural elements Network redundancy Redundant core services Monitoring Infrastructure as Code Immutable deployments Self-healing infrastructures Core tenets Service-oriented architectures and microservices Cloud-native toolkit Simian Army Docker Kubernetes Terraform OpenFaaS (Function as a Service) Envoy Linkerd Zipkin Ansible Apache Mesos Saltstack Vagrant OpenStack projects Summary Chapter 14: Amazon Web Services AWS' cloud native services (CNMM Axis-1) Introduction AWS platform – differentiators KRADL services AWS native security services Machine Learning/Artificial Intelligence Object storage (S3, Glacier, ecosystem) Application centric design (CNMM Axis-2) Serverless microservice API trigger Function Service Serverless microservice – sample walkthrough AWS Lambda function creation and configuration Configuring the Amazon API Gateway Setting up a Weather Service Account Testing the service Deploying the API Serverless microservice automation using AWS SAM SAM YAML template API definition Swagger file AWS Lambda code AWS SAM usage Automation in AWS (CNMM Axis-3) Infrastructure as code CI/CD for applications on Amazon EC2, Amazon Elastic Beanstalk CI/CD for serverless applications CI/CD for Amazon ECS (Docker containers) CI/CD for security services – DevSecOps Patterns for moving off monolithic application architectures to AWS native architectures Summary Chapter 15: Microsoft Azure Azure's Cloud Native Services (CNMM Axis-1) Microsoft Azure platform – differentiators Azure IoT Azure Cosmos DB Azure machine learning studio Visual Studio Team Services Office 365 Application Centric Design (CNMM Axis-2) Serverless microservice Serverless microservice – walkthrough Browser-based testing Command-line-based testing Automation in Azure (CNMM Axis-3) Infrastructure as code CI/CD for serverless applications CI/CD for Azure container service (Docker containers) Patterns for moving from monolithic application architectures to Azure native architectures Summary Chapter 16: Google Cloud Platform GCP's cloud-native services (CNMM Axis-1) Introduction Google Cloud Platform – differentiators Cloud AI Kubernetes Engine G Suite Application Centric Design (CNMM Axis-2) Serverless microservice Serverless microservice – sample walkthrough Automation in the Google Cloud Platform (CNMM Axis-3) Infrastructure as code CI/CD for serverless microservices CI/CD for container-based applications Patterns for moving off from monolithic application architectures to Google cloud native architectures Summary Chapter 17: What's Next? Cloud Native Application Architecture Trends Predictions for the next three years – what to expect in terms of cloud native architecture evolution Open source frameworks and platforms Increased abstraction from infrastructure services Systems will become smarter and AI/ML driven, starting with DevOps and moving on to NoOps Developers will natively develop new applications in the cloud, instead of first developing locally Voice, chatbots, and AR/VR-based interaction models will become prevalent, mainly powered by the cloud Cloud native architectures will expand beyond data centers to "things" Data will continue to be new "oil" The future of enterprises on the cloud New IT roles Summary Other Books You May Enjoy Index
Similar books
Architecting Cloud Native Applications
2019 · EPUB
Software Architecture Patterns for Serverless Systems: Architecting for innovation with event-driven microservices and micro frontends
2024 · PDF
Software Architecture Patterns for Serverless Systems: Architecting for innovation with event-driven microservices
2024 · EPUB
Software Architecture Patterns for Serverless Systems
2023 · EPUB
Herb Brooks: The Inside Story of a Hockey Mastermind
2010 · EPUB
Software Architecture Patterns for Serverless Systems
2021 · MOBI
Software Architecture Patterns for Serverless Systems: Architecting for innovation with events, autonomous services, and micro frontends
2021 · EPUB
Software Architecture Patterns for Serverless Systems: Architecting for innovation with events, autonomous services, and micro frontends
2021 · PDF