Zak's Notes

SRE Field Notes

Failover and Redundency

Introduction Failover is a critical component of software scalability that ensures high availability and reliability of an application even in the event of a failure. It is a mechanism that automatically switches to a secondary system or component in the event of a failure of the primary system. Here’s how failover works in software scalability: Redundant systems: In order to achieve failover, multiple systems or components are deployed to provide redundancy.

Lambda Log Filter

Introduction When designing reliable cloud services you may have a usecase where your service needs to react to a failure. AWS Cloudwatch has a feature called subscription filter which lets you filter for a specific log message for example “failure” then kinesis stream would pick up that message and you can have a lambda function react to that event. You could also use this for data collection where you want to look at a window of logs for particular event and then produce metrics for that.

Making infrastructure diagram with python code

Introduction When designing infrastructure in the cloud one thing you want to communicate is the design with your fellow engineers. There are usually industry standard tools that are used by industry like Lucid. I find that although these tools are great it would be nice to be able to write python code that will generate these diagrams. And when things change it will update those diagrams. Instead of having us go in and modify things as we iterate on our design.

GitOps with ArgoCD

GitOps with ArgoCD ArgoCD is a declarative, GitOps continuous delivery tool for Kubernetes. It leverages Git repositories as a source of truth for Kubernetes resources and applications. As a developer, I’ve found ArgoCD to be a powerful tool for managing deployments, but like any tool, it comes with its own set of trade-offs. Installing ArgoCD using Helm Before we dive into the trade-offs and examples, let’s start with how to install ArgoCD using Helm.

Network Policy Kubernetes

Network policies in Kubernetes allow you to control the network traffic to and from your pods, giving you fine-grained control over your network security. This can be especially useful in a multi-tenant environment, where you need to ensure that different teams or applications have isolated and secure networks. Here’s a step-by-step tutorial on how to create a network policy in Kubernetes: Verify that your cluster has a network policy provider: Before you can create network policies, you need to make sure that your cluster has a network policy provider.