Weekly notes: Having to think about liveness and readiness a bit lately as we roll our first production application into ecs (Ecs is a bit different from k8s to be sure but the ideas transfer fairly well I'd say)
- Why “What Happened First?” Is One of the Hardest Questions in Large-Scale Systems: Talks about clock sync issue, ntp, and vector clocks
- My LLM codegen workflow atm: Harper Reed describes his workflow with llms for building smallish projects that are both new and also starting from existing code
- An LLM Codegen Hero’s Journey: Sibling post to above. Discusses getting into using llms as tools for pair program with
- Configure Liveness, Readiness and Startup Probes: K8s doc notes about how to think about liveness (when should a container be considered unhealthy and a candidate for restarts. Think about this one carefully since processes will be hard restarted) and readiness (when should requests be routed to a container) of a container
- A general bit of guidance from the doc is that liveness and readiness probes can point at the same light-weight endpoint that does something meaningful but that liveness should be longer than readiness
- Give an application enough time to stabilize after startup (it might need to hydrate data or configuration from another service)
- Think about frequency of probes * max failures - these parameters should take into account how long an application takes to start up
- Core Spring Resilience Features: @ConcurrencyLimit, @Retryable, and RetryTemplate: New retry, concurrency limiter behaviours in spring 7
- The hidden trade-offs of fine-grained progressive rollouts: Coarse vs fine grained progessive rollouts. The former is when you deploy 1 greographic region at a time for eg, the latter uses some sort of percentage based strategy.
- Enabling Hugo static site search with Lunr.js: Adding search (solr like) to a static blog site with some python and javascript. Lovely. :)