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?
Virtualization and on-premises technology
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.
Software as a service (SaaS)
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:
It's really that simple. You will then pay for what you use in terms of database size and data access. In a later section, you will see how to set up a Microsoft Azure account.
Platform as a service (PaaS)
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.
Infrastructure as a service (IaaS)
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:
Here, you simply enter your details; you can use your e-mail address as your username. Enter the credentials specified.
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:
In the preceding screenshot, you can see that I have two items listed: the Default Directory, which is there by default, and the Helpdesk SQL database that I created earlier in the chapter.
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:
Performance is measured in database throughput units (DTUs). These units provide a way to describe how the performance differs between the 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:
This is cloud-based big data. To quote from the Azure website:
"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.
Next, we have the Media Services option that allow you to stream video to a range of devices, and we also have the service bus, which is a cloud-based messaging system:
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.
Visual Studio Online is exactly what it says; Microsoft's online offering of Visual Studio. Then, we have Cache Services and BizTalk. The following quote describes what the caching services offer:
"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.