Friday, 29 May 2009

Cloud Multiplicity - the multi-cloud

Reading a great book by George Reese, Cloud Application Architectures - O'Reilly 2009. Clearly a guy with real experience of the cloud as the founder of Valtira and latterly enStratus ( a competitor to RightScale. )

Whats an eye opener is the perspectivies of reliability of virtual instances versus physical instances. He is quite direct in his statements that virtual instances are much less reliable than physical instances. While its a AWS perspective he states that EC2 instances are much less reliable and that design for failure is a critical step in cloud design. He advocates as I do a strong separation of presentation, business modeling, business logic, and data as per the MVC paradigm and is realistic in the focus on cluster technology in application and database server scaling design for cloud elasticity benefits.

He also has some useful definitions of security around the Network intrusion and Host intrusion Tools which are clearly a key enabler for Cloud services as he points out that physical network DMZs are not possible in many externalized cloud data centers. I like also his refreshing real world view of security evolution in standards lagging in the virtualizational separation that means that separate server partitioning is a false situation in logicalization of servers via VMs.

He provides a wake up call on the I/O performance of storage which is often not suitable for NR or real time applications and squarely in the batch temporal domain of service performance which places cloud as backup as a service and archive. Perhaps AWS recent view of accelerated network I/O services is a recognition of this and that network based cloud services and strategic alliances is a critical strategy for cloud performance.

The book also illustrates the performance issues over CPU intensive operations in the cloud and also the barriers of legacy investments to cloud adoption of IaaS (He also confirms its cheapers to extend the existing infrastructure) but confirms the loss of future strategy by these challenges. (as ratified with his conversations with James Urquhart;txt ) The ability to adopt different VM strategies for legacy apps modernizations will be a key driver to cloud integration which I see as being able to work at different levels of abstraction rather than just at the IaaS and PaaS tiers. Taking a classical orchestrator view of modernization and adoption will fail as it seeks to control IT estate too much whereas a multiple use case approach to on-demand services underpined by a range of evolving platforms for IaaS and PaaS will accelerate adoption.

I believe the emergence of multiplicity strategies to support statistical multiplexing patterns will drive realistic cloud adoption including virtualization patterns in :
  • Partitioning strategies for worloads to cloud operations
  • Clone strategies for backup, replication, intelligence extensions e.g. RT language translation and multiple process services for multiple parallel temporial services
  • Applicance strategies for application extentions via API
  • PaaS and IaaS integration e.g. GoogleApps and integration
  • Adoption of mainstream Service Management challenges with Social media systems e.g. the Twitter / Facebook as a "remedy channel" effect
The advocacy of using PaaS investments to support operational I/O and CPU performance will create the tipping point to develop PaaS and SaaS services. The security of public clouds do still have partitioning problems for geographic and national law compliance but as explained in the book the technical aspects are not impossible to replicate to bring the security to a level of a private data center in may respects.

Wednesday, 6 May 2009

Cloud Clone Augmented Execution

Exploiting cloud clone augmentation

A very impressive white paper has come out from the Intel Berkley Lab from Byung-Gon Chun and Petros Maniatis titled  "Augmented Smartphone Applications Through Clone Execution".  as part of the Proceedings of the 12th Workshop on Hot Topics in Operating Systems (HotOS XII), May 2009.       

The paper explores a research topic of how to deploy workload intensive operations from a Smartphone platform into the cloud and return the results to exploit bursting to augment the mobile services. The project title is CloneCloud.   

What is particularly interesting is the way a number of virtualization topics and augmented processes for workloads can be split between the cell phone and the cloud. The key point here is the separation and spread of workloads between different local and virtual platforms such that the computational and storage capabilities are leveraged as "one networked computer" service. Add to this augmented application services not covered in the article and you start to see a number of added value services in a business context. This approach is evident when in a recent analysis I completed of the types of cloud burst services, it is clearly not constrained to excess volume or low volume workload management but also the redirection of specific types of work loads to cloud facilities.

Another very interesting statement in the white paper has been "multiplicity"   a feature that has been in the scope of virtualization to optimize workloads but in the case of cloud computing services starts to create a number of very interesting possibilities hitherto considered as capacity resource constrained.

To quote the article:  

Use multiple copies of the  system image executed in different ways.  This can help run data parallel applications.  E.g. indexing for disjoint sets of images.  This can also help the application “see the future”, by exhaustively exploring all possible next steps within some small horizon.  To enable for scenario model checking such as in monte carlo simulation.

This is a different way of of not only considering the virtualized device cloned into the cloud but in replicating the machine image it is possible to create multiple parallel tasks and from there a range of new service augmentation possibility not envisioned by the initial invocation. As previously suggested, if you add augmented application services into this you start to see a wider set of added value services. 

What this says to me is that the on premise and off premise geographical distinction is wrong in the sense it is the device and the machine specific locations that are the real on and off premise locations.   It also supports the view that temporal transformation as seen in batch to near real time processing in traditional timeframes may now evolve into new temporal transgformations that operate beyond immediate time and create multiple versions of "parallel time services".  In a sense there are multiple arrows of time.What it does also suggest is that the concept of a cloud switch may involve a number of second level and higher tiers of event interaction and types of VM patterns than just the Hypervisor workload management.

A summary of the cloud workload distribution patterns described in the article are:

Primary functionality outsourcing
Computation hungry applications such as speech processing, video indexing, and super-resolution are auto0matically split from the user interface and other low processing within the Smartphone.
Functionality that does not need to interact with users in short term time scale. E.g. virus scanning, indexing files for faster search, analyzing photos for common search, crawling news web pages,
Sitting between the primary and background augmentation. The user may opt to run a particular application in a wrapped fashion, altering the method of execution  not the semantics. E.g. private-data leak detection (taint check an application or applcation group, fault tolerance  (e.g. use a multi-variant execution analysis to protect the application from transparent bugs), debugging (e.g. keep track dynamically of allocated memory  in the heap to catch memory leaks
Compensation for Smartphone weaknesses e.g. memory caps or other constraints and hardware peculiarities
Use multiple copies of the  system image executed in different ways.  This can help run data parallel applications.  E.g. indexing for disjoint sets of images.  This can also help the application “see the future”, by exhaustively exploring all possible next steps within some small horizon.  To enable for scenario model checking such as in monte carlo simulation.