microsoft partner logo color
8245  Reviews star_rate star_rate star_rate star_rate star_half

App Modernization using Microservices and Kubernetes

This microservices course teaches learners the fundamental principles and techniques behind microservices architecture, app modernization, and how these concepts are applied using Azure services....

Read More
Course Code WA3340
Duration 2 days
Available Formats Classroom

This microservices course teaches learners the fundamental principles and techniques behind microservices architecture, app modernization, and how these concepts are applied using Azure services. Learners master designing and implementing microservices using Docker, Kubernetes, and Azure’s suite of tools for scalable cloud-native applications.

Skills Gained

  • Understand the transition from monolithic to microservices architecture.
  • Learn the core principles and practices of microservices.
  • Gain practical knowledge of designing and deploying microservices on Azure.
  • Understand the benefits and challenges of app modernization on the cloud.
  • Explore cost optimization strategies and performance considerations in cloud environments.

Prerequisites

  • Basic understanding of software architecture.
  • Familiarity with cloud computing concepts.
  • Some experience with containerization and cloud platforms.

Course Details

Setup Requirements

  • A computer with an internet connection.
  • A remove lab VM and an Azure account will be provided as part of the training.

Understanding Microservices Architecture

  • Traditional Monolithic Applications
  • Traditional Monolithic Architecture Example
  • Disadvantages of Monoliths
  • Architecture Modernization
  • What is a Microservice?
  • Monolithic vs. Microservices Example
  • Microservices Architecture Example
  • Microservices - Past, Present, and Future
  • How Many Services Should I Create?
  • Microservice - Polyglot Example
  • Principles of Microservices
  • Properties and Attributes of Microservices
  • Benefits of Using Microservices
  • Designing for Failure
  • Beware of Microservices Cons
  • In-Class Discussion

Microservices and RESTful Services

  • Understanding Services
  • Benefits of Creating Services
  • Many Flavors of Services
  • Understanding REST
  • Manipulation of Resources through Representations
  • Principles of RESTful Services
  • HTTP Methods
  • HTTP Status Codes
  • Related Standards: MIME
  • Anatomy of a URL
  • GET Method
  • Passing Parameters
  • HTTP Methods That Modify/Create Resources
  • POST Request Example
  • PUT Example - Update and Create
  • PATCH
  • SOAP Examples
  • A RESTful API for Tracking Video Games
  • What is gRPC?
  • REST vs. gRPC

Twelve-Factor Applications

  • Twelve-factor Applications
  • The Twelve Factors
  • Codebase, Dependencies, Backing Services
  • Config, Build, Release, Run
  • Processes and Microservice Port Binding
  • Concurrency and Disposability
  • Dev/Prod Parity
  • Logs and Admin Processes

Microservices and Domain-Driven Design

  • What is Domain-driven Design
  • Domain-driven Design Benefits
  • Exploring Layers in a DDD Microservice
  • Domain Layer, Repository Layer, and Service Pattern
  • Presentation Layer
  • .NET Example for Each Layer
  • Overall Class Diagram

App Modernization on Azure – The Bigger Picture

  • What is App Modernization
  • Benefits of App Modernization
  • Microservices and App Modernization
  • Azure Shared Responsibility Model
  • Cloud-native Transformation on Azure
  • App Modernization on Azure - Sample Application
  • Azure SQL Database and App Service Overview
  • Azure Redis Cache and Event Hub
  • Azure API Management

Understanding Azure App Service

  • What are an App Service and App Service Plan?
  • Selecting the App Service Plan OS
  • Azure App Service and Scalability
  • Improving Performance with Azure CDN
  • Authentication and Authorization
  • Azure AD Integration for Authentication
  • .NET Example for Authentication
  • Best Practices

Containerization and Docker Introduction

  • What is Containerization?
  • Containers vs Traditional Virtualization
  • Why Use Containers?
  • Docker Overview
  • Docker Command-line Basics
  • Starting, Inspecting, and Stopping Containers

Building Docker Images

  • Image Build Process and Dockerfile
  • FROM, RUN, COPY, ADD, and EXPOSE
  • Multi-stage Builds
  • Sample Dockerfile Examples for Java, .NET, Angular
  • .dockerignore and Running Commands in a Container

Azure Container Registry and Azure Container Instances

  • Azure Container Registry (ACR)
  • ACR Typical Workflow
  • Pushing Docker Images to ACR
  • Azure Container Instances (ACI)
  • Working with ACI
  • Deleting ACR and ACI Resources

Kubernetes Core Concepts

  • Kubernetes Overview and Architecture
  • Master, Nodes, Pods, Deployments
  • Services, Storage Volumes, Secrets
  • YAML Manifest and Resource Quota

Understanding Azure Kubernetes Service (AKS)

  • What is Azure Kubernetes Service (AKS)
  • AKS Architecture
  • Deploying an AKS Cluster
  • Sample Application Deployment
  • Kubernetes Services and Rolling Updates

App Modernization and Cost Optimization

  • Cost Optimization in Microservices Architecture
  • Performance, Cost, and Scalability Trade-offs
  • Azure Payment Models
  • Managed Services vs. IaaS
  • Azure App Service vs. AKS Pricing
  • Cost Management and Azure Budgets

Conclusion