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)
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.
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.
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.
Recommended by LinkedIn
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.
Step 4 - Now we can consider migrating the PHP web application into its own container.
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
Thanks for reading!