Go 1.18 Released

Go 1.18 was released last week (March 15) and I have finally had a chance to play with it. I have been excited for it in the month leading to the release, reading almost every preview that I saw on Twitter, and the release has not disappointed! I think the last release that got me this excited was 1.16, when they added embed. Today, I want to share a few of things that made me a bit more excited than usual for a Go release.

A foray into OpenTelemetry with OpenFaaS

I have always been a fan of tracing. My first taste of it was with NewRelic, but the development of OpenTracing and more recently OpenTelemetry have made it an easy must have in every project I start. I have created a new walk-through: Tracing and Observability with OpenFaaS to show you how to add OpenTelemetry to your Python Flask functions. This post won’t go through the walk-through, the walk-through already does that.

Easy settings management for Python functions with Pydantic

File this under quick tips and tricks for Python functions in OpenFaas. I just learned about Pydantic’s support for reading settings from secret files and it fits perfectly with secrets in OpenFaaS. If you love Python or you are writing Python functions in OpenFaas, this is a great way to simplify your configuration parsing. I am going to keep this short and sweet. Let’s say you have an OpenFaas function that needs to access a database.

Using Tox and PyTest with OpenFaaS

I think it is an uncontroversial statement to say testing is important in software development. Writing tests may not always be fun, but nothing is a sweet as that moment when a unit test catches a bug before you deploy. In OpenFaaS we have tons of tests in each project, even the certifier itself runs a short suite of end-to-end tests. But, not all of our function templates have first class testing support.

Event driven functions powered by Postgres

An event-driven architecture can let you seamlessly extend your application or improve the scalability, if you can handle the eventual consistency. But your app may not be ready for this yet, or you don’t own the code in the app. A recently added a feature to faasd got me thinking about event driven architecture powered by the Postgres WAL. Which means we can seamlessly extend your app without needing to change the app!

This post will show you how to quickly deploy Postgresql along with an event listener and some custom functions. From there it’s up to you what you build.