I got the opportunity this year to attend the QCON London conference, ran my InfoQ, and would absolutely recommend it to anyone interested or working in the software engineering industry, that’s proficient with technical language and subjects. Most talks were aimed at a general wider audience, from engineers to CTOs, with abstract high-level material, rather than getting too down and dirty with the technicalities of specific languages or frameworks.
The opening keynote for the conference, which covered how the Financial Times were able to shift the organisation to deliver changes faster, with less impact (smaller blast radius) by shifting to micro-services, and allowed engineering teams to take autonomy of what they built.
This went through Airbnb’s migration from their monolith, the monorail, to micro-services using Kubernetes,. Some key points were about the technical approach, from starting at the persistence layer and working their way up to presentation. As well as the shift in their organisation structure, and how it enabled them to go from releasing every few weeks to thousands per a year, and how it enabled them to scale work for a huge growth in engineering teams.
An interesting approach I had not seen before was the use of a diffy environment, where requests were put through both an old and new version of a service, and the output compared to spot regressed behaviour.
The new buzzword on the block, as the next frontier after continuous delivery to smoothly roll-out changes in a high-cadence environment. Covering canary releases, A/B testing and feature toggling. Even though I’ve already used those techniques in real production environments at large, my main take-away was at how we as engineers can sell them to the business, so they gain confidence in shifting a cultural change towards faster releases. A key point was how a traditional ITL process has a lack of empathy for both teams, and more importantly, our customers.
An exciting look into how WebAssembly is going to change the internet.
Colin gave a good insight into how Tesla is successfully using Kubernetes in a mechanical environment, for energy, at scale, and some of the important lessons learned. These include storing KPIs/metrics of services into a time-series database for observability, handling failure in business logic and use exponential backoff for erroneous requests to prevent a cascading failure (due to overloading an unhealthy service with too many requests). An important point was made about how observability, as a term, is being abused in the micro-service world, and how it can be used in its original definition from control theory.
A fantastic extension to the first talk by Airbnb, that went into much more technical detail about how they’ve actually implemented Kubernetes. They’ve got hundreds of services, with deployment configuration living with the code. However they’re using Python scripts to refactor such configuration, at scale, in order to roll out regular security updates. Their scripts also create generic templates for new services. And such scripts have automated integration tests, which are routinely creating and deploying new projects to ensure they work.
Not guaranteed to mean much, but can be found here.