Professional Documents
Culture Documents
Shakeel Ahmad
Lectures 12
Contents
Persistent Use a virtual hard disk (VHD) for local Use Azure Disks for local storage for a single
storage storage for a single VM, or an SMB file node, or Azure Files (SMB shares) for storage
share for storage shared by multiple shared by multiple nodes or servers.
servers
Containers vs. VMs: What are the differences?
Feature Virtual machine Container
Load balancing Virtual machine load balancing moves Containers themselves don't move;
running VMs to other servers in a instead, an orchestrator can
failover cluster. automatically start or stop containers
on cluster nodes to manage changes
in load and availability.
Fault tolerance VMs can fail over to another server in If a cluster node fails, any containers
a cluster, with the VM's operating running on it are rapidly recreated by
system restarting on the new server. the orchestrator on another cluster
node.
Networking Uses virtual network adapters. Uses an isolated view of a virtual
network adapter, providing a little less
virtualization–the host's firewall is
shared with containers–while using
less resources
Why containers?
▪ While there are still many reasons to use VMs, containers provide a level of
flexibility and portability that is perfect for the multicloud world.
▪ When developers create new applications, they might not know all of the
places it will need to be deployed. Today, an organization might run the
application on its private cloud, but tomorrow it might need to deploy it on
a public cloud from a different provider.
▪ Containerizing applications provides teams the flexibility they need to
handle the many software environments of modern IT.
▪ Containers are also ideal for automation and DevOps pipelines,
including continuous integration and continuous deployment (CI/CD)
implementation.
What is continuous integration? What is continuous deployment?
Continuous integration is a software development process where developers integrate Continuous deployment is a strategy in software
the new code they've written more frequently throughout the development cycle, adding development where code changes to an
it to the code base at least once a day. Automated testing is done against each iteration application are released automatically into the
of the build to identify integration issues earlier, when they are easier to fix , which also production environment. This automation is driven
helps avoid problems at the final merge for the release. Overall, continuous integration by a series of predefined tests. Once new updates
helps streamline the build process, resulting in higher-quality software and more pass those tests, the system pushes the updates
predictable delivery schedules. directly to the software's users.
Managing containers for Multicloud
• Despite the many benefits of containers and the myriad use
cases where they are the best option, they do come with a few
challenges of their own.
• Large enterprise applications can include a massive number of
containers, and container management presents some serious
issues for teams.
• How can you have visibility on what is running and where?
• How do you handle crucial issues such as security and
compliance?
• How do you consistently manage your applications?
• Most businesses are turning to open-source solutions such
as Kubernetes, and Kubernetes is already running containers in
most situations for many organizations.