Cashify is India’s largest pure play reverse commerce platform that allows users to sell digital devices. It has exchange partnerships with large e-commerce companies in the country.
A highly popular platform, application has been downloaded by more than million users attracting more than 3 million user sessions and 2 million quotes per month.
As a start-up ecommerce company Cashify had hosted applications on Linode Cloud. The company had multiple applications running on one server and one database server which could not scale and presented a single point of failure.
Cashify was experiencing fast growth and needed reliable, scalable and robust infrastructure to support its business. At the same time it needed flexibility to scale down when traffic subsides.
To facilitate customers do reverse e-commerce, Cashify has complex back-end operations. It has integrations with several e-commerce companies to use its quote engine for used products, and strategic partnerships with repairing and supply chain providers.
Therefore Cashify has greater unpredictability because in addition to its own traffic, it gets traffic from partners. Depending on promotions and campaigns of partners, there was wide fluctuations in traffic.
Cashify’s application supports several services—front end, back-end admin panel, customer fulfilment, logistic partner portal, repairing partner portal, etc. The application required frequent updates but existing processes required manual interventions which were tedious and time consuming.
Also several teams were working simultaneously enhancing the application, fixing bugs and patches which required a high level of coordination. This was slowing the process of releasing new features and bug fixing.
Customer wanted to make releases and updates continuously, without experiencing downtime. Earlier during a release application went into maintenance mode, but as business was growing and the strategic initiatives with other companies meant Cashify could no longer afford downtime.
Individual application were deployed in single EC2 instances which was expensive and challenging to manage and customer was looking for easy manageability.
Umbrella proposed to migrate Cahsify’s deployments to AWS from Linode and deploy in multi AZ environment to achieve high availability.
To meet customer requirement of easy manageability and high utilization, Umbrella suggested using containers on AWS ECS; CloudWatch to achieve high performance and security compliance; AWS Code Deploy with Jenkins for continuous deployment of code
In keeping with customer goals of scalability, reliability, security and high performance Umbrella designed a distributed layered architecture wherein application was deployed in different AWS zones with public and private subnets for application and database security, using autoscaling to add and release servers according to traffic.
Security groups were configured to control access to application and CloudWatch with custom scripts to monitor memory, disk utilization, etc. CloudWatch will monitor the environment and send alerts to take pro-active measures and prevent incidence.
Umbrella helped Cashify deploy CICD pipeline for core Java and PHP applications and helped rearchitect some applications on containers using AWS ECS.
Umbrella set up process to enable greater collaboration between teams wherein AWS Code Deploy was configured to automate release management with build process executed in Jenkins and artefacts stored in AWS S3.
Earlier Cashify was using Github repositories to store application code and wrote custom scripts to deploy application. Now Cashify is using Jenkins and Gradle build tool to build and S3 to store artefacts and using Jenkin CodeDeploy plugin to deploy application within the console instead of logging through AWS console. Each application is configured separately with CodeDeploy.
For PHP applications, Cashify is using Yii framework and source code stored in GitHub. AWS CodeDeploy is configured separately with each application to automate release management, picking up EC2 instances tagged with specific workloads in autoscaling groups to launch new releases.
Umbrella helped rearchitect some applications into micro services using docker containers on AWS ECS enabling high utilization, availability and simplifying release of updates and features.
Developer takes image from Docker Hub and Jenkins integrates application code from GitHub and integrated image is published in Docker Hub. Task definition is manually updated and deployed on ECS.
Says Amit Sethi, CTO, Cashify, “Thanks to Umbrella’s in-depth understanding of our business and DevOps capabilities we implemented extensive automation and able to truly harness the power of Cloud. Meeting our primary objectives of reliability, high performance and continuous deployment strengthened our market position.”