Alex Xu Profile picture
May 8 β€’ 13 tweets β€’ 3 min read Twitter logo Read on Twitter
/1 Why did Amazon Prime Video monitoring move 𝐟𝐫𝐨𝐦 𝐬𝐞𝐫𝐯𝐞𝐫π₯𝐞𝐬𝐬 𝐭𝐨 𝐦𝐨𝐧𝐨π₯𝐒𝐭𝐑𝐒𝐜? How can it save 90% cost?

The diagram below shows the architecture comparison before and after the migration. Image
/2 What is Amazon Prime Video Monitoring Service?

Prime Video service needs to monitor the quality of thousands of live streams. The monitoring tool automatically analyzes the streams in real-time and identifies quality issues like block corruption, video freeze, etc.
/3 here are 3 steps: media converter, defect detector, and real-time notification.
/4
πŸ”Ή What is the problem with the old architecture?
The old architecture was based on Amazon Lambda, which was good for building services quickly. However, it was not cost-effective when running the architecture at a high scale. The two most expensive operations are: Image
/5
1. The orchestration workflow - AWS step functions charge users by state transitions and the orchestration performs multiple state transitions every second.
/6
2. Data passing between distributed components - the intermediate data is stored in Amazon S3 so that the next stage can download. The download can be costly when the volume is high.
/7
πŸ”Ή Monolithic architecture saves 90% cost
A monolithic architecture is designed to address thecost issues. There are still 3 components, but the media converter and defect detector are deployed in the same process, saving the cost of passing data over the network.
/8 Surprisingly, this approach to deployment architecture change led to 90% cost savings!

This is an interesting and unique case study because microservices have become a go-to and fashionable choice in the tech industry.
/9 It's good to see that we are having more discussions about evolving the architecture and having more honest discussions about its pros and cons. Decomposing components into distributed microservices comes with a cost.
/10 πŸ”Ή What did Amazon leaders say about this?
Amazon CTO Werner Vogels: β€œBuilding 𝐞𝐯𝐨π₯π―πšπ›π₯𝐞 𝐬𝐨𝐟𝐭𝐰𝐚𝐫𝐞 𝐬𝐲𝐬𝐭𝐞𝐦𝐬 is a strategy, not a religion. And revisiting your architectures with an open mind is a must.”
/11 Ex Amazon VP Sustainability Adrian Cockcroft: β€œThe Prime Video team had followed a path I call π’πžπ«π―πžπ«π₯𝐞𝐬𝐬 𝐅𝐒𝐫𝐬𝐭…I don’t advocate π’πžπ«π―πžπ«π₯𝐞𝐬𝐬 𝐎𝐧π₯𝐲”.
/12

Get a Free System Design PDF (158 pages) by subscribing to our weekly newsletter today: blog.bytebytego.com Image
/13 I hope you've found this thread helpful.

Follow me @alexxubyte for more.

Like/Retweet the first tweet below if you can:

β€’ β€’ β€’

Missing some Tweet in this thread? You can try to force a refresh
γ€€

Keep Current with Alex Xu

Alex Xu Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @alexxubyte

May 4
/1 How do you become a full-stack developer?

The diagram shows a simplified possible full-stack tech stack.

Full stack development involves developing and managing all layers of a software application, from user interfaces to storage. Image
/2 Full-stack developers need to have a broad range of technical skills including:

πŸ”Ή Front-end development - HTML, Javascript, CSS, popular frameworks (React, Vue).
/3 πŸ”Ή API gateways - REST API gateway, GraphQL, web socket, webhook. Basic knowledge of firewall, reverse proxy, and load balancer.

πŸ”Ή Backend development - Sever-side languages (Java, Python, Ruby), API designs, serverless cloud interactions.
Read 7 tweets
May 1
/1 10 Key Data Structures We Use Every Day

πŸ”Ή list: keep your Twitter feeds
πŸ”Ή stack: support undo/redo of the word editor
πŸ”Ή queue: keep printer jobs, or send user actions in-game
πŸ”Ή hash table: cashing systems
πŸ”Ή Array: math operations
πŸ”Ή heap: task scheduling Image
/2
πŸ”Ή tree: keep the HTML document, or for AI decision
πŸ”Ή suffix tree: for searching string in a document
πŸ”Ή graph: for tracking friendship, or path finding
πŸ”Ή r-tree: for finding the nearest neighbor
πŸ”Ή vertex buffer: for sending data to GPU for rendering
/3 Which additional data structures have we overlooked?

Watch and subscribe here (YouTube video):
Read 4 tweets
Apr 27
/1 How does Docker work?

A comparison of Docker-based and non-Docker-based development is shown below. Image
/2
With Docker, we can develop, package, and run apps quickly:
πŸ”Ή The developers can write code locally and then build a Docker image and push it to a dev environment. In this way, the development work is shared within the team. The tests are run automatically in the dev env.
/3 An image is a read-only template with instructions for creating a Docker container. We use a Dockerfile to define the steps to create the image and run it.
Read 7 tweets
Apr 26
/1 Netflix Tech Stack - Part 1 (CI/CD Pipeline)

Planing: Netflix Engineering uses JIRA for planning and Confluence for documentation.

Coding: Java is the primary programming language for the backend service, while other languages are used for different use cases. Image
/2 Build: Gradle is mainly used for building, and Gradle plugins are built to support various use cases.

Packaging: Package and dependencies are packed into an Amazon Machine Image for release.

Testing: Testing emphasizes the production culture's focus on building chaos tools.
/3 Deployment: Netflix uses its self-built Spinnaker for canary rollout deployment.

Monitoring: The monitoring metrics are centralized in Atlas, and Kayenta is used to detect anomalies.
Read 7 tweets
Apr 25
/1 18 Key Design Patterns Every Developer Should Know Image
/2 Patterns are reusable solutions to common design problems, resulting in a smoother, more efficient development process. They serve as blueprints for building better software structures. These are some of the most popular patterns:
/3 πŸ”ΉAbstract Factory: Family Creator - Makes groups of related items.
πŸ”ΉBuilder: Lego Master - Builds objects step by step, keeping creation and appearance separate.
πŸ”ΉPrototype: Clone Maker - Creates copies of fully prepared examples.
Read 10 tweets
Apr 20
System Design Blueprint: The Ultimate Guide.

Hope this checklist is useful to guide your discussions during the interview process.

This briefly touches on:
- LB
- Gateway
- Communication
- CDN
- Database
- Cache
- MQ
- ID Generation
- Scalability
- Availability
- More Image
Thanks, @Zonito87, for putting it together.

The full article is available here: zonito.medium.com/system-design-…
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(