Get familiar with the principles and techniques for designing cost-effective and scalable cloud-native apps with microservices Key Features ● Gain a comprehensive understanding of the key concepts and strategies involved in building successful cloud-native microservices applications. ● Discover the practical techniques and methodologies for implementing cloud-native microservices. ● Get insights and best practices for implementing cloud-native microservices. Description Microservices-based cloud-native applications are software applications that combine the architectural principles of microservices with the advantages of cloud-native infrastructure and services. If you want to build scalable, resilient, and agile software solutions that can adapt to the dynamic needs of the modern digital landscape, then this book is for you. This comprehensive guide explores the world of cloud-native microservices and their impact on modern application design. The book covers fundamental principles, adoption frameworks, design patterns, and communication strategies specific to microservices. It then emphasizes on the benefits of scalability, fault tolerance, and resource utilization. Furthermore, the book also addresses event-driven data management, serverless approaches, and security by design. All in all, this book is an essential resource that will help you to leverage the power of microservices in your cloud-native applications. By the end of the book, you will gain valuable insights into building scalable, resilient, and future-proof applications in the era of digital transformation. What you will learn ● Gain insight into the fundamental principles and frameworks that form the foundation of modern application design. ● Explore a comprehensive collection of design patterns tailored specifically for microservices architecture. ● Discover a variety of strategies and patterns to effectively facilitate communication between microservices, ensuring efficient collaboration within the system. ● Learn about event-driven data management techniques that enable real-time processing and efficient handling of data in a distributed microservices environment. ● Understand the significance of security-by-design principles and acquire strategies for ensuring the security of microservices architectures. Who this book is for This book is suitable for cloud architects, developers, and practitioners who are interested in learning about design patterns and strategies for building, testing, and deploying cloud-native microservices. It is also valuable for techno-functional roles, solution experts, pre-sales professionals, and anyone else seeking practical knowledge of cloud-native microservices. Table of Contents 1. Cloud-Native Microservices 2. Modern Application Design Principles 3. Microservice Adoption Framework 4. Design Patterns for Microservices 5. Cloud-Powered Microservices 6. Monolith to Microservices Case Study 7. Inter-Service Communication 8. Event-Driven Data Management 9. The Serverless Approach 10. Cloud Microservices - Security by Design 11. Cloud Migration Strategy Book title Inner title Copyright Dedicated About the Author About the Reviewer Acknowledgement Preface Coloured Images Piracy Table of Contents Chapter 1: Cloud-Native Microservices Introduction Structure Objectives Understanding the cloud native microservices Adopting cloud-native microservices Capability maturity level model Focus area: people, process and knowledge to achieve End-to-end accountability Focus area: technology and design maturity for enabling Zero-touch operations Play book for cloud-native microservices adoption Key principles of microservices Short case study 01: Snap on AWS What can we learn from this example? Short case study 02: Wynk Music App What can we learn from this example? The biggest challenges with microservices adoption Short Case Study 03: UPWARD, Inc. What can we learn from this example? Short Case Study 04: The Government of India Powers a Population-Scale Vaccine Drive What can we learn from this example? SWOT analysis for your application stack Short case study 05: IMDb Video Team Builds Strategies for the Future What can we learn from this example? Conclusion Chapter 2: Modern Application Design Principles Introduction Structure Objectives Modern application design requirements Availability Scalability Performance Observability Security Resiliency Cost optimization Portability, being cloud-agnostic Cloud-native AI/ML enabled DevOps delivery Sustainability The Twelve-Factor App methodology Code base Dependencies Configurations Backing services Build, release, run Processes Port binding Concurrency Disposability Dev/Prod parity Logging Admin processes Going beyond the twelve factors API first Security Conclusion Chapter 3: Microservice Adoption Framework Introduction Structure Objectives From monolith to microservices Breaking the monolith: Strategies for building a microservice design Organizing data into bounded contexts or domains Building resilient microservices: Techniques for handling failure and faults Monitoring microservices: Best practices for testing and debugging microservices Embracing continuous delivery with DevOps Enabling technologies for microservices Docker and microservices: Use cases for containerization Using Docker: Exploring the benefits of containerization Container orchestration with Kubernetes Advantages of using Kubernetes: Orchestration for scalability and availability Components of Kubernetes Alternatives to container orchestration: Other tools Microservices adoption using Domain Driven Design Domain-driven application decomposition steps Short case study 06: Insurance Claim Processing Using microservices correctly: Characteristics Short case study 07: Modernizes Architecture Using Microservices Using microservices correctly: Characteristics Conclusion Chapter 4: Design Patterns for Microservices Introduction Structure Objectives Design patterns for microservices Decomposition pattern Decompose by business capability Decompose by subdomain Decompose by transactions Decompose by service per team Bulkhead pattern for resiliency Sidecar pattern for service mesh Strangler pattern for legacy systems Integration pattern API gateway pattern for API management API aggregator pattern for composite services Gateway offloading pattern for performance Gateway routing pattern for traffic shaping Asynchronous messaging pattern for loose coupling Branch pattern for parallel processing Chained microservices pattern for sequencing Database management pattern Command Query Responsibility Segregator (CQRS) pattern for separation of concerns Database per service pattern for decoupling Shared database per service pattern for consistency Event sourcing pattern for auditing and reconciliation Saga pattern for long-running transactions Choreography saga pattern Orchestration saga pattern Observability pattern Health check API pattern for self-healing Log aggregation pattern for centralized logging Application metrics pattern for performance monitoring Audit logging pattern for compliance Exception tracking pattern for debugging Monitoring Vs microservices observability Cross-cutting concern pattern Blue-green deployment pattern for zero-downtime Canary pattern for incremental rollouts Canary Vs blue-green deployment pattern for deployment strategies Circuit breaker pattern for fault tolerance External configuration pattern for dynamic configuration Service discovery pattern for service registration and discovery Conclusion Chapter 5: Cloud-Powered Microservices Introduction Structure Objectives Data management design patterns Materialized view Sharding Valet key Design and implementation patterns Ambassador Anti-corruption layer Backends for Frontends Leader election Messaging design patterns Pipes and filters Priority queue Publisher-subscriber Queue-based load levelling Sequential convoy Reliability Compensating transaction Deployment stamps Geodes Throttling Conclusion Chapter 6: Monolith to Microservices Case Study Introduction Structure Objectives Transitioning from monolith to microservices architecture Monolithic to microservice design principle Challenges of legacy systems Strategies for updating legacy systems to microservices Migrating Travelguru application to microservices: A Case Study Case Study: Business Challenge Case Study: Solution Delivered for Microservices Migration Case Study: Technology Roadmap for Microservices Adoption Case Study: Application Transition to Microservices Architecture Case Study: Successful Database Migration to Microservices Case Study: Business Outcome of Microservices Migration Case Study: Best Practices Implemented in Microservices Migration Conclusion Chapter 7: Inter-Service Communication Introduction Structure Objectives Inter-Service communication Challenges of distributed systems Communication models Synchronous inter-service communication RESTful APIs Remote Procedure Calls (RPCs) gRPC Remote Procedure Calls Asynchronous Inter-Service communication Message brokers Message broker models Message broker software RabbitMQ Apache Kafka IBM MQ Azure service bus Amazon Simple Queue Service (SQS) Event-driven communication Publish-subscribe architecture Event-driven architecture Event sourcing Serialization Serialization formats Serialization libraries Best practices for serialization Service mesh Features of service mesh Tools/third-party products for service mesh Istio service mesh Idempotent operations Implementing idempotency Conclusion Chapter 8: Event-Driven Data Management Introduction Structure Objectives Event-driven data management and data governance Technologies for event-driven data management AWS Kinesis Google Cloud Pub/Sub Azure event grid Apache Kafka on Kubernetes Event sourcing and CQRS Event-based data replication Event-driven data integration Event-based data access control Event-based data lineage Data governance in microservices Data privacy and compliance Data Lifecycle Management Conclusion Chapter 9: The Serverless Approach Introduction Structure Objectives Understanding the serverless architecture Use cases for Function-as-a-Service (FaaS) Serverless framework Key features Function-as-a-Service platforms AWS Lambda Features of AWS Lambda Advantages of AWS Lambda Disadvantages of AWS Lambda Azure functions Features of Azure functions Disadvantages of AWS Lambda Google cloud functions Serverless approach and edge computing Serverless monitoring and logging Serverless monitoring and logging is provided by Azure monitor Serverless security Best practices for serverless microservices development Serverless microservices case studies Conclusion Chapter 10: Cloud Microservices -Security by Design Introduction Structure Objectives Cloud Microservices - Security by Design Authentication and access control Authentication and authorization mechanisms in cloud microservices Role-based access control (RBAC) Multi-factor authentication (MFA) Access control lists (ACLs) Communication security Data security Data security and encryption techniques for microservices Security of data in transit and at rest Immutable infrastructure Container security Monitoring and incident response Compliance and risk management Compliance and regulatory considerations Threat modeling Penetration testing Infrastructure security Threat detection and response Continuous security monitoring Conclusion Chapter 11: Cloud Migration Strategy Introduction Planning and executing a cloud migration strategy Structure Objectives Cloud migration goals Capex and Opex cost optimization Optimize resource consumption and dynamic elasticity Vendor and application consolidation Agility and innovation via DevOps, Multi-cloud, PaaS, AI/ML, IoT Scalability, flexibility, and global reach Reliability, availability, and security Customer experience and insights IT modernization and integration Reduce, consolidate, and retire the physical data center footprint Cloud migration principles Security first: Secure the network, protect the data, and control access Monitor and optimize workloads for cost Deploy infrastructure as code Make allocations match demand Automate and implement DevOps practices Training the staff for future mode of operations Leverage cloud-native services Cloud migration strategy Business goals and objectives Cloud service provider selection Data security and compliance Cost optimization Scalability and flexibility Legacy systems Change management Performance and reliability Governance Continuous improvement Migration strategy Migration plan Skills and training Performance and optimization Data management Vendor management Stakeholder communication Organizational change management Cloud migration life cycle strategy Assessment stage Per application assessment stage Planning stage Design stage Execution stage Testing stage Cutover stage Big Bang Cutover Phased Cutover Parallel Cutover Post cutover stage Conclusion Index Back title