DevOps&SRE Library – Telegram
DevOps&SRE Library
18.4K subscribers
460 photos
3 videos
2 files
5K links
Библиотека статей по теме DevOps и SRE.

Реклама: @ostinostin
Контент: @mxssl

РКН: https://www.gosuslugi.ru/snet/67704b536aa9672b963777b3
Download Telegram
BPFAgent: eBPF for Monitoring at DoorDash

As DoorDash experienced rapid growth over the last few years, we began to see the limits of our traditional methods of monitoring. Metrics, logs, and traces provide vital information about our service ecosystem. But these signals almost entirely rely on application-level instrumentation, which can leave gaps or conflicting semantics across different systems. We decided to seek potential solutions that could provide a more complete and unified picture of our networking topology.

One of these solutions has been monitoring with eBPF, which allows developers to write programs that are injected directly into the kernel and can trace kernel operations. These programs, designed to provide lightweight access to most components of the kernel, are sandboxed and validated for safety by the kernel before execution. DoorDash was particularly interested in tracing network traffic via hooks called kprobes (kernel dynamic tracing) and tracepoints. With these hooks, we can intercept and understand TCP and UDP connections across our multiple Kubernetes clusters.

By building at the kernel level, we can monitor network traffic at the infrastructure level, which gives us new insights into DoorDash’s backend ecosystem that’s independent of the service workflow.

To run these eBPF probes, we have developed a Golang application called BPFAgent, which we run as a daemonset in all of our Kubernetes clusters. Here we will take a look at how we built BPFAgent, the process of building and maintaining its probes, and how various DoorDash teams have used the data collected.


https://doordash.engineering/2023/08/15/bpfagent-ebpf-for-monitoring-at-doordash
Terraform - Understanding Count and For_Each Loops

https://dev.to/pwd9000/terraform-understanding-count-and-foreach-loops-c6i
symphony

Symphony is a framework and set of patterns and best practices for developing, testing, and deploying infrastructure on Azure using Infrastructure as Code (IAC.) It includes modern DevOps practices for IAC such as Main and Pull Request workflows, IaC Code Validation & Linting, Automated Testing, Security Scanning, Multi-environment deployments, modules dependencies and more.


https://github.com/microsoft/symphony
mlinfra

mlinfra is the swiss army knife for deploying scalable MLOps infrastructure. It aims to make MLOps infrastructure deployment easy and accessible to all ML teams by liberating IaC logic for creating MLOps stacks which is usually tied to other frameworks.


https://github.com/mlinfra-io/mlinfra
Presenting to Engineering Leadership

A 5 slide formula with some advice.


https://hross.substack.com/p/presenting-to-engineering-leadership
It’s always TCP_NODELAY. Every damn time.

https://brooker.co.za/blog/2024/05/09/nagle.html
When Kubernetes and Go don't work well together

Go is not aware of the limits set for its container, causing some issues not easy to track. This is a story about how I stumbled into one of them.


https://lalatron.hashnode.dev/when-kubernetes-and-go-dont-work-well-together
asdf

asdf is a CLI tool that can manage multiple language runtime versions on a per-project basis. It is like gvm, nvm, rbenv & pyenv (and more) all in one! Simply install your language's plugin!


https://github.com/asdf-vm/asdf
superfile

Pretty fancy and modern terminal file manager


https://github.com/yorukot/superfile
openpanel

Openpanel is a simple analytics tool for logging events on web, apps and backend.


https://github.com/Openpanel-dev/openpanel
reverst

Reverst is a (load-balanced) reverse-tunnel server and Go server-client library built on QUIC and HTTP/3.


https://github.com/flipt-io/reverst
Kubernetes EOL: Understanding the K8s Release Cycle and How to Prepare for EOL

https://komodor.com/learn/kubernetes-eol-understanding-the-k8s-release-cycle-and-how-to-prepare-for-eol
Running JVM Applications on Kubernetes: Beyond java -jar

Discover some important tips about running JVM applications in containerized environments orchestrated by Kubernetes


https://medium.com/codex/running-jvm-applications-on-kubernetes-beyond-java-jar-a095949f3e34
A Tale of Two VLANS

Splitting service traffic on-prem with MetalLB


https://blog.miraco.la/a-tale-of-two-vlans
Progressive Delivery for Stateful Services Using Argo Rollouts

https://codefresh.io/blog/progressive-delivery-for-stateful-services-using-argo-rollouts
Forwarded from AWS Notes
​​Terraform best practices from AWS

https://docs.aws.amazon.com/prenoscriptive-guidance/latest/terraform-aws-provider-best-practices/introduction.html

Backend

▫️ Use S3 for remote storage
▫️ Facilitate team collaboration
▫️ Separate the backends for each environment
▫️ Actively monitor remote state activity

Code

▫️ Implement a standard repository structure
▫️ Structure for modularity
▫️ Follow naming conventions
▫️ Use attachment resources
▫️ Use default tags
▫️ Meet Terraform Registry requirements
▫️ Use recommended module sources
▫️ Follow coding standards

Versions

▫️ Use the TFLint
▫️ Monitor new releases

Modules

▫️ Use variables for customization
▫️ Understand dependencies
▫️ Use trusted sources

#Terraform
K3s Traefik Ingress - configured for your homelab!

https://sklar.rocks/k3s-traefik-ingress