Difficulty

  • A: Basic, concept (a 1st year CS student can learn)
  • B: Intermediate (a fresh CS graduate can learn)
  • C: Advanced topic
  • D: Expert

Courses

Concepts

Golang

Network

  • ๐Ÿ“– Network Warrior (first 12 chapters)
  • ๐Ÿ“– Networking for Systems Administrators (IT Mastery)
  • ๐Ÿ”— The complete flow of entering a URL in your browser
  • OSI layers (a)
    • L1:
      • hub
    • L2:
    • L3
      • sub-netting, gw (a)
      • ip classes (A,B,C) private/public (a)
      • localhost (a)
      • link local (b)
      • Routing protocol (a)
        • routing table (a)
        • OSPF (b)
        • BGP (c)
          • iBGP, eBGP (c)
          • BGP params (d)
          • BGP loop prevention mechanism (d)
          • BGP communities (d)
    • L4
      • TCP handshake (a)
      • NAT (a)
      • TCP flow (b)
      • VxLAN
      • L5
      • TLS handshake
        • asymmetric crypto (a) somehow
        • digital signature (a)
        • CA and verification (a)
        • SNI (c)
        • ALPN (c)
      • L6
      • L7
      • HTTP (a)
        • Methods (GET/POST/โ€ฆ)
        • Headers
        • URI, Path and Query parameter
        • CORS (c)
      • HTTP2 (b)
      • gRPC (c)
      • DNS (a)
        • recursive resolution
        • records: A,AAAA, CNAME
  • Network bonding
    • 0, 1 (b)
    • 4 lacp 802.3ad (c)
  • Packet NIC flow (d)
    • dram
    • ring buffer
    • driver
    • XDP
  • MPLS (d)
  • FRR (d)
  • VRF (d)

Linux

  • TODO: add LPIC topic + LinuxFun
  • systemd (a)
  • iptables https://iximiuz.com/en/posts/laymans-iptables-101/
  • eBPF (d)
  • Netfilter
    • vrf (d)
    • route tables, pbr (c)
    • route (b)
    • netns (b)
    • veth pair (b)
    • bridge (b)
    • vlan aware bridge (c)
    • 802.1q (c)
  • namespaces
    • nsenter
    • lsns
    • types:
      • mnt
      • pid
      • net
      • ipc
      • uts
      • user
      • cgroup
      • time
  • cgroups (c)
    • cgroupv1 vs cgroupv2 (d)
  • kexec (d)
  • io_urun (d)
  • storage
    • lvm
      • pv
      • vg
  • file
    • ACL
    • UID, GID
    • SELinux ls -Z
  • Docker

Kubernetes

  • Kubernetes SDK
  • Controller / Operator
    • controller-runtime
    • kubebuilder
    • operator-sdk
    • reconcile loop
    • k8s error checking
    • Finalizer
    • status
    • printable columns
    • default values / validations (tags)
  • Admission / Mutation Webhook
  • tests
    • k8s envtest
  • OKD:
  • The complete flow of creating a deployment
  • Book: Kubernetes in action by Marka Luksa ( Part3 - especially chapter 11 understanding kubernetes internals )
  • components (a)
    • kubelet, scheduler, kube-proxy
  • api
    • api server
      • authN
      • authZ
      • mutation
        • what is it (b)
        • objects in k8s (c)
        • writing a custom webhook (c)
      • admission
        • what is it (b)
        • object in k8s (c)
        • writing a custom webhook (c)
      • etcd watch
      • api server watch
      • controller pattern
      • scheduling pipeline
      • extension:
        • AA
        • CRD
  • etcd:
    • raft / consensus
    • watch
    • persistence
    • why not redis?
  • cri
    • kubelet watch
    • cri grpc call
    • crio
    • oci
    • runc
    • workload
      • deployment, sts, daemonset (a)
      • sts features (b)
        • naming
        • pvc per pod
      • daemonset:
        • no count
        • not drain
        • even if node restart ??
    • probe
      • liveness, readiness (a)
      • startup probe (b)
  • network:
    • kube-proxy, service
      • service (headless/none, clusterip, loadbalancer, node port, external name) (a)
      • endpoint (b)
      • endpointslice (c)
      • kube proxy iptables chains
    • cni (b)
      • cilium
    • ingress controller (b)
    • dns
      • kubelet dns, dnsPolicy
      • CoreDNS: learning CoreDNS book
    • life of a packet North south
    • life of a packet East West
  • CSI:
  • Console
    • Console customization
    • Dynamic plugins

Automation

  • concepts:
    • Reusable modules (roles, scripts, โ€ฆ)
    • Idempotency (know the concept in rest but not in ansible)
    • Remote parallel execution
    • Inventory and discovery
    • DSL
  • Tools:
    • Ansible
      • roles (b)
      • playbook (a)
      • tasks (a)
      • inventory (a)
      • group vars(b)
      • env (a)
      • ansible.cfg (b)
      • callbacks (d)
      • plugins (c)
      • dynamic inventory (c)
      • writing a module (d)
      • ansible-galaxy (c)
      • raw (c)
      • handlers (c)
      • jinja (b)
    • Terraform (Terraform up and running)
      • state (a)
      • storage backend state (b)
      • modules (b)
      • locals, vs variab