posted 2 years ago in Dev Platform category by Park Kieun
Like the moon coming out of the clouds and shining brightly, I hope this article will provide you with an opportunity to brighten your understanding of Cloud computing.
During the last couple of years, when I looked closely into the Cloud (in fact, Cloud computing is the accurate name), it struck me that I was chasing a cloud, trying to grasp it with my hands. Is it too obvious that Cloud is literally the cloud? After a series of discussions at SPNG TF within the NHN, and pondering of more practical matters, now the moon seems clear, having emerged from the cloud.
I would like to start this article about Cloud computing by referring to “Like the Moon Having Come out of the Cloud” a Korean comic by Park Hung-yong that was also made into a movie. The story begins with a question: why do people want to walk on the clouds? I would like to talk about the concept and the necessity of Cloud as an answer to this question. Thinking of the many types of clouds, such as cirrus, cumulus, nimbus, etc., I would like to use these as an analogy for the several branches of Cloud services. Now shall we go about catching clouds in the sky?
Ah! Before we get started, I would like to say that this script is mostly based on a document titled ‘A Study of NHN Platform Services,’ which was delivered by the SPNG TF (Service Platform Next Generation Task Force) within the Service Platform Development Center in 2011.
Why do people want to walk on the clouds?
There is an English expression, Cloud Nine, which originally refers to the ninth stairway to the heaven in Dante’s The Divine Comedy. The US National Weather Service uses this expression to refer to the highest located category of Clouds in its 9-layered classification system. It also has a meaning of ‘the happiest moment' or 'a moment of climax.’ There is a popular song about it too. A cigarette brand used Cloud Nine for one of its products, which provoked a dispute due to the health risks of smoking. While there is an expression of ‘walking on the clouds,’ I will look into what Cloud, Cloud computing, and Cloud services are, and what they are needed for.
First of all, let’s check out some definitions of ‘cloud computing.’ For this phrase there are as many definitions as there are definers. Personally, I like this definition most: “Using a laptop in an airplane while flying over 8000 m”. There are, of course, technical definitions. The one most frequently cited is the one in “The NIST Definition of Cloud Computing” by the National Institute of Standards and Technology.
According to NIST,
‘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. This Cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models.'
It has five essential characteristics:
- On-demand self-service: A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically, and without requiring human interaction with each service’s provider.
- Broad network access: Capabilities are available over the network and accessed through standard mechanisms that promote the usage of heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, desktops, servers, etc).
- Resource pooling: The provider’s computing resources are pooled to serve multiple consumers by using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to the consumer's demand. The customer generally has no control or knowledge over the exact location of the provided resources.
- Rapid elasticity: Capabilities can be rapidly and elastically provisioned, in some cases automatically, to quickly scale out, and rapidly released to quickly scale in.
- Measured Service: Resource usage can be monitored, controlled, and reported. Transparency is provided for both the provider and consumer of the utilized service.
What do you think? Do the services around you, which claim to be ‘Cloud Services,’ meet all of these requirements? NIST says Cloud computing has three service models and four application models. I will talk about these in more details later.
To sum up, the Cloud service can be defined as “an approach to purchase the Internet to use with ease and speed for a period of time whenever the user needs it, instead of owning IT resources such as network, servers, storages, applications and services.” In other words, you can run a program of your own development that requires both a Web server and a DB server by clicking a couple of times on the Web. By using the Cloud service, you can also instantly purchase a Web office with just as many features and as much storage capacity as you need, and stop using it any time you want. If it is hard for you to tell the difference between the Cloud service and “normal Web services,” you can go back to the five characteristics mentioned above.
Now let’s turn to the second question:
Why is the Cloud service necessary?
The answer is easy. Cloud is "inexpensive and good”. In other words, Cloud services reduce TCO (Total Cost of Ownership). With Cloud services, businesses can utilize IT resources without having their own IT infrastructure or expertise in its implementation and operation. In addition, real-time scalability is available according to the service load, and you only pay for what you use. As everyone knows, an IT infrastructure has needs. For example, a server requires space, power to turn on, people to maintain it, the required software, and so on.
You will realize that Cloud is absolutely necessary when you experience stagnant user growth after making a big investment in servers, expecting that your service will be a big hit, or when you cannot budget for new servers because you are in a rush to cope with skyrocketing demand. From the perspective of economics, Cloud service is risk hedging. You are not too late in investing in IT infrastructure, while using the right amount of IT at the right time. It may seem more expensive than purchasing and operating servers yourself, but ultimately it is the way to go to address the grand question of the IT industry: how to reduce TCO.
Specifically, Cloud services can allow a user to:
- Use advanced information processing functions inexpensively without having to worry about capital cost, operation and maintenance
- Have a shorter system building and development period, and respond to fluctuations in demand immediately and flexibly
- Collaborate, collect data and control operations easily through the network
- Reduce the risk of information disclosure as a result of lost equipment, etc.
- Ensure continuity in business due to the persistency of the service
- Only pay as you go
On the other hand, Cloud computing can allow a business to:
- Utilize virtualization and distributed processing technologies to provide resources for diverse demand for information processing more efficiently
- Use software resources more efficiently through standardized applications
- Rationalize operation, repair and update through service automation and persistency
- Offer diverse services for a reasonable price by getting other Cloud service providers on board
- Make services available to as many users as one can imagine through distribution and virtualization
Now, can you see why people are trying to walk on the cloud? Yes, for rationalization, optimization and cost reduction. The figure suggesting a 70/30 switch, which is frequently used by Amazon demonstrates the benefits of Cloud simply, but clearly.
What are the big solution vendors that are well known for Cloud services?
The forerunner-in-Cloud Amazon, the-one-everybody-knows Google, doing-not-bad Microsoft, late-but-doing-good Salesforce.com, and IT-veterans IBM and Oracle are offering their own services and solutions.
Amazon offers AWS (Amazon Web Services), which include EC2 (Elastic Compute Cloud) and S3 (Simple Storage Service). As one would expect from a leader in Cloud services, AWS makes diverse types of services available. I just heard news via an AWS mailing a few days before writting this article that Amazon RDS (Amazon Relational Database Service) is now available. It is amazing that brand new services are being launched almost every day.
Amazon EC2 is one of the best Cloud platform services, and is designed well enough to be considered the standard. It uses the Xen virtualization technology to provide servers for users, allowing them to receive and use allocated servers within just a few minutes. Some might say, what’s the big deal about the use of VMs (Virtual Machines)? But think about a situation in which multiple IDCs (Internet Data Centers) upload VMs onto servers, allocate them, configure the environment for them, and transfer them automatically if there is any problem, without intervention by the system administrator and through a Web interface for people around the world. Isn’t that a big deal? You can designate VM images (together with OS and diverse packages) to be used in the server as you like, and even create your own VM images and upload them for use. This is far better than services offered by existing hosts which often make you wait days or up to a week after applying until they are available to use, and pay each month for them. One more thing is that you can put EC2 on hold after using it for only half a day, for example. Finally, you only pay as you go.
These distinguished and clearly different factors are not only important things about Cloud services. Another important aspect is that no human intervention is required for service providers to provide virtual servers for users. This greatly affects costs for the provider and will eventually lead to a competitive advantage. What this means is that users, in turn, can purchase the service faster, easier, and for lower prices.
S3 is another well-known Cloud product of AWS, in addition to EC2. It is a Cloud storage service that is very familiar to all of us now. SlideShare (http://www.slideshare.net), which I use productively from time to time, is a service provided by way of AWS’s EC2, S3, EBS, SQS, MapReduce, etc. With Cloud, Web service vendors can now do business without making a large investment to build the appropriate infrastructure.
In addition to Apps services, in which a Cloud-based office environment is offered to businesses, such as Gmail and Docs, the Google App Engine Cloud service is also well-known, which enables running of Web applications on Google’s infrastructure. Toolkit, which is available in App Engine, allows programs to be written using Java or Python and run on the infrastructure provided (web, server, network, storage and more) without worrying about management and scalability. Usage fees are charged based on HTTP requests, CPU time, and incoming and outgoing bandwidth.
As a formidable competitor in packaged software, Microsoft offers Windows Azure, SQL Azure and AppFabric Cloud services as part of a “software + service” strategy. Users can purchase a Windows-based virtual server and SQL Server from the Cloud for use. A program written on your PC using Virtual Studio and SQL Server can be deployed on the Cloud as it is, so that the strengths of Microsoft's development packages can be fully utilized.
SalesForce.com is a leader in offering Web-based CRM solutions (i.e. sales automation, partner relationship management, marketing automation, customer service and resource automation). In order to reinforce its capability in the area of Cloud-based platform service, the company turned one of its internal Cloud computing technologies into a commercial service called Force.com. Its intent is to put its internal development tools and environment, which has been available for its internal users to run CRM application individually for efficient use of infrastructure resources, out on the market. This is like Amazon.com, which has tweaked its internal environment for service development and offering into a commercial service, AWS. To sum up, Cloud service is the commercialization of existing environments and expertise used for efficient internal service operation, not a brand new invention.
There are many types of clouds, such as cirrus, cumulus and nimbostratus.
The World Meteorological Organization classifies clouds into ten categories. The detached clouds in the form of white dedicate filaments that have fibrous (hair-like) appearance are called cirrus clouds, and these are in the category of high clouds. On the other hand, the detached clouds, generally dense and with sharp outlines, which appear frequently on fine spring or fall days, are called cumulus clouds, and are in the category of low clouds. The grey cloud layer, which is often dark, and has an appearance that is rendered diffuse by more or less continuously falling rain or snow, is called nimbostratus. Heavy and dense clouds with a considerable vertical extent that are accompanied by thunder and lightening are called cumulonimbus. Just as there are such many types of clouds, there are a good many types of ‘Cloud services.’ Let’s look into NIST’s definition of Cloud computing.
The NIST document presents three service models (SaaS, PaaS and IaaS) and four deployment models (Private, Community, Public and Hybrid).
- Cloud Software as a Service (SaaS): The capability provided to the consumer is to use the provider’s applications running on a Cloud infrastructure. The consumer does not manage or control the underlying Cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities.
- Cloud Platform as a Service (PaaS): The capability provided to the consumer-created or acquired applications on the Cloud infrastructure. These are created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying Cloud infrastructure including the network, servers, operating systems, or storage, but has control over the deployed applications and possibly the application hosting environment configurations.
- Cloud Infrastructure as a Service (IaaS): The capability given to the consumer is to provide fundamental computing resources (server, storage, network and more), where the consumer is able to deploy and run arbitrary software (including OS). The consumer does not manage or control the underlying Cloud infrastructure, but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components.
SaaS is the most typical type of Cloud service, which most users have used. In the SaaS model, the service vendor provides all infrastructures and software products, and the user utilizes them using Web-based front-end. Such a service can be found in diverse applications, including e-mail applications such as Gmail, Dropbox (data synch solutions), and Mint (financial software).
Including a software hosted by the service provider at its own hardware infrastructure and Cloud service which provides product development tools, PaaS allows users to develop applications by using APIs and platforms or development tools that are provided. Examples of PaaS include Force.com of Saleforce.com, Google App Engine, and Microsoft's Azure platform. MySQL of AWS and RDS, which allows the use of Oracle as Cloud, are also examples of PaaS.
IaaS is a type of a Cloud service which makes available access to basic building blocks, allowing users to exploit them to build the infrastructure required to run applications. The two most well-known examples of IaaS are AWS (Amazon Web Services) and Rackspace.
There are more XaaSes used in the industry. These include DaaS (Database as a Service) and MaaS (Management as a Service), to name a couple. The former is a variant of PaaS, which provides database service in the form of Cloud, while the latter allows outsourcing of the operation and management of infrastructure. Some call a Cloud service Desktop as a Service (another DaaS), which provides a desktop environment for users and allows them to manage user data efficiently regardless of which device they use, where they are, and which network they use, therefore you may feel that some of them simply abuse "Cloud" everywhere. For more information on Cloud Taxonomy, visit http://cloudtaxonomy.opencrowd.com/taxonomy/.
There is also a concept of “PaaS as SaaS Ecosystem.” PaaS’ reference architecture, which is presented in a report (Forrester’s Platform-As-A-Service Reference Architecture) by Forrester, a market research specialist, emphasizes PaaS as foundation for SaaS. What it says is that there are many types where SaaS applications are available on the platform of a PaaS vendor rather than SaaS ISVs (Independent Software Vendors) having their own Cloud systems, who provide a wide range of services for general users in the form of Cloud. Such Cloud services using PaaS-based SaaS applications as described in the report are already being witnessed diversely in the market. As can be seen from the result of Quora inquiry, IaaS is already used among SaaS ISVs far more widely than among ordinary users.
The figure above shows a Government Cloud Computing Framework defined by the General Services Administration as Cloud RFQ (Request For Quotation). It contains a wide range of elements, from data center facilities and security to privacy, service management and provisioning. This suggests that a Cloud service system has a lot of functional elements besides the services that are visible to users.
The first facility required to build a Cloud service system, is probably a solution called a “Cloud Management Platform,” which is labeled “Cloud Service Delivery Capabilities” in the figure. The element named “Cloud User Tool” is also indispensable to the plant. The Cloud Management Platform, also called Cloud OS, "Cloudizes" the environment of your data center infrastructure based on hypervisor technologies including Xen, KVM and VMware. In some respect, it is a solution that provides an IaaS-level Cloud environment. Well-known solutions include CloudStack of Cloud.com, RightScale Cloud Management Platform of RightScale, Elastic Computing Platform of enomaly, Eucalyptus of Eucalyptus Systems and OpenNebula of C12G Labs. All these solutions have both open-source versions and commercial versions available, and use many other open-source tools. Some of them are for building private Clouds for internal use, while others are for providing Cloud services to external users.
It is hard to list every Cloud computing-related technology, vendor and solution available, but I found a figure, The Cloud Computing Map, presented above. Though it is not easily readable, the thick branches that grow from the root, Cloud Computing, include Characteristics, Deployment Models, Types of Clouds, Cloud Stack, Benefits, Barriers, Vendors and Projects.
Before I wrap up this article, for your information, let me answer the question ‘How it differs from the virtual server hosting as offered by hosting service providers, such as café 24 or Amazon’s EC2?’
The boundary between hosting and Cloud IaaS is blurry. Large-scale hosting service providers, such as GoGrid and Rackspace, uses the term ‘Cloud Hosting.’ Probably, the opposite words of Cloud Hosting is Dedicated Hosting or Managed Hosting. Cloud computing is far larger than hosting in its concept, and embraces more areas. If the five attributes of Cloud computing defined by NIST are met by a hosting service, it is Cloud. Two of the starkest differences between café 24’s virtual server and Cloud are ‘whether you can use it as an on-demand self-service’ and ‘whether you pay only for what you use.’ In EC2, the user can add EBS storage on the Web on his own instantly if disk capacity is lacking, or transfer to a higher VM model while maintaining what‘s in the server if CPU or memory are short. Can café 24 do this?
So far we have introduced you to our own perspective on Cloud.
Do you see some moonlight coming out of the cloud now? Still feel visible but unattainable as if you are trying to grasp Clouds in the sky? I hope you should not.
By Park Kieun, the CUBRID Cluster Architect, Service Platform Developement Center, NHN Business Platform Corp.
Park Kieun has also written the Database Technology for Large Scale Data.