Zak's Notes

SRE Field Notes

Feature Flags

Feature Toggles in Software Development As a software engineering professional, I’ve seen firsthand how the landscape of software development is continuously evolving. One of the most impactful strategies that has emerged in recent years is the use of feature toggles, also known as feature flags. This powerful technique allows developers to manage and control the visibility and availability of features in their software applications. What is a Feature Toggle? A feature toggle is a technique in software development that allows teams to modify system behavior without changing code.

Release Strategies for Deploying to Production on Kubernetes

Release Strategies for Deploying to Production on Kubernetes: A Software Engineer’s Perspective As a software engineer, deploying applications to production is a critical part of my role. Over the years, I’ve come across various strategies for managing releases on Kubernetes. Each strategy has its own trade-offs and is suited to different scenarios. In this article, I’ll discuss some of the most common release strategies and their respective trade-offs. 1. Rolling Updates Rolling updates are the default strategy for deployments in Kubernetes.

Open Tracing

Why OpenTracing is Important in Software Development OpenTracing is a key player in the modern software development landscape, offering invaluable tools for monitoring and optimizing applications. In an era of microservices and cloud-based architectures, understanding the behavior of your applications at runtime has never been more crucial. This is where OpenTracing comes in. What is OpenTracing? OpenTracing is an open-source project that provides a standard, vendor-neutral framework for distributed tracing.

Grpc vs Rest

gRPC: An In-Depth Look at its Features, History, and Comparison with REST Introduction gRPC (Google Remote Procedure Call) is a high-performance, open-source universal remote procedure call (RPC) framework developed by Google. It uses Protocol Buffers as its interface definition language, which allows for the easy definition of services and automatic generation of client and server code. gRPC provides numerous key features, making it an attractive choice for developers over traditional REST APIs.

Blue/Green Deployments with ArgoCD in Kubernetes

Blue/Green Deployments with ArgoCD in Kubernetes Introduction Blue/Green deployments are a popular strategy for managing releases and minimizing downtime and risk. By having two identical environments, the “blue” and “green”, we can switch traffic between them to release new versions of an application. In this article, we will explore how to implement a Blue/Green deployment strategy using ArgoCD in a Kubernetes environment. Why Blue/Green Deployments? Blue/Green deployments bring several benefits: