Go and Production Readiness

By Daniel Selans

Elevator Pitch

What is production readiness? How does it relate to your Go app(s)? How important is it? Join two engineers from InVisionApp, as they answer those questions and share their experience as they worked through load testing, GameDay’ing, circuit breaking, tracing and other bulletproofing strategies.

Description

Your new application has made it to production. It’s serving requests and all is well. You don’t have anything to worry about because Go was the perfect tool for the job. With comparatively little effort and boiler plate, Go enables engineers to create fast, scalable, concurrency-driven services in a way that puts many languages to shame.

But is your job done AFTER the application is written? How can you know if the service you wrote is up to snuff? How long is too long to respond? How fast is too fast to fail?

I will share my experience of bullet proofing multiple tier 1 services at InVisionApp in order to be able to (comfortably) take on production level load.

During this talk, I will we showcase how you can further enhance the performance and reliability of your app(s) by introducing concepts such as load testing, GameDay’ing, circuit breaking, tracing and more.

As an added bonus, I will leave you with a “top five things that any Go app running in production should have”.

InVisionApp provides a design collaboration platform for startups, corporations, and design agencies. InVision’s core backend services are written in Go.

Notes

Myself and my team are responsible for a total of 8+ tier 1 services written in Go, that are used for auth(c/z), API aggregation and routing purposes.

I would like to share my experience going through a production readiness initiative that specifically focuses on services written in Go - what worked, what didn’t work, what was difficult (and maybe not so beneficial) and what was easy AND super useful.