There are many different ways to deploy an application in the cloud. In this video, you’ll learn about Infrastructure as a Service (IaaS), Software as a Service (SaaS), and Platform as a Service (PaaS).
If you check online, there are thousands of different definitions of what the cloud might mean to someone. I’ve often heard people describe the cloud as computing devices that are simply located off site from where you happen to be. But the cloud incorporates so many more capabilities than that.
Take, for example, the deployment of new applications. Application instances usually involve a lot of different components and services all working together. So you can deploy a web server, a database server, an application server, and anything else you need to run that application with one click.
And it is now available to anyone in the world. If you have a very busy application that needs more resources, you can simply deploy more application instances to deal with that load. And when that load is decreased, you can remove any excess instances to perfectly size your particular application.
This application can also be deployed to anywhere in the world. You can have it in a data center that’s in the United States. You can deploy another application instance to Europe and yet another instance to Asia. You can move those application instances from one data center to another where you are effectively following the sun.
So as people need more access to that application, they can use a data center that’s closest to them. And from a cost perspective, this is a very efficient way to deploy an application. You don’t have to buy your own equipment. You don’t have to maintain your own data center. You can simply pay for time on someone else’s cloud-based system and pay for all of these resources as you need them.
Some organizations don’t go to a third party for cloud services. Instead, they purchase their own equipment and build their own cloud within their own data center. We commonly refer to this as a private cloud because it’s one that only that company has access to and it’s not one that’s designed to be shared with anyone else. Cloud services provided by Amazon, Microsoft, Rackspace, and others can be configured as public clouds so that you can deploy application instances that can be used by anyone in the world.
Some organizations might build application instances where part of the application instance is on their own private internal cloud and the other part of the application instance is managed at a third party, such as an Amazon or a Microsoft. That combination of using both a private and a public cloud is referenced as a hybrid cloud deployment. There might also be a situation where many organizations that have a similar goal might all chip in to purchase their own cloud equipment. This would give them the advantage of having a private cloud without the expense of purchasing all of the equipment just for this cloud. And so with a community deployment, all of those organizations can share in the overall cost.
There may be times when an organization has built their own application instance that includes databases, web servers, and other devices. In those situations, a company may only need the raw infrastructure to be able to load the software and deploy these cloud instances. If an organization only needs CPU storage and a network to be able to deploy this application instance, then they want to use infrastructure as a service or IaaS as their cloud deployment model. You’ll sometimes hear this referred to as hardware as a service or HaaS because you’re effectively buying time on someone else’s hardware and deploying your own software to that particular deployment.
In this type of cloud model, the end user is responsible for a large amount of the implementation. The cloud provider is effectively providing the hardware to run this application and in some cases, perhaps even the operating system. But everything else would be the responsibility of the end user. Because you as the end user are deploying this application, you’re also deciding how and where this data will be stored. So in the case of infrastructure as a service, you may have a bit more control and security over that data.
A good example of an infrastructure as a service deployment might be with a company that provides web services. So they would provide you with the server to be able to load the website. And you would be responsible for building and deploying the website content.
With infrastructure as a service, the end user is responsible for the application, the operating system, and everything in between. With software as a service or SaaS, the end user doesn’t have to deal with anything relating to the application or the operating system. There’s effectively no local installation required for any type of software. The end user can simply log in and manage an email distribution list, log in and manage their payroll or any other type of software as a service implementation.
This means the end user doesn’t have to worry about building their own application. They don’t have to deploy an application or update or manage that application. They don’t have to find a way to store the data or protect any of the data that might be there. Instead, the software as a service provider is the one responsible for maintaining the application, storing the data, and keeping all of that information safe.
So if you’re simply logging in to a website and using that application, it’s most likely software as a service. Good example of that might be Google Mail. You simply use your username and password.
And now an entire email system is available to you. You don’t store the data for the email. You don’t maintain the application. And you are not responsible for providing any type of ongoing maintenance of Google Mail. Google handles that entire process so that would be defined as software as a service.
Another good example of software as a service is Microsoft 365. The email, word processing, spreadsheets, and everything else relating to that cloud-based service is all managed by Microsoft. You simply log in and the entire application is available to you because it was deployed as software as a service.
The middle ground between infrastructure as a service and software as a service is platform as a service or PaaS. With platform as a service, someone else is providing you with a platform that you can use to build your own applications. So you would need your own development team, but someone else is providing you with all of the building blocks that you would need to put together every piece of that application.
So if someone is a provider of platform as a service, they may allow you to log in and give you a set of modules that you can put together to build your own app. So you might have a login page module, an inventory page module, and another page that allows people to check in or check out pieces of that inventory. You would be responsible for putting together all of those different modules and then placing them on the platform as a service so that you can then make that application available to others.
This service provider has built this platform so that you don’t have to do a lot of programming. Most of the hard work has already been done for you. You simply need to put together all of the modules you might need, and the platform as a service provider will take care of making sure that your data is safe.
A good example of a platform that gives you all of these building blocks that you can then put together to create your own application might be a platform like salesforce.com. Salesforce has an extensive platform as a service offering that gives you complete customization over the applications that you can easily deploy on their platform.
If you were planning to deploy these applications in your own data center on your own hardware using applications that you yourself have written, then you’re probably using an on-premises model where everything in that model is managed by the client. With cloud-based technologies, a portion of this is going to be managed by the provider. So if we look at infrastructure as a service, the provider might provide us with the networking, the storage, the server, and the virtualization platform. And everything else on infrastructure as a service would be our responsibility.
So we might need to install the operating system, the middleware, anytime runtime data, and the data and the application itself for the application instance. If you’re using software as a service, none of this is managed by the client, and everything is managed by the cloud provider. So the cloud provider is the one writing the application.
They’re the one deploying it on their own systems. They’re providing the operating system, and the networking, and everything else required to make that application work. And in the middle is platform as a service where the service provider is giving you everything you need to build your own applications. And then you would provide the application and the data that would run on their platform.