All Projects → krootee → Awesome Scalability Toolbox

krootee / Awesome Scalability Toolbox

My opinionated list of products and tools used for high-scalability projects

Projects that are alternatives of or similar to Awesome Scalability Toolbox

Vald
Vald. A Highly Scalable Distributed Vector Search Engine
Stars: ✭ 158 (+364.71%)
Mutual labels:  cloud, distributed-systems, high-performance
Nff Go
NFF-Go -Network Function Framework for GO (former YANFF)
Stars: ✭ 1,036 (+2947.06%)
Mutual labels:  cloud, networking, containers
Blockerized Dockchain
Because all problems are solvable with containers and blockchains
Stars: ✭ 77 (+126.47%)
Mutual labels:  cloud, containers, service-mesh
Systemizer
A system design tool that allows you to simulate data flow of distributed systems.
Stars: ✭ 1,219 (+3485.29%)
Mutual labels:  distributed-systems, architecture, scalability
Cloudi
A Cloud at the lowest level!
Stars: ✭ 352 (+935.29%)
Mutual labels:  cloud, scalability, distributed-systems
Dnsfs
Store your data in others DNS revolvers cache
Stars: ✭ 696 (+1947.06%)
Mutual labels:  cloud, storage, networking
Kelda
Kelda is an approachable way to deploy to the cloud.
Stars: ✭ 433 (+1173.53%)
Mutual labels:  cloud, networking, containers
Awesome Scalability
The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
Stars: ✭ 36,688 (+107805.88%)
Mutual labels:  scalability, architecture, distributed-systems
Notlitecode
Remote Encrypted Procedure Calling for .Net & .Net Core
Stars: ✭ 16 (-52.94%)
Mutual labels:  encryption, high-performance
Aws Xray Ts Decorator
Instrument your Typescript code with AWS X-Ray using elegant decorators
Stars: ✭ 17 (-50%)
Mutual labels:  cloud, tracing
Peergos
A p2p, secure file storage, social network and application protocol
Stars: ✭ 895 (+2532.35%)
Mutual labels:  storage, encryption
Zato
ESB, SOA, REST, APIs and Cloud Integrations in Python
Stars: ✭ 889 (+2514.71%)
Mutual labels:  scalability, high-performance
Spec
Container Storage Interface (CSI) Specification.
Stars: ✭ 799 (+2250%)
Mutual labels:  storage, containers
Microservices Connector
Inter-Service communication framework, support for microservice architecture and distributed system
Stars: ✭ 17 (-50%)
Mutual labels:  scalability, distributed-systems
Che
The Kubernetes-Native IDE for Developer Teams
Stars: ✭ 6,572 (+19229.41%)
Mutual labels:  cloud, containers
Linuxkit
A toolkit for building secure, portable and lean operating systems for containers
Stars: ✭ 7,166 (+20976.47%)
Mutual labels:  cloud, containers
Sdn Handbook
SDN网络指南(SDN Handbook)
Stars: ✭ 856 (+2417.65%)
Mutual labels:  networking, containers
Swift Nio
Event-driven network application framework for high performance protocol servers & clients, non-blocking.
Stars: ✭ 6,777 (+19832.35%)
Mutual labels:  networking, high-performance
Pavlos
A light-weight container runtime for Linux with NVIDIA gpu support, allows developers to quicky setup development environments for dev and test. Pavlos can emulate any Linux rootfs image as a container.
Stars: ✭ 22 (-35.29%)
Mutual labels:  networking, containers
Awareness
The new architecture of co-computation for data processing and machine learning.
Stars: ✭ 11 (-67.65%)
Mutual labels:  cloud, networking

Index

Architecture diagrams
API documentation
Message queues
Load balancers, reverse proxy, accelerators, web servers
Service mesh
Structured and unstructured data storage
Distributed consensus management, service discovery and configuration
Infrastructure provisioning
Containers
Kubernetes
Jsonnet
RPC, Communication between system nodes
gRPC
Service monitoring, metrics collection / graphing
Infrastructure information management
Distributed request tracing
Load testing
Log management
Feature Flags
Deployment tools
CI (Continuous Integration)
CDNs
Domain registrars
AWS
Networking
SDN
SRE (Site Reliability Engineering)
Disk storage
TLS
HTTP/3 and QUIC
Authorization
Encryption
Hashing
Videos
Real User Monitoring
QA Automation
Tools
Misc

Architecture diagrams

