Q&A: Clouding Computing Challenges, Risks, and Rewards
Cloud computing has changed as high-speed connectivity has improved and virtualization adoption has grown. We explore the current state of the technology and where it's headed.
Cloud computing has changed as high-speed connectivity has improved and virtualization adoption has grown. What is the current state of the technology and where is it headed? What are the biggest obstacles remaining to its adoption, and how should IT approach customizing applications in the cloud? For answers, we turned to Francis Carden, founder and chief evangelist at OpenSpan. Francis has more tha 20 years of experience in running multinational technology companies, and has successfully delivered technology solutions to thousands of clients in more than 30 countries.
Enterprise Systems: What are the biggest two or three milestones in the evolution of cloud computing?
Francis Carden: Hardware performance and cost, the wide availability of high-speed bandwidth, and the simple but powerful technologies of virtualization. There are many things that bring these milestones together. For instance, it could be argued that Amazon, which is a tremendously successful infrastructure of massive scale, was one, if not the first, to enable people to implement what I consider a “cloud.” In fact, they were so successful that even though they were an e-tailer, they took their weirdest yet smartest leap -- they offered their infrastructure as a serious mechanism for bringing the cloud to the greater business community. Now you can provision a machine at Amazon in minutes and scale up 10, 100, or 1000 instances of that machine -- now that’s power.
What is the current state of cloud computing, and where is it headed?
There are different types of clouds. The whole concept is up for debate, but I think it’s wrong to overestimate the number of benefits that will accrue in the short term. People are getting very carried away with the idea that cloud is the savior of the technology world, reducing IT staff, budgets, internal infrastructure, legacy applications, and all that. This is all a myth. Organizations are and should be treading with extreme caution.
I think we have been here before to some degree, with older concepts such as timesharing. Hosting applications and data outside the firewall, in an era when security compromise appears way too easy is also a significant concern.
I believe the biggest upside is with private clouds. If you pick Amazon’s cloud up and drop it into another large retailer or bank, it’s effectively a plug-and-play infrastructure. If we shrink everything to a couple of racks of servers, with a preinstalled operating system, and virtualization ready to support up to 10,000 users, then that’s the answer.
What have been the biggest obstacles to cloud computing adoption to date? What's preventing more enterprises from adopting it today?
Cloud computing helps an enterprise save on infrastructure but not necessarily on total cost of ownership (TCO). One of the primary reasons for this is the added complexity and cost of integrating applications in the cloud with all other enterprise applications in use within an organization.
Application integration is hard enough and the cloud adds yet another layer of complexity. The general lack of integration means that the already-cluttered enterprise desktop negatively impacts business-user productivity even more. Keep in mind that many business users, especially customer-facing staff, generally access anywhere from 5 to 30 applications on their desktops on a daily basis. That’s a lot of applications and a lot of different user interfaces they need to learn and use. Now introduce yet additional complexity by adding cloud applications and the resulting changes to business process workflows, very likely without replacing the existing applications, and you can see the concern.
What is different about integration challenges with cloud-based applications when compared to traditional enterprise or Web-based applications?
Legacy applications alone can be hard to integrate. New applications often become silos because they can’t integrate with older applications. Applications delivered via the cloud introduce yet a far greater challenge because you often don’t own or have access to the application’s source code. You are reliant upon what the cloud application vendor provides as part of their APIs. In the case of salesforce.com, that’s generally not a major concern because salesforce.com offers a rich set of APIs. However, there is still the challenge of integrating salesforce.com with your existing legacy applications.
In cases where the cloud application doesn’t provide as rich of a set of APIs, the challenge is far greater. What this means is that the business user yet again becomes the primary integration method using techniques such as copy-and-paste.
How do you overcome cloud integration challenges when you don’t have access to or control of an application’s source code?
With traditional server-side integration approaches, your options are limited. You can either pressure the application provider to offer the integration functionality you need, or undertake a costly and lengthy custom development approach to try and solve the problem.
The good news is that there is an integration technique that is ideal for the cloud. By leveraging the presentation layer of an application, you remove dependence on APIs altogether if you so choose (although if a set of API exists, if often makes sense to leverage them). By presentation layer, I am suggesting that there are new technologies that can inject into the memory of running applications and hook into the on-going communications between the operating system and the application’s user interface. This allows you to do three really interesting things:
- Track every event occurring at the user/desktop level. This could be valuable for identifying process bottlenecks or for compliance purposes.
- Enable you to mimic the actions of a user without requiring a user to do anything. This is important from an automation perspective. For example, if a customer service agent changed a customer address in a CRM system, you could automate the process of updating the same information across all other relevant systems (billing, provisioning, other CRM systems, etc.) without the user having to perform the task manually.
- Extend or restrict the functionality of any application. Think customization on steroids. For example, enable an older WIN32 application to now consume internal or third-party Web services, or employ data masking that prevents a particular user group to gain access to sensitive data.
This is particularly valuable whenever you have an application that isn’t easily integrated. That obviously includes cloud applications but can also include any other legacy application that either doesn’t provide APIs or where you don’t have the time or skill set necessary (such as an application written in an older programming language or in situations where the original developers are no longer available and you don’t want to figure out the construction of the logic).
What are the risks involved when you become totally reliant on the APIs and services exposed by cloud vendors? What should an enterprise do to minimize these risks?
Vendor-supplied APIs obviously leave you reliant on the vendor -- at best paying for upgrades, at worst shut out of the upgrade path by cost or obsolescence or combinations of factors. You should probably look for a scalable, adaptable integration and automation technology that puts you in control of your future application mix and functionality.
What costs are involved in cloud integration projects, and how do I factor these costs into the TCO of my cloud application?
If not properly integrated, your legacy application set could be your biggest cost. If properly integrated, it can be your biggest asset. Enterprises -- and particularly their employees -- are creatures of habit and are most productive using familiar tools, like databases, procedures, and workflows. Any of these that are residing on the desktop, streamed within the enterprise, whatever -- have to seamlessly fit with your cloud investment, or you’re building parallel worlds, and the end user may be the reluctant, manual integrator.
Is it possible to automate a business process that spans both cloud and legacy applications? What if the process requires an application deployed on a user’s desktop?
Yes, because again, any application accessible on a user’s desktop can now be integrated with any other application. A cloud application is no different. Keep in mind that most cloud applications are really Windows applications. This is because the application is ultimately accessed via Internet Explorer or another browser, which itself is a Win32 application. Therefore, you can build process automations across any set of applications regardless of where they reside -- server-side, on the Web, on a user’s desktop, or even in a Citrix or otherwise-virtualized environment.
Let me give you an example. Let’s say that a company draws data from salesforce.com -- leads and prospects in difference categories. They can sync those with contacts in a legacy Win32 client/server CRM system, and merge the data into an MS Word document to create a physical letter. Send the address to a shipper’s Web site to generate a mailing label, and so on. Very cool, right?
One of the common challenges for cloud applications is customization. Organizations want as much customization as possible to better match their desired business process workflow(s). However, customization presents additional challenges in the cloud, especially because they have no source code. Must enterprises simply accept the basic features and give up hope for custom features or behavior?
This a key benefit from a presentation-tier approach. Using traditional techniques, the only real way to customize an application is to modify the application’s source code. In the world of cloud and SaaS, this generally isn’t possible. The best you can hope for is that the cloud application offers enough customization capability to meet your needs or that you have enough clout with the vendor that you can convince them to modify their application to meet your needs.
By leveraging the presentation layer as I described, you are effectively gaining full control over every aspect of that application. Any button, check box, text box, etc. that is accessible to a user can be modified. What this means is that you can remove functionality such as hiding a particular button or field from view, or you can change how an object works such as by requiring a compliance statement to be read before a transaction can be submitted for processing. You can add altogether new logic to an application such as calling an address verification Web service anytime a user enters or changes an address field. There is virtually no limit to the customization possible with this type of approach. Remember, the same capabilities exist regardless of the application type (SaaS, Web, Java, Win32, host, etc.).
What solutions or services does OpenSpan offer to help IT or end users with in-the-cloud applications?
OpenSpan provides a rapid development and deployment platform that helps organizations improve the performance and productivity of their business users and supporting IT staff. If an application offers a rich set of APIs, OpenSpan can leverage those. In cases where none exists, OpenSpan offers a presentation-tier approach described above that effectively allows you to integrate, automate, and extend virtually any application, even cloud or SaaS-based applications.
Editor's note: More information about OpenSpan is available at http://www.openspan.com.