Cloud On-Demand Self-Service

The first of the essential characteristics that I want to cover is on-demand self-service. The definition from the NIST is, “A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.”

Cloud On-Demand Self-Service Example – AWS EC2 Walkthrough

The easiest way to describe this is to show you how it actually works, so let’s have a look at Amazon Web Services and I will automatically provision a virtual machine running in the AWS cloud. I’m here on the AWS console page and I’m going to sign in with my account.

Cloud On-Demand Self-Service

Then I’m going to click on the services button up in the top left and choose the EC2 service. That stands for ‘Elastic Cloud Computing’ and this is Amazon’s service where I can provision virtual machines.

AWS EC2 Service

I’m going to fire up a new virtual machine instance, so I’ll click on the Instances tab over on the left. Then click on the Launch Instance button.

AWS Launch Instance

This is going to take me through a wizard where I can configure all the settings for my virtual machine. With AWS you can actually sign up for a year’s worth of free service. The free option only allows you to provision the lower-end servers but it’s still a really good way to find out about cloud computing by practising it yourself. That’s what I’m doing here, I’ve signed up to a year’s worth of free service.

On the first page for my virtual machine it asks me what operating system I want to install. I’m going to choose Windows Server 2016 Base, which I can see is included in the free tier, so I’m not going to have to pay for this virtual machine.

AWS Windows Server

I select that and then on the next page it’s going to ask me how powerful I want this virtual machine to be, in terms of how many virtual CPUs it’s going to have and how much memory. I’m going to choose the free option here, which gives me one virtual CPU and 1 GB of memory.

AWS Instance Type

I click on Next to configure the instance details. Here it asks me how many instances that I want to configure, so this is very useful. If I wanted to spin up five new servers at the same time with the same settings, I could put five in here and it would let me do it all in one go. I only want one for this example.

I also specify how I want the networking to be configured. I could set up different network settings ahead of time where I could have different subnets. I can control the connectivity between my virtual machines by putting them in different subnets. Again I’m happy with just using the default subnet here.

Another option down at the bottom is the tenancy, I can choose either shared or dedicated. Shared means that this virtual machine is going to be running on underlying physical server hardware that can be shared with other customers. I’m Customer A, Customer B could also have virtual machines running on the same physical server.

If I chose dedicated, I’m guaranteed that it’s only my virtual machines that are on this physical server. I’d maybe do that if I had to for compliance reasons but that’s obviously going to be a more expensive option. So I’ll just choose shared in here and then I’ll click on Next.

AWS Instance Details

The next page is to Add Storage. In here it defaults to giving me 30GB for my Windows boot disk. I’m happy with that. I’ve also got options if I choose other types of storage about the kind of performance I’m going get. Again I’m just going to take the default here.

AWS Add Storage

I click on Next and it’s going to take me to the Tags page. This for if you’ve got a lot of virtual machines, you can put different tags (which are searchable) on them to organise them. I’ve just got one virtual machine so tags aren’t really relevant for me.

AWS Add Tags

I click on Next for the Security Group and this is where I can configure the firewall rules. This is a Windows server which I need to remotely manage so by default Remote Desktop traffic is allowed inbound. If I was going to run a web server on here for example I would also add another rule to allow incoming web connections on TCP port 80. I don’t need to do that for our example so again I’m going to just accept the defaults.

AWS Security Group

I then click on Review and Launch. It’s going to give me a summary page that shows me all of the different settings.

AWS Review

Then I can click on Launch. The next page is going to prompt me to create a key pair if I don’t already have one. I’ve got one already but let’s make a new one. So I’ll create a new key pair and I’ll give it a name, let’s just call this Demo and then download the key pair. When I initially connect to the virtual machine the first time for management purposes, I’m going to need to use this security key. I’ll show you how this works in a later post when we actually connect into this virtual machine.

AWS Key Pair

I’ll save the key pair file into my ‘downloads’ folder. With AWS it’s really important, do not lose that file because you can’t get it back again.

Then I click on Launch Instances and it’s going to create the virtual machine for me. In the background it’s configuring a virtual machine with all of my settings.

Cloud On-Demand Self-Service In Action

On the server (compute) side, it’s creating a virtual machine with the amount of vCPUs and memory I selected it. It’s also going to install the Windows operating system in there for me. It’s going to install that on a 30 GB boot drive because that’s what I selected for the storage and it’s going to configure my firewall rules as well.

On-Demand Self-Service Benefits

If you think about how this would work in a traditional deployment, you would have to physically get the server racked up and then the tasks would go to different IT teams to configure all of those different settings.

The server team would physically rack up the server, install the operating system, do the software patching and install any applications.

The networking team would configure the VLAN and IP subnet that the virtual machine is going to be in and also the firewall rules to allow the incoming RDP connection.

The storage team would provision the 30 GB boot disk and attach it to this particular server.

That would all take a lot of time and be done as individual manual tasks by the different teams.

You see when I do it in a cloud environment, I just use a really convenient web front end and everything is done for me automatically in the background. This doesn’t raise a ticket and then send it to somebody to do manually. Behind the web-based front end there’s automation software at the back end, which is talking to my server systems, to my networking systems and to my storage systems and is configuring everything automatically for me.

A benefits I get from this is the server is going to be up and running in less than 15 minute’s time. And because it’s all done automatically, it’s much easier for my IT staff. I didn’t need to have members of my IT department running around doing all of those time consuming jobs.

Okay, so you saw that we can have a virtual server or pretty much any other software service up and running in the cloud very quickly, usually in less than 15 minutes.

If we compare that with our traditional on-premises and Colo deployment models, it’s usually going to take at least a week to get a server up and running. The purchase needs to be approved and the server ordered. It then needs to be delivered. It needs to be physically racked up and cabled. The server team need to install and configure the operating system, patch the software and install the applications. The networking team need to configure switches, routers, and firewalls. The storage team need to configure the storage system and SAN switches. So that all takes a long time, often several weeks.

The lead time to get it up and running will be quicker if you’re provisioning a virtual machine rather than a traditional bare metal server but it still takes time for the different teams to manually complete their tasks.

So on-demand self-service is a big advantage of cloud computing. It lets us get our servers and our services deployed much more quickly than we could with the traditional models.

Comments

Popular posts from this blog

wordpress