Skip to content

DevOps and cloud

Go from the Linux shell and Git to containers, automated delivery, infrastructure as code and Kubernetes, building the habits that keep software shipping reliably.

Intermediate 14 steps

Steps

Foundations

  1. Linux and the command lineGet comfortable with the shell, files, processes and permissions, since almost every server, container and pipeline runs on Linux.
  2. Version control with GitLearn commits, branches, merges and remotes well, because every automated pipeline starts from a change pushed to a repository.
    • Git Documentation & Pro Git Book git-scm.comfree

      Official comprehensive documentation manual, tutorials, and full online text of the Pro Git book.

    • A Successful Git Branching Model nvie.comfree

      Influential essay describing the Git Flow branching strategy, with develop, feature, release and hotfix branches for managing versioned software releases.

  3. How operating systems work (optional)Study processes, memory, isolation and virtualization so containers and virtual machines stop feeling like magic.
    • Operating Systems: Three Easy Pieces (OSTEP) pages.cs.wisc.edufree

      A free online textbook by Remzi Arpaci-Dusseau and Andrea Arpaci-Dusseau covering virtualization, concurrency, and persistence.

    • QEMU Documentation qemu.orgfree

      Official documentation for QEMU, the open-source machine emulator and virtualiser, covering system emulation, invocation options and device configuration.

Containers

  1. Running your first containersPackage an application with its dependencies into an image and run it the same way on any machine.
    • Docker Docs docs.docker.comfree

      Official Docker documentation with manuals, guides and references for building, running and networking containers with Docker Engine, Compose and related tools.

    • Podman docs.podman.iofree

      Daemonless open source container engine for building, running and managing OCI containers and pods, offering a Docker-compatible command line.

  2. Images, layers and registriesUnderstand image layers, the open container standards and public registries, so you can build small images and share them safely.
    • Open Container Initiative opencontainers.orgfree

      Linux Foundation project that maintains open industry specifications for container image formats, runtimes and distribution, with documentation of each standard.

    • Docker Hub hub.docker.comfreemium

      World's largest repository and registry database of container images for development environments and application runtimes.

    • Docker Internals docker-saigon.github.iofree

      Long-form technical explainer of how Docker builds on Linux kernel features such as namespaces, cgroups, layered storage and networking, for engineers who want to understand containers in depth.

  3. Build a container runtime yourself (optional)Recreate namespaces, cgroups and chroot by hand to see exactly which Linux features a container engine combines.
    • Rubber Docker github.comfree

      Hands-on workshop that guides participants through rebuilding a minimal Docker-like container runtime in Python to learn the Linux primitives behind containers.

    • runc github.comfree

      Command-line tool that spawns and runs containers according to the OCI runtime specification, serving as the low-level runtime beneath Docker and other platforms.

Automation and delivery

  1. Continuous integration and deliveryAutomate building, testing and releasing every change, so integration problems surface within minutes instead of at release time.
    • Martin Fowler's Bliki martinfowler.comfree

      An influential software engineering blog providing in-depth analysis of programming practices, testing, and agile principles.

    • Jenkins jenkins.iofree

      Open-source automation server providing hundreds of plugins to build, test, and deploy software across CI/CD pipelines.

    • Continuous Delivery Foundation Educational Guides cd.foundationfree

      Best practices, architecture patterns, and specifications for CI/CD pipelines, automation, and software supply chains.

  2. Configuration managementDescribe server setup as repeatable code instead of manual steps, so any machine can be rebuilt to a known state.
    • Ansible redhat.comfree

      Open source automation engine that configures systems, deploys software and orchestrates tasks over SSH using readable YAML playbooks, without agents on managed hosts.

    • Salt Project saltproject.iofree

      Open source configuration management and remote execution framework used to automate the provisioning and state of servers and infrastructure at scale.

  3. Infrastructure as codeDeclare networks, machines and cloud services in versioned files, review them like code and apply them predictably.
    • Terraform github.comfree

      Infrastructure as code tool that defines cloud and on-premises resources in declarative configuration files and plans and applies changes to them safely.

    • Terraform Best Practices on Google Cloud docs.cloud.google.comfree

      Google Cloud guide to structuring and styling Terraform configurations, covering module layout, naming and conventions for teams managing infrastructure as code.

  4. Reproducible development environments (optional)Pin tools and dependencies so every developer and every pipeline runs exactly the same environment.
    • Nix Learning Guides nix.devfree

      Official tutorials and beginner-friendly guides for configuring reproducible development environments and shells with Nix.

    • Development Container Specification containers.devfree

      Open specification defining how to configure and enrich containerized developer environments across varied tools and platforms.

Cloud and orchestration

  1. KubernetesLearn pods, deployments and services to run many containers across a cluster with scaling, rollouts and self-healing.
    • Kubernetes Documentation kubernetes.iofree

      Official guide and reference documentation for container orchestration, cluster architecture, and distributed service management.

    • Kubernetes Blog kubernetes.iofree

      Official blog highlighting architectural patterns, release features, and technical updates from the Kubernetes distributed computing ecosystem.

  2. Managed cloud platformsCompare serverless containers and reference architectures to decide how much infrastructure you actually want to operate yourself.
    • Cloud Run Documentation docs.cloud.google.comfree

      Google Cloud documentation for Cloud Run, a managed platform for running containers, covering deployment from source, the container contract and configuration.

    • Cloud Architecture Center docs.cloud.google.comfree

      Google Cloud collection of reference architectures, design guides and best practices for building reliable, secure and scalable systems in the cloud.

    • AWS Architecture Blog aws.amazon.comfree

      Technical articles, best practices, and patterns for building scalable, resilient distributed applications on cloud infrastructure.

  3. Monitoring and error trackingCollect errors and performance data from production so problems are noticed and diagnosed before users report them.
    • Sentry sentry.iofreemium

      Developer-focused application monitoring and error tracking platform helping engineers diagnose and fix crashes in real time.

  4. Distributed systems thinking (optional)Study replication, partitioning and failure modes, the ideas underneath every cloud service you deploy to.
    • Designing Data-Intensive Applications dataintensive.netpaid

      An authoritative guide by Martin Kleppmann exploring principles of distributed databases, stream processing, and storage systems.

    • Distributed Systems distributed-systems.netfree

      A free online textbook by Maarten van Steen and Andrew S. Tanenbaum covering principles and paradigms of distributed computing.

See also

External links, by their respective authors. This path is original IPL content.