Cloud Source
Showing results for 
Search instead for 
Do you mean 

Applications in the Cloud: Make the right choices

on ‎07-28-2014 06:22 AM

Migration2.jpgCloud Computing has been hyped for the last several years. It was going to solve every problem. Slowly but surely it is becoming mainstream. Companies are using Cloud, and see the actual benefits of doing so. As a result, new terms are being invented. One in particular Platform as a Service (PaaS) includes Cloud technology and platforms. But will it really solve all IT problems? Frankly no. So when you think about moving to the Cloud, make sure you look at all aspects and make the right decisions.


You do not go to the Cloud for the stake of doing so. You want to use Cloud technology to improve the way your business runs, and deliver new functionality to your users, your partners and your customers.


If you are a start-up, between existing SaaS offerings and newly developed applications in a PaaS environment, you will probably find a way to address all your needs. You have no legacy. You have not patiently been embedding your experience, your way of working and your differentiation in applications you’ve developed over the years.


But if you are not a start-up, how can you take advantage of your existing application environment while reaping the benefits of Cloud computing? Let’s look at that in more detail.


Why move to the Cloud?

The first question to ask yourself is why you want to move your applications to the Cloud? Fundamentally there are two reasons for doing this:

  • You are looking to take advantage of the fast provisioning of infrastructure, either for financial or speed reasons. You may want to move from CAPEX to OPEX infrastructure. In other words, you would rather rent infrastructure. You may also want to be able to quickly provision new servers, knowing that, in larger enterprises, this can take a while. (Not to say several weeks.)
  • Your applications may have varying demand patterns, resulting in the need of increased compute power during some periods. In a traditional environment, you typically provision for the peaks, resulting in unused capacity most of the time. You may want to take advantage of the scaling capabilities of Cloud to fire up new instances of key modules at peak periods; shutting them down when not needed; freeing up infrastructure for other tasks, and reducing total cost.

In the first scenario above, you only take advantage of Cloud as a provisioning mechanism for infrastructure, while in the second scenario, you take full advantage of Cloud technology. Frankly, in most of our customer base, the ratio is around 80/20 in favor of the first. Only 20 percent of the applications transferred to the Cloud need the full capability of Cloud computing. The remainder combine the advantage of fast provisioning and virtualization. For them, Cloud is all about automation and virtualization.


For existing applications that only want to take advantage of the Cloud provisioning mechanisms, there are multiple ways to take those applications to the Cloud. This is where you need to make appropriate decisions.


The run-time environment

Existing applications run on a particular version of an operating system. They use specific versions of a database and middleware. If the application has been around for a while, these versions will probably have been superseded by newer ones. Unfortunately, Cloud environments typically only support the latest or last few versions. Sure, I could re-install older versions of the database and middleware, but I still am dependent upon the operating system. And there I have no choice.


Also in the Linux world, the traditional environment may run one flavor of Linux, while your Cloud environment may have another. So, what can you do?


Here again, two approaches are possible;

  • Use an encapsulation software that allows you to run the application as is — in a newer environment. In other words, the software emulates the old OS version, but runs in the newer version. For example, software exists to run Windows Server 2003 applications on a Windows Server 2008/2012 operating system.
  • Bite the bullet and adapt your application to the new environment. Depending on the upwards compatibility, this may require a recompile or potential intervention in the code to ensure the application runs properly in its new environment.

When should I use what approach?


Encapsulation Software

Encapsulation software adds an additional layer of complexity, as I now have my application calling the encapsulation software. This software will, in turn, call the operating system that will then call the hypervisor, which will (in the end) transfer the request to the base OS in which the hypervisor runs.

You get the picture.


Encapsulated applications have a tendency to run slower, and encapsulation software licenses are not free. You also remain in the old world, so you are not able to take advantage of new features.


When should you use such an approach?

  • When you do not have the source code of your application, the only option remaining is to encapsulate it and run it in a compatibility mode. This can be due to old software, or it is a Common Of The Shelf (COTS) package for which the vendor is not providing up-to-date versions of the software.
  • When you want to move to the Cloud quickly to reduce your infrastructure costs, (e.g., move away from mainframe), but know that you will retire the application soon. In that case it is not worth investing in transforming the application.

Adapt your application

In all other situations, take the time to adapt your application. It will give you two benefits. It allows you to use the new features provided by the operating system, the database and middleware environments, and it gives you the opportunity to evolve your application further as your business needs evolve. There are two re-host scenarios for adapting your applications:

  • If upwards compatibility is guaranteed, you can recompile your application, retest it and run it in the new environment.
  • If upwards compatibility is not guaranteed, you may have to look at your source code and change some of the calls to the operating system, the database and/or the middleware to ensure your application runs well in the new environment. Obviously you will have to test the application again prior to taking it into production.

Be clear about what you want your application to achieve

If you want to take full advantage of cloud, you will have to intervene more into your code as you will need to ensure the application can take full advantage of the environment by calling on load balancers, dynamically allocating resources, and etc.


So, be clear about what you want your application to achieve by moving to Cloud and acting accordingly. Sure you can do this in steps, for example, starting with running only the application in the Cloud and then transforming it to fully benefit from your Cloud environment. That, however, will take longer. Is this what you want?


PaaS is an excellent approach for the development of new applications as it takes away a lot of the complexity associated with Cloud functionality. However, migrating an existing application to a PaaS environment is not trivial. You will have to adapt it to benefit from the features provided by PaaS. And as this often includes functionalities such as data storage, messaging, and more, you may be out for a major adaption of your code. Again, make sure you understand where you are going.


Lastly, in the Cloud, operating systems, databases and middleware are evolving faster than in a traditional world. So make sure you have the facilities to upgrade your Cloud-based applications quickly when your provider decides to change the environment they offer.


Good luck with migrating your applications. Let us know how you proceeded, and what you experienced.

If you want to assess whether your application is suitable for cloud, check here.

0 Kudos
About the Author


on ‎08-02-2014 09:47 AM

Fantastic overview of challenges faced by companies that are not start ups with a "greenfield" to work with..  The challenges are much greater when there are legacy enterprise systems and  when your company is established public and making money.


If a startup gets this wrong they just try again.  In a public company. If it goes wrong revenue is lost, customers complain, the media howls, shareholders worry and people get fired.  With what is stake for public companies I would surely want a company like HP helping.



 Very interesting that 80% just focus on fast provisioning and moving Capex to Opex.  That suggests that over time they still have potential to optimize performance and scalability.


Also discussion on encaptulization was great.


on ‎08-06-2014 12:31 AM

Great Writing Skills...


Fabulous overview on Cloud Apps!


Cloud Computing is all about storing your data at a secure place where you can update or store your desired history whenever wherever you want. People sometimes say that what is exactly cloud is? Actually from using your Email inboxes and saving your desired data in your email ids is also an example of Cloud, now you must have something clear reflection of what exactly cloud is. It's a matter of usage of how you manage to use cloud, because once your data is in the cloud then it is secure and you don't need to worry about it because it's secure and hassle free, but still it's better to place your important data on your personal premises or devices as well which we call backup. Off-course this thing is really important whether it's cloud or something else.

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