This is a
continuation of an article that describes operational considerations for hosting
solutions on Azure public cloud.
This article focuses on support for compute in Azure.
Compute
requirement of a modern cloud app typically involves load balanced compute
nodes that operate together with control nodes and databases.
VM
Scale sets provide scale, customization, availability, low cost and elasticity.
VM
scale sets in Azure resource manager have a type and a capacity. App deployment
allow VM extension updates just like OS updates.
Container
infrastructure layering allows even more scale because it virtualizes the
operating system. While traditional virtual machines enable hardware
virtualization and hyper V’s allow isolation plus performance, containers are
cheap and barely anything more than just applications.
Azure
container service serves both Linux and windows container services. It has
standard docker tooling and API support with streamlined provisioning of DCOS
and Docker swarm.
Azure
is an open cloud because it supports open-source infrastructure tools such as
Linux, ubuntu, docker, etc. layered with databases and middleware such as
hadoop, redis, mysql etc., app framework and tools such as NodeJS, java, python
etc., applications such as Joomla, drupal etc and management applications such
as chef, puppet, etc. and finally with devops tools such as jenkins, Gradle,
Xamarin etc.
Job
based computations use larger sets of resources such as with compute pools that
involve automatic scaling and regional coverage with automatic recovery of failed
tasks and input/output handling.
Azure
involves a lot of fine grained loosely coupled micro services using HTTP
listener, Page content, authentication, usage analytic, order management,
reporting, product inventory and customer databases.
Efficient Docker image deployment for intermittent low
bandwidth connectivity scenarios requires the elimination of docker pulling of
images. An alternative deployment mechanism can compensate for the restrictions
by utilizing an Azure Container Registry, Signature Files, a file share, an IOT
hub for pushing manifest to devices. The Deployment path involves pushing image
to device which is containerized. The devices can send back messages which are
collected in a device-image register. An image is a collection of layers where
each layer represents a set of file-system differences and stored merely as
folders and files. A SQL database can be used to track the state of what is
occurring on the target devices and the Azure based deployment services which
helps with both during and after the deployment process.
Resource groups are created to group resources that share
the same lifecycle. They have no bearing on the cost management of resources
other than to help with querying. They can be used with tags to narrow down the
interest. There is metadata stored about the resources and it is stored in a
particular region. Resources can be moved from one resource group to another or
even to another subscription. Finally, resource groups can be locked to prevent
actions such as delete or write by users who have access.
As with its applicability to many deployments, Azure
Monitor provides tremendous insight into operations of Azure Resources. It is
always recommended to create multiple application insights resources and
usually one per environment. This results in better separation of telemetry,
alerts, work items, configurations, and permissions. Limits are spread such as
web test count, throttling, data allowance etc. and it also helps with
cross-resource queries.
No comments:
Post a Comment