9 Cloud Computing Cloud Architectures Typical Web App
9. Cloud Computing. Cloud Architectures
Typical Web App Architecture
Cloud Business Drivers
Characteristics of Cloud Computing
Characteristics of Cloud Computing
Cloud Computing Attributes
Cloud Architecture Lessons
Cloud Architecture
Design for Failure and Nothing Fails
Design for Failure and Nothing Fails
Scalability
Scalability
The Future …
ABOVE THE CLOUDS
Cloud Computing
Cloud Computing — Core Concepts
Cloud Computing Types
Cloud Computing has Multiple Dimensions
Service Delivery Model Examples Amazon Google Microsoft Salesforce Saa. S Paa. S Iaa. S Products and companies shown for illustrative purposes only and should not be construed as an endorsement
A Cloud Computing Definition
Working Cloud Definition (1 of 3)
Working Cloud Definition (2 of 3)
Working Cloud Definition (3 of 3)
The Cloud Framework
Provisioning Problems Some users desert the site permanently after experiencing poor service When Animoto made its service available via Facebook, it experienced a demand surge that resulted in growing from 50 servers to 3500 servers in three days.
Leading Vendors Offering Computing as a Service
Elastic Compute Cloud (EC 2) • Elastic Compute Cloud (EC 2) from Amazon Web Services (AWS) sells 1. 0 -GHz x 86 “slices” – for 10 cents per hour, and – a new “slice”, or instance, can be added in 2 to 5 minutes. • Amazon’s Scalable Storage Service (S 3) – charges $0. 12 to $0. 15 per gigabyte-month, with – additional bandwidth charges of $0. 10 to $0. 15 per gigabyte to move data in to and out of AWS over the Internet.
Elasticity • The key observation is that Cloud Computing’s ability to add or remove resources at a fine grain (one server at a time with EC 2) and with a lead time of minutes rather than weeks allows matching resources to workload much more closely. • Real world estimates of server utilization in datacenters range from 5% to 20%. – This may sound shockingly low, but it is consistent with the observation that for many services the peak workload exceeds the average by factors of 2 to 10. – Few users deliberately provision for less than the expected peak, and therefore they must provision for the peak and allow the resources to remain idle at nonpeak times. • The more pronounced the variation, the more the waste.
Case Study: Amazon Cloud • Amazon cloud components – Elastic Compute Cloud (EC 2) – Simple Storage Service (S 3) – Simple. DB • • New Features – Availability zones • Place applications in multiple locations for failovers – Elastic IP addresses • Static IP addresses that can be dynamically remapped to point to different instances (not a DNS change)
Amazon Cloud Terminology
Amazon Cloud Users: New York Times and Nasdaq • Both companies used Amazon’s cloud offering • New York Times – Didn’t coordinate with Amazon, used a credit card! – Used EC 2 and S 3 to convert 15 million scanned news articles to PDF (4 TB data) – Took 100 Linux computers 24 hours (would have taken months on NYT computers – “It was cheap experimentation, and the learning curve isn't steep. ” – Derrick Gottfrid, Nasdaq • • Nasdaq – Uses S 3 to deliver historic stock and fund information – Millions of files showing price changes of entities over 10 minute segments – “The expenses of keeping all that data online [in Nasdaq servers] was too high. ” – Claude Courbois, Nasdaq VP – Created lightweight Adobe AIR application to let users view data
Animoto
Scaling From 50 to 3500 Servers in 3 Days
New York Times
Chaos Monkey • The Chaos Monkey’s job is to randomly kill instances and services within Netflix architecture. – If we aren’t constantly testing our ability to succeed despite failure, then it isn’t likely to work when it matters most – in the event of an unexpected outage. • Chaos Gorilla is similar to Chaos Monkey, but simulates an outage of an entire Amazon availability zone. – We want to verify that our services automatically re-balance to the functional availability zones without user-visible impact or manual intervention.
Why Customers Value Cloud: Easy to Deploy and Better Economics
Some Generally Accepted Characteristics • Most people would agree that true cloud computing… – usually has low or zero up front capital costs – largely eliminates operational responsibilities (e. g. , if a disk fails or a switch loses connectivity, you don’t need to fix it) – for the most part, cloud computing eliminates knowledge of WHERE one’s computational work is being done; your job is being run “somewhere” out there in the “cloud” – offers substantial elasticity and scalability: if you initially need one CPU, that’s fine, but if you suddenly need 999 more, you can get them, too (and with very little delay!) If/when demand drops, you can scale your usage back, too – cloud computing leverages economies of scale (running mega data centers with tens of thousands of computers is far less expensive (per computer) than running a small machine room with just a modest cluster of systems)
Another Data Point for Clouds and Security
Cloud Computing Ontology
A. Cloud Application Layer • A cloud application is deployed at the provider’s computing infrastructure (rather than at the users’ desktop machines), therefore the developers of the application are able to roll smaller patches to the system and add new features without disturbing the users with requests to install major updates or service packs. • This model conveys several favorable benefits for the users and providers of cloud applications, and is normally referred to as Software as a Service (Saa. S). • Salesforce Customer Relationships Management (CRM) system [7] and Google Apps [8] are two examples of Saa. S.
B. Cloud Software Environment Layer • The users of this layer are cloud applications’ developers, implementing their applications for and deploying them on the cloud. • The providers of the cloud software environments supply the developers with a programming-language-level environment with a set of well-defined APIs to facilitate the interaction between the environments and the cloud applications, as well as to accelerate the deployment and support the scalability needed of those cloud applications.
Cloud Software Environment Layer: Platform as a Service • The service provided by cloud systems in this layer is commonly referred to as Platform as a Service (Paa. S). • One example of systems in this category is Google’s App Engine [5], which provides a python runtime environment and APIs for applications to interact with Google’s cloud runtime environment. • Another example is Sales. Force Apex language [9] that allows the developers of the cloud applications to design, along with their applications’ logic, their page layout, workflow, and customer reports.
C. Cloud Software Infrastructure Layer • The cloud software infrastructure layer provides fundamental resources to other higher-level layers, which in turn can be used to construct new cloud software environments or cloud applications. • Cloud services offered in this layer can be categorized into: – computational resources, – data storage, and – communications.
Computational Resources • Virtual machines (VMs) are the most common form for providing computational resources to cloud users at this layer, where the users get finer-granularity flexibility since they normally get super-user access to their VMs, and can use it to customize the software stack on their VM for performance and efficiency. • Often, such services are dubbed Infrastructure as a Service (Iaa. S). • Amazon’s Elastic Compute Cloud (EC 2[6]), and Enomalism elastic computing infrastructure [13] are the two most popular examples of commercial systems available in this cloud category.
Virtualization • Virtualization is the enabler technology for this cloud component, which allows the users unprecedented flexibility in configuring their settings while protecting the physical infrastructure of the provider’s data center. • Recent advances in OS Virtualization: – paravirtualization and – hardware-assisted virtualization.
Data Storage • The second infrastructure resource is data storage, which allows users to store their data at remote disks and access them anytime from any place. • This service is commonly known as Data. Storage as a Service (Daa. S), and it facilitates cloud applications to scale beyond their limited servers.
Data Storage • Data storage systems are expected to meet several rigorous requirements for maintaining users’ data and information, including – – – high availability, reliability, performance, replication and data consistency; • but because of the conflicting nature of these requirements, no one system implements all of them together. • Example of commercial Daa. S-systems are Amazon’s S 3 [19] and EMC Storage Managed Service [20].
Communication • As the need for a guaranteed quality of service (Qo. S) for network communication grows for cloud systems, communication becomes a vital component of the cloud infrastructure. • One example of systems that belong to Caa. S is Microsoft Connected Service Framework (CSF).
Communication • Consequently, cloud systems are obliged to provide some communication capability that is – – – serviceoriented, configurable, schedulable, predictable, and reliable. • Towards this goal, the concept of Communication as a Service (Caa. S) emerged to support such requirements, as well as – network security, – dynamic provisioning of virtual overlays for traffic isolation or dedicated bandwidth, – guaranteed message delay, – communication encryption, and – network monitoring.
D. Software Kernel • This cloud layer provides the basic software management for the physical servers that compose the cloud. • Software kernels at this level can be implemented as an OS kernel, hypervisor, virtual machine monitor and/or clustering middleware.
E. Hardware and Firmware • The bottom layer of the cloud stack in our proposed ontology is the actual physical hardware and switches that form the backbone of the cloud. • In this regard, users of this layer of the cloud are normally big enterprises with huge IT requirements in need of subleasing Hardware as a Service (Haa. S). • For that, the Haa. S provider operates, manages and upgrades the hardware on behalf of its consumers, for the life-time of the sublease. • This model is advantageous to the enterprise users, since they do not need to invest in building and managing data centers. • Meanwhile, Haa. S providers have the technical expertise as well as the cost-effective infrastructure to host the systems.
CLOUD ARCHITECTURES
Xaa. S
Cloud Computing Architecture
View of Cloud Deployment Cloud Application Client Infrastructure Saa. S Application Paa. S Platform Iaa. S Storage Infrastructure Virtualized Application Service
Cloud Architecture
Cloud Computing Architecture vs. “Xaa. S”
“Xaa. S” Stack Views Customer View vs. Provider View
SOA and Cloud Computing
Cloud Computing Model
Federated Cloud Service
Infrastructure as a Service (Iaa. S)
Platform Cloud Service (Paa. S)
Platform as a Service (Paa. S)
Software Cloud Service (Saa. S)
Software as a Service (Saa. S)
The Relationship of Cloud Service Layers
Importance of Data Services in the Cloud
CONCLUSIONS
The “Cloud Pyramid” • Build upon a foundation • Layers equate structure • Building blocks: Infrastructure, Platforms, Applications • Breadth vs. Niche
The “Cloud Pyramid” Inversed • 1000’s of Cloud Applications currently • Handful of Cloud Platforms • Elite group of Cloud Infrastructure # of Marketplace providers
Drivers for Cloud Computing Adoption
Barriers for Cloud Computing Adoption
Relationship to Other Technologies
Cloud Computing Pros and Cons
- Slides: 76