Lucidchart
Mermaid (from code)
PlantUML (from code)
ilograph (interactive service diagrams from code)
Diagram.codes (diagrams from code)
Mingrammer Diagrams (from Python code)
Cloudcraft (AWS only)
draft (GraphViz based service architecture)
Cacoo
Creately
Draw

API documentation

OpenAPI
Swagger
Wording, definition syntax and units for RFC specification creation
API Stylebook
Spectral (API linter)
Dredd (API tester)
Zally (API linter)
GraphQL, UI client

Message queues

Kafka
Kafka Web UI solutions: AKHQ, Kafdrop, Kowl, CMAK, Lenses Box
RabbitMQ
ActiveMQ
ZeroMQ
nanomsg
phxqueue (from Tencent)
HornetQ
IronMQ (cloud)
nanomsg (C and Go only)

Load balancers, reverse proxy, accelerators, web servers

HAProxy, Unofficial Web UI
Envoy and Dropbox migration to Envoy from nginx
nginx, nginx config
OpenResty
Varnish
Tomcat
Træfik
Tarantool (mail.ru)
lightttpd
katran (BPF/XDP L4LB, Facebook)
GLB Director (DPDK L4LB, Github)
Cloudflare Unimog design

Service mesh

Envoy
Envoy introduction
Learn Envoy
Rotor (xDS, Turbine Labs)
ModSecurity for Envoy (WAF)
Envoy Java control plane
Istio service mesh controller
Istio introduction
linkerd L5 proxy (Finagle based, JVM)
linkerd introduction
Conduit (Rust, linkerd devs)
Netflix Vizceral (observability)
Kiali (observability, Istio)
Vistio (observability, Istio)

Structured and unstructured data storage

PostgreSQL
Postgres Pro (PostgreSQL)
JSON in Postgre 10.x, 11.x, PostgreSQL 9.6 vs Mongo 3.4
Why Uber Engineering Switched from Postgres to MySQL and Follow up 1, 2, 3, 4, 5, 6, 7
Redis, Community Slack Channel
Redis modules: 5 open source modules, JSON module
Redis UI: RedisInsight, AnotherRedisDesktopManager, Redis-UI, Redis Desktop Manager
iredis (improved CLI for Redis)
KeyDB (Redis fork with I/O multithreading)
Memcached, extstore storage shim, Caching beyond RAM: the case for NVMe
FASTER (Microsoft), official site
MySQL, ProxySQL (for MySQL)
RocksDB (InnoDB replacement by Facebook), Using NVM in Facebook (RocksDB)
Vitess (MySQL auto horizontal scaling)
MariaDB (MySQL)
Percona (MySQL)
MongoDB
Scylla (Cassandra done right), ScyllaDB with Optane
Cassandra
CockroachDB
Aerospike
TiDB
Anna (experimental, Berkeley RISE Lab), white paper
LogDevice (Facebook, distributed storage for sequential data)
OrientDB (graph)
Database isolation levels
The Log-Structured Merge-Tree (LSM-Tree) whitepaper
B+ tree
YCSB (Yahoo! Cloud Serving Benchmark)

Distributed consensus management, service discovery and configuration

Raft protocol
Paxos protocol
Paxos made simple
Paxos Made Live - An Engineering Perspective
Consul
etcd
Vault
Secure Production Identity Framework For Everyone (SPIFFE)
ZooKeeper

Infrastructure provisioning

Terraform
Terragrunt
Terraform best practices
Terraform AWS modules
Infracost - calculate Terraform deployment costs (AWS)
modules.tf - Convert Cloudcraft diagrams to Terraform code

Containers

Docker
Docker Registries: Harbor, Quay
Awesome Docker list
docker-autoheal (restart on unhealthy event)
Kubernetes
Container Network Interface
Mesosphere
Mesos
gVisor (sandbox runtime)
Weave Scope (monitoring)
SysDig (monitoring)

Kubernetes

