Why should you care about the Cloud?
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
Let me ask a question - how do you do your business on-premises?
CapEx vs OpEx
CapEx stands for Capital Expenditure. If you maintain one or more data centers you know all about provisioning that space, approaching adequate environments with redundant power and air conditioning the server rex, servers themselves and their redundancies. There is a lot of upfront cost.
What you’ll see in the Azure cloud, is that you move towards the operational expenditure model also called OpEx, where in your subscription you’re able to provide all the infrastructure you need and that takes care of so many additional benefits, not the least of which is that you don’t have to worry about all of the data center science, Microsoft takes care that for you. OpEx doesn’t hold a long-term commitment; when the consumer doesn’t need the resources, he can contact the service provider and terminate everything. Read
How old is your technology?
Technology is pretty expensive especially if you want to stay on the cutting edge. How do you keep up to date because as you know hardware needs increased technology every single day, it’s not particularly cheaper to do that on-premises!
After every 80 days, the previous hardware becomes obsolete in the market, a new hardware with new technology replaces the previous one. And if we’re doing all these things on premises then surely we can’t afford all these expenses. As Microsoft, AWS, Oracle are the huge cloud service providers, every single day thousands of devices replace the previous one. But if we just think about it to do it on premises, then surely we can’t do that, and I must say we can’t afford that.
How flexible is your Infrastructure?
If you maintain a line of business web applications, how well are you able to adapt to changing demands? If you have batch jobs that run every month, are you able to scale up your on-premises hardware to make those jobs run faster and more reliable?
And also again redundancy refers to tolerance, you may be subject to Service Level Agreement (SLA), Operational Level Agreement (OLA) and regulation of various types of industry regulations, compliance requirements with your government, where your business is located and so forth. Redundancy is to ensure uptime and availability, all of this is very expensive to manage on premises.
How well do you scale?
As I already said, you may have periods of high demand where you need to scale your compute power to balance load, for instance across multiple web servers whether these are physical web servers or virtual machines running on virtualization hosts. That kind of scaling agility is expensive to maintain in a single data center. But if your audience is worldwide, if you’re geographically distributed internally, how can you provide services in a way where the resources are placed geographically closest to those groups?
It is extraordinarily expensive to build this kind of scale yourself. That’s why the cloud computing concept was introduced where we all manage our resources and data in a better way. We make sure of the uptime availability of our resources.
Cloud Metaphor
We have the internet which represents the cloud and if you look up in the sky and you see the whole bunch of clouds, you don’t know what’s going on the other side of the cloud. There could be airplanes up there or satellites but you’ll never know and you probably don’t care on the ground. The way the cloud computing metaphor works is that you are paying for the subscription to a service provider. For example - Microsoft, in terms of Azure Eco System. You’re paying the provider to take care of redundancy and scale and maintaining all the backend plumbing in that environment.
And on the consumer side, you have the access method typically being a web browser that you can load on your computer, your desktop computer, your laptop etc. and consume those resources on the other side of the cloud.
If you’re an application developer, the same thing in that scenario as well -- you have a development environment on your workstation and you interact with servers on the other side of the cloud, the service provider side.
Elements of Cloud Computing Model
We have few major elements of the cloud computing mode.
- Elasticity
It refers to dynamically adjusting the infrastructure with service demand. It’s a short-term strategy. You may have some kind of traffic burst that overwhelms your on-premises environment and if you extend into the Azure cloud, you can handle those bursts by elasticizing or spreading out your workload.
- Scalability
It’s a more general term. And it is the long-term strategy.
We have vertical scale where you scale your virtual machines instances up and down dynamically. And in horizontal scaling you can respond to multiple instances of the server for load balancing.
- Pooling (Resource Pooling)
It refers to the Azure ability to give virtually unlimited compute storage and network power and they give it to you on ‘tap’ or on demand. Of course, there is cost behind it but it is so much easier and I think you’ll agree with me to do this with a line of PowerShell or .NET code or a few clicks on the mouse of the Azure portal as opposed to having all of the business meetings and signs off the required and provisioning new hardware on-prem.
Also the key to the cloud computing model is that you pay only for what you use.
- Provisioning
Specifically the notion of self service provisioning where in the cloud you don’t necessarily have to be full administrator to provision resources. You may have developers for instance who need to respond themselves to development paths that consist of the database server, web server or an application server and even though there are not any domain administrators, they can use self-service portal by a couple clicks of the mouse and they have the environment ready for their use.
Azure supports Role Based Access Controller (RBAC) which means the Azure administrator can delegated administration to a very granular degree.
Cloud Infrastructure and Delivery Model
There are different types of cloud infrastructure models.
- Public Cloud
- Private Cloud
- Hybrid Cloud
Public Cloud
The first cloud infrastructure model is the Public Cloud where all services exists in the internet. This is multi-tenancy, a good example would be the Azure cloud and Azure related services like Office 365. All you need to access those services in the internet connection, a web browser and the subscription to the service.
Private Cloud
It is opposite to the public. In this scenario, all the services exist in the private network. And if you’ve been an IT for a while, you might be thinking that you’re already maintaining the care and feeding your on-premises services for years but honestly speaking cloud scenario is different from on-premises scenario. Scaling up and scaling down involves a lot of expense to do in a private cloud scenario and increases your complexity greatly. Microsoft, you probably know has the System Center family from on-premises data center management but now Microsoft is developing Azure Stack and this is dealing with standardization of the cloud across public and private scenario. An Azure stack allows you bring down the cost of deployment and management and lets you focus your energy and funs on higher value services. (Azure Stack is the solution of private cloud, Microsoft Azure provides the private cloud to the companies on demand.)
Hybrid Cloud
Very common is the hybrid cloud which is a secure private connection between Azure and your on-premises environment and this is a very flexible way to do cloud infrastructure. You can setup for instances site to site VPN or you can have a dedicated connection that bypasses the internet, in Azure it is called ExpressRoute.
Cloud Delivery Models
There are 3 models and any cloud service provider must provide these 3 delivery models.
The big picture of these cloud models is
Now let’s deep dive into the details of these cloud models.
SaaS
Cloud Delivery Model starts with SaaS (Software as a Service). SaaS has the consumer/customer as the target and the example is the Microsoft ecosystem would be Office 365.
Office 365 is basically a complete application running on Azure at the backend. So we can say Office 365 is a software as a service application by Azure. Similarly we are all using Facebook a lot, Facebook itself is a SaaS model example. There is a huge private cloud running at the backend of Facebook. And these type of application can be easily used by any non-technical user. That’s why we say, SaaS targets consumers.
In SaaS, consumer/customer just use the application and at the backend everything is managed by the Cloud Provider.
PaaS
It is the Platform as a Service. It is targeted it to the developer, hosted application development environment in the Azure cloud. An example is Azure App Services.
In PaaS, you’re responsible only for the data and application. If any error occur in these 2 layers then you’ll be handle your own. And for the rest layers, Microsoft is responsible. As you’re using more resources at your end. So it is costly then SaaS.
IaaS
And then we have infrastructure as a service. The target here is the system administrator, and Azure VM is the product name play there.
This picture is just for understanding cloud delivery models by showing examples. We can also work with Microsoft Azure in IaaS model as well and in more convenient way than any other cloud.
This picture is telling us that there is no competitor in the world in
- IaaS model of Amazon Web Services
- PaaS model of Microsoft Azure
- SaaS model of Facebook
So again repeating this picture is just showing us the info of the winner of the competition, it doesn’t mean that we can’t work in IaaS on Microsoft Azure or can’t work on PaaS model with Amazon.
Notice one more thing, if we use SaaS we get less control over things. We normally just complete our all operations through GUI, we don’t get under the hood, we don’t even think about it like in Facebook. Everything is managed under the hood by the Cloud. We are just using it continuously.
As we move downward we get more control access, we can manage things on our own. And if we move upward then you’ll get less control over things. In SaaS, as you’re just using the application you’ll pay just for the application but in PaaS and in IaaS you’re using other services as well and managing on your own then you’ll pay more for that service.
In IaaS model, you’re managing 5 different layers your own. So you’re allocating more resources than any other model. So that’s why it is more costly and expensive.
Get Started With Azure
Now you might be thinking about how to get started with Azure. Go to azure, here you’ll see the big button for Start Free and you can sign up freely with $200 free credit for 12 months. You can apply to any Azure service.
Besides the public Azure trial, there are other ways as well to obtain the Azure credits e.g. Visual Studio Dev Essentials and if you're a student then you should start with azure for students
One important thing keep in mind, if you use the Azure services online and buy the different required instances by the Azure portal directly and pay with your credit card then you'll pay the amount which is mentioned there. You'll pay as a complete money. But if you buy Azure from your CSP (Cloud Service Provider) of Azure then it will be cheap for you then you're using from Azure portal directly. So the recommendation is find the Azure CSP near you first and then go ahead with Azure.
To complete the registration process you’ll need the Microsoft email id (Outlook, Hotmail) which you’re using across many Microsoft services.
Azure Regions
As you already know Azure is the Geo Distributed Public Cloud.
It shows generally available and coming soon regions in the world.
Remember
Azure region is actually a collection of data centers.
Now region and a data center are not in a one to one relationship. You can assume that if you’re using a particular region, you’re actually connected to the multiple data centers that are in-turn connected with very high speed low latency links.
One beauty of the region is you can geo distribute your application, you can create fall tolerance and load balancing by leveraging Azure traffic manager. You can also setup hot or warm standby disaster recovery sites using regions, they’re very flexible. In addition to the Azure public cloud, Microsoft also makes available government clouds. Government cloud users are available in many countries in the world including the US, Germany and China.
Explore Service Status and Regions
Every new Azure administrator, developer or architect should know about:
- Azure Status
Azure status is showing us in which regions the cloud hardware is working well and where it is in a warning or error state. The consumer can get an idea from Azure status and make a decision about in which region he/she can host his/her resources and how well they can manage it.
- Azure Regions
It’s important to think of that when you’re architecting an Azure solution, you need to know every Azure service is not available in every region. Here you’ll go throw each section of the Azure portfolio.
And here you’ll notice, some instance sizes (of products) aren’t available in some regions. So for that reason, it’s important for you to know about that.
Regions come into play in the Azure dashboard all the time e.g. if you want to create a new instance for a Resource Group (it is nothing but a container to organize your resources) or allocating a resource like web app, VM etc. azure will ask the location as well.
Regions provide a way for you to put your assets closer to your customers and also provide greater geo availability and disaster recovery options.
What We’ll Explore in This Series
We’ll explore this case study in this Azure infrastructure management series, take a look at this diagram. Let me tell you what we’ll build.
Here we have a Microsoft Azure subscription. We’ll create a resource group (a resource group is nothing but a top level container that super useful to organizing related assets). These could be tied to a cost center to a project. In this example, we’re tying the resource group to our IaaS. Incoming connections/request from the internet hit an Azure Elastic Load Balancer which distributes load. We have a Virtual Network that contains our actual services we’re hosting in. We’ll split it in N-tier application into 2 tiers. This could be any line of business application for which you’ve determined IaaS is the better fit than PaaS. We have the web tier with 2 availability sets, we have Windows VMs representing the web tier. Availability sets help us to obtain our uptime in availability SLA with Azure.
We also notice that there is an internal load balancer in software that distributes loads against those front end web service. The elastic load balancer is used outside, it could be used to load balance on multiple web tiers if you want to geo scale.
And in the backend data tier, these are separate subnets of course. Notice the web tier (.8) and data tier (.9), we have another availability set. This time our data tier uses linux VM, I want to make it clear that the VM infrastructure in Azure is pretty agnostic regardless of whether your workload needs to be Linux or Windows.
Lock icon represents Software Firewall called Network Security Group.
We’ll also include a third subnet for management and we could use this VM as a jump box as a way to quickly get into our Virtual Network and touch our various infrastructure service remotely.
Service Level Agreement (SLA)
SLA is nothing but an agreement between cloud provider and customer. This document fulfills the availability and uptime of the resources which the customer allocates on the cloud. SLA also documents the total usage of the resources and in which period of time customers can use this resource if there is any kind of time limit boundary for resources usage. If a customer use the resources more than he should then in such a scenario SLA agreement helps at both ends.
And if there is any kind of condition documented in SLA and customer doesn’t fulfill it then it specifies what kind of penalty and how much he’ll pay. These kind of things are there in SLA.
Setting Up Your Business in the Cloud
It’s a nice introduction to Azure related services that other Microsoft Public cloud services rely on the Azure backbone including:
- Dynamic CRM
- Intune
- Office 365
- OneDrive for business
Summary
Designing infrastructure and services for on-prem vs. the cloud is very different. Don’t make the mistake of thinking that if you have years of experience being an on-premises developer or systems administrator or systems architect that you'll immediately have those skills in the Azure cloud, it's wrong.
Here we’ve covered all the important stuff to start with Azure. Let’s get started with Virtual Machines in the next article.