Cloud Transformation: Application Re-Architect and Rewrite approaches on Cloud
Cloud adoption is high from the last few years and enterprises are aggressively started their cloud journey irrespective of their size.
Enterprises working to move key enterprise applications to the public cloud using the holistic cloud, migrations approach defined by cloud providers in their cloud adoption frameworks or recommend by cloud practitioners.
Most of the migrations normally follow is to Rehosting (“Lift and Shift”) or Refactoring where existing application migrated as-is or with minimal code/configurations changes to get rid of the on-premise data center and other overhead by adopting fewer cloud benefits.
Very few are considering modernizing their workload by exploring the majority of the cloud features, in this cloud transformation path we could see approaches like Rewrite (Rebuild) and Rearchitect.
These approaches require a lot of effort to make application completely cloud-native by understanding real business functionalities of legacy applications and understanding the monolithic application architecture, application complexity, Integration points, Data Model, etc. where we can translates business requirements into scalable, secure, resilience and reliable solutions by exploiting maximum cloud features through these detailed analyses to seamless migration on Cloud.
Rearchitect: We can choose this migration approach when there is no requirement of business functionalities change, current application compatible to separate as a small service or monolithic applications are compatible to host as containerization technology.
Major benefits of adopting rearchitect the approach is we can reuse existing code base, operational cost benefits however it’s limited use of cloud features so OPEX benefit is less compared to Rewrite approach. Ex: Monolithic applications deploying on Docker containers with minimal design changes.
Rewrite: of an application is complete change in architecture style was in a monolithic architecture application is going to be replaced by a new architecture style like Microservices using CaaS (Container as a Service) approach or Serverless Architecture.
Why Rewrite a legacy application?
- Retiring legacy technologies like VB, Excel Macros, Lotus, COBOL etc
- Rewrite application to incorporate major business functionalities
- Caveat around current application scalability, availability, security and maintenance challenges
- Achieving Omnichannel experience in Legacy applications architecture is challenging
- Complex Data model and Tangled & Fat application design
In the Rewrite scenario completely scraping current code base and rewriting an application from scratch. Incorporate business functionalities changes. Adopting the latest architecture style and programming language, design patterns and principles, etc. Methodologies like 12 Factor Apps created
specifically for SaaS apps however cloud-native development can adopt this methodology to build best in class cloud-native applications.
Benefits of Rewrite applications.
- Cloud-native approaches containerization of applications or serverless computing would give more cost-effective than migrating Azure VMs or AWS EC2 of any cloud provider IaaS platform.
- Streamline deployment approach by adopting DevOps approach
- Better Resilience
- Enables Scalability
- Enhanced approaches for Monitoring and Logging cloud capabilities
- Enterprise-scale Security and Compliance
- Full advantage of cloud capabilities
Enterprises should perform IT landscape portfolio assessment to capture all the Servers/infra stack, Technology stacks, Dependencies, and also the business functionalities of applications by engaging the right cloud adoption assessment specialist and cloud practitioners team to determine which “R”’s these applications are fit into and more.
Cloud provides an opportunity to consider modernization of business-critical applications leveraging cloud-native capabilities and latest architecture styles, principles, Design methodologies.