GizmoxTS - How to Choose a Target Platform for Application Modernization When Your Fortune Teller is OOO

How to Choose a Target Platform for Application Modernization When Your Fortune Teller is OOO

Friday, 12 January 2018 06:27
In the process of digital transformation, choosing a target platform is one of the first tasks to handle, and as this paper shows, there are quite a few aspects to consider when doing that. On the client side, should you prefer Angular or ASP.NET MVC? On the server side should you prefer .NET or Spring? And does it at all matter if your aging platform is based on Visual Basic, PowerBuilder or C# when choosing a target platform? How to avoid a vendor lock-in when moving applications to the cloud? Which platforms require a shorter learning curve? How to invent a time machine and travel to a future time when this decision has already been made? Well, if you are not into modern physics or if your application transformation project has an earthly schedule, here is a more practical way to choose a target platform for the modernized application. fortune
If your fortune tell has no cloud expertise, this paper is for you

Want to have your cake and eat it too? Gartner says you can

While you cannot decide not to decide, you can choose a gradual upgrade approach as suggested by Gartner’s bimodal paradigm. The paradigm suggests a gradual transformation into a digital organization through modernizing core applications while maintaining some old technologies in parallel. In the end of this process, all business-critical systems are modernized. Many companies that have already implemented bimodal are now ready to completely let go of the old VB.NET, C Sharp or Java desktop applications and reengineer them for the cloud, mostly through an automated process as explained below.

On top of suggesting a gradual transformation approach, Gartner also predicts much shorter modernization cycles in near future. Instead of an average life cycle of 10-15 years just a couple of decades ago, new technologies nowadays last for as little as 3-5 years! This means that organizations need to adopt an approach of continuous modernization rather than a one-time effort. Selecting a long-term application modernization partner with latest digital transformation  technology at hand is therefore essential and could be a more strategic decision than mere selection of a target platform. Such a partner could keep your solutions up to date to ensure you will not lag behind the competition, which is probably also reading Gartner’s reports. Take banks for example. These financial behemoths are getting increasingly worried about newcomers like Amazon with no experience in banking but with lots of experience in mobile wallets and digital transformation of traditional industries.

Prioritizing the modernization process of old technologies could rely on Gartner’s market clock. Some old technologies that prove too costly to preserve, such as VB.NET, C# and Java, are top priority for modernization. These can be transformed either to server-based solutions or to client-based solutions as explained below.

Modernization cycles get shorter and shorter. Plan your digital transformation accordingly

Cloud it is, but which type of cloud?

It is becoming clearer and clearer that cloud is not an “if” question, but a “when” question. Once the “when” question is answered, it is time to decide which type of cloud should be used. There are three options here in general, public, private and hybrid, and preferring one over the other two depends on data security and management needs.

Public clouds, such as the Amazon EC2 or Microsoft Azure are very scalable and cost-effective, but might not fit organizations with highly sensitive data that have to comply with strict regulations. A private cloud is owned by the company, and enables keeping sensitive date within the firewall. The superior security provided by a private cloud comes on the expense of a more moderate economy of scale comparing to a public cloud, and is therefore more suitable for large enterprises that can afford it. A hybrid cloud consist of a private cloud for everyday operation with the option to use a public cloud as needed, for peaks that cannot be served by the private cloud, for disaster recovery and predictable outages, or for less sensitive parts of the application.
Cloud technology that best fits your needs balances performance, security, scalability, maintenance and cost,
and leverages in-house programming skills

Next it is time to choose between Infrastructure as a Service (IaaS) and Platform as a Service (PaaS). IaaS is basically an advanced hosting option for you old application with a rather minimal utilization of what the cloud has to offer. It is somewhat of an intermediate compromise between the old days of desktop applications and actually moving applications to the cloud. While migration to IaaS involves less reengineering than migration to PaaS, it does not facilitate a full application transformation to the level of modernized apps that users have been accustomed to. When it comes to performance, integration and maintenance, PaaS is definitely superior, and when one realizes that IaaS is only an intermediate compromise, migrating directly to PaaS is also more cost-effective, as there is no need to migrate twice, to IaaS and then again to PaaS.

Client-based and server-based digital transformation

Once decision is made to upgrade to PaaS, there are two alternatives to consider for transforming your old C#, PowerBuilder or Java desktop application into a modern cloud-based one. First option is client-based and includes frameworks like Angular Node.JS, which is more natural for Java script developers. Second option is server-based and includes frameworks like ASP.NET MVC, which requires a shorter learning curve for .NET developers. A good example for this is when moving from Visual Basic or VB.NET to ASP.NET MVC with a Sencha-based client. In any case it is recommended to consider an agile and highly modular architecture with a decoupled client like web services or API-based architecture. A decoupled client makes maintenance a lot easier as it allows frequent updates of the client without necessarily updating the server.

As mentioned above, application modernization cycles have become a lot shorter and it is therefore important to avoid vendor lock-in and enable flexibility when upgrading to new technologies in the future. Some open platforms with a highly active community, like Angular for example, are quite appealing from these perspectives. Angular is also backed by Google, so you can count on it to remain up to date with latest features and innovation.

Once a final decision is made regarding the target technology for the application transformation process, it is time to choose between a manual rewrite and automated digital transformation. While this paper does not focus on how to keep risks under control, such as the risks involved in a manual rewrite of the code, it is worth mentioning that an automatic solution based on a holistic and semantic processing of the code is the most cost-effective and involves significantly less risk than other alternatives for any given target technology of your modernized PaaS solution.