Book 05
DevOps & Cloud
Tools and practices for building, testing, packaging and shipping software to production.
Contents
- 01Ansible1Ansible is an open-source automation tool that configures servers and deploys applications by running YAML playbooks over SSH, with no agent on the machines.
- 02Autoscaling2Autoscaling is the automatic adding or removing of computing resources, such as servers or containers, based on demand to keep performance steady and costs low.
- 03AWSAmazon Web Services3AWS (Amazon Web Services) is Amazon's cloud platform: more than 200 pay-as-you-go services for servers, storage, databases and much more.
- 04AzureMicrosoft Azure4Microsoft Azure is Microsoft's cloud computing platform, offering hundreds of on-demand services such as virtual machines, databases and AI models worldwide.
- 05Blue-Green Deployment5Blue-green deployment is a release strategy that uses two identical production environments and moves all traffic from the old version to the new one at once.
- 06Canary Deployment6A canary deployment releases a new software version to a small share of users first, checks its health, and then gradually rolls it out to everyone.
- 07CDNContent Delivery Network7A CDN is a network of servers spread around the world that stores copies of website content and delivers it to each user from the nearest location.
- 08Chaos Engineering8Chaos engineering is the practice of deliberately injecting failures into a system, such as crashing servers, to confirm that it keeps working as expected.
- 09CI/CDContinuous Integration / Continuous Delivery9CI/CD is a set of automated practices that build, test, and release code changes frequently, so software can be delivered to users quickly and safely.
- 10Cloud Computing10Cloud computing is the on-demand delivery of computing resources, such as servers, storage, and databases, over the internet with pay-as-you-go pricing.
- 11Cold Start11A cold start is the extra delay when a serverless platform must create a new function instance, start its runtime and run setup code before handling a request.
- 12Configuration Management12Configuration management is the practice of defining the desired state of servers and software in code and using tools to apply and keep it automatically.
- 13Container13A container is a lightweight, isolated package that bundles an application with its dependencies and runs it on the host's shared operating system kernel.
- 14Container Registry14A container registry is a storage and distribution service for container images, letting teams push built images and pull them onto any server that runs them.
- 15Continuous Delivery15Continuous delivery is the practice of keeping software ready to release at any time, with an automated pipeline building, testing and preparing every change.
- 16Continuous Integration16Continuous integration is the practice of merging code changes into a shared main branch at least daily, with an automated build and tests checking every merge.
- 17DevOpsDevelopment and Operations17DevOps is a set of practices and a culture that brings software development and IT operations together to deliver software faster and more reliably.
- 18Distributed Tracing18Distributed tracing is a technique that follows a single request as it travels through many services, recording how long each step took and where it failed.
- 19DNSDomain Name System19DNS is the internet's naming system that translates human-readable domain names like example.com into the numeric IP addresses computers use to connect.
- 20Docker20Docker is an open-source platform for packaging an application and everything it needs into a container that runs the same way on any machine.
- 21Docker Compose21Docker Compose is a tool for defining and running multi-container applications, such as a web server plus a database, from one YAML file with one command.
- 22Docker Image22A Docker image is a read-only, layered package of an application, its dependencies and settings, used as the template from which containers are started.
- 23Docker Swarm23Docker Swarm is the clustering mode built into Docker Engine: it joins several machines into one swarm and runs containers across them as replicated services.
- 24Edge Computing24Edge computing runs code and processes data close to where users or devices are, instead of in a distant central data center, to reduce latency.
- 25Environment Variable25An environment variable is a named value set outside a program, by the operating system or runtime, that the program reads to configure its behavior.
- 26Feature Flag26A feature flag is a switch in code that turns a feature on or off at runtime, letting teams deploy code without releasing it to every user at once.
- 27GitHub Actions27GitHub Actions is GitHub's built-in automation platform: YAML workflows in a repo run tests, builds and deployments on events like a push or pull request.
- 28GitOps28GitOps is a way of managing infrastructure and deployments where Git holds the desired state of a system and an automated agent keeps the live system in sync.
- 29Google CloudGoogle Cloud Platform29Google Cloud is Google's public cloud platform, offering compute, storage, data and AI services on the global infrastructure behind Google's own products.
- 30Grafana30Grafana is an open-source tool for building dashboards that turn metrics, logs and traces from many data sources into live charts and alerts in one place.
- 31Helm31Helm is the package manager for Kubernetes: it bundles an app's configuration files into a chart you can install, upgrade and roll back with one command.
- 32IaaSInfrastructure as a Service32IaaS (infrastructure as a service) is a cloud model where you rent virtual machines, storage and networks on demand and manage the OS and above yourself.
- 33Immutable Infrastructure33Immutable infrastructure is an approach where servers are never changed after deployment; every update replaces them with new, freshly built ones.
- 34Infrastructure as Code34Infrastructure as code is the practice of defining servers, networks, and other infrastructure in version-controlled files that tools apply automatically.
- 35Jenkins35Jenkins is an open-source automation server that builds, tests and deploys software through pipelines, and one of the oldest and most widely used CI/CD tools.
- 36kubectl36kubectl is the command-line tool for Kubernetes: it sends requests to a cluster's API server to deploy applications, inspect them and change them.
- 37Kubernetes37Kubernetes is an open-source system that automates deploying, scaling, and managing containerized applications across a cluster of machines.
- 38Kubernetes Operator38A Kubernetes operator is a custom controller that runs in the cluster and manages a complex application, such as a database, the way a human expert would.
- 39Linux39Linux is an open-source operating system kernel that powers most servers, cloud platforms, containers, and Android phones, usually packaged as a distribution.
- 40Load Balancer40A load balancer is a server or service that spreads incoming traffic across several backend servers so no single one is overloaded and the app stays available.
- 41Logging41Logging is the practice of recording timestamped messages about events in a running program, such as errors and requests, so people can investigate them later.
- 42Metrics42Metrics are numeric measurements of a system collected over time, such as request rate, error rate and CPU usage, used for dashboards, alerts and planning.
- 43Object Storage43Object storage is a way of storing data as whole objects, each with a unique key and metadata, in flat buckets that scale to huge numbers of files over HTTP.
- 44Observability44Observability is the ability to understand what is happening inside a running software system by collecting and analyzing its logs, metrics, and traces.
- 45OpenTelemetry45OpenTelemetry is an open standard and set of tools for collecting traces, metrics and logs from software and sending them to any monitoring backend.
- 46PaaSPlatform as a Service46PaaS (platform as a service) is a cloud model where you deploy your code and the provider runs everything under it: servers, operating systems and scaling.
- 47Pod47A pod is the smallest deployable unit in Kubernetes: one or more containers that share a network address and storage and are scheduled together on one node.
- 48Postmortem48A postmortem is a written review after an incident that explains what happened, why it happened, and what the team will change so it doesn't happen again.
- 49Prometheus49Prometheus is an open-source monitoring system that collects metrics from apps and servers, stores them as time series and alerts when values cross a limit.
- 50Pulumi50Pulumi is an open-source infrastructure-as-code tool that defines cloud resources in general-purpose languages such as TypeScript, Python, Go, C# or Java.
- 51Reverse Proxy51A reverse proxy is a server that sits in front of web servers, accepts client requests on their behalf, and forwards each request to the right backend server.
- 52Rollback52A rollback is the process of returning software to a previous, known-good version after a new deployment causes errors, outages, or other unexpected problems.
- 53SaaSSoftware as a Service53SaaS (software as a service) is software delivered over the internet as a subscription; users sign in while the provider runs, updates and secures it.
- 54Serverless54Serverless is a cloud model in which the provider runs your code on demand, manages all the servers, scales automatically, and bills only for actual use.
- 55Service Mesh55A service mesh is an infrastructure layer that manages traffic between microservices, adding encryption, retries, routing, and monitoring without code changes.
- 56Site Reliability Engineering56Site reliability engineering is a discipline that applies software engineering to operations, keeping services reliable with automation and measurable targets.
- 57SLAService Level Agreement57An SLA (service level agreement) is a provider's commitment to customers about the level of service, such as 99.9% uptime, and what happens if it isn't met.
- 58SLOService Level Objective58An SLO is a measurable reliability target for a service, such as 99.9% of requests succeeding over 30 days, that tells a team how reliable is reliable enough.
- 59Terraform59Terraform is an infrastructure-as-code tool: you describe cloud resources in configuration files, and one command creates or updates them to match.
- 60Virtual Machine60A virtual machine is a software-based computer that runs its own operating system on shared physical hardware, isolated from other machines on the same host.
- 61YAMLYAML Ain't Markup Language61YAML is a human-readable data format that uses indentation instead of brackets, widely used for configuration files in DevOps tools and CI/CD pipelines.