In: Computer Science
Cloud Computing is often described as a stack, as a response to the broad range of services built on top of one another under the moniker Cloud. The generally accepted definition of Cloud Computing comes from the National Institute of Standards and Technology Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (For example networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
Software-as-a-Service
oftware as a Service Cloud application services or “Software as a Service” (SaaS) are probably the most popular form of cloud computing and are easy to use. SaaS uses the Web to deliver applications that are managed by a third-party vendor and whose interface is accessed on the clients’ side. Most SaaS applications can be run directly from a Web browser, without any downloads or installations required. SaaS eliminates the need to install and run applications on individual computers. With SaaS, it’s easy for enterprises to streamline their maintenance and support, because everything can be managed by vendors: applications, runtime, data, middleware, O/S, virtualization, servers, storage, and networking. Mail is one famous example of an SaaS mail provider.
Case study: Launched in November 2008, Groupon features a daily deal on the best stuff to do, see, eat and buy in more than 500 markets and 40 countries. The company has thousands of employees spread across its Chicago and Palo Alto offices, regional offices in Europe, Latin America, Asia, and Africa with local account executives stationed in many cities. Groupon seeks to sell only quality products and services, be honest and direct with customers, and provide exceptional customer service.
Key features
SaaS vendors provide users with software and applications via a subscription model.
Users do not have to manage, install or upgrade software; SaaS providers manage this.
Data is secure in the cloud; equipment failure does not result in loss of data.
Use of resources can be scaled depending on service need
Example
BigCommerce, Google Apps, Salesforce, Dropbox, MailChimp, ZenDesk, DocuSign, Slack, Hubspot.
Platform-as-a-Service
PaaS: Platform as a Service The most complex of the three, cloud platform services or “Platform as a Service” (PaaS) deliver computational resources through a platform. What developers gain with PaaS is a framework they can build upon to develop or customize applications. PaaS makes the development, testing, and deployment of applications quick, simple, and cost-effective, eliminating the need to buy the underlying layers of hardware and software. One comparison between SaaS vs. PaaS has to do with what aspects must be managed by users, rather than providers: With PaaS, vendors still manage runtime, middleware, O/S, virtualization, servers, storage, and networking, but users manage applications and data.
Case study: Directors of development house Trineo the company responsible for boutique development for Menumate. Fowlie explains that the use of the Force.com platform has allowed Menumate to centralize, modernize, and integrate an otherwise disparate in-house software toolki
feels that a more conventional development approach would require significant infrastructure, connectivity, security and would introduce uptime considerations - whereas the Force.com platform inherently provides these non-functional requirements - allowing Menumate and Trineo to focus purely on developing the needed functionality. Additionally, utilizing a PaaS approach has meant Trineo could take advantage of both existing integrations and automated deployment tools - another example of PaaS easing the development process.
Key features
PaaS provides a platform with tools to test, develop and host applications in the same environment.
Enables organizations to focus on development without having to worry about underlying infrastructure.
Providers manage security, operating systems, server software and backups.
Facilitates collaborative work even if teams work remotely.
Examples include Microsoft Azure and the Google App Engine.
Infrastructure-as-a-Service
Infrastructure as a Service Cloud infrastructure services, known as “Infrastructure as a Service” (IaaS), deliver computer infrastructure (such as a platform virtualization environment), storage, and networking. Instead of having to purchase software, servers, or network equipment, users can buy these as a fully outsourced service that is usually billed according to the amount of resources consumed. Basically, in exchange for a rental fee, a third party allows you to install a virtual server on their IT infrastructure. Compared to SaaS and PaaS, IaaS users are responsible for managing more: applications, data, runtime, middleware, and O/S. Vendors still manage virtualization, servers, hard drives, storage, and networking. What users gain with IaaS is infrastructure on top of which they can install any required platforms. Users are responsible for updating these if new versions are released.
Case study: Started in 2008, the company has seen rapid growth including a 50x revenue jump in 2010. This translates to average daily site visits of 300,000 with spikes up to one million unique viewers. When deciding on a strategy for their infrastructure, Beyond Diet needed something that was both low-touch and highly scalable. It is important that Beyond Diet have the ability to both scale up and down as their marketing strategy sees large traffic spikes on a regular basis.
Key features
Instead of purchasing hardware outright, users pay for IaaS on demand.
Infrastructure is scalable depending on processing and storage needs.
Saves enterprises the costs of buying and maintaining their own hardware.
Because data is on the cloud, there can be no single point of failure.
Enables the virtualization of administrative tasks, freeing up time for other work.
Examples DigitalOcean, Linode, Rackspace, Amazon Web Services (AWS), Cisco Metapod, Microsoft Azure, Google Compute Engine