Modernising Traditional Application (MTA) into Cloud PaaS in 5 Steps

Modernising Traditional Application (MTA) into Cloud PaaS in 5 Steps

The difficulty in moving our applications to the Cloud can be: Where do we start? Many advocate a hybrid model, followed by lift & shift (just moving a virtual machine from on premise into Azure). This entails four steps: creating a new mini data-centre in the cloud, connecting on premise infrastructure to the new data-centre through a new VPN, copying on premise disks into the data-centre and finally spinning up new VMs with these disks. This can be a big bang approach especially if there are hard application dependencies between VMs. An alternative (and hopefully much better way) is to simply move individual applications components into the cloud, making sure to have good connectivity between on-premise and cloud. A more cloud native approach is to additionally leverage a platform as a service – PaaS.

Let’s start with the simplest application. A single on premise data entry web application that has its own relational database for storage. This encompasses most of the different technologies that we can think of - Microsoft ASP.NET, PHP, Python, Java and databases - MS SQL Server, MySQL, PostGreSQL, Oracle. Many of these databases can move to Cloud PaaS, or if not to a cloud based VM.

Start – A Web App (4 types) that saves its data to a local database (4 types)

No alt text provided for this image
different web apps (PHP, Pythonetc) can be using different back end databases (MySQL, Oracle, MS SQL etc)

Step 1A - We backup and restore the MySQL database to PaaS (Azure or AWS) and update the web app connection string accordingly. If the database was previously using trusted authentication then this can be changed to a local account equivalent.

No alt text provided for this image
PHP web app on premise with MySQL database in PaaS in Azure

Step 1B - The other way around by moving the PHP web app into the cloud – ideally using PaaS. This will require a Site to Site VPN between on premise and Cloud – hence not the best option unless there is a one already in place.

No alt text provided for this image
PHP web app in Azure PaaS with database on premise

Step 2 – Now we have both web app and database in a PaaS environment. The web app is hosted in a PaaS environment that has the runtimes ready to accept web apps of this type. The web app could alternately be containerised before being moved to the cloud PaaS.

No alt text provided for this image
PHP Web App -> MySQL database, or Java Web App -> PosgreSql database, or Python Web app -> Oracle database.

Step 3 – Let's now add new cloud native functionality to the application. A new feature might require storage and email capability. Below shows a feature with a design incorporating a micro-service model. Notice how the micro-service can use any language or technology. It is running in a Docker container and has its own independent storage. This can enable the path of migration from a monolithic to a micro-service application architecture.

No alt text provided for this image
Adding new functionality to current app

Step 4 - Now we can consider migrating the PHP web application into its own container.

No alt text provided for this image

Step 5 - We now have the ability to add significant improvements to our application.

·    Add scaling for our application by virtue of a few code changes and a data queue. The example below shows an external queue hosted as an external product in a cloud provider. An alternative could be to include an open source software queue in a separate micro-service in an additional container.

·   Add Azure API management (APIM) for our first micro-service

·  Add a workflow by incorporating a serverless Azure Logic App

No alt text provided for this image

Thanks for reading!

To view or add a comment, sign in

Others also viewed

Explore content categories