This is part 3 of a in-depth look at Cloud Hosting. The series starts here.
The first two posts in our series have been laying the groundwork for discussing something we can actually buy: Cloud Services. We’ve said that cloud is a style of computing, not a product that is purchased. What we can buy are services offered in the cloud style of computing.
Courtesy Rob Campbell via Flickr – Click image for game info.
For clarity’s sake, it’s worth immediately stopping for a moment to mince words. You will sometimes hear the term service delivery models1, and you’ll remember that last time we spoke about cloud delivery models. So what gives? Are they the same thing? No, they are not. As long as everyone remembers to include the word “cloud” or “service” to clarify what they mean when talking about delivery models, all is well, but unfortunately, ambiguity often rules the day. So to avoid confusion, I’ve chosen the simple phrase “Cloud Services.” It’s short, unambiguous, and I think it clearly communicates what’s being talked about. With that out of the way, let’s dive in.
As A Service
When discussing cloud services, we will need to be able to wield one particular acronym like a light saber 2, and that acronym is something-as-a-service, where “something” describes a particular kind of cloud service. Like so many acronyms in IT, this one has many variations, but in terms what’s most important, it really boils down to just three:
- Infrastructure as a Service (IaaS) – This is the one we’ll be spending most of our time on in this series. It is the service that allows us to create virtual servers, storage and networking on shared infrastructure. Rackspace, Softlayer, Amazon AWS, and Microsoft Azure are leading providers of IaaS.
- Platform as a Service (PaaS) – Here we are buying a service that allows to build our own apps or content. Sometimes it provides just a piece of the puzzle, such as database services. Examples of PaaS include IBM Bluemix, Google App Engine, and Amazon RDS.
- Software as a Service (SaaS) – SaaS delivers an entire hosted application, ready to use. Salesforce.com, Microsoft Dynamics, Quickbooks, and Basecamp are good examples of this model. Interestingly, most SaaS today happens to be hosted on IaaS. As a customer, you’re using both kinds of cloud services combined into one.
Infrastructure As a Service
IaaS provides servers, storage, networking, and operating systems as an on-demand service. You pay only for what you use, often without a contract being required. You have the ability to scale up and down rapidly as your needs vary. It can be built on public, private, or hybrid cloud models.
When built on public cloud, the resources are shared among a large number of users. They are made available over the Internet on a self-service basis using a portal and/or an API. Upon setting up an account, you are immediately able to provision new servers and begin using them. We’ll do a walkthrough of how this works with several public IaaS vendors later in the series.
IaaS built on private cloud is typically intended to serve a single organization on an internal private network. It “feels” like public cloud in the sense of self-service and lots of available resources, but often has more limited functionality and scalability. VMware’s vCloud Director and OpenStack are popular choices for implementing private IaaS. Building true private IaaS is not for the feint of heart, however, and the landscape is strewn with many fallen cloud warriors who got in over their heads. It is complex, expensive, and requires highly skilled resources. Think hard before taking the plunge.
Hybrid IaaS is typically done two ways. The first is to use a commercial provider for public IaaS and connect it to an in-house private cloud. The second is to use a commercial provider for both cloud servers and traditional dedicated hosting, all tied together within the provider’s data center.
When To Use IaaS
IaaS makes good sense in the following situations:
- New businesses – New organizations may be without either the desire, or capital, to invest in infrastructure.
- Rapidly growing requirements – When workloads grow quickly, there are no long waits to justify, acquire, and deploy additional hardware.
- Unpredictable workload demands – Similar to the previous reason, but with a twist. After peak workloads subside, there are no wasted resources sitting idle.
- Pressure to reduce capital expenditures – Capex can be converted to operating expense.
- Temporary needs – Testing/development environments are often temporary in nature, have widely varying resource requirements, and need to be put up quickly.
When To Avoid IaaS
IaaS has many advantages, but it is not always a good fit. When extremely high performance is required, or regulatory compliance issues make moving apps and data off-premise difficult, IaaS is probably not the best option. Security and compliance are topics we’ll cover in the future.
Trying to get started using Cloud Hosting in your business?
Sign up to hear when the book launches.
Platform As a Service
PaaS is a step up the food chain from IaaS. It provides not only the hardware resources, but a complete platform for the creation of software. In 2015, the PaaS market is still a work in progress. The offerings are not as well-defined or consistent as they are for IaaS and Software as a Service. Generally speaking, PaaS offerings fall into two categories:
- A platform for software development. This can take a wide variety of forms. Some examples include database-related offering like SQL on Microsoft Azure, complete web app development environments like Heroku, which provides a Ruby on Rails environment, or mobile app back-end service platforms from companies like Kony, Fat Fractal, and Microsoft Azure Mobile Services.
- A platform for creating software from the data housed in another application. For example, Force.com allows the building of apps that use data from SalesForce and other proprietary application systems.
While PaaS offerings do vary widely, they generally all share the following characteristics:
- Multi-tenant design – You are sharing the platform with many other users, just like IaaS.
- Complete tool set – You are provided with everything needed to develop, test, deploy, and maintain applications.
- Built-in scalability – You never have to worry about resources. Load balancing is also usually available.
- Web-based management – Programmers may use local tools to create and upload code, but management of the environment is entirely web-based.
- Support for common database and web service standards.
When To Use PaaS
PaaS makes good sense in the following situations:
- When it’s all about the apps – PaaS eliminates the need to build and maintain both the development and production environment, allowing your team to focus on just building the apps and getting them to market.
- Saving development time – PaaS offerings often provide a set of standard features, such as user credential management, that can free your team from having to constantly rewrite those time-consuming, difficult-to-do-well parts of an app.
- Collaborative development – When outside contractors need to be involved in the development process, PaaS makes it easy to bring them into the project and manage their access.
When To Avoid PaaS
Like IaaS, PaaS has many advantages, but it is not always a good fit. If an application needs to be portable between hosting providers, or adequate performance requires tweaking the underlying hardware, PaaS is not the best option.
We’ll stop here to take a breath. Next time: Software as a Service.