Cloud Source
Showing results for 
Search instead for 
Do you mean 

Building a cloud, what will you run on it?

on ‎11-17-2013 10:58 PM

building a cloud.jpgThe other week, I was doing a presentation to the IT strategy team of a large enterprise. I talked about the journey to cloud, what are the things you should review and what decisions should you take. Very quickly, the discussion boiled down to technology and legal aspects. 


Those are obviously important, but the first question to ask in my mind is if I’m going to cloud, what will run on that cloud. You’ll decide the delivery model, the technology and security requirements once you know what you want to do with it. That sounds logic to me, but apparently not always is.


Too often, the discussion boils down to technology, to the features of the platform, without thinking what to do with it. You don’t use cloud for the stake of using cloud, you do it because your applications gain from running on it. Running costs will reduce and responsiveness & agility will improve.


Why put an application in a cloud environment?

In my previous blog entry, I described how to think about the services your users require and what applications provide those services. So, let’s assume we know which applications will deliver the services. 


Some of those already exist, potentially their functionality may be altered, and others may have to be written from scratch.

In today’s world I would argue new applications should be written for a cloud environment, understanding this cloud may be private, managed or public. As these are new services, we do not have a good understanding of the consumption patterns, so developing SOA compatible modules that can be scaled up or down make a lot of sense. Secondly, having the application developed as a service in the cloud allows complementary development of the mobile application front-end when that is required. As I already pointed out previously, cloud and mobility are the two sides of the same coin.


But, what do we do if the application is already existing? Well, we can use cloud services to speed-up the provisioning of infrastructure to run those applications on. Once you have provisioned the environment, you can more or less install the application as you did in the traditional world. But in that case, do you really get the full benefits of using cloud? Not really. IT gets more responsive and has an easier job, but there is no real difference for the business.


It’s when going all the way, transforming the applications so they are accessible as services, which leads to the full benefits of cloud. The IT department is seen as more responsive and allow the whole organization to gain in business agility.


How do I get that application in the cloud?

Deciding to take an application to the cloud is one thing, actually doing it is something else. How will we get that application in the cloud? It was not developed with cloud in mind and in many situations is not architected to take advantage of the cloud. So, different approaches are possible. Let’s discuss some of them here.


One could decide to leave the application unchanged, keep it running on the traditional environment, but make it accessible from the cloud through the use of web services. This requires the application functionality to be accessible through APIs. So, what we do is bypassing the existing user environment and access the functionality through the web services and the APIs. This allows us to create a new, modern interaction that take full advantage of today’s technologies. It also allows the creation of mobile applications to interact with the application.


We do however not get full advantage of the cloud as the application itself does not run in the cloud. So scale-up, scale-down the application is not available. But this allows the modernization of old applications, extending their life if that is what the enterprise wants to do.


Further intervention may be required to make the application fully cloud enabled. What specific characteristics are required? First, each function embedded in the application should consist of an independent module that interacts with the other modules through data sources. In a cloud environment, you want to avoid having modules waiting upon each other as you cannot formally guarantee the reaction time. Each module is a service, managed by the cloud platform. So, you want the interaction with the user to be limited to one service, triggering further functions by another service that uses the data updated by the first. But the first service does not interact directly with the second, so its finish is not dependent on the execution of the other.


This service independence may result in the need to develop some new services where the user can check the successful accomplishment of a number of process steps, each performed by a different service. 


These new services become progress review services.

This demonstrates that the transformation of an application to cloud requires not only to take the application functionality and modularize it, making each module/service accessible through an API. There is a need to think through the user experience and I’ll come back to this.


Applications developed more recently can reasonably quickly be adapted as they most probably have been developed using SOA principles, but older applications may require a lot more effort to transform them. In particular, in some situations, even the language in which the application has been developed may have to be translated.


This however allows to modernize the application. I remember one of the project we did where the application was written in RPG-3, we translated it to Java. But then we realized the data structures were maintained in flat files and every time we wanted to access a particular record, the whole file was scanned till the appropriate entry was found. We decided to re-engineer the whole data structure and use a database. That required to rewrite some portions of the code. 


But ultimately we had an application that could be put in the cloud.

Cloud platforms typically use the latest versions of middleware and databases. Unfortunately, many older applications have not been upgraded to these and use older, sometimes even not supported versions of these middleware. This is another reason why application interventions are required.


Decide which Cloud to use, make sure you know what for

So, one thing is to decide what cloud to use. Don’t just think public cloud, think of the benefits that can be reached by standardizing, virtualizing, and automating your IT environment, Think about how self-provisioning allows business users to access services directly without intervention of IT. Also, do you really need IT capacity covering 100% of your needs, or can you limit that to 60 or 70% and “burst out”  as it is being called, to an external cloud the few times in the year when you need more.


But once you have thought through all this, start thinking about the services you want to deliver to your end-users. Identify which applications execute those services. And once that is done, look at how you can transform the applications, if they already exist, to run in a cloud environment.


This will allow you then to decide how you want to change the user experience, allowing access to the services from mobile platforms. If your company has a BYOD approach, mobile enabling access to your applications facilitates the acceptance of the services by your users.



Cloud computing gives the IT department the opportunity to change the perception of the user, by demonstrating responsiveness to his demands for more intuitive user experience and faster delivery of new functionality. IT should take advantage of this to regain the lead in delivering functionality to the business, reducing the need for “shadow-IT” type of consumptions. So, what are you waiting for?

0 Kudos
About the Author


Nov 29 - Dec 1
Discover 2016 London
Learn how to thrive in a world of digital transformation at our biggest event of the year, Discover 2016 London, November 29 - December 1.
Read more
Each Month in 2016
Software Expert Days - 2016
Join us online to talk directly with our Software experts during online Expert Days. Find information here about past, current, and upcoming Expert Da...
Read more
View all