Digest #141: Kubernetes for Newbies, Terraform apply-before-merge, Tagging AWS Resources, eBPF Guide, and llamafile on AWS Lambda
Kubernetes resources for beginners, learn how Notion sped up browser performance, and explore essential tools for better observability, infrastructure management, and incident handling.
Welcome to this week’s edition of the DevOps Bulletin!
Discover the challenges in cloud engineering with "Dear AWS, please let me be a cloud engineer again." If you're new to Kubernetes, check out our beginner’s guide. Learn how Notion improved browser speed using WebAssembly and SQLite.
Explore improving Service Level Objectives in "The Reality of Adding Nines to Your SLOs," and stay ahead with the latest trends in "Your guide to observability engineering in 2024." Dive into infrastructure setup for large-scale models in "From bare metal to a 70B model: infrastructure set-up and scripts," and reflect on DevOps evolution in "A Eulogy for DevOps."
In tutorials, compare Terraform workflows, organize large Rust codebases, and use S3 as a container registry. Manage Kubernetes secrets, speed up log searches with ClickHouse, and learn eBPF basics.
Highlighted projects include "Tau" for scalable cloud platforms, "Atlas" for database schemas, and "Pongo" for combining MongoDB with Postgres. Create diagrams with "Terramaid," manage incidents with "Incidental," and generate changelogs with "git-cliff."
Newsworthy Stories
Stay informed with the latest news impacting the DevOps and SRE world:
Is it easier now to become an SRE?
This Reddit thread discusses the ease or difficulty of being an SRE over the past 5-10 years.
Tutorials of the week
Terraform apply-before-merge vs apply-after-merge: Discover the two main Terraform and OpenTofu workflows: apply-before-merge and apply-after-merge, and learn why apply-after-merge is likely the better choice.
How to Organize Large Rust Codebases: Simple rules to manage large Rust codebases and keep the complexity and technical debt out.
Using S3 as a Container Registry: You can use S3 as a container registry by exposing an S3 bucket via HTTP and uploading image files to specific paths, allowing you to docker pull from it.
Tagging AWS Resources: Effective AWS resource tagging with Terraform, with examples of default and resource-level tagging, and tips on using AWS Resource Groups and Tag Editor.
Visual EXPLAIN for MySQL: Research a slow query's performance problems on a simple visualization instead of trying to understand MySQL's cryptic output.
EKS Secret Management: Managing Kubernetes secrets with Golang, AWS Parameter Store, OIDC for EKS Pods, and Terraform, detailing the setup of init containers and IAM role configuration.
Terraform Module Management: Automate versioning and documentation using GitHub Actions, Semantic Releases, and Terraform Docs.
Securing AWS RDS with IAM: Using IAM Authentication, Terraform, and serverless functions, discussing fine-grained access control, integrating with Kubernetes, and best practices for token refresh and security.
Solving large logs with ClickHouse: Improving search performance from 60 seconds to 1-2 seconds by rewriting queries and using Bloom filter skip indices.
Mastering ECS Task Scheduling: Optimizing costs through minimum settings and Fargate Spot, with automated task stops outside business hours using Lambda and EventBridge.
PostgreSQL and UUID as primary key: How to use UUID as a primary key with PostgreSQL efficiently.
Using Mozilla's llamafile on AWS Lambda: Deploying Google's Gemma 2 9B model using Mozilla's llamafile on AWS Lambda.
Reverse Engineering eBPF Programs: The fundamentals of eBPF, its architecture, and key components, and demonstrates reverse engineering by dissecting a small eBPF rootkit.
Hosting Websites with Terraform: How to use AWS S3 and CloudFront to deploy static web content on AWS by Terraform.
Terraform Development Pipeline: The purpose of a development pipeline is to deploy with confidence and therefore at high frequencies.
Projects of the week
Highlighting cool DevOps projects to keep an eye on:
Tau is a framework for building low maintenance & highly scalable cloud computing platforms that software developers will love!
Atlas is a language-agnostic tool for managing and migrating database schemas using modern DevOps principles.
Pongo is a MongoDB on Postgres with strong consistency benefits.
Terramaid is a utility for creating Mermaid diagrams from Terraform configurations
Incidental is an open-source incident management platform integrating with Slack.
git-cliff can generate changelog files from the Git history by utilizing conventional commits as well as regex-powered custom parsers.