Archive · 2019 to 2026
Archive
September 2026
- AWS Cost Optimization, Part 2: Cutting the Bill by One-Third21 Sept 2026What was found and changed to reduce an AWS bill by about one-third: idle services and VMs, unused Elastic IPs, S3 bucket policies, fewer CloudFront distributions, a leaner staging environment and a local Ubuntu VM for testing.
- AWS
- Cost Explorer
- Amazon EC2
- Elastic IP
- AWS Cost Optimization, Part 1: Finding Where the Money Goes7 Sept 2026Build cost visibility before cutting anything: tagging, Cost Explorer, Data Exports with Athena, budgets and anomaly alerts, and scripts that find idle and orphaned resources.
- AWS
- AWS Cost Explorer
- AWS Data Exports
- Amazon Athena
August 2026
- On-Prem Platform, Part 2: Angular, Node.js, Presigned URLs, CDN, SMTP and Notifications17 Aug 2026Deploy the application layer on k3s: an Angular UI with runtime config, a Node.js API, direct-to-S3 uploads with presigned URLs, CDN delivery, email over SMTP and Kafka-driven notifications.
- DevOps
- Angular
- Node.js 24 LTS
- AWS SDK for JavaScript v3
- On-Prem Platform, Part 1: Ubuntu on WSL2, Docker, k3s and the Data Layer3 Aug 2026Build a local or on-premises platform on Windows with WSL2: systemd, networking, Docker, a k3s cluster, namespaces, and Kubernetes manifests for MySQL, MongoDB, Redis and Kafka.
- Kubernetes
- Ubuntu 24.04 LTS on WSL2
- Docker Engine
- k3s
February 2026
- Terraform: Remote State, Imports, Testing and a Safe CI Pipeline16 Feb 2026S3 remote state with native locking, bootstrapping the state bucket, import blocks, terraform test, static analysis and a GitHub Actions pipeline with OIDC and saved plans.
- DevOps
- Terraform 1.14
- S3 backend use_lockfile
- terraform test
- Terraform Basics: Workflow, Variables, Outputs and Modules2 Feb 2026A complete introduction to Terraform on AWS: how it works, project layout, providers, variables, locals, outputs, for_each, data sources, modules and environment files.
- DevOps
- Terraform 1.14
- AWS provider 6.x
- OpenTofu
January 2026
- GCP to AWS Migration: Connectivity, Data, Workloads and Cutover19 Jan 2026Executing a Google Cloud to AWS migration: the VPN, database replication with DMS, object copies, VM replication, moving GKE workloads to EKS, and a rehearsed cutover runbook.
- AWS
- AWS DMS
- AWS DataSync
- AWS Application Migration Service
- GCP to AWS Migration: Assessment, Service Mapping and the Landing Zone5 Jan 2026How to plan a move from Google Cloud to AWS: inventory, dependency mapping, service equivalents, network design, identity, waves and success criteria.
- AWS
- Google Cloud
- AWS Organizations
- IAM Identity Center
November 2025
- Self-Hosted MongoDB: Backups, Monitoring and Upgrades17 Nov 2025Backups you can actually restore, the metrics and alerts that matter, and a safe rolling upgrade procedure for a MongoDB 8.0 replica set.
- DevOps
- MongoDB 8.0
- mongodump
- Percona mongodb_exporter
- Self-Hosted MongoDB 8.0: A Production Replica Set3 Nov 2025Design, prepare and build a three-member MongoDB 8.0 replica set on Ubuntu 24.04, with TLS, keyfile authentication, users and a failover test.
- DevOps
- MongoDB 8.0
- Ubuntu 24.04 LTS
- mongosh 2.x
September 2025
- Self-Hosted Kafka: Security, Monitoring and Day-Two Operations15 Sept 2025Encrypt and authenticate the cluster, watch the right metrics, and plan upgrades.
- DevOps
- Apache Kafka 4.0
- SASL/SCRAM
- TLS
- Self-Hosted Kafka 4: A Three-Node KRaft Cluster1 Sept 2025Apache Kafka 4.0 has no ZooKeeper at all. Build a three-node cluster with combined controller and broker roles.
- DevOps
- Apache Kafka 4.0
- KRaft
- OpenJDK 17
August 2025
- GCP Services: Cloud SQL, Pub/Sub and Cloud Monitoring18 Aug 2025A managed database, a message bus and alerts, with the gcloud commands to start.
- GCP
- Cloud SQL
- Pub/Sub
- Cloud Monitoring
- GCP Services: Cloud Run and Artifact Registry4 Aug 2025Deploy a container with no servers to manage, from a private registry.
- GCP
- Cloud Run
- Artifact Registry
- Cloud Build
July 2025
- GCP Basics: Compute Engine, VPC and Cloud Storage21 Jul 2025Launch a VM in a custom network and use a bucket, with the differences from AWS.
- GCP
- Compute Engine
- VPC
- Cloud Storage
- GCP Basics: Projects, IAM and the gcloud CLI7 Jul 2025How Google Cloud organises resources and access, with a first look at the command line.
- GCP
- Google Cloud
- gcloud CLI
- Cloud IAM
April 2025
- On-Prem Platform: Databases, TLS and Zabbix21 Apr 2025Deploy MongoDB, MySQL, PostgreSQL and Redis with Helm, secure ingress, and monitor with Zabbix.
- Kubernetes
- MicroK8s 1.32
- Helm 3.17
- Zabbix 7.0 LTS
- On-Prem Platform: Design and Node Setup7 Apr 2025Plan an on-premises environment on MicroK8s: layout, namespaces, storage and prerequisites.
- Kubernetes
- MicroK8s 1.32
- Ubuntu 24.04 LTS
- Docker 28
February 2025
- Jenkins: Build an Angular UI and Deploy It to S3 in Every Region17 Feb 2025One build, then a parallel deploy to regional buckets with region-specific API URLs.
- DevOps
- Jenkins 2.479 LTS
- Angular 19
- Amazon S3
- Angular for Many Regions: Build Once, Configure at Runtime3 Feb 2025Avoid one build per region by loading the API URL from a config file at startup.
- DevOps
- Angular 19
- Node.js 22 LTS
- Runtime configuration
January 2025
- Azure to AWS Migration: Connectivity, Data and Cutover20 Jan 2025Connect the clouds, replicate servers and data, then switch traffic with a rehearsed plan.
- AWS
- AWS Application Migration Service
- AWS DMS
- AWS DataSync
- Azure to AWS Migration: Assessment and Service Mapping6 Jan 2025Plan a migration before moving anything: inventory, mapping, dependencies and a landing zone.
- AWS
- Microsoft Azure
- AWS
- AWS Migration Hub
December 2024
- LocalStack in Tests: Terraform and CI16 Dec 2024Apply Terraform to LocalStack and run integration tests in a pipeline.
- AWS
- LocalStack 4.0
- tflocal
- Terraform 1.10
- LocalStack: AWS Services on Your Laptop2 Dec 2024Run LocalStack in Docker and use the AWS CLI against it with awslocal.
- AWS
- LocalStack 4.0
- awslocal
- Docker 27
November 2024
- MicroK8s: Multi-Node, Ingress and TLS18 Nov 2024Join nodes into a high-availability cluster and publish an app with HTTPS.
- Kubernetes
- MicroK8s 1.31
- Ingress NGINX
- cert-manager
- MicroK8s: A Lightweight Kubernetes Cluster with Snap4 Nov 2024Install MicroK8s 1.31 on Ubuntu 24.04 and enable the add-ons you need.
- Kubernetes
- MicroK8s 1.31
- Kubernetes 1.31
- Ubuntu 24.04 LTS
September 2024
- PostgreSQL 17 Is Released30 Sept 2024PostgreSQL 17 arrived on 26 September 2024. The changes that matter to operators.
- DevOps
- PostgreSQL 17.0
- pg_basebackup
- pg_upgrade
- PostgreSQL 16: Install, Users and Remote Access2 Sept 2024Install from the official PGDG repository and configure access carefully.
- DevOps
- PostgreSQL 16.4
- Ubuntu 22.04 LTS
- pg_hba.conf
August 2024
- MongoDB: Replica Sets and Backups19 Aug 2024Three nodes for high availability, and mongodump for logical backups.
- DevOps
- MongoDB 7.0
- Replica set
- mongodump
- MongoDB 7.0: Install and Enable Authentication5 Aug 2024Install MongoDB Community on Ubuntu 22.04, create an admin and an application user.
- DevOps
- MongoDB 7.0
- mongosh 2.2
- Ubuntu 22.04 LTS
June 2024
- Kafka: Consumer Groups, Replication and Retention17 Jun 2024How consumers share work, how data survives a broker failure, and the settings that matter.
- DevOps
- Apache Kafka 3.7
- Consumer groups
- Replication
- Apache Kafka 3.7: A Single Broker with KRaft3 Jun 2024Run Kafka without ZooKeeper using KRaft mode, and create a topic.
- DevOps
- Apache Kafka 3.7
- KRaft
- OpenJDK 17
April 2024
- Redis 7.2: Install, Persistence and Security15 Apr 2024Install Redis on Ubuntu 22.04 and configure persistence and access control properly.
- DevOps
- Redis 7.2
- Ubuntu 22.04 LTS
- redis-cli
- Redis Changes Its Licence: What Is Valkey?1 Apr 2024On 20 March 2024 Redis moved to a source-available licence, and the Linux Foundation announced Valkey.
- DevOps
- Redis 7.2
- Redis 7.4 licence
- Valkey
March 2024
- SonarQube: Scanning and Quality Gates in CI18 Mar 2024Run sonar-scanner from a pipeline and fail the build when the quality gate fails.
- DevOps
- SonarQube 10.4
- sonar-scanner 5.0
- Jenkins 2.440 LTS
- SonarQube 10.4: Install with Docker Compose4 Mar 2024Run SonarQube Community Edition with PostgreSQL, including the kernel settings it needs.
- DevOps
- SonarQube 10.4 Community
- PostgreSQL 15
- Docker Compose 2.24
February 2024
- GitLab CI/CD: Pipelines and Runners19 Feb 2024Register a Docker runner and write a .gitlab-ci.yml with stages, cache and environments.
- DevOps
- GitLab 16.9
- GitLab Runner 16.9
- Docker 25.0
- Installing GitLab CE on Ubuntu 22.045 Feb 2024A self-managed GitLab using the Omnibus package, with HTTPS and backups.
- DevOps
- GitLab CE 16.8
- Ubuntu 22.04 LTS
January 2024
- Azure Setup: Terraform azurerm and Bicep22 Jan 2024Two ways to describe Azure infrastructure as code, with a note on the Terraform licence change.
- Azure
- Terraform 1.7
- azurerm 3.x
- Bicep
- Azure Setup: Azure CLI, Login and a First Deployment8 Jan 2024Install the Azure CLI on Ubuntu, sign in, and create a resource group and VM from the shell.
- Azure
- Azure CLI 2.56
- Ubuntu 22.04 LTS
December 2023
- Azure Basics: Virtual Networks and Virtual Machines18 Dec 2023Create a VNet, a subnet and a Linux VM, and understand network security groups.
- Azure
- Azure Virtual Network
- Azure VM
- NSG
- Azure Basics: Tenants, Subscriptions and Resource Groups4 Dec 2023How Azure organises resources and access, for someone who knows AWS.
- Azure
- Microsoft Azure
- Microsoft Entra ID
- Azure RBAC
September 2023
- CloudFormation: Change Sets, Drift and StackSets18 Sept 2023Preview changes before applying them, detect manual edits and roll out to many accounts.
- AWS
- AWS CloudFormation
- StackSets
- Drift detection
- CloudFormation: Template Anatomy and a VPC Example4 Sept 2023Parameters, resources, outputs and intrinsic functions in one working template.
- AWS
- AWS CloudFormation
- cfn-lint 0.79
August 2023
- Ansible Dynamic Inventory for AWS EC221 Aug 2023Let Ansible discover instances by tag instead of maintaining an IP list.
- DevOps
- ansible-core 2.15
- amazon.aws collection
- boto3
- Ansible: Roles, Variables and Vault7 Aug 2023Organise playbooks into roles and keep secrets encrypted with Ansible Vault.
- DevOps
- ansible-core 2.15
- Ansible 8
- Ubuntu 22.04 LTS
June 2023
- Grafana 10: Alerting and Dashboards as Code19 Jun 2023Grafana 10.0 was released on 12 June 2023. Provision alerts and dashboards from files.
- DevOps
- Grafana 10.0
- Grafana Alerting
- Provisioning
- Installing Grafana 9.5 and Adding Data Sources5 Jun 2023Install Grafana OSS on Ubuntu, then connect Prometheus and CloudWatch.
- DevOps
- Grafana OSS 9.5
- Prometheus 2.44
- Ubuntu 22.04 LTS
May 2023
- Prisma Cloud: Image Scanning and IaC Checks22 May 2023Scan container images with twistcli and catch Terraform or CloudFormation problems before deploy.
- DevOps
- Prisma Cloud Compute
- twistcli
- Checkov 2.3
- Prisma Cloud: Onboarding an AWS Account8 May 2023Connect an AWS account to Prisma Cloud for posture management and compliance checks.
- DevOps
- Prisma Cloud
- CSPM
- CloudFormation
April 2023
- Jenkins: Agents, Credentials and Configuration as Code17 Apr 2023Run builds on separate agents and keep Jenkins configuration in Git.
- DevOps
- Jenkins 2.387 LTS
- Configuration as Code plugin
- Docker 23.0
- Installing Jenkins LTS on Ubuntu 22.043 Apr 2023Install Jenkins 2.387 LTS with Java 17 and do the first-run hardening.
- DevOps
- Jenkins 2.387 LTS
- OpenJDK 17
- Ubuntu 22.04 LTS
March 2023
- New Relic: NRQL Dashboards and Alerts20 Mar 2023Query your telemetry with NRQL and turn a query into an alert condition.
- DevOps
- New Relic One
- NRQL
- New Relic: Infrastructure and APM Agents6 Mar 2023Install the infrastructure agent on a Linux host and the Node.js APM agent in an application.
- DevOps
- New Relic One
- Infrastructure agent
- Node.js agent
February 2023
- Bitbucket Pipelines: Build and Push an Image20 Feb 2023A bitbucket-pipelines.yml that tests every pull request and builds a Docker image on main.
- DevOps
- Bitbucket Pipelines
- Docker 23.0
- Node.js 18
- Bitbucket Cloud: Repositories, Pull Requests and Branch Rules6 Feb 2023Set up a Bitbucket workspace so changes reach main only through review.
- DevOps
- Bitbucket Cloud
- Git 2.39
January 2023
- S3 Now Encrypts New Objects by Default23 Jan 2023Since 5 January 2023 every new S3 object is encrypted at rest. What this means for your buckets.
- AWS
- Amazon S3
- SSE-S3
- AWS KMS
- Measuring DevOps with the Four Key Metrics9 Jan 2023Deployment frequency, lead time, change failure rate and time to restore.
- DevOps
- DORA metrics
- GitHub
- CloudWatch
December 2022
- Secrets Manager and KMS19 Dec 2022Store credentials safely, rotate them, and control the encryption keys behind them.
- AWS
- AWS Secrets Manager
- AWS KMS
- AWS CLI 2.9
- A Security Baseline for a New AWS Account5 Dec 2022Turn on the services that record activity and flag problems, in every account.
- AWS
- AWS CloudTrail
- Amazon GuardDuty
- AWS Config
November 2022
- New AWS Region: Hyderabad (ap-south-2)28 Nov 2022AWS opened a second region in India on 22 November 2022. What changes and what does not.
- AWS
- AWS Region ap-south-2
- AWS Region ap-south-1
- AWS CLI 2.9
- Running Containers on ECS with Fargate7 Nov 2022Deploy a container behind a load balancer without managing servers.
- AWS
- Amazon ECS
- AWS Fargate
- Amazon ECR
October 2022
- CloudFormation and the AWS CDK17 Oct 2022The AWS-native route to infrastructure as code: templates, or real programming languages with CDK v2.
- DevOps
- AWS CloudFormation
- AWS CDK v2
- TypeScript
- RDS: Multi-AZ, Backups and Restores3 Oct 2022Run a relational database with failover and recover to a point in time.
- AWS
- Amazon RDS
- PostgreSQL 14
- MySQL 8.0
September 2022
- SQS, SNS and EventBridge: Which to Use19 Sept 2022Three messaging services that decouple parts of a system, and how they differ.
- AWS
- Amazon SQS
- Amazon SNS
- Amazon EventBridge
- DynamoDB Basics5 Sept 2022Tables, keys and capacity modes, and why you design for your queries first.
- AWS
- Amazon DynamoDB
- AWS CLI 2.7
- Region ap-south-1
August 2022
- AWS SSO Is Now IAM Identity Center15 Aug 2022Single sign-on across accounts, with short-lived credentials instead of IAM users and keys.
- AWS
- IAM Identity Center
- AWS Organizations
- AWS CLI 2.7
- Ansible: Configure Servers Without Logging In1 Aug 2022An inventory, a playbook and an idempotent run, using ansible-core 2.13.
- DevOps
- ansible-core 2.13
- Python 3.10
- Ubuntu 22.04 LTS
July 2022
- Terraform Remote State and Locking on AWS18 Jul 2022Store state in S3 with DynamoDB locking so a team can work safely.
- DevOps
- Terraform 1.2
- Amazon S3
- Amazon DynamoDB
- Terraform: Infrastructure as Code Basics4 Jul 2022Write, plan and apply a small AWS resource with Terraform 1.2.
- DevOps
- Terraform 1.2
- AWS provider 4.x
- Region ap-south-1
June 2022
- Lambda Function URLs20 Jun 2022Give a Lambda function an HTTPS endpoint without API Gateway (launched April 2022).
- AWS
- AWS Lambda
- Python 3.9
- AWS CLI 2.7
- Jenkins: A Declarative Pipeline6 Jun 2022Describe the build in a Jenkinsfile kept next to the code.
- DevOps
- Jenkins 2.346 LTS
- Java 11
- Pipeline plugin
May 2022
- Continuous Integration with GitHub Actions16 May 2022A first pipeline that tests every push and every pull request.
- DevOps
- GitHub Actions
- actions/checkout v3
- Node.js 16
- A Git Workflow That Teams Can Follow2 May 2022Short-lived branches, small pull requests and the modern switch and restore commands.
- DevOps
- Git 2.36
- GitHub
April 2022
- Getting Ready for Dockershim Removal in 1.2418 Apr 2022Kubernetes 1.24, due in May 2022, removes dockershim. Check your nodes and your pipelines.
- Kubernetes
- Kubernetes 1.23
- containerd 1.6
- Kubernetes 1.24
- Back Up etcd Before You Upgrade4 Apr 2022Snapshot cluster state, then upgrade a kubeadm cluster one minor version at a time.
- Kubernetes
- kubeadm 1.23
- etcd 3.5
- Kubernetes 1.23
March 2022
- Troubleshooting Pods: A Short Checklist21 Mar 2022From Pending to CrashLoopBackOff: the commands to run, in order.
- Kubernetes
- Kubernetes 1.23
- kubectl 1.23
- A Managed Cluster on Amazon EKS7 Mar 2022Create an EKS cluster and managed node group with eksctl.
- Kubernetes
- Amazon EKS 1.21
- eksctl 0.8x
- Region ap-south-1
February 2022
- Monitoring a Cluster with kube-prometheus-stack21 Feb 2022One Helm chart for Prometheus, Alertmanager, Grafana and ready-made Kubernetes dashboards.
- Kubernetes
- kube-prometheus-stack
- Prometheus Operator
- Grafana 8
- GitOps with Argo CD7 Feb 2022Let a controller keep the cluster in sync with a Git repository.
- Kubernetes
- Argo CD 2.2
- Kubernetes 1.23
- Git
January 2022
- Free TLS Certificates with cert-manager24 Jan 2022Issue and renew Let's Encrypt certificates automatically for your ingresses.
- Kubernetes
- cert-manager 1.6
- Let's Encrypt
- Kubernetes 1.23
- StatefulSets for Databases and Queues10 Jan 2022Stable names and per-pod storage for software that needs identity.
- Kubernetes
- Kubernetes 1.23
- StatefulSet
- PostgreSQL 14
December 2021
- Log4Shell and Your Containers20 Dec 2021CVE-2021-44228 affects Java applications using Log4j 2. How to find and fix it across images.
- Kubernetes
- Log4j 2.17.0
- CVE-2021-44228
- Trivy
- Kubernetes 1.23: What Changed13 Dec 2021Release 1.23 was published on 7 December 2021. The features that matter in daily use.
- Kubernetes
- Kubernetes 1.23
- Pod Security Admission beta
- HPA autoscaling/v2
November 2021
- Network Policies: Default Deny15 Nov 2021By default every pod can reach every other pod. Restrict that with NetworkPolicy.
- Kubernetes
- Kubernetes 1.22
- NetworkPolicy
- Calico 3.20
- RBAC and Service Accounts1 Nov 2021Grant people and workloads only the Kubernetes permissions they need.
- Kubernetes
- Kubernetes 1.22
- rbac.authorization.k8s.io/v1
October 2021
- Autoscaling Pods with the HPA18 Oct 2021Install metrics-server and scale a Deployment on CPU use.
- Kubernetes
- Kubernetes 1.22
- metrics-server 0.5
- autoscaling/v1
- Helm: Packaging and Installing Applications4 Oct 2021Install, configure, upgrade and roll back an application using Helm 3 charts.
- Kubernetes
- Helm 3
- Kubernetes 1.22
September 2021
- IngressClass and ingress-nginx 1.020 Sept 2021ingress-nginx 1.0 requires the networking.k8s.io/v1 API and works through IngressClass.
- Kubernetes
- ingress-nginx 1.0
- Kubernetes 1.22
- IngressClass
- Persistent Volumes and Claims6 Sept 2021Give pods storage that survives restarts, using PVCs and storage classes.
- Kubernetes
- Kubernetes 1.22
- CSI
- StorageClass
August 2021
- Ingress: One Entry Point for Many Services23 Aug 2021Route HTTP hosts and paths to services with an ingress controller.
- Kubernetes
- Kubernetes 1.22
- Ingress networking.k8s.io/v1
- ingress-nginx 0.49
- Kubernetes 1.22: Removed APIs to Fix Before Upgrading9 Aug 2021Release 1.22 (4 August 2021) removes several beta APIs. Find and migrate them.
- Kubernetes
- Kubernetes 1.22
- kubectl-convert
- pluto
July 2021
- Health Probes and Resource Requests19 Jul 2021Tell Kubernetes when a pod is ready and how much CPU and memory it needs.
- Kubernetes
- Kubernetes 1.21
- ConfigMaps and Secrets5 Jul 2021Keep configuration out of images, and know what a Secret does and does not protect.
- Kubernetes
- Kubernetes 1.21
- Immutable ConfigMaps GA
June 2021
- Services and Cluster DNS21 Jun 2021Give pods a stable address with ClusterIP, NodePort and LoadBalancer services.
- Kubernetes
- Kubernetes 1.21
- CoreDNS 1.8
- Pods and Deployments7 Jun 2021Why you run Deployments rather than bare pods, with rollouts and rollbacks.
- Kubernetes
- Kubernetes 1.21
- apps/v1 Deployment
May 2021
- A Local Cluster in a Minute with kind17 May 2021Run Kubernetes 1.21 inside Docker on your laptop, for learning and testing.
- Kubernetes
- kind 0.11
- Kubernetes 1.21
- kubectl 1.21
- Kubernetes Architecture in One Page3 May 2021The control plane, the nodes and the objects you will meet, using the current release 1.21.
- Kubernetes
- Kubernetes 1.21
- containerd
- etcd 3.4
April 2021
- Cost Visibility: Budgets, Cost Explorer and Tags19 Apr 2021See where the money goes, and get a warning before the bill surprises you.
- AWS
- AWS Budgets
- AWS Cost Explorer
- Cost Anomaly Detection
- IAM Roles for EC2: No Keys on Servers5 Apr 2021Let an application call S3 using temporary credentials from an instance role.
- AWS
- AWS IAM
- Instance profile
- AWS CLI 2.1
March 2021
- Serving Traffic: ALB and Route 5322 Mar 2021Put an Application Load Balancer in front of two instances and point a domain at it.
- AWS
- Application Load Balancer
- Amazon Route 53
- AWS Certificate Manager
- Prometheus and Grafana with Docker Compose8 Mar 2021Run Prometheus, node_exporter and Grafana together and graph a host.
- Docker
- Prometheus 2.25
- node_exporter 1.1
- Grafana 7.4
February 2021
- CloudWatch Container Insights for ECS22 Feb 2021Per-service CPU, memory and network graphs for containers, with a single setting.
- AWS
- Amazon ECS
- CloudWatch Container Insights
- AWS Fargate
- Docker Logging and Resource Limits8 Feb 2021Stop container logs filling the disk, and stop one container taking the whole host.
- Docker
- Docker Engine 20.10.3
- json-file log driver
January 2021
- VPC Basics: Subnets, Routes and NAT25 Jan 2021The network you launch EC2 into, and how public and private subnets differ.
- AWS
- Amazon VPC
- Internet Gateway
- NAT Gateway
- Scanning Images for Vulnerabilities with Trivy11 Jan 2021Find known CVEs in an image before it is deployed, and fail the build on serious ones.
- Docker
- Trivy 0.14
- Docker Engine 20.10.2
- alpine:3.13
December 2020
- re:Invent 2020: Changes Worth Knowing28 Dec 2020Four announcements from this year's re:Invent that change everyday decisions on AWS.
- AWS
- Amazon S3
- Amazon EBS gp3
- AWS Lambda
- Docker 20.10 and the Kubernetes dockershim Notice14 Dec 2020Docker Engine 20.10 was released on 8 December 2020. Kubernetes also announced the deprecation of dockershim.
- Docker
- Docker Engine 20.10
- Kubernetes 1.20
- containerd
November 2020
- S3 Basics: Buckets, Versioning and Public Access16 Nov 2020Create a bucket safely: block public access, turn on versioning and encryption.
- AWS
- Amazon S3
- AWS CLI 2.0
- Region ap-south-1
- Docker Hub Pull Limits Start Today2 Nov 2020From 2 November 2020 Docker Hub limits image pulls. What it means for CI and servers.
- Docker
- Docker Hub
- Docker Engine 19.03.13
October 2020
- CloudWatch Logs and Logs Insights19 Oct 2020Ship application logs to CloudWatch and query them without logging in to servers.
- AWS
- CloudWatch Logs
- CloudWatch Logs Insights
- CloudWatch Agent
- Multi-Stage Builds and BuildKit5 Oct 2020Keep compilers out of the final image and build faster with BuildKit.
- Docker
- Docker Engine 19.03.13
- BuildKit
- golang:1.15
September 2020
- CloudWatch Agent: Memory and Disk Metrics21 Sept 2020Install the unified CloudWatch agent on EC2 to report what the default metrics miss.
- AWS
- CloudWatch Agent
- Amazon Linux 2
- IAM role CloudWatchAgentServerPolicy
- Docker Compose for Multi-Container Apps7 Sept 2020Describe a web app and its database in one file and start both with a single command.
- Docker
- Docker Compose 1.26
- Docker Engine 19.03.12
- Redis 6
August 2020
- CloudWatch Metrics and Alarms17 Aug 2020What EC2 reports by default, what it does not, and how to alarm on CPU.
- AWS
- Amazon CloudWatch
- Amazon EC2
- Amazon SNS
- Docker Volumes and Networks3 Aug 2020Keep data after a container is removed, and let containers talk to each other by name.
- Docker
- Docker Engine 19.03.12
- PostgreSQL 12
July 2020
- Launching Your First EC2 Instance20 Jul 2020Pick an AMI and instance type, create a key pair, restrict the security group and connect.
- AWS
- Amazon EC2
- Amazon Linux 2
- t2.micro
- Installing and Configuring AWS CLI v26 Jul 2020AWS CLI version 2 became generally available in February 2020. Install it and set up a named profile.
- AWS
- AWS CLI 2.0
- Ubuntu 20.04 LTS
June 2020
- First Steps in a New AWS Account15 Jun 2020Protect the root user, create an admin IAM user and set a billing alarm before launching anything.
- AWS
- AWS IAM
- AWS Billing
- Region ap-south-1 Mumbai
- Writing Your First Dockerfile1 Jun 2020Build an image for a small Node.js app and keep the layers cache-friendly.
- Docker
- Docker Engine 19.03.9
- Node.js 12 LTS
- node:12-alpine
May 2020
- Images and Containers: The First Ten Commands18 May 2020The difference between an image and a container, and the commands you will use every day.
- Docker
- Docker Engine 19.03.9
- Docker Hub
- Installing Docker on Ubuntu 20.044 May 2020Install Docker Engine from the official repository and run it without sudo.
- Docker
- Ubuntu 20.04 LTS
- Docker Engine 19.03.8
April 2020
- Ubuntu 20.04 LTS Is Out: What Changed27 Apr 2020Ubuntu 20.04 "Focal Fossa" was released on 23 April 2020. The versions that matter to a server administrator.
- Linux
- Ubuntu 20.04 LTS
- Linux kernel 5.4
- systemd 245
- Quality of Life: ~/.ssh/config and tmux6 Apr 2020Short names for servers, and sessions that survive a dropped connection.
- Linux
- Ubuntu 18.04.4 LTS
- OpenSSH 7.6
- tmux 2.6
March 2020
- Debugging with strace, lsof and tcpdump16 Mar 2020Three tools that show what a misbehaving process is actually doing.
- Linux
- Ubuntu 18.04.4 LTS
- strace 4.21
- lsof 4.89
- SELinux and AppArmor in Plain Terms2 Mar 2020Mandatory access control: what each system does, and why you should not just switch it off.
- Linux
- CentOS 7.7
- SELinux
- Ubuntu 18.04.4 LTS
February 2020
- Updates, Kernels and Livepatch17 Feb 2020Keep a server patched without surprises, and know which kernel you are really running.
- Linux
- Ubuntu 18.04.4 LTS
- Linux kernel 5.3 HWE
- unattended-upgrades
- Performance Triage: Load, CPU, Memory and Disk3 Feb 2020A short order of checks that finds the bottleneck on a slow server.
- Linux
- Ubuntu 18.04.3 LTS
- sysstat 11.6
- procps-ng 3.3.12
January 2020
- LVM: Growing a Volume Without Downtime20 Jan 2020Physical volumes, volume groups and logical volumes, and how to extend a full filesystem online.
- Linux
- Ubuntu 18.04.3 LTS
- LVM2 2.02
- ext4
- Python 2 Reaches End of Life6 Jan 2020Python 2 stopped being maintained on 1 January 2020. What that means for the scripts on your Linux servers.
- Linux
- Ubuntu 18.04.3 LTS
- Python 3.6
- CentOS 8.1
December 2019
- Backups with rsync and tar16 Dec 2019A simple, restorable backup routine, and why a backup you have not restored is not yet a backup.
- Linux
- Ubuntu 18.04.3 LTS
- rsync 3.1
- GNU tar 1.29
- Host Firewalls: ufw and firewalld2 Dec 2019Allow only the ports you intend to serve, on Ubuntu and on CentOS.
- Linux
- Ubuntu 18.04.3 LTS
- ufw 0.36
- CentOS 7.7
November 2019
- Logs: /var/log, journalctl and logrotate18 Nov 2019Where to look first when something breaks, and how to stop logs filling the disk.
- Linux
- Ubuntu 18.04.3 LTS
- rsyslog 8.32
- logrotate 3.11
- Scheduling Jobs: cron and systemd Timers4 Nov 2019Run tasks on a schedule, and learn why jobs that work in a terminal fail in cron.
- Linux
- Ubuntu 18.04.3 LTS
- cron 3.0
- systemd 237
October 2019
- Shell Scripting Basics21 Oct 2019Variables, conditions, loops and exit codes, with the three lines every script should start with.
- Linux
- Ubuntu 18.04.3 LTS
- bash 4.4
- SSH Keys and a Safer sshd7 Oct 2019Replace passwords with keys and switch off the risky defaults.
- Linux
- Ubuntu 18.04.3 LTS
- OpenSSH 7.6
- CentOS 7.7
September 2019
- Networking Basics: ip, ss, dig and Netplan16 Sept 2019Inspect addresses, routes, ports and DNS from the command line.
- Linux
- Ubuntu 18.04.3 LTS
- netplan
- iproute2 4.15
- Managing Services with systemd2 Sept 2019Start, stop and enable services, read their logs, and write a simple unit file.
- Linux
- Ubuntu 18.04.3 LTS
- systemd 237
- CentOS 7.7
August 2019
- Disks and Mounts: lsblk, fdisk, mkfs and fstab19 Aug 2019Add a new disk, put a filesystem on it and mount it permanently.
- Linux
- Ubuntu 18.04.3 LTS
- util-linux 2.31
- ext4
- Text Processing: grep, sed, awk and Pipes5 Aug 2019Chain small tools together to answer questions about logs and configuration files.
- Linux
- Ubuntu 18.04.2 LTS
- GNU grep 3.1
- GNU awk 4.1
July 2019
- Processes: ps, top and Signals15 Jul 2019See what is running, find what is eating the CPU, and stop a process the right way.
- Linux
- Ubuntu 18.04.2 LTS
- procps-ng 3.3.12
- Installing Software: apt on Ubuntu, yum on CentOS1 Jul 2019The two package managers you will meet most, side by side.
- Linux
- Ubuntu 18.04.2 LTS
- apt 1.6
- CentOS 7.6
June 2019
- Reading and Setting File Permissions17 Jun 2019What rwxr-xr-x means, how chmod and chown change it, and what umask does to new files.
- Linux
- Ubuntu 18.04.2 LTS
- coreutils 8.28
- Users, Groups and sudo3 Jun 2019Create users, give them the access they need, and avoid logging in as root.
- Linux
- Ubuntu 18.04.2 LTS
- sudo 1.8.21
May 2019
- Moving Around the Shell: ls, cd, find and Friends20 May 2019The handful of commands that cover most daily navigation, with the bash 4.4 shortcuts worth learning first.
- Linux
- Ubuntu 18.04.2 LTS
- bash 4.4
- Where Things Live: The Linux Filesystem Hierarchy6 May 2019A map of the directories you meet on every Linux server, and what belongs in each.
- Linux
- Ubuntu 18.04.2 LTS
- Linux kernel 4.15
- CentOS 7.6