In this post, we will dig deep into the details about the Azure Container Services . So to cover the complete topic , we need to go through the following topics in a piecemeal manner . So just relax and read further . In this post we will precisely cover the below-mentioned terms :
- Azure Kubernetes service
- Azure App Services
- Azure Container Instances
- Azure Batch Services
- Azure Service Fabric
- Azure Container Registry
What Is A Container In Azure ?
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 inconsistencies
Microsoft provides containers as a service, which accelerates containerized application development. This is called as Azure Container Service (ACS) .
What Is 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.
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
Now we will explore each of these services one by one in brief . Later we deep dive into the above services , so let’s proceed further .
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 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 Microservices 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.
Now its time to learn each of these in detail .
What Is Azure Kubernetes service ?
Before we learn about the Azure Kubernetes service ,it is indeed important to know what we mean by ‘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) .
Now let us understand the real Azure Kubernetes Services .
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.
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.
Why To Use Kubernetes ?
There are certain benefits of using 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.
You can scale your application with respect to the number of users. The application performance is increased by routing the traffic to closest regions.
Access to Kubernetes, clusters is given by Azure active directory and active 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.
Working with open source tools
Popular tools like Draft , Brigade etc can be used to automate the software delivery pipeline. Easily integrate Kubernetes by using SLA-supported Azure Services
What Is 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 .
Multiple languages and frameworks
Web apps support multiple support languages .
Power shell and other scripts or executables can be run as background services.
The DevOps flow can be optimized by using CI/CD Pipeline .
Apps can be managed by using Azure power shell or cross-platform CLI.
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.
You can select from a list of application templates in an Azure marketplace like Drupal and Joomla
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. So why we exactly need ACI (Azure Container Instance) .
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.Join ACI with ACI Logic Apps connector, Azure lines, and Azure Functions to assemble a strong framework that can flexibly scale-out holders on request.
With Azure Container Instances, you can run complex assignments which are capable of reacting to events.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.
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.
Applications are secured by using hypervisor isolation , where it basically ensures that containers are running in isolation without sharing the kernel.
What Is Azure Batch ?
It is used to run repititive 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.There are six steps for running a parallel workload by using the batch.
1. Upload input files and apps to your storage account.
2. Create a pool of batch nodes, jobs to run the workload on pool, and tasks in the job.
3. Before the execution of each task, the data is assigned to compute node. The task is executed on assigned node.
4. Application communicates with the batch service over HTTPS and monitoring is done continuously.
5. Once completed, the task result is uploaded to Azure storage or files can be received directly to file system from compute node
6. When the monitoring task is finished the files can be downloaded for further processing.
Why we need Batch ?
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
- Batch automatically scales depending on the traffic.
- This can scale your applications to meet the deadlines and to manage costs.
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.
What Is Azure Service Fabric ?
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.
Now let us explore the two most important application approaches .
There are two approaches in which service-oriented architecture can be developed. These are
- Monolithic service
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.
Now let us understand what is the meaning of Azure Service fabric .
Azure service fabric is a microservice 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.
To develop reliable and scalable applications, you need an Application Model and APIs that are sitting on the top of a system that 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.
Nodes and Clusters
Node is just a service fabric runtime process . Service Fabric cluster allows nodes of different capacities and configurations. The nodes can communicate with each other by using transport subsystems.
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.
What Is 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.
There are certain benefits to using ACR as follows :
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.
Hope you really liked this post , let me know in the comments section . Stay tuned for interesting stuff in this series .
Aric is a tech enthusiast , who love to write about the tech related products and ‘How To’ blogs . IT Engineer by profession , right now working in the Automation field in a Software product company . The other hobbies includes singing , trekking and writing blogs .