📚 Knowledge
an attempt to centralize my studies/links/annotations for reference purposes
At the moment this is not useful for anyone but myself, if at some point I find it usefult I'll make it public.
(click to see the large version)How to use this repo?
The README topics/links are organized following above chart. High-level subjects are usually parent topics, sub-topics are usually specialization of the main subject.
Depending on your level, you can dive deeper into a subject's sub-topics, or just move to the next one.
- Left to write: indicate how generic subjects are
- Top-bottom: Order of importance/relevancy and specialization of each subject or sub-category
e.g.:
Software Engineering
- Databases
- SQL
- Postgres Basics
- Postgres Internal
- How postgres replication works
- Parsing postgres WAL(WriteAheadLog)
- SQL
- Versioning
For instance, take into account the snaptshot above. If you already know how to use SQL Databases, you might want to either:
- Continue to the right, learning more more about Postgres, and to the bottom, its internals, specialized internals like replication and WAL.
- Continue to the bottom/next topic:
Programming Languages
.
Tags
Categories to the links
🌍 - Interesting Link📰 - Article / Paper📕 - Book💻 - Project🎓 - Online Course📜 - Certification📼 - Video Presentation / Content🎥 - Slides Presentation- ✍🏼 - Written/Made by me
📝 - My annotations🆓 - Free / No money required💰 - Paid- 💪🏼 - Practice
🐦 - Person to Follow on Twitter⭐️ - Favourite Option (when there are many alternatives)- 👨🏻🔧- Workshop
References
- Site Reliability Engineering
- Culture
- Introductory
- Deeper Introduction
- Site Reliability Engineering - How Google Runs Production Systems
📕 🆓 - The Site Reliability Workbook - Practical Ways to Implement SRE
📕 🆓 - SRE - Keeping Google up and running 24/7
📼 🆓 - Keys to SRE - Google
📼 🆓 - Who/What? is SRE - Google (Panel)
📼 🆓 - Google Series on SRE - class SRE implements DevOps
- What's the Difference Between DevOps and SRE?
📼 🆓 - SLIs, SLOs, SLAs, oh my!
📼 🆓 - Risk and Error Budgets
📼 🆓 - Toil and Toil Budgets
📼 🆓 - Now SRE Everyone Else with CRE!
📼 🆓 - Managing Risks as a Site Reliability Engineer
📼 🆓 - Actionable Alerting for Site Reliability Engineers
📼 🆓 - Observability of Distributed Systems
📼 🆓 - Incident Management
📼 🆓 - Postmortems and Retrospectives
📼 🆓
- What's the Difference Between DevOps and SRE?
- IBM Garage - Building SRE from Scratch
- Site Reliability Engineering - How Google Runs Production Systems
- Use cases
- Site Reliability Engineering - Google - Christof Leng
📼 🆓 - Implementing SLOs for a New Service - Squarespace
📼 🆓 - Shipping Software with an SRE Mindset - Circonous
📼 🆓 - Latency SLOs Done Right - Circonous
📼 🆓 - Site Reliability Engineering at Dropbox - Tammy Buttow
📼 🆓 - 190 Countries and 5 core SREs - Netflix - Jonah Horowitz
📼 🆓 - The SRE I Aspire to Be - Usenix - Yaniv Aknin
📼 🆓
- Site Reliability Engineering - Google - Christof Leng
- People to Follow
- Monitoring (See later Section)
- Incidents
- Post-mortem
- Software Engineering
- Version Control
- git
- Programming Languages
- Paradigms
- Functional Programming Languages
- Haskell
- General Overview
- Use cases
- Practice
- The Monad Challenges 💪🏼
🆓
- The Monad Challenges 💪🏼
- Concepts
- Functional Programming
- Lambda Calculus
- Monads
- Haskell
- Systems Programming Languages
- Rust
- The Rust Programming Language
📕 🆓 - Annotations
📝 - SubProjects
- Annotations
- General Overview
- Use cases
- Testing Frameworks
- Speculate Adds RSpec like behavior to rust via macros
- Programming Rust
📕 💰
- The Rust Programming Language
- Go
- Concurrency
- Concurrency in Go
📕 💰 - [Concurrency Patterns in Go](https://www.youtube.com/watch?v=YEKjSzIwAdA
📼 🆓 )- Channels
- Concurrency in Go
- Garbage Collector
- Concurrency
- Rust
- Programming Topics
- Algorithms and Data Structures
- Udacity - Intro to Data Structures and Algorithms by Google
🆓 🎓 📼 - Coursera - Algorithms - Part 1 - Elementary data structures, sorting, and searching algorithms
🆓 🎓 📼 - Coursera - Algorithms - Part 2 - Graph and string-processing algorithms
🆓 🎓 📼 - Courated List of the 10 best free resources
📰 🆓 - Locks
- Futex
- Semaphores
- Alternative Data Structures
- “Esoteric Data Structures and Where to Find Them” - Allan Deutsch
📼 🆓 - 0:36 Slot map
- 10:08 Bloom filters (non-counting)
- 16:46 Navigation meshes
- 20:36 Hash pointer / Block chain / Merkle tree
- Probabilistic Data Structures
- Bloom Filter
- Count-Min-Sketch
- “Esoteric Data Structures and Where to Find Them” - Allan Deutsch
- Udacity - Intro to Data Structures and Algorithms by Google
- Algorithms and Data Structures
- Databases
- Theory
- Designing Data-Intensive Applications - Martin Kleppmann
📕 💰 - CAP Theorem Revisited
📰 🆓 - The Pathologies of Big Data
📰 🆓 - Scaling
- Replication
- --
- Sharding
- Operating
- Designing Data-Intensive Applications - Martin Kleppmann
- SQL
- Row-based
- PostgreSQL
- Postgres: Up & Running
📕 💰 ⭐️ - Learning PostgreSQL 11
📕 💰 - Mastering PostgreSQL 11 - Second Edition
📕 💰 - Understanding Advanced Datatypes in PostgreSQL
📼 🆓 - Updating a 50 terabyte PostgreSQL database
📰 🆓 - How Twitch uses PostgreSQL
📰 🆓 - Handling Growth with Postgres: 5 Tips From Instagram
📰 🆓 - Updating a 50 terabyte PostgreSQL database
📰 🆓 - Sharding & IDs at Instagram
📰 🆓 - Sharding and Scaling PostgreSQL: Principles and Practice Webinar
📼 🆓 - Citus vs. Single-Node Postgres Database | A Side-by-Side Comparison
📼 🆓 - Replication
- Monitoring
- Operating
- Vacuum
- Performance
- Postgres: Up & Running
- MySQL
- Learn to stop using shiny new things and love MySQL
📰 🆓 - Tracking the Money — Scaling Financial Reporting at Airbnb
📰 🆓 - Scaling to 100M: MySQL is a Better NoSQL
📰 🆓 - Unlocking Horizontal Scalability in Our Web Serving Tier
📰 🆓 - Why Uber Engineering Switched from Postgres to MySQL
📰 🆓 - Evaluating MySQL Parallel Replication Part 4, Annex: Under the Hood
📰 🆓 - Mitigating replication lag and reducing read load with freno
📰 🆓 - Black-Box Auditing: Verifying End-to-End Replication Integrity between MySQL and Redshift
📰 🆓 - How We Partitioned Airbnb's Main Database in Two Weeks
📰 🆓 - Sharding Pinterest: How we scaled our MySQL fleet
📰 🆓 - How We Replaced Our Data Pipeline With Zero Downtime
📰 🆓 - Vitess: MySQL Sharding - Square Engineering
📼 🆓
- Learn to stop using shiny new things and love MySQL
- PostgreSQL
- RDS
- Aurora
- Amazon Aurora Multi-Master: Scaling out database write performance (MySQL)
📼 🆓 - Aurora Encryption Performance Numbers
📰 🆓 - Aurora Global Database
📼 🆓 - Performance Tunning
- Amazon Aurora Multi-Master: Scaling out database write performance (MySQL)
- Security
- RDS Proxy
- Aurora Serverless
- Cross-region Replication
- Aurora
- Column-based
- Row-based
- NoSQL
- KeyValue
- BoJack ✍🏼
💻 🆓 - Why you should build your own NoSQL database ✍🏼
📰 🆓 - Redis
- Introduction
- Usecases
- Internals
- Cache
- Replication
- Streams
- Redis Streams
📼 🆓
- Redis Streams
- Sentinel
- Cluster
- RBAC/RedisAuth
- Enterprise
- Monitoring
- Hosted
- ElastiCache
- AWS re:Invent 2020: Design for success with Amazon ElastiCache best practices
📼 🆓 - AWS re:Invent 2021 - Deep dive on Amazon ElastiCache for Redis - Groupon - DataTiering
📼 🆓 - Global Datastore - Cross-region replication (DR)
- AWS re:Invent 2020: Design for success with Amazon ElastiCache best practices
- ElastiCache
- Cassandra
- BoJack ✍🏼
- DocumentStore
- ElasticSearch
- KeyValue
- Theory
- Ledger
- Distributed Systems
- Theory
- Service Discovery
- Bulkhead Pattern
- Circuit-Breaker Pattern
- Event-Driven Architecture
- Practical Event Driven Architecture
📼 🆓 - Event Sourcing / CQRS
- Go Back to the Future with Event Sourcing and CQRS
📼 🆓 - Event Sourcing You are doing it wrong - David Schmitz
📼 🆓 - The Many Meanings of Event-Driven Architecture - Martin Fowler
📼 🆓 - An Introduction to CQRS and Event Sourcing Patterns - Mathew McLoughlin
📼 🆓 - Go Back to the Future with Event Sourcing and CQRS
📼 🆓
- Go Back to the Future with Event Sourcing and CQRS
- Practical Event Driven Architecture
- Streaming
- Kafka
- NATS
- Kinesis
- Commit Log
- Commit Logs in an Age of Microservices - Tim Berglund
📼 🆓 - Build your Own
- 14-bits/voik
💻 🆓 - Corfu - A distributed shared log
📰 🆓 - Building a Distributed Message Log from Scratch by Tyler Treat - Video
📼 🆓 - Building a Distributed Log from Scratch, Part 1: Storage Mechanics
📰 🆓 - Building a Distributed Log from Scratch, Part 2: Data Replication
📰 🆓 - Building a Distributed Log from Scratch, Part 3: Scaling Message Delivery
📰 🆓 - Building a Distributed Log from Scratch, Part 4: Trade-Offs and Lessons Learned
📰 🆓 - Building a Distributed Log from Scratch, Part 5: Sketching a New System
📰 🆓 - Code
- travisjeffery/Jocko - Distributed commit log service in Go
- zowens/commitlog - Append-only commit log library for Rust
- liftbridge-io/liftbridge - Lightweight, fault-tolerant message streams
- People to Follow
- 14-bits/voik
- Commit Logs in an Age of Microservices - Tim Berglund
- Load Balancing
- Distributed Processing
- Hadoop
- RPC - Remote Procedure Call
- Version Control
- Operations
- Terminal
- Operating Systems
- Courses
- Base Book (Choose 1):
- Unix
- Computer Architecture
- TUHS Lectures
🆓 📰 🎓 - Introduction to Systems Architecture
- Instruction Set Architecture Design
- Addressing Modes & CPU Internals
- Execution Flow, Branches, Function Calls
- User- and Kernel Mode, System Calls, I/O, Exceptions
- CPU Memory Management, Context Switching
- Introduction to Operating Systems
- Processes
- Introduction to Memory Management
- Virtual Memory, Disk Devices
- Filesystems & Their Performance
- IPC, Synchronisation and Threads
- TUHS Lectures
- File Descriptor
- Threads
- "An Introduction to Programming with Threads" by Birrell
📰 🆓 - POSIX Threads (PThreads)
- "An Introduction to Programming with Threads" by Birrell
- Beyond Multiprocessing: Multithreading the Sun OS Kernel by Eykholt
📰 🆓 - Implementing Lightweight Threads by Stein and Shah
📰 🆓 - How to create and join threads in C (pthreads)
📼 🆓 - Programming with POSIX ® Threads
📕 💰 - CPU Scheduling
- Timeslice
- MLFQ - Multi Level Feedback Queue
- Linux
- O(n), O(1) and CFS
- Timeslice
- Virtual Memory
- Linux
- Reference Youtube channels
- Network
- Computer Networks, 5th Edition
📕 💰 - Protocols
- DNS
- Socket
- UDP
- TCP
- Build Your Own
- SSH
- HTTP/S
- Certificate Authorization
- SSL-TLS
- MQTT
- Edge
- CDN
- "Global Accelerator"
- AWS Global Accelerator Introduction
📼 🆓 - 11:00 - Explanation regarding GA
- AWS Global Accelerator
📼 🆓
- AWS Global Accelerator Introduction
- VPC - Virtual private Cloud
- Network
- Practical VPC Design
📰 🆓 - Multi-VPC
- One to Many: Evolving VPC Design
📰 🆓 - Using VPC Sharing for a Cost-Effective Multi-Account Microservice Architecture
📰 🆓 - Sharing
- Peering
- PrivateLink
- TransitGateway
- VPN
- Site to Site VPN
📼 🆓
- Site to Site VPN
- One to Many: Evolving VPC Design
- Computer Networks, 5th Edition
- Monitoring
- Telemetry
- OTEL - Open Telemetry
- Metrics
- Prometheus
- InfluxDB
- Tracing
- Telemetry
- Infrastructure as Code
- What is IaC?
📼 🆓 - Getting Started with IaC
📼 🆓 - Containers
- Standard
- OCI - OpenContainers Initiative
- Runtimes
- Docker
- Guides
- Testing
- goss/dgoss - Test docker images
⭐️ - marceloboeira/kurz - Example setup ✍🏻
- goss/dgoss - Test docker images
- Containerd
- Docker
- Standard
- Orchestration
- ECS
- ECS Workshop 👨🏻🔧
🆓 - Internals
- Service Discovery
📼 🆓 - Network Deep Dive
📼 🆓
- Service Discovery
- ECS Workshop 👨🏻🔧
- Nomad
- Intro to Nomad
📼 🆓 - How does nomad work?
📼 🆓 - Nomad vs K8s
📼 🆓 - A Kubernetes User Guide to Nomad
📰 🆓 - Awesome side-by-side quivalent comparinson of the abstraction
- Intro to Nomad
- Kubernetes
- History
- Internals
- Introduction
- Microsoft Azure Videos
- Why you should care about containers
📼 🆓 - How Kubernetes works
📼 🆓 - How Kubernetes deployments work
📼 🆓 - Understand Serverless Kubernetes and Serverless on Kubernetes
📼 🆓 - How the Kubernetes scheduler works
📼 🆓 - Setting up a Kubernetes build pipeline
📼 🆓 - Overview of common Kubernetes scenarios
📼 🆓 - How volumes and storage work in Kubernetes
📼 🆓 - The basics of stateful applications in Kubernetes
📼 🆓
- Why you should care about containers
- Microsoft Azure Videos
- Understanding Distributed Consensus in etcd and Kubernetes - Laura Frank, CloudBees
📼 🆓 - Kubernetes Deconstructed: Understanding Kubernetes by Breaking It Down - Carson Anderson, DOMO
📼 🆓 - Internals Advanced General talks about containers -
🆓 📼 - Kubernetes Up and Running
📕 💰 - Key Kubernetes Concepts
📰 🆓 - Programming Kubernetes
📕 💰 - Networking
- A Guide to the Kubernetes Networking Model
📰 🆓 - How does Traffic Flow inside a Kubernetes Cluster?
📰 🆓 - Exposing Services
- NodePort vs LB vs Ingress
📰 🆓 - Interesting to understand why ingress is a better option than LB when exposing individual services
- LB creates a new IP for every service, it can get expensive and difficult to handle
- Ingress can manage multiple domains and paths for many services without difficulty/effort
- Cracking K8s NodeProxy/KubeProxy
📰 🆓 ⭐️ - NodePort and iptables
📰 🆓
- NodePort vs LB vs Ingress
- CNI Plugins
- Identity & Access
- RBAC
- A Guide to the Kubernetes Networking Model
- Introduction
- Operators
- Provider
- EKS - Elastic Kubernetes Service
- EKS - Deep Dive
📼 📼 - 08:50 - Control Plane
- 10:19 - Control Plane Internals (not shared tenent, endpoints exposed to internet, worker nodes need access to the internet, NLB)
- 19:00 - Version Updates
- 20:00 - Authentication (IAM -> Authentication | RBAC -> Authorization)
- 20:00 - AMI is OpenSource
- EKS Workshop 👨🏻🔧
🆓 - Custom EKS AMIs
📰 🆓 - Metrics
- Tracing
- Windows
- Managed Node Groups
- EKS - Deep Dive
- EKS - Elastic Kubernetes Service
- Tenancy
- Usecases
- Failure Stories
- Service Mesh
- What is service mesh?
📼 🆓 - Consul
- Istio
- Istio Explained - IBM Videos
📼 🆓 - What is Istio?
📼 🆓 - Console
- Istio: Up & Running
📕 💰
- Istio Explained - IBM Videos
- AppMesh
- What is service mesh?
- ECS
- Provisioning
- Terraform
- Introduction to Terraform
📼 🆓 - Infrastructure as Code in the Real World?
📼 🆓 - Terraform: Up and Running
📕 💰 - HCL
- Management
- Terraform Cloud - Run multiple terraform projects/states at scale
- Atlantis - Alternative to Terraform Cloud running on OSS/Github/Gitlab integrations
- Gotchas
- State Moves
🆓 📰 - State Replace Provider
🆓 📰
- State Moves
- Internals
- Custom Providers
- Build your own provider
- Custom Providers
- Certification
- Scaling
- Terraform OpenCredos - Terraform life-cycle
📼 🆓 - This is only outdated in regards of module not supporting
for_each
, they do as of 1.0 or 0.12
- This is only outdated in regards of module not supporting
- Terraform OpenCredos - Terraform life-cycle
- Introduction to Terraform
- CDK - CloudFormation Development Kit
- Packer
- The Packer Book
📕 💰
- The Packer Book
- Terraform
- Secret Management
- Vault - Secure dynamic infrastructure across clouds and environments
- Session Management - See Session Manager Below
- What is IaC?
- Linux
- LFS - Linux from Scratch Book
📼 🆓 - systemd
- File System
- LFS - Linux from Scratch Book
- Debug
- Core Dumps
- Performance
- Profiling
- Linux Performance
- Linux Network Performance Parameters - Leandro Moreira
📰 🆓 💻 - Linux Performance Hub - Brendan Gregg
📰 🆓 💻 - Linux Perf
📰 🆓 💻 - Linux Extended BPF (eBPF) Tracing Tools
📰 🆓 💻 - Charts
- Netflix - Linux Systems Performance - Brendan Gregg
📼 🆓 - Netflix - Linux Performance - Brendan Gregg
📼 🆓 - How Netflix Tunes Amazon EC2 Instances for Performance - Brendan Gregg
📼 🆓
- Linux Network Performance Parameters - Leandro Moreira
- Docker Container
- Applications
- dtrace
- Rust
- Flamegraph
- Linux Performance
- Profiling
- Serverless
- SAM- Serverless Application Model
- What is SAM?
📼 🆓
- What is SAM?
- Lambda
- Layers
- Extensions
- SAM- Serverless Application Model
- Security
- Authentication
- OpenID/OICD
- Amazon Cognito
📼 🆓
- Amazon Cognito
- OpenID/OICD
- Zero-Trust
- Secure Access Management
- Bastion
- Agent
- SSM Session Manager
- Boundary
- Firewall
- WAF - Web Application Firewall
- Encryption
- Theory
- History
- Ceasar
- Symetric
- Asymetric
- History
- Cloud
- Theory
- Certificates
- Service Name Indication
- What is SNI?
📼 🆓
- What is SNI?
- Service Name Indication
- Monitoring
- Data Leaks
- Amazon Macie
📼 🆓
- Amazon Macie
- Data Leaks
- Multi-tenancy
- Authentication
- Cost
- Cloud
- FinOps
- What is FinOps?
🆓 📰 - O'Relly - Cloud FinOps
📕 💰 - FinOps Landscape - An overview of companies adopting the framework
🆓 - Certification
- AWS
- What is FinOps?
- FinOps
- Cloud
- Culture