INAP IS NOW HORIZONIQ.
Click here to LEARN more.

Jul 3, 2013

Choose your own cloud adventure: the SaaS alternate ending

Ansley Kilgore

In our previous post, we described IaaS (Infrastructure as a Service) and PaaS (Platform as a Service). Today we’ll discuss how Software as a Service (SaaS) fits into the stack and explore which type of infrastructure makes sense in different scenarios. Various combinations of these services can help meet your needs for flexibility and resource control so you can manage and create applications as desired.

SaaS
Most SaaS providers deliver end-user applications on-demand, as a service, over the Internet. Salesforce.com and Google Apps are two common examples of this. However, many SaaS applications can provide services to other applications, usually via a SOAP or RESTful API over the Internet. A good example of this is how Yelp integrates Google Maps into its mobile application – Google is the SaaS provider, and the Yelp application becomes the consumer of the software service.

A SaaS provider may use a PaaS provider or an IaaS provider, depending on the level of development and operational efforts they need to balance out.

Here’s an illustration of how an application may interact with another SaaS provider:
SaaS alternate ending

As you can see, the application now interacts with other applications for complete functionality. Just as a developer can increase speed-to-launch by using a PaaS provider (at the expense of flexibility and customization), this developer can use existing third-party SaaS applications without having to recreate each piece of functionality desired.

Ultimately, the more you move your application “up the stack”, the fewer resources you are required to manage. Integrating an application with SaaS providers allows a developer to consume SaaS services as components and building blocks without having to reinvent the wheel (e.g., using Google Maps for location services, using RSS aggregators for content/news services, etc.).

Using a PaaS provider will provide a framework for you to develop your own application without having to manage an infrastructure. And if the PaaS is too limiting – say, you want to use certain web server features not provided by the platform, or you want to use a preferred development framework – then IaaS may make more sense.

As indicated in the final illustration below, the further down the stack, the more lower-level components a developer will need to recreate and maintain.
SaaS alternate ending

There is plenty of opportunity for “mix and match”. No one service is correct for all use cases, and I can certainly see distributed applications consuming one or more portions of the stack on multiple cloud service providers.

The decision to go with one or another ultimately comes down to a few considerations:

  • The resources the team wants to manage.
  • The capabilities of the development (and operations) teams building and supporting the application.
  • How quickly the team needs to deploy production software with the resources available.

Explore HorizonIQ
Bare Metal

LEARN MORE

About Author

Ansley Kilgore

Read More
Jun 26, 2013

Choose your own cloud adventure: PaaS or IaaS?

Ansley Kilgore

While many IT decision makers are familiar with how Software as a Service (SaaS) can benefit their organization, PaaS (Platform as a Service) has become equally as popular. Add IaaS (Infrastructure as a Service) to the mix, and it often raises questions – how do you know which one is best for your needs, and how do these cloud services work together? When building an application, you can choose any combination of services that allow you the greatest combination of flexibility and resource control to meet your requirements.

IaaS
Think of IaaS, PaaS and SaaS as “stacks” that can either reduce the level of effort required to build your application, or provide more flexibility.

For example, IaaS provides raw infrastructure-like compute and storage resources, providing the most flexibility while requiring the most hands-on management. Developers interact with the operating systems directly, build/use their own frameworks and consume infrastructure resources directly.

The image below shows the relationship of your application to the services provided by the IaaS provider.
PaaS or IaaS?

PaaS
PaaS, on the other hand, will provide a development platform (as a service) to create new applications. Think of it as a cloud-based middleware: it provides services beyond the raw operating system and abstracts the underlying resources from you. The developer doesn’t have to manage compute resources; instead she gets to build on frameworks specifically provided for her application. For small dev teams without infrastructure management capabilities, this is a great way to reduce the “time-to-usefulness” of their project, but it restricts the flexibility since they must work within the frameworks provided.

PaaS services typically use an underlying IaaS service; e.g., Acquia (Drupal platform as a service) and Heroku (Ruby on Rails platform as a service) both use Amazon AWS as a foundation to their platforms. As an IaaS provider, Internap has similar customers that provide a Platform-as-a-Service for developers who want to develop code against a managed framework rather than manage the frameworks themselves.

The following example illustrates what a PaaS provider might offer to your application.
PaaS or IaaS?

Tune in next time as we discuss how SaaS fits into the cloud infrastructure landscape, and how using a combination of these services can provide you with the desired level of control and flexibility for your applications.

Explore HorizonIQ
Bare Metal

LEARN MORE

About Author

Ansley Kilgore

Read More