Developing Microservices Architecture on Microsoft Azure with Open Source Technologies (IT Best Practices - Microsoft Press)
β Scribed by Arvind Chandaka, Ovais Mehboob Ahmed Khan
- Publisher
- Microsoft Press
- Year
- 2021
- Tongue
- English
- Leaves
- 299
- Edition
- 1
- Category
- Library
No coin nor oath required. For personal study only.
β¦ Synopsis
Deliver microservices architecture, step-by-step: from defining business problems through development, deployment, and monitoring
Increasingly, organizations are modernizing application development by integrating open source technologies into a holistic architecture for delivering high-quality workloads to the cloud. This is a complete, step-by-step guide to building flexible microservices architecture by leveraging Microsoft Azure cloud services, together with key open source technologies such as Java, Node.JS, .NET Core and Angular. Through a realistic case study project, expert Microsoft engineers Ovais Mehboob Ahmed Khan and Arvind Chandaka guide you through every step of technical implementation required to achieve value: establishing end-to-end infrastructure, developing cloud-native applications, automating deployments, monitoring operations, and more.
Microsoft engineers Ovais Mehboob Ahmed Khan and Arvind Chandaka show how to:
- Define application features and business requirements, and map them onto microservices using modeling techniques
- Design microservices solution architecture that enables high-quality workloads
- Develop an application front-end, and build microservices with open source technologies
- Leverage Azure Kubernetes Services for Docker container orchestration
- Use various patterns to build reliable and resilient microservices
- Enforce microservices app security, and use Azure AD B2C for user authentication/authorization
- Establish an API gateway that provides a unified βfront doorβ to back-end microservices
- Set up continuous integration and deployment with Azure DevOps
- Monitor microservices with Azure Monitor and Azure Application Insights
About This Book
For everyone interested in developing microservices, including architects, engineers, and consultants
Will help IT professionals build new applications, modernize existing systems, migrate workloads, improve app management, and more.
β¦ Table of Contents
Cover
Title Page
Copyright Page
Dedication
Contents
Acknowledgments
About the authors
Foreword
Introduction
Chapter 1 Introduction to microservices
Our journey with microservices
Evolution of software architecture
Monolithic architecture
Service-oriented architecture (SOA)
Comparing monolith with microservices
SOA versus microservices
Monolith example
Microservices example
Databases in a monolithic architecture
Databases in microservices architecture
Micro front-ends
Core fundamentals of microservices
Benefits
Challenges
Moving forward with the microservices architecture, open source, and Azure
This bookβs goals
Summary
Chapter 2 Modeling microservicesβreal-life case study
Application requirements
Application features
Identity management and authentication scenarios
Auction management
Bid management
Payment management
Application flow
Decomposition principles
Decomposition strategies
Decomposition by business capability
Decompose by subdomain
Domain-driven design
Ubiquitous language
Bounded context
Domain categories
Online auction system decomposition based on DDD
Anti-patterns
Using monolith or a shared database with microservices
Unnecessary fine-graining of services to deeper subdomains
Establishing tight dependencies between code artifacts
Summary
Chapter 3 Build microservices architecture
Cloud-native applications
Main principles of cloud-native applications
Characteristics of cloud-native applications
Twelve-factor app methodology
The online auctioning system (OAS) architecture
Representation of Azure Kubernetes cluster nodes, pods, and services
Technologies used
Front-end technology
Technologies used for building microservices
Cloud technologies
Azure WebJobs
Azure Event Hubs
Azure API Management
Azure AD B2C
Azure Kubernetes Services
Azure Container Registry
Azure DevOps
Azure Application Insights
Azure Monitor
Distributed database architecture
Transactional data model
Transient data model
Polyglot persistent architecture
Patterns in distributed databases
Direct HTTP call
Aggregator pattern
Command query responsibility segregation
Summary
Chapter 4 Develop microservices and front-end applications
Developing microservices
Developing the auction service
Developing the bid service
Provision Cosmos DB in Azure
Create a bid service in the JavaSpring Boot framework
Developing a payment service
Developing an application front-end
Prerequisites
Creating a front-end application
Understanding the Angular project structure
Angular concepts
Developing a security module
Configuring environment files
Develop the create auction form
Developing an active auctions page
Developing a submit bid form
Summary
Chapter 5 Microservices on containers
Containers Overview
Docker as a container technology
Install Docker
Docker components
Docker commands
Linux versus Windows containers
Build Docker images
Containerize the auction service
Containerize the bid service
Containerize the payment service
Deploy images to Azure Kubernetes Services
Kubernetes architecture
Provision Azure Kubernetes Services
Provision the Azure Container Registry
Push services to ACR
Deploy services to AKS
Create a deployment object for OAS microservices
Create a service object for OAS microservices
Deploy a front-end application in the Azure App Service
Deploy the Kafka Listener Service as an Azure WebJob
Summary
Chapter 6 Communication patterns
Approaches to communication
Synchronous versus asynchronous communication
Request/response communication
Pub/sub communication
The best communication approach for microservices
Pub/sub communication technologies
Apache Kafka
Azure Event Hubs
RabbitMQ
Set up Kafka to establish pub/sub communication
Infrastructure setup
Setting up the producer: Adding Kafka support in the Java application
Setting up the Consumer: Develop Kafka Listener service with .NET Core Hosted Service
Summary
Chapter 7 Security in microservices
An overview of security and architectures
IaaS and PaaS architecture security
PaaS security
Zero-trust architecture
Authentication and authorization flows
Azure Active Directory B2C
End-to-end OAS security implementation
User perspective
Microsoft Authentication Library (MSAL)
Creating a tenant
Register your application
Configuration
User Flows
Summary
Chapter 8 Set up Azure API Gateway
Why do you need an API gateway?
Azure API Management
Key benefits of using Azure API Management
Set up Azure API Management
Configure APIs in Azure APIM
Working with policies and expressions
Strategies when using Azure API Management with Azure Kubernetes Services
Strategies to configure APIM with Azure Kubernetes Services
Summary
Chapter 9 Build and deploy microservices
Continuous integration and continuous deployment
Automating infrastructure through Infrastructure as Code
OAS Infrastructure as Code with Terraform
Build a pipeline or continuous integration
Deployment pipeline or continuous deployment
Building CI/CD pipelines for the OAS microservices
CI/CD pattern and best practices
Deployment patterns
The auction service build pipeline
Auction service deployment pipeline
A complete look at DevOps
Summary
Chapter 10 Monitoring microservices
Monitoring concepts and patterns
Log information
Azure Monitor
Azure Application Insights
Monitoring framework and best practices
Azure Application Insights configuration
Container Insights
Dashboards
Summary
Index
A
B-C
D
E-F-G-H-I-J-K-L-M
N-O
P
Q-R-S
T-U-V-W-X-Y-Z
π SIMILAR VOLUMES
<p><span>Proven best practices for success with every Azure networking service</span></p><p><span>For cloud environments to operate and scale optimally, their networking services must be designed, deployed, and managed well. Now, thereβs a complete, best-practice guide to doing just that. Writing fo
<p><span>Proven best practices for success with every Azure compute service!</span></p><p><span>Compute services are key to most Azure cloud solutions, but maximizing their value requires best-practice planning, design, deployment, and operations. Now, leading consultant Avinash Valiramani presents
<p><span>Proven best practices for success with every Azure monitoring and management service</span></p><p><span>For cloud environments to deliver optimal value, their monitoring and management services must be designed, deployed, and managed well. Leading cloud consultant Avinash Valiramani shows h
<p><span>Proven best practices for success with every Azure monitoring and management service</span></p><p><span>For cloud environments to deliver optimal value, their monitoring and management services must be designed, deployed, and managed well. Leading cloud consultant Avinash Valiramani shows h
<p><span>Proven best practices for success with every Azure monitoring and management service</span></p><p><span>For cloud environments to deliver optimal value, their monitoring and management services must be designed, deployed, and managed well. Leading cloud consultant Avinash Valiramani shows h