The Enterprise Cloud
Agenda
What’s an “enterprise”?
 
 
$$$
What makes an enterprise uncool is also what defines it
What’s “the Cloud”?
(The Cloud >= (The Net = all things via Internet protocols >= (The Web = all things via HTTP)))
But the emerging consensus seems to be that “cloud” = “a unit of elastically usable resources accessible over a computer network”
“ Cloud computing”, then, is a style of architecture that exploits such a “cloud”
Making use of the Cloud is an architectural and engineering challenge.
Architecture is about making design choices. Engineering is about knowing your materials.
So what are the architectural choices? What are the materials?
http://rationalsecurity.typepad.com/blog/2009/01/cloud-computing-taxonomy-ontology-please-review.html http://cloudcomputing.sys-con.com/node/811519 http://www.collab-ogce.org/gce08/images/7/76/LamiaYouseff.pdf SADIST-PIMP SPI (SaaS, Paas, IaaS)
http://www.mindmeister.com/maps/show_public/15936058
But wait! Once that’s sorted, you have to consider contextual dimensions…
The Radeztsky Cube http://cloudforum.googlegroups.com/web/Metaverse+Decomposition.pdf
http://cloudforum.googlegroups.com/web/Metaverse+Decomposition.pdf
SPI Model SaaS PaaS IaaS
Agenda
http://twitter.com/gblnetwkr
http://twitter.com/gblnetwkr http://en.wikipedia.org/wiki/Consumerization
Four sources of pressure driving change: a perfect storm Consumerization - Massive scale services - Tech smart consumers Collaboration - Moving from vertical integration to horizontal, networked biz model Computing Anywhere - Rising demand for mobility to support faster response to customers Corporate IT challenges - OPEX, CAPEX, DC power, space, business responsiveness Le Cloud
Agenda
“ Physical” perimeter Physical data centre  Outside world Secure “gateway” (DMZ, firewall, etc.) Authentication + Authorization (Active Directory, LDAP, etc.)
“ Physical” perimeter Data centre cloud (VMware) Physical data centre  Virtual servers Outside world
“ Physical” perimeter Cloud Provider (EC2) Data centre cloud (VMware) Physical data centre  Virtual servers Outside world
“ Physical” perimeter “ Virtual" perimeter Cloud Provider (EC2) Data centre cloud (VMware) Physical data centre  Virtual servers Encrypted VLAN link Virtual switch / router / messaging broker Outside world
If your needs / budget require or can accommodate it, consider RAIC
Redundant Array of Independent Cloud providers http://www.jroller.com/MasterMark/entry/raic_pronounce_it_rake_please
“ Physical” perimeter “ Virtual” perimeter Cloud Provider (EC2) Data centre cloud (VMware) Physical data centre  Encrypted VLAN link Cloud Provider (Flexiscale) Virtual servers Outside world
“ Physical” perimeter “ Virtual” perimeter Cloud Provider (EC2) Data centre cloud (VMware) Physical data centre  Cloud Provider (SFDC) Cloud Provider (Mosso) Outside world
“ Physical” perimeter “ Virtual” perimeter Data centre cloud (VMware) Physical data centre  Marketplace / Broker / Orchestratror Cloud Provider (Mosso) Cloud Provider (EC2) Cloud Provider (Flexiscale) Outside world
Note that this is not about, and never will be about,  eliminating  the internal data centre
“ Physical” perimeter “ Virtual” perimeter Data centre cloud (VMware) Physical data centre  Marketplace / Broker / Orchestratror Cloud Provider (Mosso) Cloud Provider (EC2) Cloud Provider (Flexiscale) Outside world
Agenda
“ Things to worry about” sub-agenda
Since we worked out, sometime in the early ‘90s, what the architecture of a “client / server” system design looked like…
There's been a general consensus about a sort of a canonical architecture for so-called “N-tier systems”
Presentation Service Facáde Application Logic Data Persistence
What does the Cloud do to that?
In a nutshell:  efficient horizontal scalability
And that means  parallelism
Parallelism has significant consequences
It leads one to try to avoid stateful interactions
To prefer asynchronous communications (messages)…
One finds oneself on the front lines of the REST War ™ – the battle of the RESTafarians vs. the established IT Universe http://www.dehora.net/journal/2008/07/25/patterns-of-web-architecture/ http://www.dehora.net/journal/2008/08/15/rest-as-an-engineering-discipline/ http://www.infoq.com/articles/webber-rest-workflow/ http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven/ http://www.redmonk.com/jgovernor/2009/02/12/the-rest-of-the-cloud/ http://delicious.com/mastermark/rest/
And it forces one to think strange things about optimal patterns of storing and accessing data
Like sharding one’s data to meet resource demands http://highscalability.com/unorthodox-approach-database-design-coming-shard/
Questions like “is two-phase commit a feature? Or a bug?” begin to seem important
New terms, like CAP, Paxos and BASE creep into conversations about “eventual consistency” http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.20.1495 http://en.wikipedia.org/wiki/Paxos_algorithm http://queue.acm.org/detail.cfm?id=1394128 http://www.allthingsdistributed.com/2008/12/eventually_consistent.html
This was happening anyway, driven by the clash of Web architecture with the established IT universe
Cloud computing’s possibilities are  accelerating  the process
In particular, we will need to address decomposition of our systems in two dimensions: app logic, and data
There is an emerging consensus about what the consequences of all this are for app logic (and overall system design)
“ The canonical cloud architecture that has evolved revolves around dynamically scalable CPUs consuming asynchronous, persistently queued events.” http://highscalability.com/canonical-cloud-architecture
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1632&categoryID=102
Use scalable ingredients Eg. Hadoop on EC2 Keep ingredients loosely coupled All communication via persistent messaging Assume constant failure Design things to persist state, restart from last known good, and continue their own tasks even if all around them fail Consider things like re-tries with exponential back-off Build IN redundancy Learn about things like the POSA Blackboard pattern, tuplespaces, and Map / Reduce
Read this book! http://www.amazon.com/How-Write-Parallel-Programs-Course/dp/026203171X/ http://www.lindaspaces.com/book/
The impact on data design is much harder to articulate
Essentially, we optimize for the worst case, in typical current system designs
“ What’s the most strict, stringent requirement we have to fulfill?” OK, make the entire system meet it.  Store all data in that bucket.
This is very inefficient
Moving forward, we will have to think about how to slice and dice our data for more efficiency
What data is subject to which rules?  What impact does that have on what needs to be stored where, in what fashion?
The goal will become: store the right data, in the optimal place.
“ Things to worry about” sub-agenda
You will likely run into the following problems:
1) Static, manual processes to provision and manage VMs will probably not scale to demand.
You will find yourself wanting to archive (versioned) VMs, ensure VMs have specific attributes, and otherwise maintain governance.
But you will also need a way to maintain the “self-service” factor, or risk torpedoing a significant part of the value proposition of the Cloud.
Again, there are tools available and emerging that can address some of these needs…
CohesiveFT ElsaticServer, rPath, Vmware, Enomalism, Elastra, 3Tera, many others
These tools have widely divergent solutions to these problems – choosing one involves many tradeoffs
2) Static, manual configuration and management of your network and security infrastructure will probably not scale with demand.
There are tools on the market, available now and emerging, to meet this demand.
CohesiveFT VPN-Cubed, Cloudswitch, the next version of Cassatt, whatever vCloud and/or Cisco’s “the InterCloud” turn out to be, etc.
But wait! You forgot security!
“ Things to worry about” sub-agenda
“ Physical” perimeter “ Virtual" perimeter Cloud Provider (EC2) Data centre cloud (VMware) Physical data centre  Virtual servers Encrypted VLAN link Virtual switch / router / messaging broker Outside world
“ Things to worry about” sub-agenda
http://www.flickr.com/photos/peterpearson/347124844/
http://www.flickr.com/photos/paszczak000/2564969200/
http://en.wikipedia.org/wiki/Kurt_Gödel LOL!
http://www.flickr.com/photos/rachels_secret/220269351/
 
http://www.flickr.com/photos/euthman/2989437967/in/set-72057594114099781/
Get the slides: http://www.slideshare.net/mastermark/
Join the conversation: http://groups.google.com/group/cloud-computing/ http://groups.google.com/group/cloudforum http://tech.groups.yahoo.com/group/cloudcomputing-tech/ … and please come talk to us, as well … http://twitter.com/mastermark http://www.jroller.com/MasterMark/ Thanks!

The Enterprise Cloud