Foreword
In this course, you will learn about the following topics:
Containers
Azure Kubernetes service
Azure App Services
Azure Container Instances
Azure Batch Services
Azure Service Fabric
Azure Container Registry
Containers
Containers
Containers are multiple isolated services that are run on a single control host
(underlying infrastructure) and they access a single kernel.
Container based virtualization is an OS-level virtualization method for deploying
and running distributed applications without launching an entire VM for each
application.
They isolate applications from one another.
Advantages of Containers
Improved portability
Better performance
Optimum RAM/disk space/cloud utilization
Suited for agile environment
Facilitates approaches such as micro services, continuous integration, and
delivery.
Eliminates environment inconsistancies
Microsoft provides containers as a service, which accelerates containerized
application development. This is called as Azure Container Service (ACS).
Keep reading to know more about ACS.
Azure Container Service
Azure Container Service
Azure Container Service (ACS) helps in managing, deploying and orchestrating the
containers.
Currently, ACS is available for standard A, D, DS, G, GS, F and FS series Linux
VMs.
It is used to manage Docker containers using any of the three orchestrators: Docker
swarm, DC/OS, and Kubernetes.
What is Container Orchestration?
Applications are made of individual containerized components (Microservices). They
must be organized at the networking level in order to run the application as
intended.
Organizing multiple containers in this way is called as container orchestration.
Azure Services
These are the six services provided by Azure for your container needs
Azure container registry
Azure container instance
Azure web app for containers
Azure batch
Azure service fabric
Azure Kubernetes service
You will be learning about all this in detail in the upcoming cards.
Azure Kubernetes Service
AKS helps in deploying, managing and maintaining Kubernetes applications with ease.
Azure handles the tasks like health monitoring once the container is deployed.
Azure Web Apps
Using Azure web app for containers service, you can point your web app to an image
in your container registry instead of deploying the application code to the web
app.
Azure Container Instance
Azure Container Instance enables you to create and manage Docker containers in
Azure.
With this service, you need not provision virtual machines or adopt a complex
orchestration service.
Azure Batch
Azure batch helps for running repetitive jobs in the containers
It helps in running large-scale batch jobs efficiently.
Azure Service Fabric
It is an application platform that simplifies building and deploying microservice
based applications.
It helps in providing scalable, agile, and reliable applications.
Azure Container Registry
Azure Container Registry stores your container images in a private Docker registry
enabling quick deployments.
Supports geo-replication of your images.
Uses the open source Docker CLI tools.
Interested in learning about the services and their advantages in detail. Then
proceed further.
Introduction to Kubernetes
Introduction to Kubernetes
Before proceeding to know about Azure Kubernetes Service. You have to know about
Kubernetes.
What is Kubernetes?
Kubernetes is an open source container orchestration system used for managing
containerized apps, scaling and automated deployment.
This is designed by Google and currently maintained by ***cloud-native computing
foundation (CNCF)***.
Azure Kubernetes Service
Azure Kubernetes Service
It simplifies the management, deployment, and operation of Kubernetes cluster with
ease.
By using AKS, you can offload the complexity to Azure.
It helps in scaling the resources on demand, provisioning, and upgrading without
taking the applications offline.
You will pay for the agent nodes that you are using within clusters, not for
masters and the service is free.
Create AKS Cluster
In this video, you are going to learn about how to create AKS cluster by using
Azure Power Shell and Azure CLI.
If you have trouble playing this video, please click here for help.
No transcript is available for this video.
Security and Identity Management
AKS cluster supports Role Based Access Control(RBAC) and it can also be configured
to integrate with Azure Active Directory (AAD).
RBAC -
It is used to provide access to network or computer resources based on the roles of
individual users.
AAD -
It is a cloud-based directory that permits a secure, identity management, and
multi-tenant management of the users.
Advantages of Kubernetes
Advantages of Kubernetes
Deploy and handle Kubernetes with ease
Deployment can be done via the portal, CLI, resource manager and Terraform.
Parameters like log aggregation and container health are visible to the user as a
part of AKS.
Scaling applications
You can scale your application with respect to the number of users.
The application performance is increased by routing the traffic to closest regions.
Advantages of Kubernetes
Advantages of Kubernetes
Security
Access to Kubernetes, clusters is given by azure active directory and user groups.
Custom virtual networks, Network policy enforcement, and Azure container network
interface (CNI) are used for communication in the container network.
Developing containerized applications.
You can repeatedly build, test and debug your containers by using CLI, Visual
Studio, Azure dev spaces or visual studio code.
Apps can be deployed in seconds with built-in HTTP routing.
Advantages
Advantages
Working with open source tools
Popular tools like Brigade, Helm and Draft can be used to automate the software
delivery pipeline.
Easily integrate Kubernetes by using SLA-supported Azure Services.
For example, CosmosDB, utilizing open service broker.
What is an Azure App Service?
What is an Azure App Service?
Azure app service web apps or web apps help you to host web apps, mobile backends
and REST APIs with the help of programming languages.
Supported programming languages are .NET, Java, .NET core, PHP, node.js, Python or
Ruby.
It helps in creating powerful cloud applications with the help of a fully managed
platform.
Explaining about Azure App Service
Are you ready to know some more features of Azure app services? Then play this
video.
If you have trouble playing this video, please click here for help.
No transcript is available for this video.
Hosting a Web App in Azure
In this video, you will learn how a web app is hosted in Azure app services.
Play
04:32
-06:52
Mute
Settings
Enter fullscreen
Play
If you have trouble playing this video, please click here for help.
No transcript is available for this video.
Uses of Web Apps
Uses of Web Apps
Multiple languages and frameworks
Web apps support multiple programming languages.
Power shell and other scripts or executables can be run as background services.
DevOps optimization
The DevOps flow can be optimized by using CI/CD pipeline.
Apps can be managed by using Azure power shell or cross-platform CLI.
Uses of Web Apps
Uses of Web Apps
Global scaling and high availability
You can scale applications according to the number of users.
The app can be stored in the Microsoft global data center so it provides high
availability.
Application templates
You can select from a list of application templates in an Azure marketplace like
Drupal and Joomla.
What is an Azure Container Instance?
What is an Azure Container Instance?
Azure Container Instances (ACI) helps to create and run containers in Azure without
the need of VMs and higher level services.
ACI is the easier and fastest way to run a container in Azure.
In the following cards, you will learn how to create and maintain container
instances.
Azure Container Instance
In this video, you are going to learn about how to create Azure container
instances.
If you have trouble playing this video, please click here for help.
No transcript is available for this video.
What can be Built by Using ACI?
Uses of ACI
Uses of ACI
Elastic Bursting with AKS
ACI provides fast and isolated compute to meet traffic which comes in spikes
without the need for managing the servers.
As the capacity in AKS is running out, additional PODs are added in ACI. This
process is done without any additional servers.
Uses of ACI
Uses of ACI
Building Event-driven applications
Join ACI with ACI Logic Apps connector, Azure lines, and Azure Functions to
assemble a strong framework which can flexibly scale out holders on request.
With Azure Container Instances, you can run complex assignments which are capable
of reacting to events.
Uses of ACI
Uses of ACI
Data Processing
ACI can be used for data processing where the source data is provided, organized,
and kept in a durable store like Azure Blob Storage.
When data is processed by using ACI, you can attain remarkable cost savings by per-
second billing rather than statically-provisioned VM's.
Benefits of Azure Container Instances
Benefits of Azure Container Instances
Focusing on running the containers
By running the applications in ACI, you can focus on designing and creating the
applications rather than the infrastructure on which it is running.
Increasing agility with containers on demand
Additional compute is provided for demanding workloads.
For example, with Virtual Kublet, ACI can be used to burst from AKS whenever
traffic comes in spikes.
Securing Applications
Applications are secured by using hypervisor isolation – It ensures that containers
are running in isolation without sharing the kernel.
Azure Batch
Azure Batch
It is used to run repetitive jobs using containers.
It helps to run large-scale and high-performance computing apps (HPC) efficiently
in the cloud.
Based on your requirements, you can add or remove compute resources and schedule
compute-intensive tasks.
About Azure Batch Services Overview
About Azure Batch Services Overview
Play
06:57
-09:59
Mute
Settings
Enter fullscreen
Play
If you have trouble playing this video, please click here for help.
No transcript is available for this video.
How it Works?
How it Works?
There are six steps for running a parallel workload by using the batch.
1.Upload input files and apps to your storage account.
Create a pool of batch nodes, jobs to run the workload on pool and tasks in the
job.
Before the execution of each task, the data is assigned to compute node. The task
is executed on assigned node.
The application communicates with the batch service over HTTPS and monitoring is
done continuously.
Once completed, the task result is uploaded to Azure storage or files can be
received directly to file system from compute node
When the monitoring task is finished the files can be downloaded for further
processing.
Job Types Under ABS
Job Types Under ABS
Essential but repeated tasks can be done by using ABS.
Let's consider a scenario where the organization decided to track the working hours
of employees in a month.
In this scenario, you can write a program and run it by using ABS.
Advantages
Advantages
Selecting Your OS and Tools
Batch provides features like stable administration system and job scheduling
independent of Windows server or Linux computes nodes.
Batch provides SDK and supports a wide range of dev tools like Python and Java
Scaling
Batch automatically scales depending on the traffic.
This can scale your applications to meet the deadlines and to manage costs.
Advantages
Advantages
Providing solutions as a service
Batch helps in processing jobs on demand rather than a predefined schedule. This
enables the customers to run jobs in clouds whenever they need.
You can manage the access to batch, control the resources they can use and make
sure that the requirements like encryption are met.
Monitoring helps in identifying the problems and gives a detailed report so that
you can track the usage.
Service
Before proceeding to know about Azure Service Fabric, you should know about
service.
What is a service?
A service is a set of code that usually solves at least one problem usually the
business problem.
Application development approaches
There are two approaches in which service-oriented architecture can be developed.
These are
Monolithic service
Microservice
Features of Microservice
Features of microservices:
Well defined API's - Using API’s every service can be called easily from another
service or utility.
Scalable – Since every service is independent of each other, they can be scaled
easily.
Graceful degradation - If a dependent service on which other services rely fails,
then appropriate customized error messages could be displayed.
Let us move on to understand about Azure Service Fabric which is a platform that
facilitates microservice applications.
What is Azure Service Fabric?
What is Azure Service Fabric?
Azure service fabric is a micro service application platform service that helps in
packing, deploying, managing scalable and reliable microservices.
It reduces the building and deploying of microservice based applications in Azure,
on-premises or in other clouds.
It helps the developers to focus on building and implementing feasible solutions
rather than dealing with infrastructure problems.
Microsoft uses Azure service fabric to run many cloud services like Azure SQL DB,
Event hubs and Skype for business.
More about Azure Service Fabric
In this video, you are going to learn more about Azure Service Fabric.
If you have trouble playing this video, please click here for help.
No transcript is available for this video.
Architecture of Azure Service Fabric
Architecture of Azure Service Fabric
To develop reliable and scalable applications, you need an Application Model and
APIs that are sitting on the top of a system which has a lot of subsystems.
Transport Subsystem
It provides secure point-to-point communication channels within service fabric
clusters and between service fabric cluster and clients.
Federation Subsystem
It helps in failure detection, stable routing, and leader election forming the
foundation of a unified cluster.
Reliability subsystem
It manages load balancing, failovers, and state replications that are needed by
highly available and reliable systems.
Architecture of Azure Service Fabric
Management subsystem
As the name suggests, it manages the full application for a lifetime including
services like managing app binaries; installing, updating and providing apps; and
managing applications health.
Hosting subsystem
It helps in managing application life cycles on the cluster node.
Communication subsystem
Communication subsystem gives a naming service to clients for discovering and
connecting to the service instances.
Testability subsystem
The idea of testing is advanced by the Netflix Chaos Monkey. The testability
subsystem can produce different failure scenarios to enable engineers to shake out
design and execution defects in the system.
Nodes and Clusters
Node:
Node is just a service fabric runtime process.
Service fabric cluster allows nodes of different capacities and configurations.
The nodes can communicate with eachother by using transport subsystems.
Cluster:
A cluster is an arrangement of nodes that are attached to form a highly accessible
and dependable environment for running apps and services.
Thousands of nodes can be maintained on a service fabric cluster.
Creating Cluster for Azure Service Fabric
In this video, you are going to learn about creating a cluster in Azure
Play
04:10
-07:50
Mute
Settings
Enter fullscreen
Play
If you have trouble playing this video, please click here for help.
No transcript is available for this video.
Security to Cluster
In this video, you are going to learn about how to add security to the cluster.
If you have trouble playing this video, please click here for help.
No transcript is available for this video.
Finalizing Cluster Creation
In this video, you are going to learn about finalizing the cluster creation.
If you have trouble playing this video, please click here for help.
No transcript is available for this video.
Deploy Azure Cluster
In this video, you are going to learn about deploy to an Azure cluster.
Play
00:00
-05:42
Mute
Settings
Enter fullscreen
Play
If you have trouble playing this video, please click here for help.
No transcript is available for this video.
Do You Know?
Azure Service Fabric is used by BMW due to its Rollback feature.
Source
Advantages of Azure Service Fabric
Fast time to market
One can focus on improving the code rather than dealing with infrastructure issues
which takes too much time.
Service orchestartion and container in same place
Benefits like cluster resource management, workload orchestration, and container
hosting are obtained.
IDE integration
You can select the IDE tool of your choice for building, testing, debugging and to
deploy service fabric applications.
Eg: Visual studio, Eclipse, Command line support.
Azure Container Registry
Azure Container Registry
It is a managed docker registry based on open-source docker registry 2.0.
It is a private registry on Azure platform that helps you in hosting container
images.
Docker contains a central registry to store all public images if the consumer
doesn’t prefer it then private registry can be chosen.
ACR is used to store and manage private docker container images.
More on Azure Container Registry
In this video, you are going to learn more about Azure container registry.
Play
06:48
-09:13
Mute
Settings
Enter fullscreen
Play
If you have trouble playing this video, please click here for help.
No transcript is available for this video.
Advantages Of ACR
Advantages Of ACR
Managing images for containers
Azure container registry enables you to store images for container deployments
including Kubernetes, DC/OS, Docker swarm and Azure services like service fabric,
App service, and Batch.
Managing a single registry between multiple regions
A single registry is replicated among multiple regions.
Geo-replication empowers you to handle global deployments as a single entity to
simplify tasks and management.
Advantages of ACR
Advantages of ACR
Keeping container images close
Minimize network latency and remove ingress/egress charges by maintaining your
docker registry in same data center where your deployments are made.
Extend registry functionality
Protect your images by verifying and managing access with the help of Azure active
directory.
Events are triggered based on actions of the container with the help of web hooks.
Hands-on scenario
You are employed as an Azure DevOps Engineer, and your company wants to run their
microservices applications on containers. This is to prevent managing of nodes in
VM scale sets and paying for infrastructure which may go unused. The company
decides to use virtual nodes with managed container instances. You have to create
Azure Container Instances with the following configurations. i) Kubernetes Service:
Region: East US, Node size: Standard Ds2 v2, Node count: 1, Integrations ->
Container monitoring: Disabled. ii) Azure Container Registry: Region: East US, SKU:
Basic. iii) Container instance: Region: East US, Image source: Quickstart images,
Container image: mcr.microsoft.com/azuredocs/aci-helloworld (Linux), Size: 2 vcpus,
4 GiB memory, 0 gpus. iv) App Services: Runtime Stack: .NET Core 3.1 (LTS),
Operating System: Windows, Region: East US, Size: F1 Shared infrastructure, 1 GB
memory. v) Batch Account: Region: East US.
Notes:
Use the credentials given in the hands-on to log in to the Azure Portal, create a
new resource group and use the same resource group for all resources. The
Username/Password/Services Name can be as per your choice, after completing the
hands-on, delete all the resources created.
Azure Containers Summary
Hope you enjoyed the course.
Now, let's list down the take away points from this course.
About containers
Azure Kubernetes service
Azure app
Azure Container Instances
Azure Batch Services
Azure Service Fabric
Azure Container Registry
Advantages of using Different containers