架构设计学习资料汇总

Medium上的这篇文章介绍了作者学习系统架构的一些在线资源,可以帮助架构设计的初学者尽快了解架构的基本设计原则,了解常见场景的设计方案。原文:System Architecture — System Design Materials[1]

子曰:“工欲善其事必先利其器”。

今天通过这篇文章跟大家分享一些系统架构设计方面的学习资料,让我们一起成长。

System Design Tips and Introduction (中文, Youtube)[2]
The System Design Primer (中文/英文, Github)[3]
Intro to Architecture and Systems Design Interviews (英文, Youtube)[4]
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems (中文版《数据密集型应用系统设计》, Book)[5][6]
system design interview questions (英文, Github)[7]
System Design Interview – Step By Step Guide (英文, Youtube)[8]
Distributed Systems (英文, Book)[9]
Distributed systems for fun and profit (英文, Book)[10]
6.824: Distributed Systems (英文, Course)[11]
Concurrent and Distributed Systems (英文, Course)[12]
15-440: Distributed Systems Syllabus (英文, Course)[13]
CS244b: Distributed Systems (英文, Course)[14]
CSE 490H: Distributed Systems (英文, Course)[15]
Apache Hadoop (Open source, Github)[16]
SeaweedFS (Open source, Github)[17]
MinIO (Open source, Github)[18]
TiDB (Open source, Github)[19]
etcd (Open source, Github)[20]
Apache ZooKeeper (Open source, Github)[21]
Apache Spark (Open source, Github)[22]
Apache Flink (Open source, Github)[23]
Ray (Open source, Github)[24]
Notes on Distributed Systems for Young Bloods (英文, Blog)[25]
Distributed systems theory for the distributed systems engineer (英文, Blog)[26]
分布式系统 (中文, Blog)[27]
Distributed Systems Reading Group (英文, Paper)[28]
awesome-distributed-systems (英文, Github)[29]
Grokking the System Design Interview (英文, Course)[30]
Tech Dummies Narendra L (英文, Youtube)[31]
Design video sharing platform (英文, Blog)[32]
System Design Basics (英文, Youtube)[33]
code karle (英文, Youtube)[34]
System Design Introduction For Interview (英文, Youtube)[35]
Distributed Systems (英文, Youtube)[36]
System Design (中文, Gitbook)[37]
CS6213 Special Topics in Distributed Computing (英文, Course)[38]


分布式系统
  1. 基本问题: 时间问题,一致性问题,容错技术,共识算法,并发控制
  2. 基本定理: CAP, PACELC, FLP

CAP theorem (英文, Wikipedia)[39]
PACELC theorem (英文, Wikipedia)[40]
Consensus (英文, Wikipedia)[41]

  1. 生产系统: MapReduce, Spark, GFS, Dynamo和Cosmos

MapReduce (英文, Wikipedia)[42]
Apache Spark (英文, Wikipedia)[43]
Google File System (英文, Wikipedia)[44]
Dynamo (英文, Wikipedia)[45]
Cosmos (英文, Wikipedia)[46]


系统架构设计需要考虑的问题
  1. 可靠性(Reliable)
  2. 可扩展性(Scalable)
  3. 可维护性(Maintainable)
  4. 存储与检索(Storage and Retrieval)
  5. 冗余备份(Redundancy/Replication)
  6. 分片分区(Fragmentation/Partition)
  7. 事务(Transactions)
  8. 一致性(Consistency)
  9. 共识(Consensus)
  10. 批处理/流处理(Batch processing/stream processing)

如何准备系统设计面试
  1. 找相关的博客学习
  2. 坦率的说,面试不会问得非常深入,不过如果有机会解释清楚,就能给面试官留下更好的印象
  3. 试着设计一些东西,写下功能性/非功能性的需求,画出设计图、数据流、流程流,并考虑商业模型从而帮助系统盈利,并考虑如何各个组件如果崩溃需要如何处理。
  4. 明确设计的取舍
  5. 保持自信
  6. 不要试图炫耀,你可能只是了解了某一方面,但其他方面你并不了解。
  7. 注意观察面试官,如果发现面试官对这部分不感兴趣,就不要花太多时间。
  8. 不要轻易放弃自己的意见,面试官质疑候选人是常规操作。不要因为面试官的挑战、质疑就觉得自己错了。

