Production Ready Serverless

Image of Yan Cui

Get ready to go Serverless in Production with this 4 week course delivered by Yan Cui. This course takes you through building a production ready serverless website from testing, deployment, security right through to observability.

The motivation for this course is to give you hands-on experience building something with serverless technologies while giving you a broader view of the challenges you will face as the architecture matures and expands.

We will start at the basics and give you a firm introduction to Lambda and all the relevant concepts and service features (including the latest features from re:invent 2019). And then gradually ramping up and cover a wide array of topics such as API security, testing strategies, CI/CD, secret management, and operational best practices for monitoring and troubleshooting.

Upcoming

No classes scheduled

Schedule

Week One

AWS Lambda 101 [Lecture + Demo]
Serverless Framework 101 [Demo]
Building APIs with API Gateway and Lambda [Exercise]
Securing APIs with AWS IAM [Exercise]
API Gateway best practices [Lecture]
API Gateway REST API vs HTTP API vs ALB [Lecture]

Week Two

Serverless requires a different approach to testing [Lecture]
How to write integration tests [Lecture]
Writing integration tests [Exercise]
How to write acceptance tests [Lecture]
Writing acceptance tests [Exercise]
Running functions locally [Exercise]
Best practices for CI/CD security [Lecture]
Setting up CI/CD with CircleCI [Exercise]

Week Three

SSM parameter store [Lecture]
Using SSM parameter store as input and output for project [Exercise]
Capture project configurations for tests [Exercise]
Best practices for managing secrets [Lecture]
Load secrets securely [Exercise]
How to organise your serverless projects [Lecture]
Introduction to EventBridge [Lecture + Demo]
Processing events with EventBridge [Exercise]
Dealing with partial failures [Lecture]
Per function IAM roles [Exercise]

Week Four

SNS vs SQS vs Kinesis vs EventBridge [Lecture]
Choreography vs orchestration [Lecture]
Log aggregation with Logz.io [Exercise]
Structured logging [Exercise]
Distributed tracing with X-Ray [Exercise]
How to use correlation IDs to help you debug issues [Lecture]
Capture and forward correlation IDs through HTTP [Exercise]
Capture and forward correlation IDs through events [Exercise]
Wrap up [Lecture]

Structure

The class takes place over 4 weeks, with an average time committment of 4 to 5 hours per week. Each week will follow this schedule:

Mondays: Lectures and learning exercise released via video link shared on our Discord server, and via email. You'll be sent a link to a pre-recorded lecture within the Senzo platform; you'll need to be logged in to access this.

All week: Peer chat and exercise sharing via Discord server with Yan and your class group.

Fridays, 11am and again at 11pm CET: Live recap and Q&A sessions (~1 hour) with the instructor, recap the week, exercise answers released. The link will be shared on Discord & via email; this will be a private stream.

All materials will be permanently available on the Senzo platform after they've been delivered/released.

Prerequisites

A brief list of what you will need to do this class:

  • A basic understanding of Amazon Web Services (AWS) and how it works.
  • Your own laptop with a terminal emulator. eg iTerm2, Microsoft Terminal
  • A code editor or IDE. eg VS Code, Sublime, VIM, Emacs, Visual Studio, IntelliJ, etc
  • An active AWS account. All examples will work on the AWS Free Tier if you have a new account

Target Audience

This workshop has proven useful to students from a variety of backgrounds, such as:

Backend Engineers whose main focus is building business logic and managing APIs and data processing pipelines (which can include monitoring and being on-call as well).

DevOps engineers whose main focus is in managing the company’s AWS environment and shared infrastructures such as CI/CD, VPCs, IAM users/roles and sometimes general AWS security.

Security engineers whose main focus is in the overall security of the company’s application, which spans across application security, AWS security, CI/CD pipelines as well as incident management.

Fullstack engineers who have to dabble with both frontend and backend technologies and whom increasingly need to be fluent with AWS and its serverless offerings.

Tech Lead, Architects and Engineering Managers who want to get a deeper understanding of serverless technologies so they can better help their teams make the best architectural decisions and solve architectural challenges they face.