cloud computing: the hard problems never go away
DESCRIPTION
Talk by Doug Tidwell of IBM at ZendCon 2009TRANSCRIPT
![Page 1: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/1.jpg)
Cloud Computing: The Hard Problems Never Go Away
By Doug Tidwell, Cloud Computing Evangelist, IBM
![Page 2: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/2.jpg)
2
Agenda
•A few (a very few) words about the cloud
•The hard problems (Boo!)
•Vendor lock-in and the Simple Cloud API
•Next steps / Resources
![Page 3: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/3.jpg)
3
A few words about the cloud
![Page 4: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/4.jpg)
4
Before the cloud
• If you wanted to start an enterprise, you needed an IT shop.
• Massive costs in hardware, software, power, administrative staff
• Prohibitive cost to entry
![Page 5: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/5.jpg)
5
What if...
•You could have unlimited computing resources?
All the processing power you want
All the data storage you want
Data mining whenever you want
•Cloud computing will be the biggest change to our industry since the rise of the Internet.
![Page 6: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/6.jpg)
6
The cloud
•Cloud computing . . . is a style of computing where IT-related capabilities are provided ‘as a service,’allowing users to access technology-enabled services ‘in the cloud’ without knowledge of, without knowledge of, expertise with or control over the technologyexpertise with or control over the technologyinfrastructure that supports them.
From Wikipedia
•Everybody has a slightly different idea of what cloud computing really is.
![Page 7: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/7.jpg)
7
The cloud is here to stay
•Extremely stupid idea of assuming the entire planet just can not be bothered with their own data (nor the security thereof). As always there will be some who think they 'need' this. I hope this whole cloud [stuff] just goes away. Logistically speaking it will never be anything but a waste of money.
Posted by [email protected], who apparently just can not be bothered with their own email (nor the security thereof).
![Page 8: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/8.jpg)
8
Cloud characteristics
•Rapid elasticity
•Measured service
•On-demand self-service
•Ubiquitous network access
•Location-independent resource pooling
Source: NIST Working Definition of Cloud Computing, http://csrc.nist.gov/groups/SNS/cloud-computing/
![Page 9: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/9.jpg)
9
Cloud services
•There are four basic things people are doing in the cloud:
The application in the sky
The hard drive in the sky
The database in the sky
The machine in the sky
![Page 10: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/10.jpg)
10
The hard problems never dieNo matter how badly we want them to
![Page 11: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/11.jpg)
11
The hard problems never die
•Whenever the industry embraces a technology, there’s always the exhilaration of doing something new.
•Unfortunately, we still have to deal with the hard problems like security, maintenance, lifecycle management, and so forth.
We still have to build flexible applications that respond to changes in the business environment.
We still have to share data and business processes with our partners.
We’re not going back to building silos just because the cloud is here.
•• SOA isnSOA isn’’t going away just because the cloud is here.t going away just because the cloud is here.
![Page 12: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/12.jpg)
12
Cloud computing requirements
•Management and governance
•Transactions and concurrency
• Identity
•Federated identity
•Security
•Location awareness
•Avoiding vendor lock-in
Common APIs for cloud storage, cloud databases, cloud middleware
•Common VM image format
![Page 13: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/13.jpg)
13
Cloud computing requirements
•Data and application federation
•SLAs
•Lifecycle management
•Open client
•Metering and monitoring
•Deployment
![Page 14: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/14.jpg)
14
Governance is hard
•Similarities between SOA and the cloud:
Both started bottom-up
Both started with massive hype
Both don’t work without governance
• You need an architect, a blueprint, and an executive who is bothenlightened and powerful.
•• SOA and cloud computing arenSOA and cloud computing aren’’t simply coding issues.t simply coding issues.
![Page 15: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/15.jpg)
15
Transactions and concurrency
•Many enterprise applications require transactions and concurrency.
There needs to be only one copy of the data
Any changes to the data have to be synchronized
•This is very difficult to scale.
![Page 16: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/16.jpg)
16
Cloud storage
•Most cloud storage systems, such as Amazon’s S3, are designed as distributed, redundant systems.
Your data is stored on more than one disk in more than one place.
If one part of the system goes down, the rest of the system keeps going.
“There should never be a single point of failure” is a stated design goal.
•You can’t think of cloud storage as just another hard drive.
![Page 17: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/17.jpg)
17
Cloud storage is not just a hard drive
•Once you create an object, it can’t be modified. You can delete it or replace it, but you can’t modify it. (In S3, you can’t even move it.)
• It takes time for changes to make their way throughout the system (propagation latency).
If you just put an object into S3, you can’t be sure that it will be available right away.
If you get an object from S3, you can’t be sure that it’s the latest version.
![Page 18: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/18.jpg)
18
Cloud storage is not just a hard drive
•Read and write requests will fail occasionally. Your application should handle that gracefully.
Trying the request a second time usually does the trick.
Delete requests sometimes fail as well.
![Page 19: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/19.jpg)
19
Cloud storage
•All of this is by design.
These design decisions mean that S3 is extremely scalable and reliable.
But these design decisions also mean that S3 doesn’t work like another hard drive.
•The right answer, as always, is to understand your choices, understand your needs and pick the technology that works best for you.
![Page 20: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/20.jpg)
20
Cloud databases
•Cloud databases have similar design points.
Datasets are distributed for reliability
Some cloud databases support schemas, some don’t
Some cloud databases support joins, most don’t
Some cloud databases are relational, almost all aren’t
Some cloud databases are transactional, some aren’t
![Page 21: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/21.jpg)
21
“Database” ≠ RDBMS
•Amazon’s SimpleDB is built around domains. Each domain has some number of items; each item has some number of attribute / value pairs.
No schema support
No queries across domains
•These design decisions make SimpleDB fast, scalable and, well, simple.
But our previous discussions of propagation latency and I/O errors apply here, too.
![Page 22: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/22.jpg)
22
A wee quiz
• Is this a good idea?
count()
•How about this?
avg()
•Or one of these?
sum(), min(), max()
![Page 23: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/23.jpg)
23
A wee quiz
•The answer: It depends.
SimpleDB automatically indexes your datasets, so the count()operation is efficient. But everything is a string, so avg(), sum(), min(), and max() aren’t supported.
Even if they are supported, they often aren’t efficient. If records have to be retrieved from multiple servers in multiple data centers just to calculate an average, that can take a long time.
![Page 24: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/24.jpg)
24
Database design
• Many of us have learned over the years how to normalize an SQL database.
But in the cloud, if the dataset is scattered across multiple machines in multiple data centers and you can’t do joins across tables, you have to do things differently.
• A denormalized database contains redundant data and often does calculations at write time, not at read time.
A denormalized database is different from a poorly-designed database that was never normalized to begin with.
![Page 25: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/25.jpg)
25
Denormalizing your database
• The goal of a traditional, normalized relational database is to put each piece of data into the system once and only once.
Building an application to use the data in a different way doesn’t require changes to the database. (Hopefully.)
• With a denormalized database, the goal is to copy pieces of data to minimize queries and processing power.
Building an application to use the data in a different way might require changes to the database.
Updating data might require making the same change in multiple places.
![Page 26: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/26.jpg)
26
Reliability
• If I have less physical control over my infrastructure, it’s vital that the cloud be reliable as possible.
Some providers have SLAs that guarantee uptime and responsiveness.
Some providers deliver private clouds via hosted or colocated data centers.
•Reliability isn’t a new problem, but the cloud gives us someone else to blame.
![Page 27: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/27.jpg)
27
Security
• If I’m storing my data elsewhere, security as crucial as ever.
• If I’m running my applications elsewhere, security is as crucial as ever.
Some cloud providers offer greater security, access to their facilities, customized backup and recovery procedures, data destruction, etc.
•Cloud computing doesn’t introduce any new security issues.
It doesn’t make them easier to solve, but it doesn’t create any new ones.
•You can reuse much of your existing security infrastructure.
![Page 28: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/28.jpg)
28
Identity
• Identity management, particularly federated identity management, is crucial for cloud computing.
Technologies such as LDAP, OpenID, OAuth, etc. can be useful here.
•You can reuse much of your existing authentication infrastructure.
![Page 29: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/29.jpg)
29
Regulatory issues
•Many enterprises can’t use a public cloud at all.
Laws prohibit certain types of data from being stored off-premises.
•The private cloud is an important architectural pattern being used in many enterprises.
•Location awareness is a key concern for many (potential) cloud users.
•Data retention and data destruction are important also.
![Page 30: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/30.jpg)
30
Vendor lock-in
![Page 31: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/31.jpg)
31
Vendor lock-in
• If there’s a new technology, any talented programmer will want to use it.
Maybe the shiny new thing is appropriate for what we’re doing.
Maybe not.
We’re probably going to use it anyway.
•The challenge is to walk the line between using the newest, coolest thing and avoiding vendor lock-in.
![Page 32: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/32.jpg)
32
The Simple Cloud API
•A joint effort of Zend, GoGrid, IBM, Microsoft, Nirvanix and Rackspace
But you can add your own libraries to support other cloud providers.
•The goal: Make it possible to write portable, interoperable code that works with multiple cloud vendors.
•simplecloud.org/
•An article on the Simple Cloud API was published on the developerWorks Open Source zone today: bit.ly/1bSkTx
There’s also a Simple Cloud podcast at dW.
![Page 33: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/33.jpg)
33
The Simple Cloud API
•Covers three areas:
File storage (S3, Nirvanix, Azure Blob Storage, Rackspace Cloud Files)
Document storage (SimpleDB, Azure Table Storage)
Simple queues (SQS, Azure Table Storage)
•Uses the Factory and Adapter design patterns
A configuration file tells the Factory object which adapter to create.
![Page 34: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/34.jpg)
34
Vendor-specific APIs
•Listing all the items in a Nirvanix directory:
•$auth = array('username' => 'your-username', 'password' => 'your-password', 'appKey' => 'your-appkey');
$nirvanix = new Zend_Service_Nirvanix($auth); $imfs = $nirvanix->getService('IMFS'); $args = array('folderPath' => '/dougtidwell',
'pageNumber' => 1, 'pageSize' => 5);
$stuff = $imfs->ListFolder($args);
![Page 35: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/35.jpg)
35
Vendor-specific APIs
•Listing all the items in an S3 bucket:
•$s3 = new Zend_Service_Amazon_S3($accessKey, $secretKey);
$stuff = $s3->getObjectsByBucket($bucketName);
![Page 36: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/36.jpg)
36
The Simple Cloud API
•Listing all the items in a {Nirvanix directory | S3 bucket}:
•$credentials = new Zend_Config_Ini($configFile);
$stuff = Zend_Cloud_Storage_Factory::getAdapter($credentials)->listItems();
![Page 37: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/37.jpg)
37
Where we go from hereIt’s still early
![Page 38: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/38.jpg)
38
Issues with the Internet
•“It’s not secure.”
•“I don’t want to lose control of my infrastructure.”
•“I don’t know how reliable it is.”
•“I don’t know if my partners are going to use it.”
•• All of these were important, legitimate issues.All of these were important, legitimate issues.
With VPNs and other technology, the industry solved these problems.
![Page 39: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/39.jpg)
39
Issues with the cloud
•“It’s not secure.”
•“I don’t want to lose control of my infrastructure.”
•“I don’t know how reliable it is.”
•“I don’t know if my partners are going to use it.”
•• All of these are important, legitimate issues.All of these are important, legitimate issues.
We’ve got some work to do, but the massive economic incentives mean someone will find a way to solve these problems.
![Page 40: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/40.jpg)
40
The hype, one more time
•Cloud computing will be the biggest change to our industry since the rise of the Internet.
![Page 41: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/41.jpg)
41
ResourcesUseful stuff
![Page 42: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/42.jpg)
42
Other cloud sessions
•Cloud Computing with VMWare, Akhil Sahil
11:15 – 12:15 Wednesday
•PHP and the Cloud, Ivo Jansch
2:45 – 3:45 Wednesday
•PHP and Platform Independence in the Cloud, Wil Sinclair
9:15 – 10:15 Thursday
![Page 43: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/43.jpg)
43
Cloud Computing with the Zend Framework
• A series of articles from the IBM developerWorks Open Source zone:
Using Amazon S3 with Zend, September 22
• ibm.com/developerworks/opensource/library/os-php-cloud1/
Using Amazon EC2 with Zend, October 13
• ibm.com/developerworks/opensource/library/os-php-cloud2/
![Page 44: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/44.jpg)
44
1. Cloud providers must work together to ensure that the challenges to cloud adoption are addressed through open collaboration and the appropriate use of standards.
2. Cloud providers must not use their market position to lock customers into their particular platforms and limiting their choice of providers.
3. Cloud providers must use and adopt existing standards wherever appropriate. The IT industry has invested heavily in existing standards and standards organizations; there is no need to duplicate or reinvent them.
Principles of openness
![Page 45: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/45.jpg)
45
Principles of openness
4. When new standards (or adjustments to existing standards) are needed, we must be judicious and pragmatic to avoid creating too many standards. We must ensure that standards promote innovation and do not inhibit it.
5. Any community effort around the open cloud should be driven by customer needs, not merely the technical needs of cloud providers, and should be tested or verified against real customer requirements.
6. Cloud computing standards organizations, advocacy groups, and communities should work together and stay coordinated, making sure that efforts do not conflict or overlap.
![Page 46: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/46.jpg)
46
The principles in action
• The Cloud Computing Use Cases Google group has a white paper of common use cases.
• The identified use cases will be used as input to various standards efforts.
•• Join us at Join us at groups.google.comgroups.google.com/group/ /group/ cloudcloud--computingcomputing--useuse--casescases..
•• Version 1 of the paper is available Version 1 of the paper is available at at bit.ly/1FXRAHbit.ly/1FXRAH.
![Page 47: Cloud Computing: The Hard Problems Never Go Away](https://reader034.vdocuments.us/reader034/viewer/2022052410/55529a6fb4c9051f108b50a5/html5/thumbnails/47.jpg)
47
Developer requirements
• Scalable Database
• Centralized Logging
• Scalable Session Management
• Identity Management
• Robust Storage
• Messaging – Pub-Sub
• Messaging – Point-to-Point
• Caching
• Raw Compute / Job Processing
• Service Discovery
• SLAs
What else?