1.
Dynamo: Amazon’s Highly Available Key-Value Store - классическая статья про высокодоступную key-value базу от Amazon
2.
Hints for Computer System Design - статья за авторством Butler Lampson, который был награжден ACM Turing Award. В этой статье он суммировал свои мысли по дизайну систем
3.
Big Ball of Mud - статья с набором паттернов/антипаттернов о проектировании систем: big ball of mud, throwaway code, piecemeal growth, keep it working, sweeping it under the rug, reconstruction. Статью интересно читать и узнавать реальные системы, с которыми часто сталкиваются инженеры в реальности
4.
The Google File System - классическая статья про распределенную файловую систему Google, на смену которой пришел Google Colossus, про который тоже можно почитать по
ссылке. А сам GFS (Google File System) послужил прообразом HDSF (Hadoop Distributed File System)
5.
On Designing and Deploying Internet-Scale Services - статья от Microsoft с чеклистом о том, как дизайнить и оценивать масштабные системы (напоминает подход с чеклистом от 12 factor apps)
6.
CAP Twelve Years Later: How the ‘Rules’ Have Changed - Eric Brewer, автор CAP-теоремы, рассказывает о том, что поменялось за 12 лет и говорит про расширение модели
7.
Harvest, Yield, and Scalable Tolerant Systems - Eric Brewer разворачивает мысли из предыдущей статьи и рассказывает про подход с harvest и yeild
8.
MapReduce: Simplified Data Processing on Large Clusters - классическая статья от Google про подход к Map Reduce, из которой появился Hadoop
9.
Dapper, a Large-Scale Distributed Systems Tracing Infrastructure - подход к трассировке запросов от Google, на базе которого появились Zipkin, OpenTracing, OpenTelemetry
10.
Kafka: a Distributed Messaging System for Log Processing - white paper по Kafka, которая стала незаменимой системой для обработки сообщений. Отдельно Will отмечает следующий момент “In particular, Kafka’s partitions do a phenomenal job of forcing application designers to make explicit decisions about trading off performance for predictable message ordering”
11.
Wormhole: Reliable Pub-Sub to Support Geo-Replicated Internet Services - статья от крупнейшей социальной сети про аналог Kafka но со своей особенностью: “in particular, note the approach to supporting lagging consumers without sacrificing overall system throughput.”
12.
Borg, Omega, and Kubernetes - крутой обзор от Google по трем их системам для окрестрации рабочих нагрузок
13.
Large-Scale Cluster Management at Google with Borg - рассказ про первый и очень успешный оркестратор рабочих нагрузок в Google
14.
Omega: Flexible, Scalable Schedulers for Large Compute Clusters - рассказ про второй оркестратор, который должен был прийти на смену Borg, но пал жертвой синдрома второй системы
15.
Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center - статья про Apache Mesos, который был успешным окрестратором рабочих нагрузок с двойным уровнем планирования
16.
Design Patterns for Container-Based Distributed Systems - статья с набором паттернов для дизайна систем, который сейчас принято называть cloud native
17.
Raft: In Search of an Understandable Consensus Algorithm - статья с расском про алгоритм консенсуса, который должен восприниматься проще чем Paxos
18.
Paxos Made Simple - статья Лампорта про алгоритм консенсуса Paxos, рассказанная так, чтобы быть проще для понимания (но он все равно оказался сложным и потом появился Raft)
19.
SWIM: Scalable Weakly-Consistent Infection-Style Process Group Membership Protocol - статья про “weakly-consistent knowledge of process group membership information at all participating processes”, что отличает этот подход от того, что обычно практикуется для алгоритмов консенсуса на случай partition. Этот подход используется в софте HashiCorp и в Uber’s Ringpop
20.
The Byzantine Generals Problem - опять Лэмпорт, но в этот раз про консенсус с произвольными (византийскими) отказами