RUPI Case Study

RUPI Cloud Transformation

 

The challenge

As 2020 progressed, Rupi understood that the growth of their app user base and various new functionalities were difficult to accommodate via the Java based, on-prem, monolithic application architecture. One major contributor to this problem was the throughput limitations of the existing legacy “Collaborator” application that could not accommodate increasing customer/end user scalability needs.

The Rupi team also lacked the technical documentation and knowledge of the application’s architecture evolution because of the gradual loss of many of the original developers and engineers that designed the architecture. This compounded the challenges of modernizing (refactoring) their existing application for greater scalability via a GCP migration. After vetting several firms looking for the right level of experience and business/cultural fit, Rupi chose Techolution as the ideal cloud migration and design partner.

Besides having guided many such projects to successful completion, the Techolution team had the experience in deep application architecture discovery processes. Despite the team’s offshore approach, Rupi found they also brought a unique understanding of the Indonesian business and technology culture. This helped forge a strong partnership based on trust that gave the Rupi team the confidence that Techolution could map the current back-end architecture design.

 

The solution

The initial month was the discovery sessions with the remote Techolution team working via Google Meets with the Rupi team to map the existing application architecture via deep dive discovery session on existing applications and Database. The Techolution team easily mapped the back-end architecture by logging into the app to explore and fill in the gaps of the application’s architecture. Once completed, the Techolution team presented an application architecture upgrade and GCP migration plan that included:

  • Securely configuring and setting up the GCP project and deploying all resources to the local GCP Cloud environment
  • Setup connectivity between GCP and the RUPI local cloud, either via VPN or public for migration process
  • Setting up new application tier instance capable of accommodating all existing workloads with optimum response times

The Java-based application was standalone with no higher-level CI/CD pipeline in place. This lack of CI/CD meant that the Rupi engineering and development team would log into the servers to perform manual updates. The Rupi team had already begun containerization and microservices efforts before the start of the project. Techolution would build on this by creating additional microservices, GKE clusters and the scalability features as part of the GCP environment build.

While being skilled engineers and developers, the Rupi team had limited experience with GCP, GKE, Event-driven development, Spring Boot scaffolding tools, and CI/CD platform and microservices development/management. Techolution developed upskilling training sessions to ensure the Rupi team understood the process of converting their native Collaborator service to Microservices. This would ensure Rupi engineers could collaborate on the project’s evolution and easily manage the resulting GCP microservices-based application architecture.

Techolution’s comprehensive plan and strategy for the three-month project included implementing:

  • GCP Production environment
  • Microservices development training for Rupi Team
  • Needed VPC Subnets, routes and firewalls for the project
  • Kubernetes Clusters setup for dev environment and app containerization
  • Extract, Transform, Load (ETL) pipelines on Google Cloud
  • New instances of application and database hosted on the Google compute engine Load
  • New database migrations (Migrate PostgreSQL Collaborator/WSO2, Dashboard, Data Mart)
  • Develop and implement production ready ‘Collaborator’ APIs
  • Containerize and create microservice deployment of Dashboard Service, WSO2, and Collaborator functions on Kubernetes
  • Stress and Load Test the application
  • Implement Google Stackdriver for GCP environment monitoring via dashboards
  • Develop Performance Test Plan and Reports to meet the success criteria of platform scalability performance testing and detailed results including transactions per second (TPS)
  • Provide Virtual network access setup for ongoing dashboard application status reports
  • Test end-to-end flow of the application
  • Documentation of final architecture design and the infrastructure and application deployment process

Besides the primary aspects of developing APIs for Collaborator and terraforming the GCP environment for new application instances, Techolution needed to make the Kubernetes deployment as seamless as possible. The team used Skaffold and Google Cloud Build to support the Kubernetes deployment without a CI/CD pipeline in place. The two teams also collaborated on the on-prem private network architecture upgrades to enhance the communication between the Rupi network and the GCP environment.

 

The results

As of February 2021, Techolution and the Rupi Team have completed testing and shifted everything from the development environment to the production environment. This means that Rupi is now receiving actual production traffic into the GCP environment. The Rupi team and leadership have reported that the environment is scaling itself to accommodate end user and customer traffic and requests to the application on GCP with everything working as expected.

Rupi now has visibility into each component of the formerly monolithic application and its performance via multiple microservices. This enables them to have the autoscaling to adjust loads for any segments that are underperforming in terms of response and load sharing across multiple instances. With multiple microservices in place and still growing, Rupi can now:

  • Monitor and optimize the response times of the various requests to the APIs to ensure that they are below nominal thresholds for the best user experience
  • Meet predefined TPS across each microservice

As long-term collaborative partners, Rupi and Techolution look to the next phases of digital transformation for the platform. This will include instituting a proper CI/CD pipeline and fraud detection solutions using Techolution’s flagship Artificial Intelligence technology product to enhance security. The partners are planning for other projects that will advance the operational capabilities of Rupi products and services to improve the UX for its growing Indonesian customer base.

We feel highly satisfied because our project has been successfully completed on-time. Though our team has a lack of Google Cloud knowledge but the Techolution team made these obstacles become no issue. Also we want to say thank you to the Techolution team for the hard work on completing this project and it really paid off. We can’t wait to collaborate for another project with Techolution.

Thomson Napitupulu, Head of Engineering - RUPI

 

About the customer
RUPI

Rupi Bisnis is a fast-growing mobile payments platform app for entrepreneurs especially small and medium enterprises in Indonesia. They use the digital payment and transactions application for various digital products from mobile pulse, mobile postpaid, electricity bills, electronic money, and more.

Industry:  Financial Services