Mastering Windows Server 2016 Hyper-V

(Romina) #1

The main building block of the Microsoft Azure platform is Microsoft Azure
infrastructure services, which provides key capabilities to enable cloud-based hosting
of applications and data. Microsoft Azure has evolved, and so have the names of the
types of services and where they sit in the hierarchy. If you looked at Microsoft Azure
a year ago, the components would have seemed different from those I describe today.


The fundamental building block of everything is the virtual machine. This is the part
that runs the applications, which could be a website, custom middleware code, or a
legacy application. All of the compute capabilities are enabled through virtual
machines that vary in size. While virtual machines are directly accessible and used
with Microsoft Azure IaaS, other services such as PaaS, websites, networking, and so
on are also built using virtual machines, although they may not be visible to you. The
IaaS virtual machines are something I focus on in this chapter.


Many platform services have the benefit of enabling the user to step up a level and no
longer worry about virtual machines and rather focus on their application and service.
Examples include Web Apps and the Service Fabric in addition to Analytics services
like Machine Learning and Data Lake. As mentioned previously, a huge number of
services are offered under the Platform Services umbrella, and while the focus of this
chapter is IaaS, this should not be the first choice unless as an organization
maintaining virtual machines is appealing!


Microsoft Azure does not automatically scale instances of most IaaS roles, unlike
many PaaS solutions. For example, if you had five IaaS VMs and the instances were
running at full capacity, it would not add two more automatically. Instead, through the
Microsoft Azure website, it is easy to request additional instances of a role, which are
instantly deployed, or you can leverage Windows Azure Pack on premises, or you can
programmatically request new instances, allowing you to write your own autoscaling
functionality. If scaling is required for VMs, VM Scale Sets enable the automatic
creation of VMs, provided they are all identical, based on a single template. Then there
is the Fabric Controller itself. Microsoft Azure seems like magic. As a customer, I
deploy my application and Microsoft Azure spins up as many instances as I tell it to. I
can scale up or scale down at any time. My service is always available per the
Microsoft Azure 99.95 percent monthly service-level agreement (SLA), and the
operating systems and dependent services are constantly patched and tuned. This
magic is enabled by the Microsoft Azure Fabric Controller, which itself is a distributed
application running on Microsoft Azure that has a fabric agent running on all of the
virtual machines (except for those that are IaaS VMs) and hosts that make up the
Microsoft Azure Compute fabric. The Fabric Controller constantly monitors, and if it
sees a problem, it can spin up new instances of a role. If a request is made for more
instances of a role, the Fabric Controller creates the new instances and adds them to
the load balancer configuration. The Fabric Controller handles all patching and
updates (again, apart from those VMs that are IaaS VMs), and this is a key reason that
to be covered by the 99.95 percent SLA, you must deploy at least two instances of any
role placed in an availability set. The Fabric Controller will take down one instance to
patch, and then once it’s running again, it will take down the other. As you have more

Free download pdf