🔗 Last Links
When UN climate negotiators meet for summit talks this month, there will be a new figure on the table: 3C.
Until now, global efforts such as the Paris climate agreement have tried to limit global warming to 2C above pre-industrial levels. However, with latest projections pointing to an increase of 3.2C by 2100, these goals seem to be slipping out of reach.
I had a holiday this week and I spent it reading mostly about climate change and wars. The article in The Guardian surprised me with some beautiful data.
A death growl (or simply a growl) is a vocal style (an extended vocal technique) usually employed by death metal singers but also used in other heavy metal styles, such as metalcore. Death growls are sometimes criticized for their “ugliness”. However, the harshness of death growls is in keeping with death metal’s abrasive music style and often dark and obscene subject matter. The progressively more forceful enunciation of metal vocals has been noted from heavy metal to thrash metal to death metal.
Envoy/Istio are designed to move logic out of your apps and into the middleware.
For example, say your app A makes an HTTP request to app B and app B times out. Ordinarily app A has to build in retry logic (with expontential backoff to avoid dogpiling). Fine if you have a single app, but if you have a dozen microservices, that’s a lot of duplicated code.
The solution is to let a proxy handle it for you. Instead of A -> B, you get A -> Envoy -> B. Envoy can do things like retrying, name resolution (something more flexible than DNS that can, say, be used to do A/B tests where traffic to B actually gets routed to another instance of B that runs code from a different branch), load balancing, request/bandwidth throttling, circuit-breaking (failing requests when an overload “trips” the breaker), logging, profiling (measuring timings and making them available to, say, Prometheus), tracing (inserting HTTP headers to generate a path so if a request goes A -> B -> C, then C has a complete “stack trace” that can be used for logging), and so on.
Istio adds a layer of transparency, at least on Kubernetes. Instead of configuring app A to use a proxy, app A just talks to app B as though there’s no proxy at all. In reality, Istio has injected some local network magic in the container to route the traffic through the proxy.
It took me an evening to understand how these pieces fit together, and this Hacker News comment was the best explanation. I have playing with Kubernetes on my weekend to do list for a while.