Project Overview:
Techdots collaborated with a prominent French company to modernize their IT infrastructure, focusing on migrating their on-premises system to AWS cloud and upgrading their technology stack. The project encompassed transitioning their legacy Java-based application to Ruby and revamping their internal mobile app from native Java/Objective-C to React Native.
Challenges:
- Legacy Infrastructure: The company was running several Dell PowerEdge R740xd servers on-premises, each equipped with dual Intel Xeon Scalable processors, 256GB RAM, and 10TB of storage. These servers hosted critical applications and data, making the migration a complex task.
- Outdated Application Code: Their core application, written in Java, was becoming difficult to maintain and extend. The need for a more scalable and maintainable solution was evident.
- Native Mobile App: The internal mobile app, developed in native Java/Objective-C, required significant effort to maintain and update for both Android and iOS platforms.
Solutions:
- Assessment & Planning:
- Infrastructure Audit: Conducted a thorough audit of the existing infrastructure to map out all dependencies and workloads. Identified critical services and data that needed to be migrated with minimal downtime.
- Migration Strategy: Developed a phased migration strategy to move from on-premises servers to AWS. This involved setting up AWS services to replicate the existing environment, ensuring that performance and security requirements were met.
- Cloud Migration:
- AWS Setup: Provisioned AWS EC2 instances to match the capacity and performance of the on-premises servers. Utilized Amazon RDS for database management, S3 for storage, and AWS CloudFormation for infrastructure as code (IaC) to ensure replicability and automation.
- Data Migration: Leveraged AWS Database Migration Service (DMS) and AWS Snowball for securely transferring large volumes of data. Implemented continuous replication during the migration process to minimize downtime.
- Security Measures: Set up VPCs, security groups, and IAM roles to enforce stringent security policies, ensuring data integrity and compliance with industry standards.
- Application Modernization:
- Code Refactoring: Rewrote the core application from Java to Ruby on Rails. This allowed for easier maintenance, better performance, and faster development cycles.
- API Development: Developed RESTful APIs to ensure seamless communication between different modules of the application, allowing for future scalability.
- Continuous Integration/Continuous Deployment (CI/CD): Implemented CI/CD pipelines using Jenkins and AWS CodePipeline to automate testing, deployment, and monitoring.
- Mobile App Transition:
- React Native Implementation: Rebuilt the internal mobile app using React Native. This enabled a unified codebase for both Android and iOS platforms, reducing maintenance efforts and increasing development speed.
- Integration with Backend: Ensured smooth integration with the newly developed Ruby on Rails backend through secure APIs.
- Testing & Deployment: Conducted rigorous testing using AWS Device Farm to ensure the app performed well across multiple devices and scenarios. Deployed the app through AWS Amplify.
Technologies Used:
- Cloud: AWS (EC2, S3, RDS, CloudFormation, DMS, Snowball)
- Application: Ruby on Rails, Jenkins, AWS CodePipeline
- Mobile: React Native, AWS Amplify, AWS Device Farm
- Security: AWS VPC, IAM, Security Groups
Outcome:
The project resulted in a successful transition from a legacy on-premises system to a modern cloud-based architecture. The migration was executed with minimal downtime, ensuring business continuity. The newly refactored application in Ruby on Rails is now more scalable and easier to maintain, while the mobile app built in React Native allows for quicker updates and consistent performance across platforms. This modernization effort has significantly reduced operational costs and positioned the company for future growth.