Fridays are for learning. These are some interesting links for the week ending August 3, 2018.
On serverless testing in production: it’s not that you shouldn’t be doing testing before releasing to production, it’s that you should also be doing some kind of testing in production as well. Production is where reality hits your systems; it’s the only place you will be able to find real-world conditions. Feature flags, canary deployments, staged rollouts, rich instrumentation, and observability-first development are all useful here.
Augmenting agile with formal methods. Concurrent software invalidates a lot of our usual heuristics about how software behaves. Perhaps formal methods offer a way to make provable conclusions about the behavior of the system. (This article is not really about agile development per se, it’s about a specific example that was demonstrated during the development of agile development/extreme programming.1)
A summary of Go modules. I’ve expressed a lot of ambivalence about
vgo
, mostly related to MVS. (I think only time will tell whether MVS is a suitable replacement for traditional SAT-based dependency resolution; I’m still skeptical.) But aside from that I think Go modules are a Good Thing, finally freeing us from the tyranny of$GOPATH
and generally making self-contained packages saner.Misadventures in Python packaging: optional C extensions. It’s definitely true the Python packaging story is suboptimal.
Introducing the OpenFaaS operator for serverless on Kubernetes. OpenFaaS on Kubernetes is very interesting as it provides a cloud-neutral serverless environment (though without the elastic billing benefits of something like AWS Lambda).
The Right Way™ to do serverless in Python, part 2. Several weeks ago I linked to part 1; this installment focuses on using Django and Flask with Zappa, and takes a look at the AWS Lambda-specific Chalice.
Finally, a talk from Beau Lyddon: “What is Happening? Attempting to Understand Our Systems”:
- Now there’s a term that screams late-nineties if ever one did. ↩