Gradual Angular upgrade: paying technical debt in a business-critical legacy app

Project Summary
Cloud Drift successfully modernized a legacy application by addressing technical challenges, improving performance, and ensuring its long-term viability. Key solutions included a hybrid approach, database optimization, and backend refactoring.
Service
Client
Big Four

1. The Context

A legacy system in need of modernization

The project involved a large, outdated application built with AngularJS, facing issues such as unsupported new features and a significant amount of custom code. The backend utilized .NET Framework 4.6 and Entity Framework, with a massive 700 GB database growing by 5 GB monthly. There were no automated tests, and data operations were highly inefficient.

2. Challenges

Overcoming legacy limitations

  • Legacy AngularJS: Upgrading was infeasible due to the project’s scale, requiring a hybrid solution to incorporate new Angular features while maintaining the old version.
  • Complex Routing and Components: Implementing hybrid strategies involved intricate routing, pipelines, and repository management.
  • Inefficient Backend: Entity Framework’s inefficiency with a large database and the lack of automated testing posed significant challenges.
  • Business Critical Data: Handling super-critical business data with thousands of rows added daily demanded a meticulous approach.

3. Solutions

Modernizing the legacy system

  • Hybrid Angular Approach: Introduced new Angular components while keeping the old AngularJS running. This hybrid model allowed for incremental upgrades, freezing the technical debt and enabling the addition of new features without halting development.
  • Strategic Routing: Devised a strategy to manage complex routing and component integration, ensuring seamless functionality between the old and new systems.
  • Entity Framework Upgrade: Migrated to EF Core, significantly improving database efficiency. Data operations that initially took five minutes were reduced to 15 seconds.
  • Backend Refactoring: Gradually refactored backend components, shifting from the old framework to the new one without disrupting business operations.
  • Security Audit: Conducted a comprehensive security audit to ensure the integrity and safety of the system.

4. Outcome

A modernized and resilient system

  • Performance Boost: Improved performance and scalability, with data operation times drastically reduced.
  • Enhanced Development Workflow: Enabled ongoing development alongside system upgrades, avoiding a complete halt in progress.
  • Business Continuity: Ensured continuous support for business operations during the transition, maintaining critical data integrity and functionality.
  • Long-term Viability: Established a robust foundation for future upgrades and feature additions, aligning with modern standards and practices.

Through strategic planning and execution, Cloud Drift successfully navigated complex technical challenges, ensuring the project’s recovery and setting the stage for sustained success.