What is rearchitecting
The process of re-designing the architecture of an application based on more modern computing concepts. Re-architecting is based on the knowledge that invaluable business logic and data relevant to the organization lies within the application code and surrounding artifacts (example, DDLs, copybooks, user training manuals) and that these assets should be leveraged in the new system. Rearchitecting is not about rebuilding from scratch. One of the benefits of a modern IT environment is that a good deal of the business logic can reside above the code using declarative models and part of the original technical code can be replaced by middleware tools (BPM tools, business rule engines, data integration, access solutions) to achieve greater agility. So, rearchitecting focuses on capturing the value of the business process that is independent of the legacy code base, and moving it into a different paradigm while eliminating the technology-specific code.
Rearchitecting can be confused with refactoring, which is simply the rewriting of parts of an application within the existing application architecture.
Reasons to Re-Architect Applications for the Cloud
- Reduce Costs of Ownership. Large applications often cost too much when running on legacy hardware-based infrastructure, especially when the requirement to scale-out elasticity can be more easily provided by the cloud.
- Drive Agility. Traditional IT includes configuring servers, databases, and networking, all while ensuring end-to-end security. Developers typically have to wait for environments to be provisioned
- Achieve Application Resilience. Monolithic applications are notorious when dealing with failures and issues – typically, any issue in any part of the application sets off a domino effect that takes down the entire app. Instead, fault tolerance can be built into each microservice.
- Enable Scalability. Unable to scale on-premise instances fast enough, large technology companies like Google, Microsoft, Facebook and Amazon began migrating to the cloud over a decade ago and have since achieved true “web-scale” including elasticity and enormous horizontal resource scaling
- Do Not Compromise on Monitoring and Security. Monitoring and security are fundamentally different with cloud-native applications. Though monitoring and security are more complex and challenging for cloud-native applications, when done right they provide a level of visibility and confidence that is unheard of with traditional monolithic applications running on-premise.
- What is refactoring. Learn more