Cloud computing technologies have brought significant changes to the IT landscape. In this video, you’ll learn about the differences between the service types and some of the advantages that come with implementing cloud-based services.
<< Previous Video: Virtual and 3D Printers Next: Cloud Services >>
We often make generic references to the cloud. But in reality, there are many different ways to configure your cloud-based applications. In this video, we’ll look at some of these cloud models.
One type of cloud model is infrastructure as a service or IaaS. You may see this sometimes referred to as hardware as a service or HaaS. This is a cloud model that provides you with all of the hardware that you might need to run your applications.
But you’re still responsible for installing those applications, perhaps even installing the operating system that’s going to run on those computers. And you also are in charge of managing all of that software and the data. Although the data is in the cloud, you’re the one who’s responsible for the security and the maintenance of all of that information.
One common implementation of infrastructure as a service is a web hosting provider. You purchase the hardware from that web hosting provider. But you’re responsible for installing the web hosting software and maintaining all of your websites.
Another popular cloud model is software as a service or SaaS. Software as a service is sometimes referred to as on-demand software. You log into a website and you immediately have access to the software. For example, a third party SaaS provider might provide you with email distribution or maybe all of your payroll services are done by logging into software as a service provided by a third party. And they handle all of the rest of the payroll process.
With software as a service, the application and the data are all maintained by the third party provider. This cloud-based provider is going to be responsible for the maintenance of the application, for keeping all of your data safe, and everything else associated with that application. This is usually a complete offering. There’s no development work that you would have to do. You simply log into the service and it’s available to you.
One common software as a service is Google Mail. You log into the Google Mail front-end, and all of the mail services are available to you. You don’t have to provide any programming or any maintenance of that data. Google handles everything from their end with software as a service.
A good middle ground between infrastructure as a service and software as a service is platform as a service or a PaaS. With platform as a service, you’re in charge of building your own application. But you don’t have to worry about any other aspect of the infrastructure. You don’t worry about the servers or the software or the data center. You can concentrate on building the application and have the platform as a service provider handle every other part.
This means that all of your applications are in the cloud. You don’t control the people managing those applications. You don’t control the hardware. You’re only responsible for putting together the development process for the application.
We often think of platform as a service as a series of building blocks. Instead of you building an entire application from the ground up, platform as a service gives you all of the modules that you need to put together to build your own application.
A good example of this is the platform as a service offerings available through Salesforce.com. Salesforce.com is a very popular software as a service offering. But they realized they could break that software as a service offering into different modules and allow you to put the modules together in a way that makes sense for your business. And so they not only provide their software as a service offering, but they also provide a platform as a service offering that gives you complete customization of your application.
There are different deployment models for cloud-based services. One is that you have all of your own components and you build your own private cloud. You would own all of the hardware in your own data center. And all of your cloud-based services would be virtualized in an environment that you control.
A public cloud deployment model is one that’s available to anybody on the Internet. If you’re using Amazon Web Services or Microsoft Azure, then you’re using a public cloud-based service. If you’re combining these models together, you might have some part of your cloud-based services running in a private data center and other aspects of your cloud-based service running in a public provider’s cloud.
In those scenarios, you would have a hybrid cloud. If you’d like to share the cost and resources associated with the cloud, you may want to get a group of organizations together to share that cost. That model is a community deployment model where many organizations can create a much larger cloud and then share those resources between the members of the community.
The cost of deployment of using an internal cloud or an external cloud are quite different. With an internal cloud, all of the resources that you’re using are yours and yours alone. You’re not sharing those resources with anyone else.
You also have to build your own cloud, which means you have to pay for everything upfront. You have to purchase all of the hardware and all of the networking structure in order to build out that cloud. Once you purchase the hardware, there’s no ongoing costs except for those associated with power and maintaining cooling in the data center.
With an external cloud, you’re sharing resources with everyone else is on that public cloud. But you don’t have to purchase any of this hardware. There’s no large upfront cost required in order to use the resources on an external cloud.
There is, of course, a cost to use the cloud. And those costs may be metered where you pay a certain amount per hour or there may be a large upfront cost that you use to be able to take advantage of that external cloud.
With metered cloud services, there can be a cost for almost anything you would do on that service. If you upload a file, there’s a cost. If you download a file, there’s a cost associated with that. If you store the file on that cloud service, there’s another cost associated with that. So depending on how your application works, you may want to look to see what type of metered costs would be associated with using that application in the cloud.
With non-metered services, you’re generally paying a flat cost over a certain amount of time. So you might have a flat cost to store files in the cloud. And you can upload or download that file as many times as you’d like. And you pay a flat fee.
Once we have an application running in the cloud, there are a number of unique characteristics that we can then associate with that application. For example, if we have an application that has a lot more use at the end of the month than the beginning of the month, we can change the number of resources available for our users.
For example, we may have an application that is very busy at the end of the month but is not very busy at the beginning of the month. So we might want to allocate more resources available to that application as the end of the month is approaching.
This is called rapid elasticity where we can scale up or scale down the application resources as needed. This is all done behind the scenes. And it’s invisible to the end users. All they know is the application works for them whether it’s the beginning of the month or the end of the month.
Another unique characteristic of these cloud based services is the ability to spin up a new server whenever you might need it. This is called on-demand self-service. We can add a new server, a new network, or a new application by clicking a few buttons.
We don’t have to purchase a new server or install it into the rack. Instead, we can spin up a virtual system in a matter of seconds. This allows instant resource provisioning. Somebody needs to have some services available, we can configure our cloud based services to make those services available in just a few moments.
One challenge, of deploying applications is you have to wait for hardware or software or the network to be available. But with a cloud-based service, we have on-demand self-service. We can click a few buttons and create a new server, a new network, or new application from these resources available in the cloud. This is a process that is near instantaneous. So we can click a few buttons and have a brand new application deployed to our users very, very quickly.
Cloud-based services also allow us to take advantage of resource pooling. Instead of purchasing many small servers and having some of those servers sit idle, we can instead purchase a very large piece of hardware, and then virtualize all those servers inside of that large hardware. That way we’re able to take advantage of idle times with one server by using those resources with another server.
Cloud-based services also allow us to measure every aspect of that application. We can see the bandwidth set in and out of the application. We know exactly the storage that’s being used for that application. We can measure how many people are using that application. And then we can build based on all of those different metrics.
So if you wanted to know exactly how much it was going to cost to be able to run a particular application, you can measure every aspect of it and have a very good idea of how much that application will cost.