David Bernstein IEEE Cloud Standards P2300 Series Founder and Working Group Chair, European Commission FP7 einfrastructure Expert/Roadmap Group, U.S. National Institute of Standards, Cloud Computing Project Scientist; Managing Director, Cloud Strategy Partners, LLC, A Cloud Computing Specialty Consulting House, Silicon Valley, California. david@cloudstrategypartners.com June 2012
A day in the life of Dilbert, selecting a Cloud Computing technology There are at least eleven ways to interpret cloud computing
Cloud Definition Cloud computing refers to network, computing, storage, and application resources constructed on a flexible, virtualized, automated platform. Usually clouds are geographically distributed. Usually Clouds expose usage, departmental allocation, or subscription based business models. Clouds can simultaneously exhibit multiple personalities depending on how they are built and used.
Public Clouds Private Clouds Hybrid Clouds Virtual Private Clouds Cloud Gateways and Cloud Bursting
Public Clouds Companies use Clouds which are run by Service Providers. Service Providers own and operate the equipment. Many end customers are co-resident and sharing the same equipment.
Private Clouds Companies use Clouds which they build and run themselves. Companies own and operate the equipment as an internal service provider Many departments are co-resident and sharing the equipment.
Hybrid Clouds Companies Cloud Burst from Private Clouds to Public Clouds This is more complicated than the other models and requires either networking equipment, or a gateway along with proprietary software which runs on the cloud. Hybrid Cloud systems usually re-sell (up-charge) for the Cloud resources.
How Hybrid Clouds Work VPN Connection tunnels the enterprise network address space up into the pubic cloud Either through Network gear or through a whole software system running in the public cloud (or both), an extension to the enterprise private cloud appears in the pubic cloud Note, a Carrier can supply this VPN connection without special equipment if it is already using MPLS-VPN to connect the enterprise together; and MPLS-VPN is configured right to the public cloud
A Cloud Gateway is just a Hybrid Cloud with no local private cloud VPN Connection tunnels the enterprise network address space up into the pubic cloud Either through Network gear or through a whole software system running in the public cloud (or both), an extension to the enterprise a private cloud - appears in the pubic cloud This is also called Virtual Private Cloud
Hybrid Clouds/Virtual Private Clouds have been well done by vendors because they can control the experience through the gateway they place
The Legacy Cloud and The Web-Scale Cloud
Where did Clouds Come From? Enterprises wanted to run multiple virtual machines on a homogeneous server, increasing efficiency and easing management The Legacy Cloud Virtualization, Distributed Systems, and Automation Internet Service Providers wanted to build really large platforms for new kinds of software like search and auction and public email The Web-Scale Cloud
Building the Legacy Cloud and the Web-Scale Cloud Legacy Cloud = Premium Value-added high availability and performance in HW Failure is considered an exception and dead units are Replaced Servers are often Blade Servers using a single vendor architecture Brand Name Ethernet switches are used SAN or NAS storage is used Often with Fibre Channel Along with SAN storage system which implements the replication and virtualization of storage System design tends towards homogenous elements to take full advantage of Blade Server manageability advantages Web-Scale = Commodity Low cost small, good, cheap, simple, and fast HW Failure is statistically inevitable, dead units are just Powered Off Servers are often no-name rack and stack servers, with mix n match vendors Lowest cost Ethernet switches are used Direct attached storage is used Using built in SATA type interfaces Software layer implements replication and virtualization of storage System design tends to mix n match elements with more investment on homegrown or third party system management
Use Cases for the Legacy Cloud and the Web-Scale Cloud Legacy Cloud = Existing Software s Must Run Unchanged That Means, Cloud has to supply all the Context the app is used to VLAN, CoS/QoS Networking Very Fast and Deterministic throughput to Transactional Block storage Long System Uptimes Ability to Boot OS stacks and Virtual liances to mimic physical deployment IaaS is everything Use Virtual liances or Additional booted Servers for Load Balancers or Message Queue Services Legacy Clouds are Virtualization 2.0 Web-Scale = New Software s are Newly-architected That Means, the Cloud can offer limited features if it needs to, in order to scale Only Simple L2/L3 Networking Usually Pretty Fast throughput to Eventually Consistent Object storage Regular Server Failures/Reboots Ability to Boot OS stacks & also provide some API s to make software deployment easier IaaS is important PaaS for common deployment helpers like Load Balancers or Message Queue Services Web-Scale Clouds are a 20-yr Think Different Religion
Web-scale Cloud is the Think Different 20 year Platform Software Breakthrough Cloud is really a New Platform Religion Infinite, Elastic CPU s Virtualization Infinite, Elastic Storage Design with Failure in Mind Loose Coupling Platform does almost nothing Platform makes few promises Automation Replication
Spillover Effect on lications Architecture lication Designers Get the Religion Too Clunky Modularization is OK Design with Failure in Mind Scale Out, not Up Protect Your Data Chef and Puppet Scripting is OK Adopt Simple is Good RoR, Spring, Hibernate Object Store NoSQL, MapReduce Decoupled Components Secure your application WS-* and J2EE are out the window
Example Web-Scale Cloud s Cloud s would never have been able to run on servers
IaaS PaaS
To Understand IaaS and PaaS we start with Foundations for Cloud: Hosting lication OS lication OS lication OS Hosted Deployment Datacenter Deployment lication OS lication OS lication OS
Foundations for Cloud: Virtualization Without virtualization: With virtualization: Virtualization Layer Single OS image per machine Software and hardware tightly coupled Running multiple applications on same machine often creates conflict Underutilized, inflexible, costly infrastructure Break dependencies between OS and hardware Manage OS and application as single unit by encapsulating them into VMs Strong fault and security isolation VMs are hardware-independent: they can be provisioned anywhere
Foundations for Cloud: Virtualized Hosting OS OS OS Virtualization Virtualized Hosted Deployment lication OS lication OS lication OS Hosted Deployment
Foundations for Cloud: Automation OS OS OS Virtualization Automation OS OS OS Virtualization Automated Virtualized Hosted Deployment = Infrastructure as a Service (IaaS) Virtualized Hosted Deployment
IaaS - Use Model OS OS OS Virtualization Automation Tooling uses a Physical Metaphor Tool-based description of lication Stack: machines, runtimes, storage, networks Deployment of this description to the automation system which makes it so lication Stack runs as it did before but on a virtualized infrastructure
Foundations for Cloud: Cloud OS Cloud Cloud OS A new set of API s Cloud Virtualization Cloud Automation OS OS OS Virtualization Automation Automated Virtualized Hosted on Cloud OS = Platform as a Service (PaaS) Automated Virtualized Hosted Deployment
PaaS Use Model Cloud Cloud OS A new set of API s Cloud Virtualization Cloud Automation Tooling uses a Code Metaphor Really a new way to Build apps No machine metaphors all code! Complete API overhaul The code is deployed to the Automation, which then runs it across the cloud
Tooling Tooling Comparing IaaS to PaaS Cloud Metaphor is Physical lications are server apps Metaphor is Code API lications are cloud apps All features are added to Cloud OS - either VM s loaded with server code, or are appliances which were made virtual Features are software embedded in the Cloud OS like firewall, load balancer storage, database,.. Cloud OS Goop Cloud OS Runtime for Machine & liances Images lication Code Container Cloud OS distributed services Cloud OS Goop implementing each API feature Virtualization Automation Virtualization Automation
Bonus A closer look at PaaS
What is a Cloud API anyway Runtime() Cloud Cloud Cloud boot this image execute this code API s Storage(), Database() BLOB (binary object) block (file system) structured data (database or database-like) Content() data cache URL Runtime() Storage() Content() Message() User() Database() Cloud OS Message() Reliable communication to another cloud app Email User() Profile, Authentication
Forms of API s Web Service <ListAllMyBuckets xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <AWSAccessKeyId>1D9FVRAYCP1VJEXAMPLE=</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </ListAllMyBuckets> Java Code public URI create(bucket bucket, Headers headers) { if (!bucket.validatename(callingformat)) throw new IllegalArgumentException("Invalid Bucket Name: "+bucket); return generateuri(method.put, bucket, "", headers); } public URI list(bucket bucket, String prefix, String marker, Integer maxkeys, Headers headers { return list(bucket, prefix, marker, maxkeys, null, headers); } Python Code http.setrequestheader("authorization",authvalue) http.setrequestheader("date",curdatetime) xmlresponse = http.quickgetstr("http://s3.amazonaws.com/") if (xmlresponse == None ): else: print xmlresponse
What a Cloud API set looks like Google Engine APIs Python Runtime from Google Lots of Python add-ons available Python Runtime Datastore Images Mail Memcache URL Fetch Users, Gdata Amazon AWS APIs Web Services from Amazon Java, Ruby, Python API s available SimpleDB Simple Storage Elastic Block Storage Content Distribution Network Simple Queue Service DevPay Billing/Acct Mgt Flexible Payments
Conclusions Start with your applications and work backwards The kind of cloud you ll find yourself using will be driven by the kinds of apps you want to run on it Ask for help from your vendors and experts. Make sure you match the challenge to the solution. Every journey begins with one step, Cloud Computing is no exception!
David Bernstein IEEE Cloud Standards P2300 Series Founder and Working Group Chair, European Commission FP7 einfrastructure Expert/Roadmap Group, U.S. National Institute of Standards, Cloud Computing Project Scientist; Managing Director, Cloud Strategy Partners, LLC, A Cloud Computing Specialty Consulting House, Silicon Valley, California. david@cloudstrategypartners.com