Duncan Johnston-Watt, founder & CEO of Cloudsoft describes the concept of intelligent application mobility and what it signals for the new era of being able to seamlessly move applications across clouds and locations.
The dramatic growth in the use of multiple networked computers – often spread across the globe – in order to support business applications makes it compelling for an application to have mobility. For example, the impact of maintaining a server machine is reduced if the application(s) it hosts can be moved to an alternative machine before starting maintenance; disasters can be avoided if an application can be moved off failing machines; network load can be reduced by moving (all or parts of) an application closer to its data; performance can be improved if (all or parts of) an application is moved closer to its users.
Consequently a number of approaches are well established for achieving application mobility. For example, infrastructure virtualization vendors offer application mobility by moving virtual-machines between physical machines (VMware and IBM both refer to this as “live application mobility” 1). Distributed caching vendors facilitate mobility via the data tier2.
However these approaches are only partially effective. The “all-or-nothing” approach of moving entire virtual machines around, especially across wide-area networks, is expensive and slow. The complex co-ordination of data across distributed caches will often fatally compromise performance and/or integrity, especially for high throughput systems or again where wide-area networks are involved. Instead what’s needed is a far more agile form of application mobility, and one that’s far better suited to the cloud generation.
What is Intelligent Application Mobility?
Intelligent Application Mobility enables business applications to dynamically distribute themselves as needed across multiple machines, locations, and clouds – while they are still running and under the full control of user-defined policies.
Intelligent Application Mobility achieves this by:
– creating an all-software overlay network (on top of, and with no change to, existing networks) that dynamically spans machines, locations and clouds as needed to form an Elastic Process Fabric
– activating applications as fine-grained segments that can flow across the Elastic Process Fabric as needed
– using policies combined with real-time monitoring to continually optimize segment deployment – for example to ensure that each segment is in the right location to deliver best performance
What types of applications need Intelligent Application Mobility?
It’s probably fair to say that most types of application would benefit to some extent from Intelligent Application Mobility: a self-optimizing application with real-time elasticity and that can near-instantly move itself out of harm’s way will always be advantageous. However there are particular types of application for which the approach is compelling.
Applications that execute business transactions are difficult to scale and distribute as they must maintain consistency and integrity when changes are made to data. Maintaining these constraints is rarely a problem when data contention and transaction volumes are low but challenges quickly emerge as business applications scale-out, particularly where applications involve wide area networks. Traditional approaches to solving scalability challenges include statically partitioning an application across multiple resources, replicating and synchronising multiple instance of the application, and the prevailing vogue of “stateless programming”.
The use of “stateless applications” is particularly interesting as ‘received wisdom’ deems that this approach is essential for cloud deployments: by removing application state from the server tier it doesn’t matter which instance of a server handles any given request, so “instance-on-demand” is available whereby you can spin up and spin down as many instances of the server as you want.
However so-called stateless approaches simply delegate the management of data contention to the data tier, which invariably makes the application less efficient: all necessary state has to be fetched from the data tier prior to servicing each request; any changes to business state must be mediated by the data tier; and all state must be given back to the data tier after each request. Consequently what would be simple and lightweight to achieve in a stateful process now becomes more complex and long-winded in a stateless process.
So the sweet-spots for Intelligent Application Mobility include any or all of the following characteristics:
– distribution across multiple machines, locations or clouds
– high volumes of transactions
– volatile or unpredictable workloads
How is it used?
The capabilities that make up Intelligent Application Mobility, as discussed above, are exactly the kind of capabilities that middleware is intended to implement and make available as a service to developers. And with the availability of development frameworks such as Spring (from SpringSource) and Seam (from Red Hat), this type of middleware can now be all-but completely hidden from the developer. Consequently the main requirement for using Intelligent Application Mobility is to ensure that your applications are designed in a way that allows their deployment as fine-grained segments. For example, Microsoft actually calls these fine-grained segments “grains” and puts them at the heart of their “Framework for Cloud Computing”3.
One of the key advantages of encapsulating Intelligent Application Mobility in middleware in this way is that the developer can now, for the first time, code completely scale-agnostic, distribution-agnostic, and cloud-agnostic applications. Development returns to the simplicity of coding just the business logic and making method calls in order to use another service – the Intelligent Application Mobility middleware takes care of scaling, distribution and management issues at run-time.
About the Author
Duncan Johnston-Watt (Founder & Chief Executive Officer) is a serial entrepreneur and industry visionary with over twenty years experience in the software industry. Immediately prior to founding Cloudsoft Duncan was CTO at Enigmatec Corporation, the enterprise data center automation company he founded in 2001.
A Computerworld Smithsonian Laureate for his pioneering work introducing Java Enterprise to financial services, Duncan holds an MSc in Computation from Oxford University and a BA in Mathematics and Philosophy from Leeds University
REFERENCES
1.
“AIX 6 Workload Partition and Live Application Mobility”
http://www.ibm.com/developerworks/aix/library/au-wpar/index.html
“VMWare and F5 Announce Collaboration for Cloud Live Application Mobility”
http://news.softpedia.com/news/VMWare-and-F5-Announce-Collaboration-for-Cloud-Live-Application-Mobility-120583.shtml
“Enhance Business Continuance with Application Mobility Across Data Centers”
http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9402/white_paper_c11-591960.pdf
2.
NetApp DataMotion
http://www.netapp.com/us/products/platform-os/datamotion.html
“What Is an Enterprise Data Fabric?”
http://community.gemstone.com/pages/viewpage.action?pageId=6032133
Scaleout Geoserver
http://www.scaleoutsoftware.com/products/product-extensions/scaleout-geoserver/
3.
“Orleans: A Framework for Cloud Computing” by Sergey Bykov, Alan Geller, Gabriel Kliot, James Larus, Ravi Pandya, and Jorgen Thelin; 30 November 2010
http://research.microsoft.com/apps/pubs/default.aspx?id=141999