Case Study Construction Industry How the Cloud is Enabling the Disruption of the Construction Industry Abstract A Minfy-architected cloud solution is helping iquippo, a digital marketplace for the construction industry, disrupt traditional methods of buying and selling heavy equipment and machinery.
The Client iquippo is India s first and largest digital marketplace for construction equipment, machinery, commercial vehicles, and services. The platform facilitates the renting and purchase of new and used equipment, with over 5000 such assets listed since inception. With its several innovative features, value added services, and financing solutions, buyers and sellers can interact, negotiate, and close deals in a timely, transparent and cost-effective manner. iquippo is fast becoming a preferred mode of transactions for industry stakeholders. The 18,000+ registered users on the platform include infrastructure, real estate, and OEM companies; and financial institutions, contractors, rental agencies and brokers, as well as individuals. Business Challenge iquippo was using costly on-premises infrastructure which needed to be regularly upgraded to match the surge in demand as the digital marketplace concept gained traction within the construction industry. Moreover, as the portal evolved, developers at the company were regularly releasing new builds almost weekly with new features and solutions. But they did not have sturdy release mechanisms or automated roll-back plans in place. Often, site users would experience bug- and human error-related issues and portal downtime. Information security was also a concern, as iquippo offered financing solutions through its tie-ups with banks and financial institutions. The portal had to meet the stringent financial data security requirements of the Reserve Bank of India. As part of an early initiative to reduce capital expenditure and address data security issues, iquippo had decided to host its Disaster Recovery (DR) mechanisms on the cloud. It approached Minfy, an managed services specialist to help it do this. Later, as the benefits of cloud hosting became apparent, the scope of services increased to include architecting a comprehensive cloud solution for the core iquippo application as well. To tackle the issues of bugs arising due to insufficiently streamlined development and release cycles, Minfy was also asked to help with end-to-end automation of the company s software development processes which would follow DevOps best practices.
Application Infrastructure Built To Deliver To tackle these challenges, Minfy, an managed-services specialist, developed a robust and secure, DevOps compliant, cloud-hosted infrastructure architecture. The high-level diagrams below provide an overview of the three-tiered application stack. Under the new scheme, the core iquippo website application frontend uses Nginx webserver running on an Amazon Linux server with a backend MongoDB database. This setup would not require any build or deployment on the webservers as Nginx can also works as a reverse proxy server. For the iquippo backend, the app node is developed using JavaScript and the source code repository is maintained through Code Commit. The source code is automatically built using Grunt on CodeBuild, and deployed on EC2 instances running in a virtual private cloud (VPC) using CodeDeploy. The application architecture also includes Amazon Route 53, Amazon S3, and Amazon CloudWatch, and IAM. Users Amazon Route 53 Amazon CloudWatch alarm IAM Amazon S3 Internet ALB Application Load Balancer Auto Scaling Blue green deployments CodwDeploy OpenVPN VPN Subnet Web (NodeJS) VPC Private Subnet Web (NodeJS) TeamCity VPN Subnet CodePipeline Amazon SNS Elastic Load Balancer Auto Scaling Internal ELB CodeCommit Build Notifications App (NodeJS Express) App (NodeJS Express) VPC Private Subnet Code Commit Developers Mongo DB Master Mongo DB Slave Availability Zone a Private Subnet Private Subnet Availability Zone b cloud - Mumbai Region
The Devops Solution Approach: Continuous Integration and Delivery iquippo Notifications Developers Amazon SNS CodePipaline EC2 - Amazon Linux 2018 Node.js Code Commit/ merges UAT Subnet Blue/ Green CodeCommit TeamCity CodeDeplay Auto Scaling Node.js EC2 - Amazon Linux 2018 Prod - Subnet AZ1 EC2 - Amazon Linux 2018 Node.js Prod - Subnet AZ2 Virtual Private cloud Cloud Source Code CodeCommit is used as source code repository for this CI and CD Pipeline Branches by environment Multiple branches are used for environments such as DEV and UAT environment Build Teamcity to build frontend and backend node JS application using Grunt with npm dependencies Teamcity integrated with code pipeline using the plugin provided by team city Multi-branch code merge From UAT to prod code merge, code build and code deployment was integrated with code pipeline Build notifications Third party developers are notified for only build failures using SNS Roll Back Roll back was done using previous AMI ID on production instances manually Deploy UAT environment used code deploy for in place deployments In production we used code deploy to do the blue green deployment on Auto Scale enabled instances running under load balancer
Cloud Infrastructure Highlights and Benefits VPC iquippo Web application instances were hosted inside secured VPC (Virtual private cloud) private subnets and security groups. The security groups have restricted access except web traffic ports such as http and https which are exposed via Load Balancer. EC2 ASG iquippo web application production instances were deployed on Auto Scaled instances on multi availability zones (Multi-AZ) ASG (Auto Scale Group) was configured to scale up the instances when CPU utilization goes more than 75 percent for consecutive period of 3 minutes and scale in when utilization comes down to less than 30 percent Instances scaled up by ASG are attached to target group which is attached to Application Load Balancer ALB ALB is used to distribute the web traffic workloads to multiple instances deployed on Multi-AZ, and launched instance by ASG policies Patch based routing is done using ALB rules to multiple instances under ASG Target group is configured with mapping of context path where instances added are a minimum of 2 and a maximum of 10 by ASG policies based on CPU utilization. CloudWatch logs PM2 node JS logs are pushed on CloudWatch using CloudWatch npm module Monitoring Infrastructure EC2 and application insights were monitored using third part monitoring tools The Result: a reliable digital marketplace all ready to disrupt the industry The iquippo marketplace now operates far more reliably and with zero downtime deployments. Because of the stability and excellent security features available on the portal, users can conduct large financial transactions without concern. Through hosting the portal on the cloud, the portal is reaping the benefits of infrastructure and cost optimization, proactive monitoring, and continuous delivery. The Minfy team continues to provide support through monitoring, detecting events, analysing and resolving issues, providing root cause analysis, and deploying needed changes. As iquippo scales further, deploys even more innovative schemes and features, and expands into newer geographies, its reliable cloud-enabled infrastructure is enabling Database on EC2 Mongo DB hosted on EC2 instance with automated AMI snapshots for Mongo DB using Lambda scripts DB backup taken via shell scripts and stored on S3 buckets S3 The following are stored on highly scalable and durable object storage services S3 (Simple Storage Services) Build artefacts EC2 instance AMI snapshots Mongo DB Backups ALB Logs Business Challenge
About Us Minfy, a born in the cloud firm, helps enterprises with impeccable IT solutions for the cloud era. We help organizations move ahead in the digital world by changing the way they use IT. For over 5 years, we have dedicated ourselves to providing best-of-breed & well-architected cloud solutions to our customers, and are committed to partnering with them for success. Our offerings encompass SAP on cloud, Next-Gen Managed Services, Dev-Ops, CI & CD, and Microservices.