Table of Contents....5
About the Authors....10
About the Technical Reviewer....11
Acknowledgments....12
Chapter 1: Introduction to Microservices and AKS....13
Introduction....13
The History of Distributed Computing....14
Client Server Model....14
Component Technology....16
Web Services....16
Service Oriented Architecture....17
What Are Microservices?....18
Monoliths vs. Microservices....19
Introduction to the Cloud-Native Architecture....23
How Business Benefits from Cloud-Native Applications....28
An Introduction to AKS and its Components....29
Container Images....32
The Cluster....32
The Control Plane....33
Deploying Apps and Workloads....33
Summary....35
Appendix....36
Chapter 2: Microservices: Architecting and Design Considerations....37
Introduction....37
Microservice Architecture Benefits....37
Deriving Business Value....39
Defining a Goal-Oriented, Layered Approach....40
Modularity....41
Cohesiveness....41
Interrelationships....42
Maturity Model for Microservice Architecture Goals and Benefits....42
Applying the Goal-Oriented, Layered Approach....43
Microservices Design....44
The Systems Approach to Microservices....45
Service....46
Solution....47
Process and Tools....47
Organization....47
Culture....48
Embracing Change....48
Standardization and Coordination....49
Standardizing Process....49
Standardizing Outputs....50
Standardizing People....51
Standardization Trade-Offs....51
A Microservices Design Process....52
Set Optimization Goals....52
Development Principles....53
Sketch the System Design....53
Implement, Observe, and Adjust....54
The Microservices System Designer....56
Goals and Principles....56
Goals for the Microservices Way....57
Reduce Costs....58
Increase Release Speed....58
Improve Resilience....59
Enable Visibility....59
Trade-Offs....59
Operating Principles....60
Netflix....60
Antifragility....60
Immutability....61
Separation of Concerns....61
UNIX....61
Suggested Principles....62
Do One Thing Well....62
Build Afresh....62
Expect Output to Become Input....63
Dont Insist on Interactive Input....63
Try Early....63
Dont Hesitate to Throw It Away....64
Toolmaking....64
Platforms....64
Shared Capabilities....65
Hardware Services....66
Source Code Management, Test, and Deployment....66
Data Storage....67
Service Orchestration....67
Security and Identity....67
Architectural Policy....67
Localized Capabilities....68
Culture....69
Aligning Your Teams....70
Fostering Innovation....70
Summary....72
Appendix....72
Chapter 3: Microservices Design Patterns....73
Introduction....73
Service Design....73
Microservice Boundaries....74
Microservice Boundaries and Domain-Driven Design....75
Its Only a Model....75
Bounded Context....76
Smaller Is Better....77
Ubiquitous Language....78
API Design for Microservices....78
Message-Oriented....79
Hypermedia-Driven....79
Data and Microservices....81
Shipping Company Example....82
Event Sourcing....83
System Model for Shipping Company....87
CQRS....89
Distributed Transactions and Sagas....91
Asynchronous Message-Passing and Microservices....92
Dealing with Dependencies....94
Pragmatic Mobility....97
System Design and Operations....100
Independent Deployability....100
Do You Need More Servers?....102
Microservice Architecture Is a Product of Its Time....103
Docker and Microservices....104
The Role of Service Discovery....106
The Need for an API Gateway....108
Security....108
Transformation and Orchestration....109
Routing....111
Monitoring and Alerting....112
Summary....113
Appendix....113
Chapter 4: Containers and Azure Kubernetes Services....114
Introduction....114
Containers....114
How Containers Solve This Problem....115
How Containerization Is Different from Virtualization....115
Using Docker....119
Installing Docker Desktop in Your Development Environment....121
Exploring the docker run Command....123
Running a Webserver....123
Viewing the Contents of the Web Page from the Terminal....124
Cleanup Processes....125
The Dockerfile....126
Use Entrypoint to Make the Greeter a Bit More Configurable....127
Use COPY to Launch a Simple Static Website....128
Monitoring Docker Containers and Docker Logs....129
Docker Exec: Run Commands Inside a Running Container!....129
Docker Inspect....130
Creating a Docker Hub Account and Connecting to It....130
Tagging and Pushing Your Image to the Registry....131
Using Kubernetes....132
Kubernetes Tooling and Setup....135
Summary....139
Appendix....139
Chapter 5: Securing and Monitoring Applications Running on AKS....141
Introduction....141
Security Concepts....142
Master Security....142
Node Security....143
Cluster Upgrades....144
Network Security....145
Kubernetes Secrets....145
Azure Kubernetes Service Checklist....147
Security Concepts: Conclusion....150
Monitoring Concepts....150
Container Insights....150
Azure Monitor Features....153
Summary....160
Chapter 6: CICD for AKS....161
Introduction....161
A Quick Look at DevOps....161
Goals of This Exercise....162
Creating Azure Kubernetes Service Using Azure Portal....163
Creating Azure Container Instance Using Azure Portal....172
Working with Visual Studio to Build the Sample Application....180
CICD with Azure DevOps....192
Summary....250
Index....251
Design and implement scalable microservices using Azure Kubernetes Services (AKS) and other Azure Services. This book will help you understand why and when to choose microservices as a solution for modernization and how to use Azure DevOps to implement CI/CD for deploying microservices.The book starts with an introduction to the evolution to microservices and AKS along with its components. You will learn design patterns to implement microservices on AKS and understand Kubernetes as a container orchestration platform. You will go through the common errors faced in AKS-based applications and ways to handle them. You will learn error handling tips and tricks and how to design for business continuity and disaster recovery. The book discusses things you should know related to security and monitoring when working with AKS-based applications. The book presents a practical approach to set up processes for CI/CD, such as building Build and release pipelines forAKS deployment using Azure DevOps.After reading this book, you will understand design considerations for designing scalable microservices and know how to implement the design through AKS.
IT professionals associated with cloud computing, especially with Microsoft Azure