Case Study

King Kong scalability & extreme automation on AWS for HOOQ

CloudCover + HOOQ + AWS

tl;dr

  • With 21 million monthly active users HOOQ needed its infrastructure on AWS to auto-scale for growing demand, automate deployments and upgrade its Monolithic structure.
  • A fully automated deployment process instituted by CloudCover freed up the Dev team to focus on innovating and building the new features for their application.

Overview

A leading video-on-demand streaming platform, a joint venture between Sony Pictures Entertainment, Warner Bros, and Singapore Telecommunications differentiated itself in the OTT space by offering the most extensive catalog of local content that contributed to its exponential popularity. With expansion plans in sight and to service 21 million monthly active users, the platform wanted its infrastructure to auto-scale to accommodate growing demand and deliver exceptional content and user experience at the speed of light.

To this effect, CloudCover offered the customer a wholly managed infrastructure solution on Amazon Web Services. In addition, CloudCover evaluated and studied the customer’s current architecture and moved the monolithic system to a Microservices model that has emerged from the world of domain-driven design, continuous delivery, platform and infrastructure automation, scalable systems, polyglot programming, and persistence.

🚀🔥🎖️ The Microservices model helped achieve scalability and 100% automation eliminated the need for human intervention.

The need for Managed Cloud Services

HOOQs Challenges

  • Accommodate Growing Demand

    Accommodate Growing Demand

    The customer’s need of the hour was to redesign its infrastructure to support the increasing demand.

  • Manual Deployments

    Manual Deployments

    Manual deployments were prone to human errors, and the maintenance window (~ 40 mins) was relatively high.

  • Monolithic Architecture

    Monolithic Architecture

    With its overall Monolithic architecture, any change in the older module would require redeployment of the entire application, rendering scaling an uphill task.

The Expectations

Collaborating with CloudCover for scalability, automation & cost optimization.

The customer realized that with specific infrastructure improvements, they would meet end-user demands quickly and scale massively. The ultimate goal was to automate the process, save a substantial amount of time and help them achieve king kong scalability in a highly available and reliable environment.

CloudCover’s Masterplan

To encapsulate complicated pieces of infrastructure behind simple & easy-to-use APIs and create reusable infrastructure.

CloudCover + Hooq

  • The Status Quo

    The customer’s infrastructure had more than 15-20 microservices running at any given time. These microservices used various AWS services such as Amazon S3, Amazon RDS, DynamoDB, and Redis. As a result, the manual configuration of each service was a mammoth task.

  • Leveraging Infrastructure as Code and Terraform

    CloudCover overhauled how the entire infrastructure was managed by tapping into the power of IaC & Terraform. By introducing different templates of Terraform code for multiple services, CloudCover can quickly bring up any service with a click of a button.

Solution

Technical Solution Decoded

  • Automated Deployments

    Automated Deployments

    A simple yet powerful combination of Jenkins and Ansible eased out scheduling deployments. CloudCover automated all their Jenkins jobs (using in-house bot ‘CeCe’) for every service based on AWS.​ In some instances where deployments failed, rollback requests were initiated automatically. Twilio sends notifications and alerts when a deployment fails & triggers a rollback.

  • King Kong Scalability

    King Kong Scalability

    CloudCover facilitated customers’ move from a Monolithic architecture to a Microservices model to improve their scalability. They were witnessing situations where one application feature experienced a rise in need, and the entire architecture had to be scaled; this, in turn, affected other services’ performance. CloudCover isolated the services into different services and reduced the risk of a single point of failure. CloudCover applied the ECS containerization technique and deployed Application containers for running a microservices application architecture.

  • Launch New Services With Ease

    Launch New Services With Ease

    For launching any new service, CloudCover utilized Terraform to provision resources, ranging from service (including Amazon EC2, ELB, RDS, Amazon S3) to an entire infrastructure on AWS.

  • Cost Optimization ($$$)

    Cost Optimization ($$$)

    CloudCover regularly performed inventory checks that identified idle and unused resources to spot areas for cost optimization. With CloudWatch alarms (integrated with Slack and email), you can monitor services effectively. CloudCover set up AWS Instance Scheduler so that the EC2 and RDS Instances are turned ON/OFF for Dev, staging, and testing environments based on a defined schedule.

The Architecture Diagram

CloudCover + Hooq

Business Value Delivered

What We Accomplished

CloudCover + Hooq

  • Deployment Automation & Monitoring

    Deployments were fully automated and quickly scheduled and monitored via Slack, sparing the developers substantial time to focus on their application to add new improvements for the growing user base.

  • Improved Maintenance Time

    100% automation eliminated the need for human intervention, therefore any errors. The efforts improved the maintenance window and slashed the time to deploy a new service.

Tools Used

  • Virtual Private Cloud Virtual Private Cloud
  • Elastic Compute Cloud Elastic Compute Cloud
  • Simple Storage Service Simple Storage Service
  • Auto Scaling Group Auto Scaling Group
  • Elastic Load Balancing Elastic Load Balancing
  • CloudFront CloudFront
  • Amazon CloudWatch CloudWatch
  • Relational Database Service Relational Database Service
  • Route53 Route53
  • Athena Athena
  • Identity and Access Management Identity and Access Management
  • CloudTrail CloudTrail
  • Lambda Lambda
  • DynamoDB DynamoDB
  • ElastiCache ElastiCache
  • Redshift Redshift
  • NewRelic NewRelic
  • Elastic StacK Elastic StacK
  • Jenkins Jenkins
  • OpenVPN OpenVPN
  • Ansible Ansible
  • Terraform Terraform
  • Github Github
  • StackStorm StackStorm
  • CeCe Bot CeCe Bot