As individuals, many of us use simple cloud services on a daily basis without even realizing it. If you use web-based services that provide email and storage, you’re using the cloud.
On the other end of the cloud spectrum, businesses use complex cloud services that host entire infrastructures. Some cloud platforms offer a mix of proprietary development and applications, while others are simply subscription-based services. To designate these different forms of cloud computing, three terms have arisen: SaaS, PaaS, and IaaS. These stand for Software as a Service, Platform as a Service, and Infrastructure as a Service, respectively. While these terms may seem confusing at first, they can be found in the most popular services used by people every day.
Software as a Service
Software as a Service is the most basic form of cloud computing. There is no third-party development or resources for the user, but SaaS applications can offer powerful tools right from your web browser. A good example of SaaS is Google Docs. Google Docs is a productivity suite that is free for anyone to use. Creating a Google account is free. All you have to do is log in to google.com/docs and you instantly have access to a powerful word processor, spreadsheet application, and presentation creator. These online services provided by Google are managed directly from the web browser and require zero installation. You can access your Google Docs from any computer or mobile device with a web browser.
Google Docs, Dropbox, Box.net, Salesforce.com and Freshbooks are all applications that qualify as SaaS. All of these applications are either free to use, or offer more features at a paid subscription price. Another advantage of SaaS applications is the ability to collaborate with others cheaply and from any location. If a company is seeking to customize a cloud service or create its own cloud applications, this will require the next level in cloud services known as PaaS.
Platform as a Service
The second segment of cloud services, Platform as a Service, provides developers with proprietary APIs to make an application that will run in a specific environment. While a developer is free to create any application they wish, the app is locked to the platform used for its creation. This method of developing applications can be low cost (through some providers, even free) and allows you to leverage the infrastructure and tools of an already established cloud company for building or migrating your existing applications. This also gives you the ability to quickly make your app available to a wide audience.
[The Cloud Foundry multi-virtual machine template in Skytap Cloud is an example of Platform as a Service]
One of the simpler examples of PaaS is Facebook. Developers can create specific applications for the Facebook platform using proprietary APIs and make that app available to any Facebook user. Some applications integrate a user’s Twitter and Facebook account, others integrate a database with a Facebook profile. The downside to PaaS is whatever platform you choose to develop in, you can only use the tools and languages they provide. Plus the granularity of operation may be limited to what the API exposes; you may not get machine-level control and flexibility. Most PaaS providers do support a wide variety of tools and languages for development.
Infrastructure as a Service
The third segment of cloud services is known as IaaS, or Infrastructure as a Service. This is the most comprehensive cloud platform and is mainly used by full-time developers or large-scale enterprise customers. While SaaS allows usage of cloud apps, and PaaS allows you to develop apps, IaaS gives you infrastructure for developing, running, and storing your apps in cloud environments. The benefit of IaaS is the virtually limitless storage and computing power available to developers without having any physical hardware on site.
Amazon EC2 is good example of IaaS. From the smallest application to full-scale websites, EC2 provides commodity cloud infrastructure to run them all. Users have the flexibility to develop using a variety of tools, from Ruby on Rails to MySQL and can choose from several Linux or Windows environments. Applications can be run on various virtual machine configurations and delivered to clients seamlessly. However, Amazon does require sophisticated application development skills and does not enable users to quickly get up and running without advanced technical know-how.
A different example, Skytap Cloud, actually combines the simplicity of a Software as a Service application with the ability of scaling to a complete Infrastructure as a Service. Existing data centers can be integrated into the cloud, making migration of assets and data quick and easy. Virtual machines and existing applications can be run natively or through the cloud service. Skytap also offers a library of pre-made cloud applications, including virtual machine images of major operating systems. As a SaaS provider, Skytap allows users to leverage existing technologies and applications, migrate them to the cloud, and provide open development environments for custom app creation. Solutions like Skytap offer both the simplicity of a self-service, point-and-click web UI, plus elastic compute power that enables ease of use and robust cloud computing.
By using a cloud solution, businesses can create cloud applications and environments that integrate with their current data centers, or lower their total cost by moving completely to the cloud. Depending on the solution, virtual servers and instances can be started and stopped within minutes, storage is basically unlimited, and new applications can be developed using your choice of tools and languages.
SaaS, PaaS, and IaaS are all based on the same premise: developing and using applications in the cloud. Many cloud solutions that fit into these categories provide simple usage-based pricing models. With the numerous cloud offerings available now, such as Salesforce, Google Apps, Skytap, Amazon, Citrix, Azure and more, businesses have plenty of choice. When choosing the right cloud provider, come to the table with an identified business need and be ready to articulate your requirements for success. If you’re a developer, you’ll want to make sure you can easily move your apps to the cloud or create new apps in the cloud easily. And before you commit, make sure you test drive the solution, which will ensure you are on track to begin a successful transition to the cloud.