Session 3. the Cloud Stack, SaaS, PaaS, IaaS
The service models resemble a cascading architecture where services on a higher level, as identified by Weinhardt et.al. (2009); encapsulate functionality from the layers beneath by aggregating and extending service components via composition and mash-up technologies. Similarly, Yousseff and Da Silva (2008) use composability as the criterion to define various layers in the cloud architecture and inter-relations between those layers. They classify a cloud layer to be higher in the architecture if its services can be composed from the services of the underlying layer. The term Everything as a Service (XaaS) has been associated with many core services offered by cloud providers, including software (SaaS), development platforms (PaaS), computing infrastructure (IaaS), communication (CaaS), and data storage (DaaS). There are three widely accepted primary service models where different capabilities enabled by the cloud architecture are utilized to provide different types of services:
Software as a service - SaaS Here the consumer is free of any worries and hassles related to the service. The Service Provider has very high administrative control on the application and is responsible for update, deployment, maintenance and security. The provider exercises final authority over the application. For example, Gmail is a SaaS where Google is the provider and we are consumers. We have very limited administrative and user level control over it, although there is a limited range of actions, such as enabling priority inbox, signatures, undo send mail, etc., that the consumer can initiate through settings. Examples: Cloud based Storage and Sharing services like Dropbox, Skydrive (windows live), Amazon S3, Google Docs, Box.net, Mozy. SMEs/SMBs can opt for EazeWork (for HR, PayRoll and Sales)
Why SaaS? No upfront expenses. You just need a web browser to access the application. No other hardware purchase or software installation is necessary. Unlike the traditional apps, cloud architecture makes SaaS highly scalable. Multi-tenant architecture makes SaaS highly efficient as the source code is the same for every customer. Unlike traditional apps where customization is the key; a true SaaS can meet any requirement by simple configuration. Upgrades are applied directly at the SaaS provider s end. Since all the customers are using the same code base, any new tech-innovation is easily integrated by the provider, and is available for all the subscribers.
Platform as a service PaaS PaaS is a platform where software can be developed, tested and deployed, meaning the entire life cycle of a software can be operated on a PaaS. This service model is dedicated to application developers, testers, deployers and administrators. This service provides everything you need to develop a cloud SaaS application. A PaaS typically includes the development environment, programming languages, compilers, testing tools and deployment mechanism. In some cases, like Google Apps Engine (GAE), the developers may download development environment and use them locally in the developer s infrastructure, or the developer may access tools in the provider s infrastructure through a browser.
Cloud based PaaS Now you don t need to invest millions of dollars to get that project environment ready for your developers. The PaaS provider will deliver the platform on the web, and in most cases you can consume the platform using your browser. There is no need to download any software. This combination of simplicity and cost efficiency empowers small and mid-size companies, or even individual developers, to launch their own Cloud SaaS. Without any initial investment, they can leverage the power of these platform providers.
Infrastructure as a service IaaS Do you require virtual computers, cloud storage, network infrastructure components such as firewalls and configuration services? IaaS is what you should opt for. The System Administrators are the subscriber of this service. Usage fees are calculated per CPU hour, data GB stored per hour, network bandwidth consumed, network infrastructure used per hour, value added services used, e.g., monitoring, auto-scaling etc. This is the base layer of the cloud stack. It serves as a foundation for the other two layers, for their execution. The keyword behind this stack is Virtualization. Amazon EC2 is a good example of an IaaS.
Why should companies opt for IaaS? In Amazon EC2 (Elastic Compute Cloud) your application will be executed on a virtual computer (also known as an instance). You have your choice of virtual computer, meaning that you can select a configuration of CPU, memory and storage that is optimal for your application. The IaaS provider supplies the whole cloud infrastructure viz. servers, routers, hardware based load-balancing, firewalls, storage and other network equipment. The customer buys these resources as a service on an as needed basis. The billing is on hourly or monthly basis. You pay only for the resources you actually consume. This is unlike the traditional services where you pay a fixed amount even if you don t use the resources, or don t have enough clients to consume the preconfigured resources. In cloud computing, i.e., IaaS, you pay less if you have a lower customer base and vice-versa. Cloud is elastic in nature, i.e., you can control the number of resources you use at any given point in time. Compare this with traditional hosting, where you rent a fixed number of resources for fixed amount of time. Using IaaS you can easily configure your resources for unexpected spikes in traffic. Based on your computing requirements and configuration, your IaaS provider can respond quickly to scale up or down. Amazon EC2 calls it Auto Scaling. This is suitable for applications that undergo quite unpredictable spikes in traffic on an hourly, daily or weekly basis; they will now have the resources they need On-Demand!