The 6th overview article by BPARK on IRC (or gmdduf on Skype) on wiki.linaro.org. please complain any incorrect information to [email protected].
Cloud computing overview
Over the past few years, cloud computing has become one of the defining secular trends within technology. Cloud Computing’s quick rise to the market is flourishing due to clear industry-ready benefits: a business model to decrease capital expenditure, a “pay-as-you-go” service model, Platform as a Service (PaaS), public/private/hybrid Infrastructure as Service (IaaS) combinations, storage solutions, dynamic provisioning, and more.
In addition, there are a lot of activities are on going to enable ARM base server for cloud computing. So, this page survey general concept/status of "Cloud computing".
Public cloud workloads may increase at a 50% CAGR in the next three years about twice as fast as the market currently anticipates Cloud Computing Takes Off Market Set to Boom as Migration Accelerates - Morgan Stanley. There is significant shift in the competitive landscape between on-premise server sales, which typically benefit the top three x86 Server OEMs—Hewlett-Packard, Dell, IBM—and the managed or cloud server sales, which increasingly benefit ODMs in Asia, including Quanta(the best-positioned ODM) and Wistron. Anecdotally, some cloud service providers have decreased the percentage of servers ordered from top server vendors from as much as 75-100% historically to 50% today. Storage spend will continue to benefit from increased consumption in managed/cloud IT data centers.
According to IDC, by 2015, about 24% of all new business software purchases will be of service-enabled software with SaaS delivery being 13.1% of worldwide software spending http://www.idc.com/getdoc.jsp?containerId=232239
Mobile SaaS Market will reach $1.2 billion in 2011 and grow to $3.7 billion by 2016, with a five-year compound growth rate (CAGR) of 25.8 percent http://www.analytics-magazine.org/special-articles/454-corporate-mobile-software-as-a-service-forecast-
The cloud computing marketplace will reach $16.7B in revenue by 2013, according to a new report from the 451 Market Monitor, a market-sizing and forecasting service from The 451 Group https://451research.com/
Gartner is predicting that the cloud system infrastructure (cloud IaaS) market to grow by 47.8% through 2015 User Survey Analysis: Infrastructure as a Service, the 2011 Uptake
Cisco predicts that Global cloud IP traffic will increase twelvefold over the next 5 years, accounting for more than one-third (34 percent) of total data center traffic by 2015. Cisco Global Cloud Index: Forecast and Methodology, 2010–2015.
What is Cloud?
According to US National Institute of Standards and Technology (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.
In other word, Cloud computing is where software applications, processing power, data and potentially even artificial intelligence are accessed over the Internet. i.e., cloud computing is where dynamically scalable, device-independent and task-centric computing resources are provided online, with all charges being on a usage basis.
In comparison to previous computing eras and paradigms, cloud computing potentially also offers many advantages. Not least, over the coming decade fewer individual users will be tied to a particular device when they want to access their data and applications. Collaborative working will also become far more common. Many experts anticipate that within a decade the vast majority of personal and business computing will be Internet based. In tandem with Web 2.0, cloud computing is already changing the landscape of the computing industry. Google's CEO Eric Schmidt has stated that cloud computing is bigger than the PC revolution.
Cloud computing characteristics
Highly abstracted – No need for the CIO to manage physical hardware or storage components for Business applications in the Cloud
Dynamically scalable - because users only have to consume the amount of online computing resources they actually want. anybody can now obtain as many or as few computing resources from the cloud as they require at any particular point in time.
Pay-as-you-go - Cloud computing is charged on a usage basis, it has no fixed costs. It is extreme importance for small companies because they do not charge an initial fixed-cost outlay
Multi-tenant - Since all Cloud customers share the service provider’s architecture and software, there is no longer a need to worry about expensive software upgrades for SaaS applications
Immediately scalable - Capacity can be immediately scaled to the right number of users, from 1 tot 1000s The cloud can be up or downsized in minutes, often via the internet
Device-independent - because cloud computing resources can be accessed not just from any computer on the Internet, but also any type of computer. Provided that it has an Internet connection and a web browser, it really does not matter the type of devices.
Cloud building block
Over the past months, Cloud computing taxonomy has begun to shape into a generally accepted classification, being distinguished as three fundamental building blocks - software as a service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS)
SaaS - Software as a Service
Delivery of applications targeted at private users (e.g. social networking, micro-blogging) and business users (e.g. ERP, CRM). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings. Example will be Google Docs, online database application like Zoho Creator, an online photo editor like Pixlr, online invoicing application such as Zoho Invoice
Deloitte reports pointed that Over the next 5 years, SaaS will remain the most mature and largest market, followed by IaaS and PaaS.
PaaS - Platform as a Service
Delivery of tools for development, testing, deployment, hosting and application maintenance over the Web. This platform consists of infrastructure software, and typically includes a database, middleware and development tools. Ex, Amazon EC2, Google App Engine, Microsoft Windows Azure, and Salesforce.com’s Force.com.
Typical core platform services would be DaaS - Database as a Service, Message Queue, Blob or Object Stores and File Sharing.
IaaS - Infrastructure as service
Delivery of hardware (CPU, storage, network and other fundamental computing resources), and associated software (operating systems virtualization technology, file system) Ex, Amazon Elastic Compute Cloud or "EC2" and Rackspace are most popular.
Forrester in “Future View: the New Tech Ecosystems of Cloud Services, and Cloud Computing” defines additional two service in Cloud Service Architecture (CSA)
- ACaaS (App-Components as a Service) – Cloud computing components services
- VIaaS (Virtual Infrastructure as a Service) – Cloud computing virtual infrastructure service
Cloud deployment models
Cloud servers can also be real or virtual. By combination of real and virtual server four categories of IaaS are available. These are most commonly known as private clouds, dedicated hosting, hybrid hosting and cloud hosting.
Type of IaaS
Pros and Cons
private cloud (or more fully a vendor managed private cloud)
a customer rents a number of co-located servers in part of a data centre.
the most secure form of IaaS but cloud cannot be dynamically scaled and the most expensive
a customer rents dedicated physical servers on demand from anywhere within a data centre. the hardware can be mixed-in with other customers
less costly than a private cloud and can be dynamically scaled
a customer rents on demand a mix of dedicated physical servers and as well as some less expensive virtual server instances
dynamically scalable but less secure
a customer rents as many or as few virtual server instances as they require on demand. E.g, customers share all of the servers they use with other customers
lowest-cost, flexible but too risky
Regardless of the service model utilized (SaaS, PaaS, or IaaS) there are four deployment models are possible for cloud services
Cloud computing requirements
Services provided by cloud platforms can be categorized basically into three classes: compute, storage and network services
Compute resources can be offered either via IaaS or PaaS layer. The IaaS compute service offers running a virtual machine (VM) on top of a virtualization layer. the virtualization layer is very often implemented either using KVM, Xen or VMware virtualization solutions. According to Elastichosts solution, Linux KVM architecture is superior to both Xen and VMWare, since the mainline Linux scheduler and device drivers are both extremely well designed, widely deployed, professionally maintained and thoroughly tested. Besides the pure runtime environment for VMs IaaS cloud platforms very often provide additional services. Such as Firewall, VM monitoring, Auto scaling, MapReduce service. As an alternative to the IaaS approach applications can be developed on PaaS platforms.
PaaS offerings provide a runtime environment for applications as a service. Runtime environments include Java, Python, .NET and others. Very often PaaS clouds also offer facilities for application design, application development, testing, deployment and hosting. The strength of PaaS is to allow fast development and offer of new applications with the help of the included PaaS platform tools.
The term Data Storage as a Service (DaaS) has been established by Storage Networking Industry Association (SNIA) - a non-profit association aiming for the development of storage solution specifications.
The Cloud Data Management Interface (CDMI) defines the functional interface that applications will use to create, retrieve, update and delete data elements from the Cloud. As part of this interface the client will be able to discover the capabilities of the cloud storage offering and use this interface to manage containers and the data that is placed in them. This interface is also used by administrative and management applications to manage containers, accounts, security access and monitoring/billing information, even for storage that is accessible by other protocols. CDMI as a SNIA standardized protocol is not the only possibility for the realization of interface 3. There are also proprietary protocols from Cloud storage providers as e.g. Amazon S3, Rackspace CloudFiles, Nirvanix and others that could be used instead
SNIA distinguishes four different types of cloud storage
- Block storage: Block storage is offered via traditional interfaces such as iSCSI that allows mounting a volume by a virtual machine. Amazon EBS (Elastic Block Storage) is a representative in this category.
- File storage: File storages are very often exported via protocols such as NFS, WebDAV, etc.
- Object storage: Object storage allows to create, retrieve, update and delete data objects such as files. This is not a file system or real-time data storage system, but rather a long term storage system for a more permanent data such as VM images, log files, backup data, etc. A well-known example for object storage is Amazon Simple Storage (S3).
- Database storage: This service provides a relational database service from the cloud.
Depending on the cloud provider, the service can be implemented using database solutions such as MySQL, Oracle etc. Amazon Relational Database Service (RDS) is an example.
Those type of storage can be subdivided to general data requirements – Transaction, Consistency, read/wirte mode, query model etc – and data security mode. The data to be stored in the cloud has different requirements regarding database performance, security, confidentiality, backup strategies, archiving etc
Either a network element, parts of or even the whole network – usually in the state ‘normal’ – may transit into the state ‘overload’ or ‘outage’. This may be due to increased user traffic (e.g. at a specific time of day when the resources are not adequate), due to technical failures (like power outages or SW failures) or due to the results of an attack.
A standard mechanism for the creation of high performance systems is the usage of some form of load balancing. The load balancer essentially acts as a manager passing the requests he receives to any free worker he has registered. The number of workers needed depends on the number of requests the manger receives and typically varies over time. Another method for load balancing is the usage of a queue. In this case the manager puts every request he receives into one queue. The workers frequently check if the queue holds requests, take them and process them.
In a virtualized environment as provided by a cloud the number of workers is an adjustable parameter. This is usually done by monitoring the system and defining thresholds for some parameters. Typical parameters for a load balancing mechanism are the number of requests received per second and the average response time of the workers
The “Above the Clouds : A Berkley view of cloud computing, Feb. 2009” report points out that “Software stacks have improved interoperability among platforms, but the APIs for cloud computing itself are still essentially proprietary. Interoperability and portability research in IaaS and PaaS has been highlighted at the IEEE CloudCom 2011 conference. Thus, customers cannot easily extract their data and programs from one site to run on another”. CaaS (Content as a Service) neatly fits as a service at the platform services level next the data base service. For this to be open and enable customers to easily extract their content from one cloud to another.
Interoperability is not so far away on the IaaS layer, helping to set up complex scenarios such as Cloud bursting, brokerage, federation, etc. In comparison, such advances the PaaS layer are still very far off, with current uncertainty on standards, technology choices on the platform and their implications on what’s delivered on top. “Component-ization” and re-use of Cloud architectures can help prepare more efficiently for many interoperability-required use cases.
CMIS (Content Management Interoperability Service) is an open standard that defines an abstraction layer for controlling diverse document management systems and repositories using web protocols. That has been approved by OASIS, a web standards consortium, on May 1, 2010.
In short, CMIS will be to content what SQL is to data. CMIS defiens a domain model which consists of
- Data Model - To consistently model content and properties
- Services – To access the content in a consistent way
- Bindings - SOAP and REST/ATOM bindings
These are designed to be a layer on top of existing content management repositories offering a generic, universal set of capabilities application.
An important issue in this scenario is the scalability of resources. Depending on the actual component that an administrator wants to scale, the resources needed for the scaling process may differ
- Storage is the easiest resource to scale. It can be extended or reduced without the prior shutdown of any system or component.
- Cpu and memory cannot be scaled independently. If a virtual machine really needs more cpu power or more ram, it must be shut down first and restarted with the required configuration.
- Scaling network is possible in two ways. Either the underlying physical server has several physical network connections. Scaling the network then results in the virtual machine getting access to another network connection. Or network resources are virtually choked from the first and by scaling the network the threshold is lifted.
- The instance is not really a resource like a cpu or storage. An instance is a virtual machine which is running in a cloud and is using the other resources described in this list (storage, cpu, ram, network). Scaling an instance will most likely be done by adding another identical instance and balancing the load between the old and the new instances.
One of the core ingredients for Cloud is high quality internet connection. A reliable Internet connection has now become as requisite a utility service for business and personal activities as a constantly available phone network and electricity supply. That’s why many of the fears associated with cloud computing security and data protection are also largely perceptual. Security concerns became the dominant barrier to adopt cloud computing and it makes one of the key things highlighted by cloud computing developments is the need for secure personal computing devices like Google Chrome OS.
Cloud Security Alliance (CSA) published a guide [CSA_GUIDE21] with practical recommendations and key questions to make a transition of applications, data and IT infrastructure from on-premise to public cloud offerings as securely as possible. The CSA Cloud Controls Matrix [CSA_CCM] is a catalog of cloud security controls aligned with key information security regulations, standards, and frameworks. The matrix is based upon the CSA Security Guidance for Critical Areas of Focus in Cloud Computing
The German Federal Agency for IT Security (Bundesamt für Sicherheit in der Informationstechnik – BSI) published a listing minimum security requirements for cloud computing providers.
Linux and Cloud
In November 2011, Red Hat acquired Makara to help accelerate its PaaS strategy and incorporated the technology into its platform. More significantly, in May of this year the company launched OpenShift, its next generation open source PaaS, initially hosted on Amazon’s EC2. OpenShift will support Java, Ruby, PhP, and Python, among others.
VMware recently announced Cloud Foundry, the world’s first entirely open PaaS offering. Cloud Foundry(CloudFoundry.org) provides a platform for building, deploying, and running cloud apps using Spring for Java developers, Rails and Sinatra for Ruby developers, Node.js and other Java Virtual Machine frameworks, including Grails.
Rackspace Open Stack Initiative. In collaboration with NASA, Dell, Citrix, Equinix, and others, Rackspace launched an open-source cloud development platform in July of 2010. Lew Moorman, Rackspace’s head of Cloud Operations, has said, “What Android is to smartphone operating systems, we want Open Stack to be for the cloud”
Facebook’s Open Cloud Project. Facebook recently announced that the company custom designed its compute architecture with "vanity free servers" that are 38% more efficient and 24% less expensive than other state-of-the-art data centers. Additionally, Facebook released the hardware specifications for its custom designed servers, allowing anyone to contribute ideas or innovations. In June 19 2012, EUCALYPTUS -,the most widely deployed on-premise cloud computing platform-announced a new version of its product that aligns the open source community and enterprises on the same platform to contribute, build, run and manage cloud development and deployments. The release features performance improvements and several new capabilities, including FastStart, which enables users to deploy on-premise AWS-compatible IaaS clouds in under 20 minutes
Cloud computing overview (last modified 2012-08-25 10:42:02)