Global and Mobile App Delivery in the Age of IT Consumerization. Part 1: Application Delivery Landscape
Last week i had the chance to participate as a panelist in a Gigaom webinar titled Global and Mobile App Delivery in the Age of IT Consumerization, sponsored by Akamai. It was an interesting discussion, as it covered the topic from the points of view of the network and the data center, application development and deployment, and application delivery solution.
I hope this holistic view offered by Dave O’Hara from GreenM3, myself and Akamai’s Greg Lord and moderated by Larry Cornett from Brilliant Forge was useful to our audience. In case you missed it, and until the webinar recording becomes available, here are some of my own thoughts on the topic.
The webinar addressed the following key areas:
- What is the Application Delivery landscape?
- How are enterprises currently guaranteeing and accelerating performance?
- What new challenges to that model do consumerization, globalization, and mobility bring?
- How should businesses prioritize delivery enhancements?
- What are the most cost-effective enhancements businesses can make today?
- What new management and infrastructure changes will this require going forward?
- What is the impact on analytics and business intelligence solutions?
As this is a broad and interesting space, i will cover it in a series of posts. The first part includes the Application Delivery landscape and the ways in which enterprises are currently guaranteeing and accelerating performance
Putting things into context, i still remember the days when the very idea of building a web app seemed exotic. People doing that had a hard time explaining what they did to others. The web was perceived as something rather exotic itself, its nodes and edges being mostly static, loosely connected and slow. The web was something you saw, not something that you worked or interacted with.
People did not get web apps, and in retrospect we can’t really blame them. Some of you may remember the early days of web apps, so when you compare vanilla HTML interfaces delivered over a slow and congested network and unreliable browsers with the responsiveness and rich interface of traditional desktop applications, it would seem hard to even think of the former as real applications.
Eventually however, due to the evolution of web app development frameworks and technologies such as Ajax and HTML 5 to support richer UI/UX as well as the evolution of the hardware and network infrastructure to enable better performance, we are now at the point where web apps are past being the new normal – i would say they are on par with most desktop applications in terms of functionality and user acceptance.
We’re now at the stage where it’s all moving to the cloud, and there’s also a new kid on the block, namely mobile native applications. Some may argue this brings us full circle back to where we started from, only instead of the fat client desktop apps we now have mobile apps. This is a hot topic and an ongoing debate actually, with many arguments for and against so-called “appification”.
There’s two common threads that span this evolution however – diversity and performance. Being able to cope with many different environments in an increasingly uniform and standardized way has been a key asset and selling point for web apps. The evolution of web standards and browsers has come a long way constantly and consistently over the years.
But what about performance? We’ve come a long way there too, going from clustering and load balancing application, database and web servers to what we now call application delivery: from delicate infrastructure that you had to carefully size, configure and fine-tune, to the kind of solutions we have today that for an architect should feel as if they are plug-and-play.
So we now have advanced solutions with a rich feature set, offering additional functionality and greater focus on efficient application delivery. Organizations have the need to improve the performance, reliability and manageability of application delivery platforms they use and support. So to paraphrase a famous quote there, “Load balancing is a thing of the past. Organizations will be better served to focus their efforts on improving the delivery of applications.” And that’s a good thing.
This obviously depends on the type of enterprise. A common trait analysts and industry forerunners have when talking about new technology is we tend to generalize our own experiences. So even though we casually refer to concepts such as virtualization, cloud adoption and SaaS as being commonplace, that’s not the case for everyone yet.
Sometimes the convenience of having always done things a certain way, or the lack of resources for initial investment inhibits adoption. So broadly speaking, i would categorize enterprises in traditional and forward-looking ones to refer to what they do to guarantee and accelerate performance.
Traditional enterprises are the ones that still rely for the most part on their own infrastructure and resources, and they leverage it in traditional ways as well.
So in terms of infrastructure, they try to keep up basically by buying more and better hardware to improve their load balancing act and cope with increasing application traffic due to heavier use or increasing application footprint due to more complex functionality or simply poor implementation. This works, but is suboptimal for a number of reasons, not only technical but mostly economic ones.
At the software level, there’s 2 scenarios. When using 3rd party applications, you can not do much – upgrade, call support, change your hardware. For enterprises that build and manage their own applications there are substantial improvements to be achieved at the core of each application before looking at any other parameters.
So things like algorithmic optimization, asynchronous and batch communication protocols and query optimization can deliver substantial improvements. Caching is also a very effective technique, which can work both at the software and the hardware level. This really comes down to good design and architecture, but sometimes for a number of reasons application teams are forced to revisit such things post deployment.
What is important for both scenarios however is platform specific optimizations, like for example optimizations for a specific OS or browser or VM and so on. While this is a road some are tempted to walk down, what they quickly discover is that this becomes a maintenance nightmare. So what you may win in performance, you lose in manageability.
Forward looking enterprises on the other hand do not necessarily give up their own infrastructure and management of resources completely, but they combine it with new resource ownership, delivery and utilization models and leverage their assets in a more agile way.
The cloud is a game changer in this respect, as it does not only allow organizations to recruit additional resources on demand, or to outsource application deployment completely, but also to leverage their own existing infrastructure more efficiently.
So it’s not just about the public cloud, but leveraging private and public cloud combined into hybrid, potentially multi-cloud solutions to implement cloud bursting. But in any case the elasticity that comes with the cloud lets organizations handle spikes in application demand more smoothly and efficiently.
Last but not least, as this does not necessarily replace but rather complement previous measures, we have software delivery solutions. The idea here as we mentioned is to have something like a plug n play solution that will take care of all the dirty work for you.
Sometimes this will be done via dedicated appliances, sometimes via software-defined solutions, but in any case the idea here is that this should work with whatever it is you’ve got in place already – namely, all of the above.