About the Client
The client is an American mass media and entertainment conglomerate. It is one of the world’s leading media and entertainment companies in the development, production, and marketing of entertainment, news, and information to a global audience.
- Lack of Personalized user experience due to the absence of Personalized recommendation Engine
- Need to Fetch information from different brands / partners (Youtube, Hulu, etc.) for a single user and provide recommendations which maps to the right brand
- Revenue impact due to high churn rate – the absence of personalized content
- Lack of business insights for deeper perspective and understanding
- Viewership details of each user are captured from various partners such as Hulu, Youtube, AppleTV, etc. and stored in Redshift
- The Recommendation Engine arrives at a ranked order of likely shows to be viewed by the user
- The top 10 recommended shows by the user is stored in DynamoDB
- When the users log in, the app uses the recommendations to create personalized offers
- Viewership details are stored in Redshift
- The top 10 recommended shows are stored in DynamoDB, and the same is retrieved to create personalized offers while user login
- S3 Storage is used while ML algorithms are running and get stored in S3
- Applications are deployed to lambda serverless environments and hosted on containers in AWS ECS
- AWS Auto Scaling is enabled to scale in and scale out ECS clusters and services
- AWS Cloudformation and Terraform are being used for Infrastructure Automation
- Deployment is done using CircleCI with automated pipelines
To fulfill SocialHi’5 need for a client self-service portal that was also easy to maintain, Agilisium’s 5-member expert team built a custom web application with a heavy focus on the visualization of campaign outcomes. They also developed in parallel a DevOps process to maintain, scale and operate this portal.
Web Application Architecture
A variety of AWS services and some open source technologies were used to build and run the web application. The web layer used the PHP framework, included a login and authentication system, and used AWS QuickSight to render its outcome dashboards.
The app layer was built on Python, and the backend services were run on Elastic Container Service (ECS) dockers with Auto Scaling and Auto Load Balancing (ALB) to ensure high availability of the portal. The database was run in a private subnet and used RDS MySQL as the database service.
As mentioned earlier, SocialHi5 necessitated that the solution offered was easy to maintain, scale, and operate. To that end, Agilisium’s DevOps engineers developed a 2-part DevOps process focusing on
- CI/CD for web application development
- Infrastructure Provisioning for maintenance.
Continuous Integration/Continuous Deployment (CI/CD Process)
All application (Web & App Tier) maintenance was articulated via AWS’s Code Pipeline. AWS’s Code Commit, Code Deploy, and Code Build services were invoked to automate the enhancement and maintenance of the self-service portal.
CI/CD Process Flow: Web Tier
CI/CD Process Flow: Web Tier
All infrastructure was hosted on an exclusive SocialHi5 Virtual Private Cloud (VPC), to add an extra layer of confidentiality. AWS CloudFormation templates were used to spin up and maintain a host of AWS services utilized for the self-service portal.
Serverless Web application hosting: EC2, ECS, RDS, S3, SSM, VPC, NAT Gateway, ALB with Autoscaling Group, LAMBDA, Certificate Manager, Route53 were some of the services used to get the portal live.
Security: Web Application Firewall (WAF) was used with Cross-site scripting, Geo match, and SQL injection rules to protect from common cyber threats in conjunction with the AWS inspector service.
Monitoring and Logging: CloudWatch, OpsWorks, Config & Inspector services were also invoked to cover configuration management, logging, and monitoring of the application and infrastructure.
- AWS XRay is used for all serverless lambda applications, and it helps in monitoring most of the applications
- For applications running on containers, AWS CloudWatch metrics are being leveraged
- Can Integrate with third-party monitoring tools like SignalFx, NewRelic, and Splunk
- Application-level health checks are also enabled and are being monitored using Grafana
- IAM best practices and principles are followed
- AWS Certificate Manager is being used for the load balancer and CDN certificates
- All Data stores are in private subnet
- Amazon KMS is used for encryption of data at rest
AWS services used:
- Amazon Simple Storage Service
- Amazon DynamoDB
- Amazon Elasticsearch Service
- AWS Key Management Service
- AWS CloudFormation
- AWS CloudTrail
- Amazon CloudWatch
- AWS Identity & Access Management
- Elastic Load Balancing (ELB)
- Amazon Redshift
- AWS Lambda
- AWS X-Ray
- Personalized user recommendation improved overall customer satisfaction
- DynamoDB was able to handle multiple session access at a particular point in time, ultimately leading to improved performance
- Reporting feature enabled business users to identify the top-performing shows, thereby improved overall sales process and enabled business users to drive sales
- Overall improvement in Stats
- Reduced TCO up to 20%
- Improved Retention rate by 70%