COS497 - Cloud Computing 3. Cloud Service Models IT as a Service How do you offer IT as a service? Different users have different needs! Consider the needs of the - Average End-User - Mobile Application Developer - Enterprise System Architect Their needs, in terms of resources, are all different. Requirements to Transform IT to a Service in the Cloud Combining the Enabling Technologies … Different Cloud Computing Models (aka Cloud Service Models) “Why do it yourself if you can pay someone to do it for you?” • Infrastructure as a Service (IaaS) - Utility computing – Why buy machines when you can rent machine cycles? – Example: Amazon’s EC2 • Platform as a Service (PaaS) – Let me upload my app and run it for me! – Example: Google App Engine • Software as a Service (SaaS) – Just let me use your apps! – Examples: Google Apps, Gmail Types of Cloud Services (On-Premise) (as a Service) (as a Service) (as a Service) Applications Applications Applications Applications Runtimes Runtimes Runtimes Runtimes Security & Integration Security & Integration Security & Integration Databases Databases Servers Servers Servers Virtualization Virtualization Server HW Server HW Storage Storage Networking Networking Security & Integration Managed by vendor You manage Databases You manage Software You manage Platform Virtualization Databases Servers Virtualization Server HW Server HW Storage Storage Networking Networking Managed by vendor Infrastructure Managed by vendor Private Cloud computing architecture e.g. Web browser SaaS , e.g. Google Docs PaaS, e.g. Google AppEngine IaaS, e.g. Amazon EC2 Different types of cloud computing IaaS Amazon EC2 Clients can rent virtualized hardware, can control the software stack on the rented machines PaaS Microsoft Azure Clients can choose languages, but cannot change the operating system or runtime Google AppEngine Provides a programmable platform that can scale easily SaaS- Exploiting Software as a Service Software is delivered as a service over the Internet, eliminating the need to install and run the application on the customer's own computer. This simplifies software maintenance and support for the customer. With SaaS, a provider licenses an application to customers either as a service on demand, through a subscription, in a “pay-as-yougo” model, or (increasingly) at no charge when there is opportunity to generate revenue from streams other than the user, such as from advertising (e.g. Google AdWords). Examples: Gmail, YouTube, and Google Docs, among others Some defining characteristics of SaaS include: • Web access to commercial software. • Software is managed from a central location. • Software delivered in a “one (program) to many (customers)” model – multi-tenancy. • Users not required to handle software upgrades and patches. • Application Programming Interfaces (APIs) allow for integration between different pieces of software. SaaS is widely accepted to have been introduced to the business world by the Salesforce Customer Relationship Management (CRM) product. As one of the earliest entrants, it is not surprising that CRM is the most popular SaaS application software. However e-mail, financial management, customer service and expense management have also gotten a good uptake via SaaS. SaaS systems typically include some or all of the following: - Accessing virtual desktops on a per-user-per-month rental basis. - Accounting, financial management, inventory and e-commerce. - Collaborations between employees and clients on projects. - Creating flowcharts, diagrams, floor plans and other technical drawings. - Customer Relationship Management (CRM). - Editing, storing and sharing documents, presentations, spreadsheets, blogs, web pages and videos, - Project management. - Web-mail, calendaring, instant messaging, video conferencing and social networking. Example: Some of the SaaS applications available from Zoho.com PaaS – Delivering Platform as a Service Platform as a Service (PaaS) brings the benefits that SaaS bought for applications, but over to the software development world. The cloud provider supplies a set of development tools (a platform) which allows users to create an application without the complexity of buying and maintaining the software and infrastructure underneath it. But, note, some cloud providers just provide an execution platform, not a development platform. The application may then run on the provider’s infrastructure, i.e. servers, storage and network However, the cloud provider manages the underlying infrastructure and requirements. PaaS systems typically include some or all of the following features: - Browser-based development environment for creating databases and editing application code – either directly or through visual, point-and-click tools. -Built-in scalability, security, access control and web service interfaces. - Easy integration with other applications on the same Platform. - Tools for connecting to applications outside the platform’s cloud. - Tools for designing web forms, defining business rules and creating workflows. The provider supplies Web-based user interface creation tools. The application may be integrated with Web Services and databases in the cloud. This model allows building high-availability, high-scalability, and high-performance cloud environments or applications. Example - Google App Engine: Build web applications on Google’s Infrastructure Example - The Facebook Developer Platform: Set of APIs that allow you to create Facebook Applications Delivery of an integrated computing platform (to build/test/deploy custom apps) and solution stack as a service. Deploy your applications and do not worry about buying and managing the underlying hardware and software layers IaaS – Infrastructure as a Service IaaS is a way of delivering cloud computing infrastructure – servers, storage, network and operating systems – as an ondemand service. Rather than purchasing servers, software, datacenter space or network equipment, clients instead rent those resources as a fully outsourced service on demand. The cloud provider leases to users Virtual Machine Instances (i.e. computer infrastructure) using virtualization technology. The user has access to a standard operating system environment and can install and configure all the layers above it. Virtualization Technology is a major enabler of IaaS. It is a path to share IT resource pools: Web servers, storage, data, network, software and databases. Higher utilization rates made possible Linux Windows Mac OS Example Software Stack Example - Amazon Web Service Elastic Compute Cloud (EC2) IaaS systems typically include some or all of the following features: - A choice of ready-made virtual machines with pre-installed operating systems including numerous versions of Windows and Linux - A choice of virtual appliances – virtual machines with specific sets of software pre-installed - Ability to store copies of particular data in different locations around the world to make downloads of the data as fast as possible - Software tools to help process large amounts of data (in Data Grids) and perform complex calculations (in Compute Grids) using large arrays of virtual servers working in parallel on the same problem - Ability to manually increase or decrease the computing resources assigned to you using a web browser as your requirements change - Ability to automatically scale computing resources up and down in response to increases and decreases in application usage. Questions?
© Copyright 2024