Have you ever wondered what makes the service a ‘cloud’ application? Or alternatively, how does any app become cloud based? The following article dives a little deeper into this often-asked questions and explores some of the characteristics and criteria of the cloud. To illustrate the point, I examine two well-known public services (Airbnb and Spotify) and analyze the ‘cloud application’ sticker and its merit used often with these two these online services.
What is a Cloud Application?
Essentially, a cloud application is a software that is running on top of the cloud-based services. It could either be an entirely web-based application or service, or a desktop app with a cloud backend, but fundamentally a cloud application is an application based or heavily leveraging the cloud resources and cloud computing services. That said, the obvious subsequent question is, what is a cloud then?
According to the National Institute of Standards and Technology’s definition “The Cloud is a model for enabling ubiquitous, 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.” (Mell & Grance, 2011, p. 2).
To make it a bit simpler to navigate this somewhat convoluted definition, the NIST offers a visual model of the above classification of Cloud (Figure 1).
Figure 1. NIST visual model of cloud computing definition (Treasurytoday.com, 2017)
Essential Characteristics of Cloud
Without going into too many details, the Cloud is made of certain indispensable features, such as:
On-Demand service (ability to provide network storage or server time without human interaction), Broad Network Access, Resource Pooling (shared storage, processing, memory, bandwidth and other computing resources), Rapid Elasticity (elastic provisioning and scaling of resources) and Measured Service which provides transparency to cloud customer as well as cloud provider.
Cloud Service Models
Three different service models define a cloud application, and it is sole up to an application provider to choose which of the model works is the best for their business processes and which implementation would benefit them the most. The levels go from the lowest IaaS (Infrastructure as a Service), through PaaS (Platform as a Service), to the highest level of cloud service called SaaS (Software as a Service). In essence, the three services can be outlined in layman terms as follows:
IaaS is the simplest form because principally speaking it only provides a client with a virtual machine(s) hosted at a cloud provider facility, onto which any application or service can be installed. It is up to a user to almost entirely manage such environment. The cloud provider usually provides only virtualization, servers, storage and networking in this particular model. So, we can conclude that IaaS is primarily a hardware solution only.
PaaS is somewhere in the middle amongst the three cloud service models because PaaS brings a computing platform on top of the IaaS hardware. In PaaS model, the cloud client is provided with a remotely managed platform upon which an application or service can be deployed and hosted. In this model, the user is usually managing only their implementation and the actual PaaS development platform, whereas the cloud provider takes care of the rest of the management (PaaS platform itself, runtime, OS, virtualization, servers, storage, and networking).
SaaS is the highest form of the cloud service. It can be defined as a fully hosted software application, a situation where everything (entire equipment, including the application) is organized in the cloud and the only responsibility of the user is to manage the data associated with the application.
Cloud Deployment Models
Lastly, we need to clarify that when we refer to Cloud, it has to be recognized that the cloud is not one big bucket where all application run in a multi-tenant shared environment. The cloud providers allow their clients to choose from various options. These levels are traditionally defined by the degree of cost, accessibility, availability and privacy.
The cloud users can traditionally decide between Private (hosted and controlled by a single enterprise internally or externally), Public (standard model available to general public), Community (resources and infrastructure shared among organizations in a specific community), Federated (use of several internal/external cloud services), Intercloud (interconnected global cloud) or Hybrid cloud option, which is a combination of various deployment models to match the business needs.
Cloud Application – Use Cases
Airbnb is a marketplace that connects property owners and travelers around the world, essentially allowing anyone to rent their house, condo or cottage to those people who seek a vacation space. Airbnb employs over 2,000 workers across the globe that support their Amazon cloud infrastructure as well as property rentals in 192 countries.
Airbnb is a prime example of a true cloud company. According to Amazon, “Airbnb migrated nearly all of its cloud computing functions to Amazon Web Services (AWS). To support demand, Airbnb uses 200 Amazon Elastic Compute Cloud (Amazon EC2) instances for its application, Memcache, and search servers. Within Amazon EC2, Airbnb is using Elastic Load Balancing, which automatically distributes incoming traffic between multiple Amazon EC2 instances. To easily process and analyze 50 Gigabytes of data daily. Airbnb uses Amazon Elastic MapReduce (Amazon EMR). Airbnb is also using Amazon Simple Storage Service (Amazon S3) to house backups and static files, including 10 terabytes of user pictures. To monitor all of its server resources, Airbnb uses Amazon CloudWatch, which allows the company to easily supervise all of its Amazon EC2 assets” (Airbnb Case Study, 2017).
As we can see Airbnb is using a cloud model to their full advantage of Amazon cloud offering, which allows them to support millions of active users of their platform, as well as adopting most of Amazon cloud services. Nathan Blecharczyk, Co-founder & CTO of Airbnb says, “It was great to be able to ramp up more servers without having to contact anyone and without having minimum usage commitments. As our company continued to grow, so did our reliance on the AWS cloud. AWS is the easy answer for any Internet business that wants to scale to the next level.” (Airbnb Case Study, 2017).
Spotify is a digital music service that allows users to stream millions of songs from numerous record labels from practically any device connected to the Internet.
Wouter de Bie, Director of Engineering for Data at Spotify says: “Quite a while ago, we have made a decision to focus on data. Moreover, being able to store that and process that has been an enormous challenge. Moving to Google’s Cloud Platform enabled us to take use of the scale that Google can provide.” (Spotify and Google Cloud, 2017). The opinion seconded by Nicholas Harteau, Director, Office of the CTO, Google Cloud Platform at Google who says “The reality is it is quite hard to build great data centers. Moreover, we saw an opportunity to spend our focus elsewhere. And that was really the driver to bring Spotify into Google’s Cloud Platform. The less time that we can spend solving problems that are already solved, like scaling our Hadoop cluster when Google has already figured out how to scale it for us, the more time and energy we can spend on turning the (Spotify) data into value. And that is really a game-changer. When you are talking about a technology like BigQuery, when you are talking about Dataflow, you will feel the Spotify product evolve, making the user experience great.”
Spotify’s move to Google cloud platform in 2016 was a transition that proved beneficial to all parties. In a world of the business model such as the one used by Spotify, that is associated with tremendous growth in storing the information and that can leverage all cloud features, including the big data analysis and scaling on demand, the cloud offers effortless options.
Mell, P., & Grance, T. (2011). The NIST definition of cloud computing. Special Publication 800-145 [online] Available at: http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf [Accessed 2 Jun. 2017].
Airbnb Case Study. (2017). Amazon Web Services (AWS). [online] Available at: https://aws.amazon.com/solutions/case-studies/airbnb/ [Accessed 2 Jun. 2017].
Google Cloud Platform. (2017). Companies Using Google Cloud Services | Google Cloud Platform. [online] Available at: https://cloud.google.com/customers/ [Accessed 2 Jun. 2017].
Treasurytoday.com. (2017). Is your head in the cloud? | Treasury Today . [online] Available at: http://treasurytoday.com/2012/02/is-your-head-in-the-cloud [Accessed 2 Jun. 2017].
Spotify and Google Cloud. (2017). Streaming music for every moment with Spotify and Google Cloud Platform. [online] Available at: https://www.youtube.com/watch?v=pm6KZ2xicFA [Accessed 3 Jun. 2017].