Key decision factors for App Cloudification



Cloudification is moving a service or application from on-premises to the cloud. Every organisation is planning to move there maximum applications to cloud. There are many benefits of going to cloud. 

Below are the few benefits organisations will get by moving applications to cloud-

  1. Flexibility to Scale Up or Down
  2. Disaster recovery
  3. No upfront Cost for Hardware & Software Licences
  4. Security
  5. Focus on Core Business


Because of above and many other benefits every organisation wants to move on cloud. 

Cloud provides different service models-

  1. IaaS (Infrastructure as a Service)- A virtualized environment on which systems can be deployed. This provides the underlying computing resources for the deployment of enterprise systems.
  2. PaaS (Platform as a Service)- We call it "Cloud Platform Services". What developers gain with PaaS is a framework they can build upon to develop or customize applications. PaaS makes the development, testing, and deployment of applications quick, simple, and cost-effective.
  3. SaaS (Software as a Service)- Cloud computing offering that provides users with access to a vendor’s cloud-based software. Users do not install applications on their local devices. Instead, the applications reside on a remote cloud network accessed through the web or an API

Below are few key decision factors which helps you to decide best Cloud Service Model for your application & take further actions:
  1. Integration with other on-premises application- If your application have some integrations with other on-premises application & you are not moving other application to cloud than you need to also plan for Hybrid implementation so that after migration your application (from cloud) can communicate with on-prim applications securely. Many cloud provider provides secure gateway or channel between on-prim and cloud. 
  2. Database compatibility on Cloud- First check does particular cloud provider offers you similar database on cloud PaaS, if yes than go for it, if no than you can think to use another compatible database (of course data migration will be overhead) or you can go for VM on IaaS & install your database and use it from PaaS applications.
  3. Session Management- Scaling is one key feature of Cloud. If you are planing to go on Cloud than you should have stateless web application or services. It will allow you to scale your application horizontally when user load increases. If your application have some IN-Proc session than you can either save it to Database or Redis cache.
  4. User uploaded files or images- If your web application have provision for user to upload images and document on web application and you are storing those on application server itself than you need to make changes in application to store these files on separate storage e.g.- File Storage or Blob Storage. This will help your application to work properly when your applications multiple instances are running.
  5. Dependency on any third party software or custom software- If your application is dependent on any third party software or application which need to be installed on application server than you need to check that particular Cloud service provides you to install these type of software's. If not than you need to go for VM on IaaS so that your have full control over application environment.
  6. Dependency on Registry values- If your application is dependent on some particular values in server's registry than you will not able to use Cloud PaaS service, you need to go for VM on IaaS.
  7. Requirement of specific Port-If your application is dependent on specific TCP port than check the particular Cloud Service does allows you to communicate you on that port. If not than go for VM on IaaS.
  8. Caching implementation- If your application is using application caching to improve performance than it may become bottle neck in cloud where multiple instances of application can be there. You should have separate caching mechanism or use PaaS Redis Cache.
  9. User Authentication- If your application uses on-premises Active Directory for user authentication than your need to think a way to authenticate user when your application will be on Cloud. Either your can use some Cloud AD service (e.g.- Azure AD) and sync on-prim users with Cloud AD or authenticate users by ADFS.
  10. Cloud neutral development- If you don't want to stick with any particular cloud provider than your should go for Container approach so that you can move your containers from one cloud provider to another. 
If you have complex business logic in legacy application & many dependency on other software's which you feel very hard to migrate on PaaS than you can go for VM on IaaS as first stage, this will give you upfront benefits in cost & maintainability.

Before starting any migration activity first check all possible hurdles & do proper cost-benefit analysis.

I hope this guide will help you to plan your App Cloudification journey. Let me know if you have any query or suggest more point to add in above list.


Comments

Popular posts from this blog

Serverless Integration design pattern on Azure to handle millions of transactions per second

Cloud-Neutral Development is the future of IT

Working with Stored Procedure in Azure DocumentDB (CosmosDB)