编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

从网上收集的最佳「系统设计」资源,涵盖视频、论文、博客、项目

wxchong 2024-08-12 02:04:41 开源技术 23 ℃ 0 评论

今日推荐的GitHub项目是「system-design-resources」,创建仅一天便收获了1.4k的Star。该项目收集了网络上最好的系统设计资源,涵盖了博客、论文、开源项目、视频资源。

项目地址:https://github.com/InterviewReady/system-design-resources

视频处理(Video Processing)

  • 大规模转码视频:https://www.egnyte.com/blog/2018/12/transcoding-how-we-serve-videos-at-scale/
  • Meta(原Facebook)视频广播:https://engineering.fb.com/ios/under-the-hood-broadcasting-live-video-to-millions/
  • Netflix大规模视频编码:https://netflixtechblog.com/high-quality-video-encoding-at-scale-d159db052746
  • Netflix分镜编码:https://netflixtechblog.com/optimized-shot-based-encodes-now-streaming-4b9464204830

集群和工作流管理

  • Meta(原Facebook)集群管理:https://engineering.fb.com/data-center-engineering/twine/
  • 谷歌Autopilot-Autoscaling:https://dl.acm.org/doi/pdf/10.1145/3342195.3387524
  • Netflix工作流编排:https://netflix.github.io/conductor/
  • Opensource工作流管理:https://github.com/spotify/luigi

服务内消息传递

  • 何为消息队列:https://www.cloudamqp.com/blog/what-is-message-queuing.html
  • AirBnb幂等性:https://medium.com/airbnb-engineering/avoiding-double-payments-in-a-distributed-payments-system-2981f6b070bb
  • Nginx服务网格:https://www.nginx.com/learn/service-mesh/

消息队列反模式

  • 数据库作为反模式:http://blog.codepath.com/2012/11/15/asynchronous-processing-in-web-applications-part-1-a-database-is-not-a-queue/
  • 将数据库用作消息队列:https://softwareengineering.stackexchange.com/questions/231410/why-database-as-queue-so-bad
  • 数据库作为队列的反模式:http://mikehadlow.blogspot.com/2012/04/database-as-queue-anti-pattern.html
  • 数据库作为队列的弊端:https://www.cloudamqp.com/blog/why-is-a-database-not-the-right-tool-for-a-queue-based-system.html

服务网格

  • Kubernetes服务网格:https://akomljen.com/kubernetes-service-mesh/
  • Kubernetes Sidecar(容器应用模式的一种):https://www.weave.works/blog/introduction-to-service-meshes-on-kubernetes-and-progressive-delivery

实用系统设计

  • Meta(原Facebook)Messenger优化:https://spectrum.ieee.org/how-facebooks-software-engineers-prepare-messenger-for-new-years-eve
  • YouTube架构:http://highscalability.com/youtube-architecture
  • YouTube可扩展性2012:https://www.youtube.com/watch?v=w5WVu624fY8
  • 分布式设计模式:http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html
  • 从单体系统到微服务:https://martinfowler.com/articles/break-monolith-into-microservices.html

分布式文件系统

  • 开源分布式文件系统:https://docs.ceph.com/en/latest/architecture/
  • 亚马逊S3性能黑客:https://aws.amazon.com/blogs/aws/amazon-s3-performance-tips-tricks-seattle-hiring-event/
  • 亚马逊S3对象过期:https://aws.amazon.com/blogs/aws/amazon-s3-object-expiration/

时间序列数据库

  • Pintrest时间序列数据库:https://medium.com/pinterest-engineering/goku-building-a-scalable-and-high-performant-time-series-database-system-a8ff5758a181
  • Uber时间序列数据库:https://eng.uber.com/aresdb/
  • 时间序列关系数据库:https://blog.timescale.com/blog/time-series-data-why-and-how-to-use-a-relational-database-instead-of-nosql-d0cd6975e87c/
  • Meta(原Facebook)Gorilla时间序列数据库:http://www.vldb.org/pvldb/vol8/p1816-teller.pdf

速率限制

  • Circuit Breaker算法:https://martinfowler.com/bliki/CircuitBreaker.html
  • Uber速率限制器:https://github.com/uber-go/ratelimit/blob/master/ratelimit.go

网络协议

  • 何为HTTP:https://engineering.cred.club/head-of-line-hol-blocking-in-http-1-and-http-2-50b24e9e3372
  • QUIC协议:https://www.akamai.com/blog/performance/http3-and-quic-past-present-and-future

