
[ad_1]
The Indian government’s 2019 ban on TikTok may have displeased millions of users, but it was definitely good news for its competitors. Homegrown short video platforms have captured every ounce of attention from the same user base, and ShareChat has also joined its own cluster of social platforms.
Analytics Indian Journal spoke to Gaurav Bhatia, SVP of Engineering, ShareChat and Moj, to learn more about how ShareChat built its cloud technology.
Read: Nothing like TikTok, kudos for trying
AIM: How did ShareChat build its technology stack in a cloud-first way?
Gaurav: ShareChat (Mohalla Tech Pvt Ltd) is the largest domestic social media company in India, with 400+ million MAUs across both its platforms—ShareChat and Moj. We witness over 280 billion views per day, with over 165 million pieces of content uploaded daily across both of our platforms combined.
To manage and scale our services to serve hundreds of millions of users every month, we’ve built our technology stack in a cloud-first way. We run on Google Cloud Platform (GCP) and follow a microservices architecture where business functionality and features are broken down into smaller components that are developed, deployed and scaled independently. We build and run microservices on a Kubernetes (k8) cluster hosted in Google Cloud. Relying on a platform-as-a-service model allows us to have central functions that provide best-in-class infrastructure to the teams building product functionality.
OBJECTIVE: Can you provide more details on how it uses Google Cloud to support a microservices architecture?
Gaurav: All the services that run our applications can be broken down into small components. For example, when you open ShareChat or My, our Android app would contact our video feed service, which would determine a list of the best personalized videos to show to the user. The video feed service in turn relies on many internal services to retrieve user details, as well as a list of videos and metadata (eg likes, comments, shares), which is part of A/B test experiments, and more.
When a user interacts with content in the form of a successful watch/like or skip, events are recorded and sent to an event service that can then use these signals to better personalize the user’s video feed. Similarly, when a user uploads a video, it goes through a number of different microservices that include the upload service, content moderation, encoding channels, and services. Each one runs in its own Docker container on k8 and can be scaled up or down based on needs and functionality.
When new services are built or existing services are updated, they can be deployed to a smaller percentage of users initially (in the form of a canary deployment) so that any unexpected bugs or scenarios can be caught and quickly fixed with minimal impact. Services running in a Kubernetes cluster (k8) rely on Google PaaS services including Pub/Sub, Dataflow, Spanner, and BigTable. We perform data analytics using BigQuery.
OBJECTIVE: How does ShareChat provide best-in-class infrastructure to teams building product functionality?
Gaurav: At ShareChat, we have an internal platform engineering team that performs several actions, including building abstractions on top of Google services such as our database, queue, and cache drivers. Services are built and deployed in a CI/CD model, and we’ve also built internal tools, such as Atlas, that allow developers to log in and leverage the power of Google Cloud with a few clicks, while ensuring we have enough safeguards in place to prevent any what unintentional mistakes. We invest heavily in test automation and have a device lab with many physical devices that are hosted and can be used remotely to run automation tests for our android and iOS apps.
OBJECTIVE: Has switching your services to GoLang been beneficial for ShareChat? What are some of the services you would like to work on in the future?
Gaurav: Moving from Node.js to GoLang gave us incredible savings, we reduced 90% of the infrastructure on many of our services. This led not only to server cost optimization, but also to easier monitoring and maintenance with quick scale-up/scale-down. We are currently on our way to rewrite a whole range of products using GoLang. We are constantly evaluating new services that Google offers. We’re also excited about the security offerings, as well as the visibility and disaster recovery capabilities that Google Cloud adds. At Kubernetes, we are excited about eBPF and are actively looking at the service network. We are also very impressed with the early results we are seeing without adopting ScillaDB, which gives us excellent low latency and high throughput.
OBJECTIVE: What technology is used behind ShareChat’s recommendation system? How would you stand out from your competitors?
Gaurav: At ShareChat, we have many different types of content that include short videos, long-form videos, images, GIFs, microblog posts and news content. We’ve invested heavily in building an ML infrastructure for rapid in-session personalization that applies across all content surfaces. Having a common feature store that can be used to quickly experiment with each content surface—which has its own requirements—is a very powerful way to personalize. Additionally, building our Ranker as a service for different contextual needs has served us well. For example, during festivals, users look for content that is more suitable for sharing compared to devotional content that is for personal consumption on other days.
[ad_2]
Source link