Cloud is a buzzword that has been bandied about the technology industry for the last few years, but what exactly does this mean. What does cloud mean for the people working in IT departments around the world? How will cloud affect the way you do your job, how you work, and what type of work you do? I guess these are questions that are yet to be answered fully, but in this book, we will try and give some meaning to the term cloud from a technology perspective, and then we will spend some time to take a look at the Microsoft's Azure cloud offering, and discuss some of the services you can get from Microsoft's cloud.
This chapter is intended to provide a grounding in some of the terminology associated with cloud computing, and then we will take a look at what we need to do in order to be able to work with Microsoft Azure and the services that Microsoft offers through this platform.
In this chapter, you will learn the following topics:
A definition of cloud computing
Cloud services terminology
An introduction to Microsoft Azure
The Wikipedia definition of cloud computing is as follows:
"Cloud computing is a computing term or metaphor that evolved in the late 1990s, based on utility and consumption of computer resources. Cloud computing involves application systems which are executed within the cloud and operated through internet enabled devices. Purely cloud computing does not rely on the use of cloud storage as it will be removed upon users download action. Clouds can be classified as public, private and [hybrid cloud|hybrid]."
If you have worked with virtualization, then the concept of cloud is not completely alien to you. With virtualization, you can group a bunch of powerful hardware together, using a hypervisor. A hypervisor is a kind of software, operating system, or firmware that allows you to run virtual machines. Some of the popular Hypervisors on the market are VMware ESX or Microsoft's Hyper-V. Then, you can use this powerful hardware to run a set of virtual servers or guests. The guests share the resources of the host in order to execute and provide the services and computing resources of your IT department. The IT department takes care of everything from maintaining the hypervisor hosts to managing and maintaining the virtual servers and guests. The internal IT department does all the work. This is sometimes termed as a private cloud.
Third-party suppliers, such as Microsoft, VMware, and Amazon, have a public cloud offering. With a public cloud, some computing services are provided to you on the Internet, and you can pay for what you use, which is like a utility bill. For example, let's take the utilities you use at home. This model can be really useful for start-up business that might not have an accurate demand forecast for their services, or the demand may change very quickly. Cloud computing can also be very useful for established businesses, who would like to make use of the elastic billing model. The more services you consume, the more you pay when you get billed at the end of the month. There are various types of public cloud offerings and services from a number of different providers. The TechNet top ten cloud providers are as follows:
Amazon Web Services
It is interesting to read that in 2013, Microsoft was only listed ninth in the list. With a new CEO, Microsoft has taken a new direction and put its Azure cloud offering at the heart of the business model. To quote one TechNet 2014 attendee:
"TechNet this year was all about Azure, even the on premises stuff was built on the Azure model"
With a different direction, it seems pretty clear that Microsoft is investing heavily in its cloud offering, and this will be further enhanced with further investment. This will allow a hybrid cloud environment, a combination of on-premises and public cloud, to be combined to offer organizations that ultimate flexibility when it comes to consuming IT resources.
The term cloud is used to describe a variety of service offerings from multiple providers. You could argue, in fact, that the term cloud doesn't actually mean anything specific in terms of the service that you're consuming. It is, in fact, just a term that means you are consuming an IT service from a provider. Be it an internal IT department in the form of a private cloud or a public offering from some cloud provider, a public cloud, or it could be some combination of both in the form of a hybrid cloud. So, then what are the services that cloud providers offer?
Most business even in today's cloudy environment has some on-premises technology. Until virtualization became popular and widely deployed several years ago, it was very common to have a one-to-one relationship between a physical hardware server with its own physical resources, such as CPU, RAM, storage, and the operating system installed on the physical server. It became clear that in this type of environment, you would need a lot of physical servers in your data center.
An expanding and sometimes, a sprawling environment brings its own set of problems. The servers need cooling and heat management as well as a power source, and all the hardware and software needs to be maintained. Also, in terms of utilization, this model left lots of resources under-utilized:
Virtualization changed this to some extent. With virtualization, you can create several guests or virtual servers that are configured to share the resources of the underlying host, each with their own operating system installed. It is possible to run both a Windows and Linux guest on the same physical host using virtualization. This allows you to maximize the resource utilization and allows your business to get a better return on investment on its hardware infrastructure:
Virtualization is very much a precursor to cloud; many virtualized environments are sometimes called private clouds, so having an understanding of virtualization and how it works will give you a good grounding in some of the concepts of a cloud-based infrastructure.
SaaS is a subscription where you need to pay to use the software for the time that you're using it. You don't own any of the infrastructures, and you don't have to manage any of the servers or operating systems, you simply consume the software that you will be using. You can think of SaaS as like taking a taxi ride. When you take a taxi ride, you don't own the car, you don't need to maintain the car, and you don't even drive the car. You simply tell the taxi driver or his company when and where you want to travel somewhere, and they will take care of getting you there. The longer the trip, that is, the longer you use the taxi, the more you pay.
An example of Microsoft's Software as a service would be the Azure SQL Database. The following diagram shows the cloud-based SQL databse:
Microsoft offers customers a SQL database that is fully hosted and maintained in Microsoft data centers, and the customer simply has to make use of the service and the database. So, we can compare this to having an on-premises database. To have an on-premises database, you need a Windows Server machine (physical or virtual) with the appropriate version of SQL Server installed. The server would need enough CPU, RAM, and storage to fulfill the needs of your database, and you need to manage and maintain the environment, applying various patches to the operating systems as they become available, installing, and testing various SQL Server service packs as they become available, and all the while, your application makes use of the database platform.
With the SQL Azure database, you have no overhead, you simply need to connect to the Microsoft Azure portal and request a SQL database by following the wizard:
Simply, give the database a name. In this case, it's called
Helpdesk, select the service tier you want. In this example, I have chosen the Basic service tier. The service tier will define things, such as the resources available to your database, and impose limits, in terms of database size. With the Basic tier, you have a database size limit of 2 GB. You can specify the server that you want to create your database with, accept the defaults on the other settings, click on the check button, and the database gets created:
With PaaS, you rent the hardware, operating system, storage, and network from the public cloud service provider. PaaS is an offshoot of SaaS. Initially, SaaS didn't take off quickly, possibly because of the lack of control that IT departments and business thought they were going to suffer as a result of using the SaaS cloud offering. Going back to the transport analogy, you can compare PaaS to car rentals. When you rent a car, you don't need to make the car, you don't need to own the car, and you have no responsibility to maintain the car. You do, however, need to drive the car if you are going to get to your required destination. In PaaS terms, the developer and the system administrator have slightly more control over how the environment is set up and configured but still much of the work is taken care of by the cloud service provider. So, the hardware, operating system, and all the other components that run your application are managed and taken care of by the cloud provider, but you get a little more control over how things are configured. A geographically dispersed website would be a good example of an application offered on a PaaS offering.
With IaaS, you have much more control over the environment, and everything is customizable. Going with the transport analogy again, you can compare it to buying a car. The service provides you with the car upfront, and you are then responsible for using the car to ensure that it gets you from A to B. You are also responsible to fix the car if something goes wrong, and also ensure that the car is maintained by servicing it regularly, adding fuel, checking the tyre pressure, and so on. You have more control, but you also have more to do in terms of maintenance.
Microsoft Azure has an offering. You can deploy a virtual machine, you can specify what OS you want, how much RAM you want the virtual machine to have, you can specify where the server will sit in terms of Microsoft data centers, and you can set up and configure recoverability and high availability for your Azure virtual machine:
With a hybrid environment, you get a combination of on-premises infrastructure and cloud services. It allows you to flexibly add resilience and high availability to your existing infrastructure. It's perfectly possible for the cloud to act as a disaster recovery site for your existing infrastructure. In the rest of this book, we will take a look at how you can work with Microsoft Azure's cloud platform to make use of its infrastructure, as a service offering, and also how you can combine it with your own internal infrastructure to build your own hybrid environment:
In order to work with the examples in this book, you need sign up for a Microsoft account. You can visit http://azure.microsoft.com/, and create an account all by yourself by completing the necessary form as follows:
Return to the Azure website, and if you want to make use of the free trial, click on the free trial link. Currently, you get $125 worth of free Azure services. Once you have clicked on the free trial link, you will have to verify your details. You will also need to enter a credit card number and its details. Microsoft assures that you won't be charged during the free trial. Enter the appropriate details and click on Sign Up:
Return to www.azure.microsoft.com, and you will now sign in to the portal using the credentials that you created in the previous step. Click on the Portal link at the top of the page, and log in with the credentials you created:
Once you have clicked on the Portal link, you will be prompted for your e-mail address. Enter the e-mail address that you have registered with Microsoft. You will then be prompted to enter your username and password and sign in. When you have successfully signed in, you will see the Azure portal screen. I'm on the All Items option, as shown in the following screenshot:
Under the All Items option, you have the website options. This is a SaaS offering where you can create and host a new site. There are some gallery options, so you can select an off-the-shelf website if you wish. The gallery includes many different options, including CMS, e-commerce websites, forums, and wikis. In theory, you could get a pretty powerful website up and running with very little effort.
Then, you have the Virtual Machines option; we will take a look at this in more detail throughout the course of the book. Currently, we don't have any virtual machines created. We will discuss all the options to create Azure virtual machines in a later chapter.
Mobile services allow you to integrate your mobile applications with the cloud, including storing your data in a SQL database.
Cloud services are again used in mobile app development. To quote from the Azure website:
"Develop, package, and deploy powerful applications and services to the cloud with Azure Cloud Services and the click of a button. Scale from 1 to 1000 in minutes. Once your application is deployed, that's it: From provisioning, to load balancing, to health monitoring, Azure handles the rest. Your application is backed by an industry-leading 99.95% monthly SLA."
Next, we have the SQL databases; again, this is a SaaS offering. If you want to create a SQL database, you can simply click on the create database option. Give your database a name. I'll call mine
DogsPantry, and select the subscription you want to use to pay for the databases. In your case, you will be using the free trial subscription that we created earlier. You then need to choose a service tier. This defines the limits that are imposed on your database in terms of performance. Unsurprisingly, here, the more performance you want, the more it will cost. There are three service tiers:
DTUs are a measure of CPU, memory, reads, and writes. In theory SQL code aside, the more DTUs you have, the more performance you get. With the Basic tier, you get five DTUs and a database size limit of 2 GB. The Sandard tier offers three levels within it: S0, S1, and S2; as the number increases, so does the DTUs and hence, the performance you get. The Premium tier also offers three levels: P1, P2 and P3. The P3 Premium level offers 800 DTUs, which, in theory, should offer you 160 times the performance compared to Basic and also allows you to have a database of up to 500 GB in size. This is 250 times the size of the maximum database in the Basic tier.
Then, you can choose the collation that you want and a new server for it to be deployed to. Then, you can specify a login ID and password, and there, you have your brandspanking new cloud-based database:
The next option in the portal is Storage. This is where you can create a cloud-based storage service for your elastic storage needs. Azure virtual machines make use of Azure storage, so we will take a look at this feature in more detail in the upcoming chapters. This storage can also be useful, for example, with SQL Server 2014, you can back up your database to Azure storage. This is where it stores your backup file.
HDInsight is Microsoft's cloud-based Hadoop offering:
"HDInsight is a Hadoop distribution powered by the cloud. This means HDInsight was architected to handle any amount of data, scaling from terabytes to petabytes on demand. You can spin up any number of nodes at anytime. We charge only for the compute and storage you actually use."
We won't be looking at this option in any detail in this book, but if you are working with the cloud and big data, this might be an option that might interest you. You also have the ability to work with machine learning and streaming analytics.
It can be used to connect just about anything. You can use it to connect on-premises technology to cloud-based resources. You can even use it to connect household appliances, such as your central heating system, to a device, such as a tablet or iPad.
"Azure Managed Cache Service provides a way for you to perform caching that helps you build fast, scalable applications in Microsoft Azure through a secure, dedicated cache. A secure, dedicated cache is created for you in the region of your choice and you have total control over the cache, guaranteeing isolation of your business critical data."
We will take a look at Recovery Services in more detail in Chapter 7, High Availability and Disaster Recovery for Azure Virtual Machines. However, this is the option we will use for site recovery services and backups, and this will play an important role in implementing a robust backup and recovery plan.
The Scheduler option will be used as a scheduling tool and is ideal for automating certain tasks to run at a specific time. This can include things, such as backup jobs, which we will discuss in Chapter 7, High Availability and Disaster Recovery for Azure Virtual Machines. The ability to create a virtual network allows you to expand your on-premises data center to the cloud, building hybrid IT environments and business applications.
Management services will be used to manage and monitor the cloud environment and the Azure-based Active Directory that can be integrated with your on-premises Windows Active Directory.
In this chapter, we looked at and discussed some of the terminology around the cloud. From the services offered to some of the specific features available in Microsoft Azure, you should be able to differentiate between a public and private cloud. You can also now differentiate between some of the public cloud offerings. Then, at the end of this chapter, we looked at some of the specific Microsoft Azure features and services.
In the next set of chapters, we will take a look specifically at how we can make use of some of these infrastructures and platforms as service offerings.