References:
[1] System Architecture — System Design Materials: https://jinlow.medium.com/system-architecture-system-design-materials-52705af6c155
[2] System Design Tips and Introduction: https://youtu.be/th_73AVA4dY?list=PLAd5bt5mn3V3TrrJFBpnu4PH9e8KZMvNA
[3] The System Design Primer: https://github.com/donnemartin/system-design-primer
[4] Intro to Architecture and Systems Design Interviews: https://youtu.be/ZgdS0EUmn70
[5] Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems: https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321
[6] 数据密集型应用系统设计: https://book.douban.com/subject/30329536/
[7] system design interview questions: https://github.com/jaychsu/FreemanZhang-system-design
[8] System Design Interview – Step By Step Guide: https://youtu.be/bUHFg8CZFws
[9] Distributed Systems: https://www.distributed-systems.net/index.php/books/ds3/
[10] Distributed systems for fun and profit: http://book.mixu.net/distsys/index.html
[11] 6.824: Distributed Systems: https://pdos.csail.mit.edu/6.824/schedule.html
[12] Concurrent and Distributed Systems: https://www.cl.cam.ac.uk/teaching/2021/ConcDisSys/materials.html
[13] 15-440: Distributed Systems Syllabus: https://www.cs.cmu.edu/~dga/15-440/S14/syllabus.html
[14] CS244b: Distributed Systems: http://www.scs.stanford.edu/20sp-cs244b/
[15] CSE 490H: Distributed Systems: https://courses.cs.washington.edu/courses/cse490h/11wi/
[16] Apache Hadoop: https://github.com/apache/hadoop
[17] SeaweedFS: https://github.com/chrislusf/seaweedfs
[18] MinIO: https://github.com/minio/minio
[19] TiDB: https://github.com/pingcap/tidb
[20] etcd: https://github.com/etcd-io/etcd
[21] Apache ZooKeeper: https://github.com/apache/zookeeper
[22] Apache Spark: https://github.com/apache/spark
[23] Apache Flink: https://github.com/apache/flink
[24] Ray: https://github.com/ray-project/ray
[25] Notes on Distributed Systems for Young Bloods: https://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/
[26] Distributed systems theory for the distributed systems engineer: https://www.the-paper-trail.org/post/2014-08-09-distributed-systems-theory-for-the-distributed-systems-engineer/
[27] 分布式系统: https://www.qtmuniao.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/
[28] Distributed Systems Reading Group: http://dsrg.pdos.csail.mit.edu/papers/
[29] awesome-distributed-systems: https://github.com/theanalyst/awesome-distributed-systems
[30] Grokking the System Design Interview: https://www.educative.io/courses/grokking-the-system-design-interview?affiliate_id=5749180081373184
[31] Tech Dummies Narendra L: https://www.youtube.com/channel/UCn1XnDWhsLS5URXTi5wtFTA
[32] Design video sharing platform: https://leetcode.com/discuss/interview-question/system-design/496042/Design-video-sharing-platform-like-Youtube
[33] System Design Basics: https://youtu.be/xpDnVSmNFX0?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX
[34] code karle: https://www.youtube.com/channel/UCZEfiXy7PmtVTezYUvc4zZw
[35] System Design Introduction For Interview: https://youtu.be/UzLMhqg3_Wc?list=PLrmLmBdmIlps7GJJWW9I7N0P0rB0C3eY2
[36] Distributed Systems: https://youtu.be/UEAMfLPZZhE?list=PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB
[37] System Design: https://xunhuanfengliuxiang.gitbooks.io/system-desing/content/
[38] CS6213 Special Topics in Distributed Computing: https://ilyasergey.net/CS6213/index.html
[39] CAP theorem: https://en.wikipedia.org/wiki/CAP_theorem
[40] PACELC theorem: https://en.wikipedia.org/wiki/PACELC_theorem
[41] Consensus: https://en.wikipedia.org/wiki/Consensus_%28computer_science%29
[42] MapReduce: https://en.wikipedia.org/wiki/MapReduce
[43] Apache Spark: https://en.wikipedia.org/wiki/Apache_Spark
[44] Google File System: https://en.wikipedia.org/wiki/Google_File_System
[45] Dynamo: https://en.wikipedia.org/wiki/Dynamo_%28storage_system%29
[46] Cosmos: https://en.wikipedia.org/wiki/Cosmos_%28operating_system%29

你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。
微信公众号:DeepNoMind

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容