Cashify is India’s largest pure play reverse e-commerce platform that allows users to sell digital devices. A highly popular platform, Cashify attracts more than 3 million user sessions per month. Its application has been downloaded by more than a million users.
As reverse-ecommerce player, Cashify’s has a unique business model wherein customers can sell used devices based on prices quoted by the platform’s engine—a highly sophisticated application, used in the backend by large e-commerce players in India.
Hosted on AWS Cloud, Cashify has several applications deployed on EC2 instances with RDS Aurora and autoscaling. These applications—which are Java and PHP-based—include e-commerce, quote engine, partner portals for logistics and repairing as well as front end and back-end panels for administration.
Cashify was using CodeDeploy to deploy application but building the code using custom scripts. This was causing inadvertent errors to creep in making deployment unstable and roll-back slow and painful. Code was stored in GitHub private repository with separate environment for application testing and production.
Due to manual application release processes, Cashify was making one release per month. Multiple teams were working on different applications simultaneously requiring a lot of coordinating amongst development teams, IT, operations and partners when making release. This was impeding the ability to innovate at high velocity and stay on top of the game.
Cashify could not afford downtime and needed to automate release management as its quote engine is aligned with partner networks who had frequent promotions and campaigns.
Umbrella configured AWS Container Service ECS to achieve application redundancy and quick deployment of releases and updates. Since speed to market is a competitive differentiator for Cashify’s eco-commerce business, ECS is ideal choice to deploy critical applications in a fast moving environment.
Jenkins is used to build and create images which are stored in Docker Hub. Among AWS services, S3 and CodeDeploy are used to store artefacts and make continuous integration and deployment.
AWS CloudWatch monitors deployment process and Cloud resources, raising alarms when thresholds are breached or errors during release. Cloud Trail maintains logs of all API calls to achieve enhanced security and visibility and take corrective action in case of performance issue.
Most applications are deployed on containers with each service on separate containers, wherein Jenkins builds applications picking up code from GitHub and creating artefacts which are integrated with Docker images to be deployed on ECS in a highly available and scalable architecture. 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 on non-container environment, Jenkins builds and stores code in S3 from which CodeDeploy picks up automatically to deploy in a highly available and scalable architecture. Access to CodeDeploy is controlled by IAM with automatic provision to roll back to previous version if there is error during deployment.
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 and support our new market posture. Seamless collaboration amongst teams has sharpened focus on innovation rather than wasting time in coordinating efforts.”