An effective strategy can be found when exploring the motivations for modernization – scalability, maintenance and UX
As in life, the easier way to go might not be the best oneScale up and scale down sound like fundamental cloud features don’t they? Well, it is in a way but there are different degrees of agility when comparing IaaS and PaaS deployments as well as different quality of UX and different costs, all of which can make a big difference in ROI. One thing is for sure though, unlike a PaaS-based solution, selecting IaaS means that the same aging desktop app is merely uploaded to a cloud VM or to a container that mimics its original running environment, hence preserving its desktop-oriented nature. Such architectures were meant to serve a single user on a desktop machine, and as a result they lack fundamental features required to leverage PaaS cloud platforms.
Scalability is one thing, but what about maintenance? Take legacy windows apps like WinForms or PowerBuilder for example. It might be tempting to select IaaS for those as a simpler and more straightforward cloud modernization solution. A trivial yet oftentimes overlooked consideration is that selecting IaaS cannot solve the issues associated with aging languages such as Visual Basic, earlier versions of .NET and PowerBuilder. Finding programmers who can maintain the aging apps is also not a cakewalk. Not only that, going IaaS means there is now another layer to maintain, that of the virtualization and remote access solution for accessing the virtual machine in the IaaS cloud. This part is normally handled by a third party, which adds to the equation additional costs and periodic upgrades.
Another main consideration is UX, which in a world of modern applications is the indisputable king. An IaaS-based solution relies on virtualization and in most cases offers inferior UX comparing to well-architected web-based solutions designed for a PaaS cloud. Virtualization introduces additional latency and cannot compete with native solutions when it comes to supporting touch and gestures as well as adaptation to different form factors, all of which are considered a standard that users have come to expect.
Considering the above strategic disadvantages, it is possible that IaaS should be regarded as a bridging solution between a desktop app and a truly modernized native web app, and should therefore be treated as such in terms of investment and planned lifespan. From where we stand it is already evident that organizations that were part of the first generation of IaaS deployment from the past four years or so are starting to experience disillusionment following the disappointing scalability, maintenance and UX of their IaaS-based solutions. Many of those organizations are now evaluating their alternative, which might eventually result in an upgrade to a PaaS-based solution.
It all boils down to ROIWhen comparing PaaS and IaaS and carefully examining strategic modernization factors like UX, agility and scalability, it seems like it is not a question of which solution performs better. In most cases aging desktop apps uploaded to an IaaS cloud VM are no match for desktop apps that are transformed into well-architected web applications optimized for PaaS. Why is it then that decision makers might still prefer IaaS over PaaS? Assuming they haven’t overlooked the factors mentioned above, it could be due to misperception about the ROI of a PaaS-based app modernization solution, as indeed on paper such a solution could seem more expensive and riskier than an IaaS-based solution.
Native scale up and scale down is only possible when applications are modernized and support stateless sessionsSo is there a path with better ROI for PaaS-ready application transformation? Consider an aging VB6 or Java desktop application for example. While selecting PaaS means there are no additional virtualization and remote access costs like in the case of selecting IaaS, it does require reengineering of the desktop app into a PaaS-deployable platform like ASP.NET MVC or Angular. Reengineering is mandatory when moving a desktop application to a PaaS cloud because a monolithic desktop app cannot run as is and serve multiple users in a multi-tenancy model on cloud. For example, the stateful monolithic app must be converted into a stateless one that serves multiple users to benefit from the native multi-tenancy and scale up and scale down of a PaaS cloud. While such transformations can unleash the full potential of the app running on a PaaS cloud, they do sound costly.
That indeed used to be the case, as reengineering a desktop app used to involve costly alternatives like manual app rewrite. The impractical ROI of such alternatives mainly stems from their tendency to fail to meet budget and schedule as they are often defeated by the mammoth task of extracting the business logic from the aging desktop app, and failing, as we all know, is expensive. However, a solution that is gaining traction and is as ROI-friendly as it is innovative makes transformation of desktop apps into PaaS-ready web applications a reality. It starts with a fully automated assessment tool available for a free download, which helps keeping risk under control as it analyzes the legacy app and provides time and cost estimations for the whole modernization process. It also automates business logic extraction and its valuable output is then used by the rest of the tool chain, which was designed to deliver a well-architected web application in a fraction of the cost of manual rewrite. Such a strategic sneak peek can make decision makers wonder why they have to compromise on IaaS when ROI for a fully modernized PaaS-ready application looks better than ever.