GizmoxTS - Desktop App Modernization: Who’s Who in the Zoo, Part One: Virtual Machines in the Clouds

Desktop App Modernization: Who’s Who in the Zoo, Part One: Virtual Machines in the Clouds

Sunday, 18 February 2018 06:22
For many organizations these days there is not enough clarity when defining their digital transformation strategy, especially when it comes to selecting the right platform and deciding how to modernize their aging desktop applications to take full advantage of the cloud. In quite a few examples, going halfway with occurs due to misperception of what is possible and what is not when it comes to application modernization. There is a lot of confusion around this and not by accident, as giants like Amazon and Google aggressively promote their IaaS cloud solutions that might prove insufficient in many cases. Take the Amazon EC2 IaaS for example. Some organizations that have migrated their desktop apps to EC2 came to realize that it is more like a cloud VM than the modern PaaS or SaaS platforms they have envisioned. Merely moving old applications to the cloud, be it Visual Basic, PowerBuilder, C# or Java desktop ones, does not modernize them overnight.

Cloud VM doesn't really solve your problem; it just moves that old legacy app to the cloud

IaaS is not PaaS. Make sure you read the small letter(s)

PaaS solutions, such as the Google App Engine and AWS Elastic Beanstalk, may support applications with ASP.NET MVC or Spring on the server and an Angular client, for example. As such, PaaS is suitable for desktop applications that get truly reengineered for the cloud. PaaS solutions and true app modernization will be further discussed in part two of this article series, so stay tuned. IaaS, however, is more of a cloud-based hosting option for the same aging desktop application. This means that if you go IaaS and your old code base is based on Visual Basic or PowerBuilder for example, it won’t magically turn into Angular or ASP.NET MVC code and provide all the goodies that those modern platforms have to offer as cloud applications.

Instead of running the application natively in a desktop environment it now simply runs in a VM on the cloud, but the application itself remains exactly the same. This concept is promoted by those cloud giants as part of their lift and shift strategy for digital transformation, which basically means this – take your desktop workloads, throw them to the cloud and voilà. Sounds good doesn’t it? The headache of dealing with the hardware and software environment is handled by the cloud provider that offers virtually unlimited resources, and all that is left to do is to configure the cloud environment like the desktop one and upload the desktop application to be hosted there. What is the catch then?

Drawbacks of selecting IaaS and VM on the cloud

Know those very impressive “before and after” photos? This is NOT what is going to happen to your old desktop application when you move it to a cloud VM, as under the hood it remains identical. Actually, in some aspects, the “after” photo will look even worse. Selecting IaaS preserves all existing drawbacks of your old application, namely its aging UI, old programming language and runtime, challenging maintainability, sluggish user experience, nonexistent interoperability and so forth. Say for example, that after this pseudo application transformation, a customer reports a bug in your VB6, PowerBuilder or C# application. You still have to find the engineers that can dive into that legacy code, drink 42 cups of coffee, eat 32 slices of pizza, fix the bug, test the app and deliver it, even though this is now seemingly a modern cloud application. On top of these considerations, while cloud VM sounds like a nice buzzword, the virtual part means it needs to be accessed through a remote desktop solution, which introduces lots of latency and could actually make you miss the old days when it was just a regular desktop app.

Modernization vendors will tell you anything you want to hear. Always ask for POC and case studies

What about a PaaS-oriented application modernization?

While PaaS-oriented app modernization will be further elaborated upon in the sequel of this post, let’s draw some general lines of a truly modernized application. First and foremost, using an , you could finally get rid of that old legacy code and upgrade to a new platform, such as ASP.NET MVC, Angular or Spring. Such a tool can modernize legacy desktop apps in fixed time and price thanks to an advanced assessment tool that analyzes the legacy code prior to the transformation, and is actually available for free. As depicted below, the tool automates and simplifies the re-architecting of the monolithic legacy app, such as Visual Basic, .NET, PowerBuilder or Java, into a server-based app like ASP.NET MVC or a client-based one like Angular 2. The tool automatically analyzes the business logic of the old application and preserves it in the modernized version, thus the learning curve of the modernized code is quite gentle. The tool also handles the partitioning of the desktop app into a modular web server and client design, which provides all the benefits of a modern Angular app such as web and mobile interfaces, superb performance and scalability, advanced security etc.
PowerBuilder app on the left is automatically modernized into the Angular 2 app on the right by GizmoxTS