Preface
What This Book is
What This Book is Not
Chapter 1: Case Study: Energence Co.
Managing Production and Distribution
Hardware and Software Infrastructure
Monolithic Software Solutions
Growth Opportunities and Objectives
Next Steps
Further Related Reading
Summary
Points to Ponder
Chapter 2: Microservices: What and Why?
Origins
Microservices Architecture in a Nutshell
Successful Implementation of Microservices
Orchestration and Choreography
Microservices Migration Plan for Energence
Breaking a Monolith into Modules
Breaking Modules into Sub-modules
Establishing Microservices Architecture Advantages and Gains with Microservices
Further Related Reading
Summary
Points to Ponder
Chapter 3: Architectural Challenges
Identifying and Classifying Challenges
AC1: Dispersed Business Logic
AC2: Lack of Distributed Transactions
Orchestrated Domains
Choreographed Domains
AC3: Inconsistent Dynamic Overall State
Challenges in Exchanging Data between Microservices
Problems with Sharding
AC4: Difficulty in Gathering Composite Data
AC5: Difficulty in Debugging Failures and Faults
AC6: The v2 Dread - Difficulty in Evolving
Further Related Reading
Summary
Points to Ponder
Chapter 4: Overcoming Architectural Challenges
Service Catalog
Sagas (Long-Running Transactions)
Ignoring Errors
Compensating Errors Inline
Compensating Errors Offline
Implementing Sagas
Maintaining Global States The Scenario of Dynamic Overall State
Intermittent-Peek Option
Always-Listening Option
Other Options and Larger Questions
Centralized View
Observability
Contract Testing
Further Related Reading
Summary
Points to Ponder
Chapter 5: Process Changes
Continuous Integration
Build and Integration Environments
Automated Testing
Performance Testing
Continuous Delivery Infrastructure as Cod
DevSecOps
Further Related Reading
Summary
Points to Ponder
Chapter 6: Cloudification - Strategy
Overall Setup for Microservices in Cloud
Networking and Connectivity
Regions and Zones
Compute
Integration
Databases and Traditional Datastores
Special-Purpose Datastores
Cost Analysis
Summary
Points to Ponder
Chapter 7: Cloudification - Core Concepts
Virtualization and Containerization
Container Orchestration
Service Meshes
Traffic Control
Establishing and Securing Communication
Building Overall Observability
Challenges and State of the Art of Service Meshes
FaaS, aka, Serverless
Storage and Integration Services
Storage Services
Integration Services
Further Related Reading
Summary
Points to Ponder
Chapter 8: Securing Microservices on Cloud
Securing Microservices
Reducing the Attack Surface
Securing Services
Securing Outgoing Communication
Securing Microservices on Cloud
API Gateways and Load Balancers
IAM of CSPs
Securing Inter-Service Communication
Processing Integrity
Trusted Binaries
Trusted Execution
Availability
DR-Disaster Recovery
Multi-region Solutions
About the Author: Chandra Rajasekharaiah has led multi-million dollar enterprise initiatives in cloud-based microservice development. For the past five years, he has also migrated giant enterprise monoliths to microservices-based applications on the cloud. He has more than 20 years of experience in the software engineering industry as a principal, enterprise architect, solutions architect, and software engineer. His experience includes multiple domains--retail, e-commerce, telecommunications, telematics, travel, electronic payments, automobile--and gives him a broad base to draw parallels, abstract problems, and create innovative solutions. He enjoys architecting, delivering, and supporting enterprise products.