Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Johnny Boursiquot on Serverless Go and SREs as "Diplomats"

Johnny Boursiquot on Serverless Go and SREs as "Diplomats"

This item in japanese

In a recent InfoQ podcast, Johnny Boursiquot, site reliability engineer at Heroku, discussed a range of topics that included: why Go is a useful language for building Function-as-a-Service (FaaS) style applications; how Heroku implements the role of site reliability engineer (SRE); and why the ability to teach is such a valuable skill.

Boursiquot began by exploring why Go is a productive language for building Function-as-a-Service (FaaS) style applications. He stated that the design of the Go runtime provided a number of benefits for this style of platform, for example: the ability to build Go applications into a static binary reduces the need for dependency management, and the quick runtime and application start time is good for initiation and scaling. Core Go usage patterns and programming idioms also don’t have to be radically changed when designing function-based applications:

...the biggest thing for me is that I didn't have to change the way I was doing Go, some of the same practices that I had learned over the years, they still applied.

The FaaS development toolchain has improved over the years. Many cloud providers now provide local runtimes, e.g. AWS SAM Local and Azure Functions, and service simulators, e.g. LocalStack and GCP’s Cloud Emulators. Testing in production is facilitated by the ability to do dark launching and canary releasing at the ingress or API gateway.

Boursiquot argued that developing “serverless” applications does not remove the need for operational expertise on a development team. Designing systems appropriately, getting the most out of the runtime, and designing to control pay-as-you-go costs requires knowledge of the underlying infrastructure components.

You need operations. You need somebody who's on your team who's operationally minded. You need infrastructure configuration. You need somebody to worry about the operability of whatever it is that you're going to put out there and you need somebody who understands what it means to have a canary release, what it means to do some traffic shifting. You need somebody with that mindset.

The role of Site Reliability Engineering (SRE) looks different across practically every organisation. The Heroku SRE team has adapted well-established patterns and practices into their roles. They act as “diplomats”, working closely with product teams to share knowledge around operational best practices:

…we are almost like a team of diplomats, a team of production engineering sort of best practices, operational excellence kind of team, whereby we identify components within the system that need a little more TLC, that need a little more attention from an operation standpoint and we work with those teams to basically, "Hey, let's go to the process. Let's go through our production readiness process and figure out, okay, what do you have right now? What do you not currently have? Where are your pain points?

Boursiquot concluded the discussion by discussing that the ability to teach is a valuable skill, regardless of your job. Teaching people to code or to embrace important operational principles is extremely rewarding. Engineers who teach must seek to escape the pull of their ego; by focusing on the needs of the people you are teaching, much more progress can be made.

Rate this Article