Lens (k8s IDE)
k9s (alternative cli)
minikube
kubectl
Krew (kubectl plugin manager), list of plugins
kustomize
Helm
Knative (run serverless apps on top of Istio
List of K8s application management tools
Kompose (Docker Compose to k8s)
ksonnet
kubecfg
Skaffold
Draft
Kubespray (cluster setup)
kops (cluster setup)
kubectx & kubens (switch clusters and namespaces
goldpinger (nodes connectivity test/display
kube-ps1 (bash prompt)
stern (pod and container logs tailing)
click (cli for large clusters)
Telepresence (for k8s services development)
Cilium
Calico
AWS VPC Kubernetes CNI driver using IPvlan
Contour (Ingress controller using Envoy)
Gimbal (Ingress load balancer to many clusters)
Vault with Kubernetes and Video on improvements
Weave Scope (Monitoring, visualisation & management for k8s)
Guide to Kubernetes networking (part 1), Part 2
Kubernetes Security - Best Practice Guide
RBAC and user managemenet generation using Web UI
Chaos mesh

Jsonnet

jsonnet
jsonnet builds
Visual Studio Code plugin
IntelliJ plugin (alpha)
Style guide (Databricks)

RPC, Communication between system nodes

gRPC
Dubbo (China version of gRPC)
Protocol Buffers
Thrift
Cap'n Proto
MessagePack
FlatBuffers
Motan
Aeron
ZeroMQ
SMF

gRPC

Awesome gRPC list
gRPC status codes
gRPC 2 years in production
gRPC-Web client
gRPC GUI client

Service monitoring, metrics collection / graphing

Grafana
Grafonnet-lib (generate dashboards for Grafana)
Graphite
Prometheus
Thanos (Prometheus long term storage)
Cortex (Prometheus long term storage)
OpenMetrics
eBPF exporter (Prometheus)
Node Exporter (Prometheus)
cAdvisor (container monitoring)
ClichHouse (Yandex)
Druid (Imply)
Pinot (Linkedin)
Architecture analysis of ClickHouse, Druid and Pinot
HTTP Analytics for 6M requests per second using ClickHouse
NetData
Vector (host monitoring)
okmeter
Datadog
TimescaleDB
KairosDB
Zabbix
PagerDuty

Infrastructure information management

Osquery (Facebook)
Kolide Fleet (osquery)
Doorman (osquery)
OSSEC

Distributed request tracing

Dapper, a Large-Scale Distributed Systems Tracing Infrastructure (Google)
OpenTelemetry
OpenTracing and Jaeger introduction
TraceContext propagation format
Jaeger (Uber)
Zipkin
Lightstep
Tempo (Grafana)
Skywalking
AWS X-Ray

Load testing

Yandex.Tank (C++, Python, Go)
Overload (storage for Yandex.Tank results)
Gatling (Scala)
k6
Locust (Python)
Vegeta (HTTP 1.1/2)
h2load (HTTP 1.1/2)
autocannon (HTTP 1.1)

Log management

What you need to know about real-time logs
Vector
fluentd
Logstash
Graylog2
syslog-ng
rsyslog
fluentbit
filebit
Kibana
Loki
Splunk
GoAccess
Bookkeeper
LogDevice (Facebook)
Online solutions:
Loggly
Logentries
Papertrail
Scalyr
Sumo Logic
Humio

Feature Flags

Overview site
FF4J
Togglz (Java)
Unleash (simple)
LaunchDarkly (cloud provider)
piranha (Uber tool to refactor feature flag code)

Deployment tools

Ansible
Salt
Puppet
Chef
Teletraan

CI (Continuous Integration)

TeamCity
Jenkins
Jenkins X (for k8s apps)
Azure DevOps
JetBrains Space
Tekton Pipelines (k8s native using CRD)

CDNs

Akamai
Fastly
Cloudflare
Level3
Edgecast
Traffic Control (Self-hosted CDN)

Domain registrars

MarkMonitor
Cloudflare

AWS

AWS Infrastructure overview
awscli
awless
S3 Browser
CloudBerry S3 Explorer
Analyze S3 speed from your location
Analyze AWS S3 and CloudFront logs + GoAccess
EC2 instance cheat sheet
S3 meta information

Networking

chrony (NTP) and Facebook measuring chrony vs ntpd
BPF introduction
XDP
BPFd (remote BPF by Google)
bpftrace (high-level langauge for writing eBPF programs)
BCC (Tools for BPF-based Linux IO analysis, networking, monitoring, and more)
How to achieve low latency with 10Gbps Ethernet (Cloudflare)
BBR: Congestion-based congestion control, BBR, the new kid on the TCP block
Making Linux TCP Fast
SYN packet handling in the wild (Cloudflare)
How TCP backlog works in Linux
Understanding TCP close states
Bind before connect
SYNC Cookies
On SO_REUSEADDR and SO_REUSEPORT
On Linux history of poll(), select() and epoll(), More on Linux epoll
Monitoring and Tuning the Linux Networking Stack: Receiving Data
Monitoring and Tuning the Linux Networking Stack: Sending Data
MIT's TCP ex Machina: Computer-Generated Congestion Control
Introduction to modern network load balancing and proxying (Envoy)
BGP in 2017
CoreDNS
Knot DNS
Knot Resolver
Maglev: A Fast and Reliable Software Network Load Balancer
MaxMind GeoIP databases
IPVS
Open vSwitch
kTLS in Linux (TLS in kernel space 4.13+), white paper and Intro in Go
DPDK
FD.io
RIPE NCC network information
JLS2009: Generic receive offload
High-Speed Trading: Lines, Radios, and Cables – Oh My
Solving problem with Nagle's algorithm and delayed ACK using TCP_NODELAY
IPFS
S/Kademlia: A Practicable Approach Towards Secure Key-Based Routing
Linux AnyIP
Listen on all ports for AnyIP range on the server
TCP Tracepoints (Linux 4.15/6+)
Kernel Connection Multiplexor (KCM) and more details
Blocking-resistant communication through domain fronting
Anatomy of Linux DNS lookup, part 2, part 3, part 4, part 5
Equal-cost multi-path routing (ECMP)
How LinkedIn used TCP Anycast to make the site faster
Roughtime protocol
List of reserved IPv4 ranges (IANA IPv4 Special-Purpose Address Registry)
List of reserved IPv6 ranges (IANA IPv6 Global Unicast Address Assignments)
Wikipedia on reserved IP addresses
TCP window scaling, timestamps and SACK
DNS SVCB and HTTPS records RFC (draft)
Networking ASICS overview in 2020
How NAT traversal works

SDN

Stratum
p4 language
p4 Runtime
OpenFlow
SAI (Switch Abstraction Interface)
ONOS
OpenNFP
OpenConfig

SRE (Site Reliability Engineering)

Google Site Reliability Engineering book
Experience from running Uber payment service
Best practices of on-call (Increment journal issue)
High Performance Browser Networking book
The Docker Book
Site Reliability Engineer HandBook
Linux Performance tools and materials
Understanding swap in Linux and Video: Linux Memory Management at Scale: Under the Hood
How Much Memory Does the Process Really Take on Linux?
U2F devices review
Optimizing web servers for high throughput and low latency (Dropbox)
Shipilev Close Encounters of The Java Memory Model Kind
On disk IO - part 1, part 2, part 3, part 4, part 5
Transparent Hugepages: measuring the performance impact
Introduction 2016 NUMA Deep Dive Series
Understanding PCIe Configuration for Maximum Performance
Netflix Serving 100 Gbps from an Open Connect Appliance
Aphyr Hermitage - info and testing of database isolation levels
A collection of postmortems
Jeff Dean's latency numbers plotted over time
Sakila test DB
Monitoring in the time of Cloud Native
Tyler McMullen - Load Balancing is Impossible
What every programmer should know about memory
What every programmer should know about floating point, floating points format explained, Floating point GUI site, shorter explanation
Chaos Engineering information map
A Gentle Introduction to Erasure Codes
The PMCs of EC2: Measuring IPC
AWS EC2 Virtualization evolution
DNS zone visualization
How Netflix Tunes EC2
Write-Behind Logging
Cache-Oblivious Algorithms and Data Structures
Oracle Graal (Hotspot replacement)
Understanding How Graal Works - a Java JIT Compiler Written in Java
Understanding disk usage in Linux
On time and UTC
The tail at scale (reducing latency long tail)
Optimizing ScyllaDB to run inside Docker container
Using PMM with EverSQL to optimize queries and part 2
Learn where some of the network sysctl variables fit into the Linux/Kernel network flow
Understanding CORS: Mozilla page, Stackoverflow on CORS
A self-service CA for OpenSSH
Shipilev JVM Anatomy Park
How does a relational database work
Using systemd timers instead of cronjobs
Story of age, cache-control headers and prefetching mechanism in modern browsers
Is Your Linux Version Hiding Interrupt CPU Usage From You?

Disk storage

Minio (local storage with AWS S3 API)
libzbc (direct disk access)
SMR drives at Dropbox
Intel VROC overview and performance testing
Blb (distributed object storage system developed by Upthere)
Configuring OpenZFS to run 24x NVMe drives for high-load MySQL
Achieving 11M IOPS & 66 GB/s IO on a Single ThreadRipper Workstation and follow up video

TLS

The Illustrated TLS Connection
A Readable Specification of TLS 1.3
Sonar
TLS information
Mutuals TLS (mTLS)
Mozilla server side TLS information
BadTLS (SSL testing)
testssl.sh
Mozilla Observatory
HTTP security headers testing
Qualys SSL tests
High-Tech Bridge SSL test
HTTP security tools
HSTS preloading
SRI hash generator
Client side TLS test
DNS CAA helper
DNS over TLS
Encrypted SNI standard
TLS Delegated Credentials
Oblivious DNS over HTTPS RFC (draft)
ECH (TLS Encrypted Client Hello) RFC, Introduction to ECH

HTTP/3 and QUIC

HTTP/3 for everyone (video)
HTTP/3 test site (Fastly)
HTTP/3 Explained (book)
msquic (QUIC protocol implementation from Microsoft)
quiche (QUIC protocol implementation from Cloudflare)

Authorization

OAuth 2.0 information: Practical information, book, online version of the book, best practices (RFC), browser-bases apps guideline (RFC), RFC
AppAuth (OAuth 2.0 client library)
JSON Web Token (JWT)
JSON Web Signature (JWS)
JSON Web Encryption (JWE)
JWT playground

Encryption

OpenSSL
BoringSSL (Google)
s2n (AWS)
LibreSSL (OpenBSD OpenSSL fork)
Google Tink
Thesis (encryption framework)
Acra (DB encryption proxy)
Cryptography Engineering: Design Principles and Practical Applications (book)
Introduction to Modern Cryptography, Second Edition (book)
Security Engineering, 2nd edition (book)
Crypto 101 (concepts, book)
Applied Cryptography Engineering
Ensuring Randomness with Linux's Random Number Generator
Should we MAC-then-encrypt or encrypt-then-MAC?
Authenticated Encryption: Relations among notions and analysis of the generic composition paradigm
How to choose an Authenticated Encryption mode
Awesome cryptography repository
Mind Your Keys? A Security Evaluation of Java Keystores
Hash-based message authentication code
Authenticated Encryption with Associated Data (AEAD)
AES-GCM (AEAD)
AES-GCM-SIV
GCM blockcipher mode
OCB blockcipher mode
ChaCha20 design (stream)
Poly1305 (MAC)
ChaCha20 and Poly1305 (AEAD)
Understanding RSA terms
Elliptic curve introduction
Elliptic Curve Cryptography: a gentle introduction
Safe elliptic curvers
Curve25519
Hybrid Public Key Encryption (HPKE) RFC, Example of HPKE usage in Cloudflare

Hashing

smhasher testing suite
Fast Positive Hash
Meow hash
HighwayHash and SipHash (Google)
SipHash (original)
BLAKE3 (crypto)
BLAKE2 (crypto)
xxHash
MurmurHash3
argon2 (password hashing)
Dieharder: A Random Number Test Suite

Real User Monitoring

boomerang library and How to use boomerang
Custome backend required for boomerang - could use boomcatch and statsd
Commercial solution is Akamai mPulse
sitespeed.io tools
Matomo
User access information from logs: GoAccess and AWStats
Compress data from ResourceTiming API
Javascript Performance APIs
Javascript Navigation Timing API

QA Automation

Learn headless browser automation
Playwright
QA Wolf (Playwright scripts generation)
Headless Recorder (Playwright/Puppeteer scripts generation)
Puppeteer
Selenium
Cypress
mimesis (fake data generator)

Tools

htop
gtop
nvtop
k6 (load testing)
dnstrace
upx
bat
httpie
smenu
awesome tmux
py-spy (python profiler)
kubespy
up
doh
fx
jid
dive
nnn
ethr
termshark (CLI UI for Wireshark)
xdpcap (tcpdump for XDP)
flan (nmap based vulnerability scanner)
broot (files)
bandwidth
sandmap
duf (advanced du)

Misc

High Scalability/Availability/Stability articles list
Another github repo

Videos

Kafka 2017 Summit
CppCon 2017
@Scale 2017
Strange Loop 2017
FOSDEM 2018
Computer Architecture course taught at ETH Zürich in Fall 2017
GrafanaCon 2018
SREcon 2018
KubeCon + CloudNativeCon 2018
Networking @Scale 2018
Highload++ Siberia 2018
GrafanaCon 2019
SREcon 2020 Americas

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].