O'Reilly logo
live online training icon Live Online training

Serverless Go

Writing, deploying, and orchestrating serverless Go applications in AWS

Topic: Software Development
Johnny Boursiquot

Soon after you decide to embrace serverless architectures, you realize that you now have to coordinate all of the components that make up these distributed applications and services. The good news: it’s relatively painless with Go and AWS.

Join expert Johnny Boursiquot to learn how to develop and test serverless applications in Go using AWS tools and services. Over four hours, you’ll stitch together a series of Lambda functions written in Go to build and orchestrate a fully functional and scalable serverless application. Along the way, you’ll discover how to handle the deployment, logging, metric collection, and distributed tracing that will help you effectively adopt serverless, and use technologies like the AWS SAM CLI, API Gateway, CloudFormation, SQS, DynamoDB, X-Ray, and Step Functions to build, deploy, orchestrate, debug, and manage your serverless applications.

What you'll learn-and how you can apply it

By the end of this live online course, you’ll understand:

  • How to write and test Lambda functions in Go
  • How to run and test your functions locally to speed up your development workflow
  • How to orchestrate multiple Lambda functions into a cohesive system
  • How to manage your serverless deployment with infrastructure-as-code tooling
  • How to use the Serverless Application Model (SAM) and its CLI (command-line interface)
  • How to structure your code in your projects

And you’ll be able to:

  • Use CloudFormation and a SAM template to define your infrastructure
  • Use Step Functions and SQS (Simple Queue Service) for orchestration
  • Use API Gateway to invoke your functions
  • Store and retrieve data from DynamoDB
  • Trace requests with X-Ray
  • Capture metrics with CloudWatch
  • Interact with external services like Slack
  • Write testable, idiomatic Go code

This training course is for you because...

  • You want to use Go for your serverless applications.
  • You need to see a real-world project come together from start to finish.
  • You want to understand how much your development workflow and tooling will change when you’re doing serverless versus standard Go development.
  • You want to discover how to test locally in isolation by not hitting public services and still have confidence in your tests.
  • You want to learn how to write idiomatic production-grade Go code for serverless workloads.
  • You want to embark on new serverless Go projects with confidence.

Prerequisites

  • A computer with Go 1.13+, Docker, the SAM CLI, and the AWS CLI installed and configured (Optional: Install an editor with Go support—VS Code + the Go extension, for example.)
  • An AWS account (The services you’ll use during the course will fit comfortably within the free tier.)
  • A working knowledge of Go
  • Familiarity working in a terminal
  • A basic understanding of AWS Lambda

Recommended preparation:

Recommended follow-up:

About your instructor

  • Johnny Boursiquot is a site reliability engineer at Salesforce Heroku. A multidisciplined software and cloud engineer with over two decades of industry experience, he enjoys training developers and is the mind behind the well-liked Go Standard Library Solutions video course. His love for technology is matched only by his passion for community service, especially within the Go community. He’s a GoBridge core member, the founder and organizer of the Baltimore Go User Group, and a previous organizer of both the Boston Ruby User Group and the Boston Go User Group. He’s a regular speaker and trainer at GopherCon, where he’s also a program chair.

Schedule

The timeframes are only estimates and may vary according to how the class is progressing

Introduction to serverless orchestration on AWS (30 minutes)

  • Presentation: The benefits of serverless versus traditional models; available AWS options to orchestrate serverless components
  • Q&A

The serverless app architecture (25 minutes)

  • Presentation: Walk-through of a fully functional and scalable serverless application that integrates with an external service (Slack) that’s part of its core functionality
  • Q&A

Break (5 minutes)

Getting to know SAM, the Serverless Application Model (15 minutes)

  • Presentation: SAM and the AWS SAM CLI
  • Q&A

Deploying your serverless stack (30 minutes)

  • Presentation: Deploying a fully functional stack using a predefined SAM template
  • Hands-on exercise: Deploy a cohesive set of functions and cloud resources
  • Q&A

Writing Lambda functions in Go (25 minutes)

  • Presentation: Writing Lambda functions, using the same set of idiomatic principles you’ve come to expect in Go; caveats and how to handle them
  • Q&A

Break (5 minutes)

Writing and testing your Go Lambdas (45 minutes)

  • Presentation: Adding additional behavior
  • Hands-on exercise: Write, test, and deploy your Go functions
  • Q&A

Orchestrating Lambda with Step Functions and SQS (25 minutes)

  • Presentation: Building resilient and robust serverless applications, using AWS’s queueing and state machine capabilities
  • Q&A

Break (5 minutes)

Bringing it all together (20 minutes)

  • Presentation: A final deployment to test your application in its entirety; how requests flow through your infrastructure components

Wrap-up and Q&A (10 minutes)