Cloud Service Models Seminar Cloud Computing and Web Services Eeva Savolainen Helsinki 10.2.1012 UNIVERSITY OF HELSINKI Department of Computer Science
1 Contents 1 Introduction... 2 1.1 Cloud Computing... 2 1.2 Cloud Service Models... 3 2 Sofware as a Service (SaaS)... 4 2.1 Overview... 4 2.2 Sofware as a Service providers... 5 2.3 Case Study... 5 2.4 Challenges... 6 3 PaaS... 7 3.1 Overview... 7 3.2 Platform as a Service Providers... 8 3.3 Case Study... 9 3.4 Challenges... 9 4 Iaas... 10 4.1 Overview... 10 4.2 Infrastruture as a Service Providers... 11 4.3 Case Study... 12 4.4 Challenges... 13 5 Conclusion... 14 References... 15
1 Introduction 2 Cloud computing enables a new business model that supports on-demand, pay-for-use, and scalable IT services over the Internet [HuH10]. Cloud service models can be classified into three classes, according to the abstraction level of the capabilities and resources provided and the service model of providers [BBG11]. This paper concentrates to three most commonly known cloud service models, Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS). First section briefly describes main concepts of cloud computing and service models. Following chapters define each service model more detailed level including comparison of different cloud service providers, case studies and specific challenges of each model. 1.1 Cloud Computing Term cloud computing can be used many ways. Some consider it to be a pool of virtualized computer resources and others say it is the dynamic development and deployment of software fragments [ABS10]. In this paper National Institute of Standards (NIST) definition of cloud computing is used as a framework. By this definition cloud computing is a model for enabling convenient, on demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. The NIST definition includes cloud architectures, service models and deployment models. Five essential elements of cloud computing are also mentioned: On-demand self-service. A consumer can reserve needed computing resources, such as network storage, CPU time, software, and so forth automatically without requiring human interactions with providers of these resources. Broad network access. These computing resources are delivered over the network (e.g. Internet) and can be used by various client applications with different platforms (such as laptops and mobile phones) Resource pooling. A cloud service provider s computing resources are pooled together
3 to serve multiple consumers using either the multi-tenancy or the virtualization model. Different physical and virtual resources are dynamically assigned and reassigned according to consumer demand. The result of a recource pooling is that physical computing resources become invisible to consumers, who in general do not have control or knowledge about the location, formation, and originalities of these resources (CPU, database, network bandwidth, etc.). For example, consumers are not able to tell exact location where their data will to be stored in the Cloud. Rapid elasticity. A consumer can quickly scale up computing resources whenever needed and release them once they are ready to scale down. For consumers, computing resources become immediate rather than persistent. Measured Service. The usage of computing resources usage can be monitored, controlled, and reported. The cloud service provider controls and optimizes the use of computing resources through automated resource allocation, load balancing and metering tools. This provides transparency for both the provider and consumer about the utilized service. 1.2 Cloud Service Models Cloud computing services can be divided into three classes, according to the abstraction level of the capabilities and resources provided and the service model of providers: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS) [BBG11]. Figure 1 defines the layered structure of the cloud stack from physical infrastructure to applications. These service model levels can also be viewed as a layered architecture where services of a higher layer can be composed from services of the underlying layer.
4 Figure 1: Cloud service models [BBG11]. First layer IaaS is built on top of virtualized compute, storage, and network resources. Second layer PaaS provides cloud development environments, which are built on top of infrastructure services to offer application development and deployment capabilities. Top level SaaS is build at the user application level providing applications and application programming interfaces (APIs). 2 Sofware as a Service (SaaS) The most known and the leading service model of more widespread adoption of cloud computing has been the SaaS [HuH10]. 2.1 Overview In SaaS model a software provider licenses a software application to be used and purchased on demand. Applications can be accessed through networks from various clients (web browser, mobile phone, etc.) by application users. The application requires no client installation, just a browser or other client device and network connectivity [GrM11]. There are many reasons why SaaS model has become more popular and widely used. Consumers have more access to computers and to the Internet. At the same time
5 network speeds continue to improve minimizing application response times. Small and medium-sized businesses are willing to purchase software as a service applications like enterprise resource planning (ERP) or customer relationship management (CRM) that previously were available only in traditional delivery models and focused only to the largest corporations. Mainframes and traditional software licenses have become a target for cost reduction including along with the cost to maintain space for them, as well as the salaries of the in-house staff to maintain and operate them [HuH10]. 2.2 Sofware as a Service providers SaaS offerings can be classified by the software and the pricing model. Table 1 gives an overview of some SaaS providers. Provider Software Pricing model Salesforce.com CRM Pay per use Google Gmail Email Free Process Maker Live Business process Pay per use management XDrive Storage Subscription SmugMug Data sharing Subscription OpSource Billing Subscription Appian Anywhere Business process Pay per use management Box.net Storage Pay per use MuxCLoud Data processing Pay per use Table 1: SaaS providers. The most common pricing model is pay per use, which a customer pays a static price for units they use. Another pricing model is subscription, which a customer subscribes to use a preselected combination of service units for a fixed price and a longer time frame, monthly or yearly. 2.3 Case Study San Francisco's Golden Gate University was one of the early adopters of SaaS technologies when they moved to a large cloud-based infrastructure several years ago.
6 In 2001 the university realized that their IT infrastructure was behind the technology curve with aging legacy systems, no IT architecture, static web sites, and very poor integration. It was also calculated that 90 percent of the IT spend was going into maintenance of existing infrastructure and supporting daily operations. The management team created a turnaround plan to deliver a new business strategy, create a new customer experience and reduce costs throughout the enterprise. One part of this turnaround plan was to start an e-business transformation, which required a complete change of information technology capabilities. The goal was to provide 24/7 access to all information, transactions and learning via a web browser. During 2002 2008 the university replaced almost every business and learning application from on-premise solutions with SaaS solutions. The application portfolio that moved into the cloud contained e-learning, ERP (enterprise resource planning) systems, data warehouses, CRM (customer relationship management), fundraising and alumni management, student and faculty, email, and collaboration including wikis, blogs, and web conferencing. Transformation took a long time but as a result the university was able to reach significant cost reductions. IT budgets were reduced by 25 percent as salaries that were focused on maintaining previous infrastructure and applications were no longer needed. The IT function was able to concentrate new responsibilities in by providing integration, information management and vendor management [HuH10]. 2.4 Challenges Like any new technology, SaaS model suffers some of limitations. One of the major challenges with SaaS applications is integration [BBG11]. SaaS applications typically provide services for one business area like enterprise resource planning (ERP). As a result companies are facing serious problems with accurate data, forecasting and automated business processes where real time data and functionality sharing is needed. Some SaaS providers have responded to the integration challenge by developing application programming interfaces (APIs). Unfortunately, accessing and managing data via an API requires coding and maintenance due to API modifications and updates. Application programming interfaces have also some limitations. For example, the SalesForce.com web services API does not support transactions against multiple
records, which means integration code has to handle that logic [BBG11]. 7 Another challenge is related to a data locality. In a SaaS consumers use the applications to process their business data. The problem is that the customer does not know where the data is getting stored. Due to compliance and data privacy laws in various countries, locality of data is very important in part of the enterprise architecture. For example, in many EU and South America countries, certain types of data cannot leave the country because of sensitive information [SuK10]. 3 PaaS The difference between SaaS and PaaS is that SaaS only hosts completed cloud applications where PaaS offers a development platform for both completed and inprogress cloud applications [GrM11]. The platform services segment of the cloud market is still in its early phases [GrM11]. Currently PaaS is mainly used for developing and deploying situational applications to enable the rapid development cycles especially to cope with the scenarios with limited timeframe to bring the solutions to the market. 3.1 Overview PaaS offers an environment where developers can create and deploy applications and do not necessarily need to know how much memory or how many processors their application will be using. In addition multiple programming models and specialized services (data access, authentication, etc) can be offered as a building block to new applications [GrM11]. PaaS model provides developers a service that can be used to a complete software development lifecycle management, from planning to design to building applications to deployment to testing to maintenance [SuK10]. PaaS clouds provider higher-level abstractions for cloud applications, which simplifies the application development process and removes the need to manage the underlying software and hardware infrastructure. PaaS offers automatic scalability, load balancing and failure tolerance [GrM11].
3.2 Platform as a Service Providers 8 PaaS offerings can be classified by the availability of features that influence the application development. The most relevant features are programming models, programming languages, frameworks and persistence options [BBG11]. Table 2 shows feature comparison between six different PaaS providers. Provider Aneka AppEngine Force.com Azure Heroku Amazon Elastic MapReduce Target to Use.NET enterprise applications, Web applications Web applications Enterprise applications Enterprise applications, Web applications Web applications Data processing Programming language, Frameworks.NET Programming Models Threads, Task, MapReduce Persistence options Flat files, RDBMS Python, Java Request-based Web programming BigTable Apex Workflow, Own object database Request-based Web programming, Excel-like formula language.net Unrestricted Table/BLOB/queue storage, SQL Services Ruby on Rails Hive and Pirg, Cascading, Java, Ruby, Perl, Python, PHP, C++ Table 2: Feature comparison of PaaS providers [BBG11]. Request-based Web programing MapReduce PostgreSQL, Amazon RDS Amazon S3 Programming models aims to solve a particular problem in the cloud computing domain. The most common activities that require specialized models are: processing of large dataset in clusters of computers (MapReduce model), development of requestbased Web services and applications, definition and orchestration of business processes (Workflow model) and high-performance distributed execution of various computational tasks. PaaS providers usually support multiple programming languages. Most commonly used languages in platforms include Python, Java,.NET languages and Ruby. Some providers have created own programming language. Force.com has devised its own programming language Apex and an Excel-like query language.
9 A persistence layer is used to allow applications to store user data and record their state and recover it in case of crashes. Traditionally relational databases are used to provide reliable data storage and transaction processing. In the cloud computing domain robust and highly scalable distributed storage technologies have emerged. For example Amazon SimpleDB and Google AppEngine datastore offer automatically indexed database services. 3.3 Case Study Google AppEngine is a development platform and a runtime environment for web applications that will be run on top of Google s server infrastructure. App Engine includes following features: dynamic web serving, persistent storage, automatic scaling and load balancing, local development environment (sandbox), task queue and scheduled tasks. Applications can be developed with Java and Python [GOO12]. Google provides a free limited service and utilizes daily and per minute quotas to meter and price applications requiring professional service. Google AppEngine also has some limitations. Existing applications cannot be placed on the platform. Only services written completely with Java or Python are supported. App Engine does not contain any support to publish services created by other service providers and it doesn t provide discovery and selection services. After creating and hosting their services, clients have to publish their services to discovery services external to App Engine [BBG11]. 3.4 Challenges Cloud data stores provide scalability and high availability properties for web applications but do not support complex queries such as joins. Developers must therefore design their programs according to the peculiarities of NoSQL data stores rather than established software engineering practice. In PaaS model the provider gives some control to the developers to build applications on top of the platform. But any security below the application level such as host and network intrusion prevention will still be in the scope of the provider [SuK10]. The provider needs to verify that the data remains inaccessible between applications. PaaS model offers developers a service that provides a complete software development
10 lifecycle management. Everything else is abstracted away from the eyes of the developers. The disadvantage of PaaS is that this abstraction can be helpful for a hacker to leverage the PaaS cloud infrastructure for malware command [SuK10]. 4 Iaas The infrastructure layer focuses on enabling technologies [ABS10]. IaaS model changes the way developers deploy their applications. Instead of spending time with their own data centers or managed hosting companies, they can just select one of the IaaS provider, get a virtual server running in few minutes and pay only for the resources they use [SuK10]. From a technology viewpoint the IaaS type of cloud offerings have been the most successful [GrM11]. 4.1 Overview In the IaaS model cloud consumers directly use infrastructure components (storage, firewalls, networks, and other computing resources) provided by the cloud provider. Virtualization is widely used in order to provide physical resources in an ad-hoc manner to meet current resource demand of cloud consumers [GrM11]. Basic idea of a virtualization is that the resources of one physical computer can be partioned into logical resources and rearranged into multiple virtual machines [HuH10]. For example, operating systems can be set up to run as multiple, virtualized images and to run simultaneously in order to maximize efficiency. Networks can be virtualized so that available bandwidth can be partitioned into separate channels, thereby reducing network complexity and improving the ability to manage the overall network. Storage virtualization allows pooling of many storage resources so that all available storage is assigned and managed centrally. Figure 2 shows an example of a hardware virtualized server hosting three virtual machines, each one running different operating system and user level software.
11 Figure 2: Virtualization [BBG11]. Virtualization results in a significant increase in resource utilization. 4.2 Infrastruture as a Service Providers Infrastructure as a Service providers offer virtual servers containing one or more CPUs, running several choices of operating systems and a customized software stack. In addition, storage space and communication facilities can be often provided. IaaS offerings can be classified by the availability of features that influence the cost benefit ratio to be experienced by user applications when moved to the cloud. The most relevant features are geographic distribution of data centers, variety of user interfaces and APIs to access the system, instance hardware capacity, choice of virtualization platform and operating systems and different billing methods [BBG11]. Table 3 shows feature comparison between six different IaaS providers.
Provider Amazon E2C Geographic distribution of data centers US Europe User interfaces and APIs CLI, WS, Portal Hardware capacity CPU: 1_20 EC2 compute units Memory: 1.7-15 GB Storage: 160-1690 GB, 1 GB 1 TB (per ESB units) Flexiscale UK Web console CPU: 1-4 Memory: 0.5-16 GB Storage: 20-270 GB GoGrid REST, Java, PHP, Python, Ruby CPU: 1-6 Memory: 0.5-8 GB Storage: 30-480 GB Joyent US CPU: 1/16-8 Memory: 0.25-32.5 GB Storage: 5-100GB RackSpace US Portal, CPU: Quad-core REST, Memory: 0.25-16 GB Python, PHP, Storage: 10-620 GB Java,.NET Table 3: Feature comparison of IaaS providers [BBG11]. Guest operating systems Linux Windows Linux, Windows Linux, Windows OpenSolaris Linux 12 Smallest billing unit Hour Hour Hour Month Hour To be able to improve availability and responsiveness, an IaaS provider builds several data centers distributed around the world. For example Amazon Web Services calls these data centers of availability zones and regions. Currently Amazon is having availability zones in US and in Europe. Different types of user interfaces provide different levels of abstraction, the most common being graphical user interfaces (GUI), command-line tools (CLI), and Web service (WS) APIs [BBG11]. Usually IaaS providers offer multiple user interfaces. 4.3 Case Study Amazon Web Services (AWS) is one of the major players in the cloud computing market. It was one of the first IaaS providers. AWS contains a number of individual services: S3 (storage), EC2 (virtual servers), Cloudfront (content delivery), Cloudfront Streaming (video streaming), SimpleDB (structured datastore), RDS (Relational
13 Database), SQS (reliable messaging), and Elastic MapReduce (data processing) [AMA12]. Silicon Valley Education Foundation selected Amazon Web Services as an IaaS provider when they decided to migrate Lessonopoly.org tool, designed for teachers to manage their lesson plans online, to the cloud. Originally tool was installed to a single server, which is a great risk since a hardware failure could result in system unavailability until repairs were made. Instead of reducing risk via virtualization and additional hardware the organization ended up to try cloud implementation [HuH10]. It only took one day to migrate to the cloud and to have Lessonopoly up and running. The move from physical environment to the cloud reduced monthly maintenance costs one-third of the previous costs [HuH10]. 4.4 Challenges Out of the box IaaS usually only provides basic security (perimeter firewall, load balancing, etc.) and applications moving into the cloud will need higher levels of security provided at the host [SuK10]. Security responsibilities of both the provider and the consumer differ between different service providers. Amazon s Elastic Compute Cloud (EC2) includes vendor responsibility for security up to the hypervisor, meaning they can only address security controls such as physical security, environmental security, and virtualization security. The consumer is responsible for the security controls that relate to the IT system including the OS, applications and data [SuK10]. IaaS solution provided by Amazon also has some limitations. One major problem with Amazon Web Services is its low level of abstraction. When using virtual server solution (EC2), clients have to create a virtual machine, install software into it, upload the virtual machine to EC2, and then use a command line tool to start it [BBG11]. Amazon has a set of pre-built virtual machines but it still falls on the clients to ensure that their own software is installed and then configured correctly.
5 Conclusion 14 Cloud computing enables a new business model that supports on-demand, pay-for-use, and scalable IT services over the Internet. Clouds provide services at different levels: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). In SaaS model a software provider licenses a software application to be used and purchased on demand. Applications can be accessed through networks from various clients (web browser, mobile phone, etc.) by application users. The application requires no client installation, just a browser or other client device and network connectivity PaaS model provides developers a service that can be used to a complete software development lifecycle management, from planning to design to building applications to deployment to testing to maintenance. IaaS focuses on enabling technologies. In the Cloud consumers directly use infrastructure components (storage, firewalls, networks, and other computing resources) provided by the cloud provider. Virtualization is widely used in order to provide physical resources to meet current resource demand of cloud consumers. As shown in case studies, cloud service models can provide great benefits and cost savings. Companies can focus on the business instead of spending time and money to maintain own infrastructure. Cloud recourses can be scaled up and down to match current business needs. Each service model also has some challenges. One of the major challenges with SaaS applications is integration. SaaS applications typically provide services for one business area. As a result companies are facing serious problems with accurate data, forecasting and automated business processes where real time data and functionality sharing is needed. Out of the box IaaS usually only provides basic security (perimeter firewall, load balancing, etc.) while applications moving into the cloud will need higher levels of security provided at the host. PaaS data stores provide scalability and high availability properties for web applications but do not support complex queries such as joins.
15 References ABS10 Anandasivam A., Blau B., Stosser, J., and Weinhardt C., Business Models in the Service World, IT Professional, September/October 2010. AMA12 Amazon Web Services, http://aws.amazon.com/. [9.2.2012]. BBG11 DCC10 GOO12 GrM11 HuH10 SuK10 Broberg J., Buyya, R., and Goscinski A., Cloud Computing: Principles and Paradigms, Wiley Press, USA, 2011. Dillon T., Chen W., and Chang, E., Cloud Computing: Issues and Challenges, Proc 24th IEEE International Conference on Advanced Information Networking and Applications (AINA), Perth, Australia, April 2010. Google AppEngine, http://code.google.com/intl/fi-fi/appengine/. [10.2.2012]. Grance T., and Mell P., NIST definition of cloud computing, National Institute of Standards and Technology, January 2011. Hugos, M., and Hulitzky, D., Business in the cloud: what every business needs to know about cloud computing, Wiley, 2010. Subashini S., and Kavitha V., A survey on security issues in service delivery models of cloud computing. Journal of Network and Computer Applications, July 2010.