This is a
continuation of an article that describes operational considerations for hosting
solutions on Azure public cloud.
This articles focuses on support for containers and Kubernetes
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 generally 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 fileshare, 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’s
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, workitems, 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