Go-Pro: Cloud System Architecture
I have not been a fan of adventure cameras because I have no need for them because I don’t do adventure sports :)
Nevertheless, it is fascinating to understand the industry landscape and also behind the scenes to see how they manage cloud technology services to provide the features that they have.
We know Go-Pro has established a brand name in this segment. But I wanted to know how big the market is and who are the other players in it.
While doing my research I stumbled upon an article on Techradar, Best Action Camera 2022. Out of the 12 cameras that they listed 6 were Go-pro.
According to the Brand Essence research, the global market for action cameras is poised at around $2.3 Bn growing at around 8.5% CAGR and will be estimated to be at around $8.8Bn by 2030.
Action cameras are designed such that the videos shot on these devices provide a first-person perspective to viewers. This is generating interest among viewers as they can develop their personal views for activities such as surfing, rock climbing, and skiing. The small size and excellent ‘point of view’ feature of action cameras has enabled people to capture their adventures and share them on social media platforms.
While all the major players are fighting it out on the hardware front there are cloud features that they provide in order to differentiate themselves.
For example, with a GoPro subscription, you get unlimited cloud storage along with premium editing like Speed Tool for slo-mo, fast + freeze, Premium filters for snow, water + more, Premium GoPro themes, GoPro Originals Music, etc
With a GoPro subscription, you can also create a private link to your live stream! This link can be shared with anyone.
Behind the curtains for the Live Steam Feature
To provide a Live Streaming feature GoPro uses Amazon Interactive Video Service (IVS)
Why Amazon IVS?
IVS allows you to add video directly to your app or web app. This allows multiple creators on the platform and provides interactivity features with low latency.
This is a good alternative to FB, Instagram, or TikTok live. Many companies do not want their creator content to be scattered all over the place, instead, they want to maintain it on their own platform. This helps them with audience retention.
IVS also simplifies SDK which can directly be integrated either onto the iOS, Android, or Web app but also directly onto the player thus providing multi-platform capability.
Speaking about low latency, IVS promises around 2–3 sec latency while you are doing the live video and the interactivity is mind-blowing eg: you can fire an event that will show up in a poll or a buy button, etc.
Amazon IVS takes care of end-to-end, right from stream ingestion to delivery. This includes transcoding, packaging, providing an encoding ladder, and dedicated CDN only for live traffic.
Apart from the live stream let’s also look at system design for other features the GoPro provides.
- Media upload
- Photo & video processing
- User and subscription management
- Device management
- Web front-ends
Understanding the Architecture design:
- Uses with GoPro subscription upload their content through their app.
- Content gets stored in the S3 bucket and triggers an Event Bridge. Content is then picked up by the Amazon SQS queue.
- From the SQS the content gets processed on the Amazon Elastic Container Services running on the Amazon EC2 instances. These container services are behind the auto-scaling group.
- The auto-scaling group is monitored by Application Load Balancer, which keeps checking the health of the instances.
- Instances scaling in & scaling out are managed by the AWS Lambda function.
- Amazon Cloudwatch keeps monitoring the instance utilization, depending on the alarms configured AWS Lamda acts upon it.