AWS Cloud-Enabled DevOps Enables Cashify to Dominate Reverse E-commerce
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 attracting more than 3 million user sessions and 2 million quotes per month. Its application has been downloaded by more than a million users.
The company is experiencing fast growth and needed robust, scalable and agile infrastructure to support its business. Initially Cashify used Linode datacentre and Umbrella helped to migrate its workloads to AWS Cloud. Since then this has been an ongoing partnership and as the Managed Services Partner of Cashify Umbrella has continuously optimized the deployment for cost, security and performance.
Cashify
www.cashify.com
01. Existing Systems
Cashify has complex back-end operations running on with several Java and PHP-based applications. These applications—comprising e-commerce, quote engine and partner portals—have been deployed on AWS Cloud using AWS EC2 with AWS RDS Aurora and autoscaling.
Cashify’s quote engine has business integrations with e-commerce companies and it has strategic partnerships for repairing and supply chain. Its application supports several services—front end, back-end admin panel, customer fulfilment, logistic partner portal, repairing partner portal, etc.
A number of teams are working to enhance the application, fix bugs and patches which required high level coordination and exposed the application to vulnerabilities.
Earlier Cashify used GitHub private repository to store code and custom scripts to deploy. This had caused inadvertent errors to creep in making deployment unstable. In case of problems roll-back was slow and painful as release process was manual.
Also manual processes were impeding high velocity innovation as it entailed downtime and it was affecting business partnerships who had ongoing promotions and campaigns.
02. Key Business Requirements
Cashify turned to Umbrella to help overcome its challenges by implementing an automated release management process as Umbrella had deep understanding about its business and insights into the deployment.
Specifically, Cashify wanted to achieve the following:
- Increase frequency of releases and achieve fast time to market
- Eliminate downtime during release
- Smooth roll back in case of failure
- Efficiency and cost optimization to facilitate frequent releases
- Monitor deployment to maintain and enhance performance
03. AWS Services & Third Party Tools
Umbrella configured AWS Container Service ECS for quick deployment of releases and cost-efficiency. Speed-to-market is a competitive differentiator and AWS ECS is an ideal choice—as managed platform AWS ECS allows developers to focus on the code without worrying about managing resources such as CPU and memory. Containers are lightweight and the built-in automation of AWS ECS enables to schedule multiple containers on the same node resulting in high utilization of resources.
Jenkins is used to build and create images which are stored in Docker Hub. Among AWS services, Amazon S3 and AWS CodeDeploy are used to store artefacts and make continuous integration and deployment.
Amazon CloudWatch monitors deployment process and Cloud resources, raising an alarm when threshold is breached or errors during release. AWS Cloud Trail maintains logs of all API calls to achieve enhanced security and visibility and take corrective action in case of performance degradation.
04. Solution Overview
Most applications are deployed on containers with each service on separate containers, wherein Jenkins builds applications by picking up code from GitHub and creating artefacts which are integrated with Docker images and deployed on AWS ECS in a highly available and scalable architecture. AWS ECS creates new task definitions before deployment whenever new releases are made. Test is conducted on premise while production is released manually on AWS Cloud.
For applications deployed in non-container environment, Jenkins builds and stores code in Amazon S3 from which AWS CodeDeploy automatically picks up to deploy in a highly available and scalable architecture. Access to AWS CodeDeploy is controlled by AWS IAM with automatic provision to roll back to previous version in case of error.
05. Cashify Deployment in Non Containers
05. Cashify Deployment in Containers
06. Deployment Highlights
- Critical applications—such as ecommerce, quote engine and mobile app—are deployed on containers while relatively less critical applications are on non-containers.
- Each update is configured as a new task definition which automatically replaces old versions of task definition.
- Automatic roll back to previous version if deployment fails.
- Amazon CloudWatch is used to monitor deployment process and Cloud resources.
- AWS CloudTrail maintains all logs
- AWS IAM based access for AWS CodeDeploy and AWS ECS.
- Jenkin is hosted in Cloud
- Automated dev and test environments on premise while AWS ECS deployment is done manually in AWS Cloud.
07. Business Benefits
- Cashify is innovating at high velocity and frequency of releases have quadrupled—from one a month to one release a week.
- Collaboration amongst different development teams, IT and operations have increased efficiency by 50% leading to faster innovation.
- Cashify has forged stronger partnerships with better SLA adherence by eliminating downtime during releases.
- Roll back is seamless and easy encouraging enhancements and experimentation.
- With close monitoring, Cashify can take preventive steps, ensuring high performance and user satisfaction.
Says Amit Sethi, Co-Founder and CTO at Cashify, “Integrating DevOps practices has changed our approach to business and how we innovate. We use speed-to-market as a differentiator where thinking off the hat is becoming the new normal. We experiment more, modify features and adapt to external inputs on a real-time basis as internal systems and process facilitate our new market posture. Seamless collaboration amongst teams has sharpened focus on innovation rather than wasting time in coordinating efforts.”
Related Success Stories
Global Software
DevOps Enablement