国际象棋引擎设计

  • 国际象棋引擎构建:https://www.youtube.com/watch?v=U4ogK0MIzqk

订阅管理系统

  • 订阅管理器:https://netflixtechblog.com/building-a-rule-based-platform-to-manage-netflix-membership-skus-at-scale-e3c0f82aa7bc

谷歌文档

  • 操作转换:http://www.codecommit.com/blog/java/understanding-and-applying-operational-transformation
  • 谷歌文档:https://www.youtube.com/watch?v=uOFzWZrsPV0&list=PLXDe3d8o9VFtydBV5biyz9iS3WqKsBMD5&index=3

API设计

  • API设计:https://medium.com/airbnb-engineering/building-services-at-airbnb-part-1-c4c1d8fa811b
  • Swagger APIs:https://swagger.io/docs/specification/about/

NoSQL数据库内部

  • Cassandra架构:https://docs.datastax.com/en/archived/cassandra/3.0/cassandra/architecture/archIntro.html
  • 谷歌BigTable架构:https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf
  • 亚马逊Dynamo数据库内部:https://www.allthingsdistributed.com/2007/10/amazons_dynamo.html
  • 亚马逊Dynamo数据库设计模式:https://www.youtube.com/watch?v=HaEPXoXVf2k
  • 亚马逊Dynamo数据库内部:https://www.youtube.com/watch?v=yvBR71D0nAQ

NoSQL数据库算法

  • Hyperloglog算法:https://odino.org/my-favorite-data-structure-hyperloglog/
  • 日志结构合并树:https://www.cs.umb.edu/~poneil/lsmtree.pdf
  • 排序字符串表和压实策略:https://github.com/scylladb/scylla/wiki/SSTable-compaction-and-compaction-strategies
  • 水平压实Cassandra策略:https://www.datastax.com/blog/leveled-compaction-apache-cassandra
  • Scylla数据库压实:https://github.com/scylladb/scylla/wiki/SSTable-compaction-and-compaction-strategies
  • Cassandra索引:https://www.bmc.com/blogs/cassandra-clustering-columns-partition-composite-key/

数据库复制

  • 数据库复制:ttps://dev.mysql.com/doc/refman/8.0/en/replication.html
  • Netflix数据复制和变更数据捕获:https://netflixtechblog.com/dblog-a-generic-change-data-capture-framework-69351fb9099b

容器和Docker

  • Meta(原Facebook)Twiner容器化:https://engineering.fb.com/developer-tools/zookeeper-twine/
  • CloudFlare容器化:https://blog.cloudflare.com/cloud-computing-without-containers/
  • Docker架构:https://docs.docker.com/get-started/overview/#docker-architecture

容量估计

  • 谷歌容量估计:https://www.youtube.com/watch?v=modXC5IWTJI
  • YouTube可扩展性2012:https://www.youtube.com/watch?v=G-lGCC4KKok
  • AWS信封背面计算:https://www.youtube.com/watch?v=-3qetLv2Yp0
  • 容量估计:http://static.googleusercontent.com/media/research.google.com/en//people/jeff/stanford-295-talk.pdf

发布器订阅器(Pub Sub)

  • Oracle发布器订阅器:https://docs.oracle.com/cd/B10501_01/appdev.920/a96590/adg15pub.htm
  • 亚马逊发布器订阅器消息传递:https://aws.amazon.com/pub-sub-messaging/
  • 异步处理:http://blog.codepath.com/2013/01/06/asynchronous-processing-in-web-applications-part-2-developers-need-to-understand-message-queues/
  • 异步请求响应:https://www.enterpriseintegrationpatterns.com/patterns/conversation/RequestResponse.html

事件驱动架构

  • Martin Fowler谈事件驱动架构:https://www.youtube.com/watch?v=STKCRSUsyP0
  • 事件驱动架构:https://martinfowler.com/articles/201701-event-driven.html

……

实时处理

  • 领英Brooklin实时数据流:https://engineering.linkedin.com/blog/2019/brooklin-open-source
  • Netflix实时流处理:https://netflixtechblog.com/keystone-real-time-stream-processing-platform-a3ee651812a

缓存

  • 谷歌Guava缓存:https://github.com/google/guava/wiki/CachesExplained
  • 缓存(参见README):https://github.com/ben-manes/caffeine/
  • 缓存:http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html
  • 微软缓存指南:https://docs.microsoft.com/en-us/previous-versions/msp-n-p/dn589802(v%3dpandp.10)

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表