Cashify Achieves Faster Innovation and High Utilization with DevOps

Umbrella | 10 Jan 2019 | Enabling DevOps

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.

Customer Challenge

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.

What Umbrella Proposed

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

Umbrella Solution with AWS services

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.

Enabling DevOps with AWS

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.

Architecture of DevOps Enablement

Applications Deployed on Containers

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.

Business Transformation Results

  1. Cashify is able to release updates and features continuously without downtime. This is a big boost for business as it helps entrench presence among partners.
  2. Higher infrastructure utilization with containerization resulting in cost savings. /li>
  3. Faster deployment of updates and releases with containers.
  4. High reliability as AWS ECS automatically manages and replaces unhealthy containers.
  5. Custom metrics in CloudWatch allows Cashify to keep close watch on infrastructure utilization and reduce wasteful expenditure.

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.”

More Case Studies