New Posts

Parameters with Defaults in Go: Functional Options

Unlike C++ or Python, Go does not support function parameters with default values if unspecified. Specifically, we want that

How to Configure Applications for High Availability in Kubernetes

Pods in Kubernetes are the smallest orchestration unit and are ephemeral by definition: Deployment/StatefulSet/DaemonSet/ReplicaSet updates or patches Nodepool downscaling (compaction) or upgrades (cordoned and drained)

A Brilliant Hack: Why does Layer 2/3 Checksum use 1’s Complement, Not 2’s

A super quick recap, one’s complement represents negative x by reverting every bit of x, while two’s complement negative x as one’s complement of x plus 1. Symbolically,

Service API Changes: Prefer Blue-green Update to Rolling Update

Summary To achieve zero-downtime service update, Kubernetes rolling update implies the API must be both forward and backward compatible. Forward compatibility is hard if at all makes sense. Blue-green update...

CD Tricks for Kubernetes Deployment + ConfigMap

It is common to extract the application configuration to a separate file as a runtime dependency of the container image that includes the application binary. As a result, the same...

JWT + Third-party Oauth in Single Page App

Imagine you run a single page app at example.com that communicates with backends over restful API and is authenticated with JWT tokens managed by you, but identities are managed by...