Building Simple Serverless Applications with AWS Lambda
An introduction to basic concepts and real-world examples
Join expert Kevin Old for a hands-on exploration of the principles of a Serverless Architecture, where it may be useful and situations to avoid using it. We will build and deploy a number of small services on AWS Lambda using an orchestration framework to ease the burdens of managing and deploying the services.
Along the way, we'll discuss patterns used in deploying real-world serverless architected applications, team dynamics and tricks for working with serverless projects, pain points and their solutions and much more.
What you'll learn-and how you can apply it
By the end of this live, online course, you’ll understand:
- The why's of a Serverless Architecture
- How AWS Lambda, S3, API Gateway, DynamoDB and CloudFormation can deliver scalable, event driven architectures
- How to get started with the Serverless Framework (serverless.com)
And you’ll be able to:
- Build and deploy simple microservices on the AWS infrastructure
- Use event driven, Serverless Architectures to solve real-world problems
This training course is for you because...
- You are a backend developer with experience building and deploying application servers and you need to understand how to begin deploying applications and services in an Event Driven, Serverless Architecture.
- You are a frontend developer with experience building simple backends for web applications and you need to would like to simplify deploying and managing infrastructure for your backend.
- Basic CLI Skills
- Ability to clone and navigate Git repositories
- Familiarity with AWS IAM Users and Permissions
- Familiarity with AWS Dashboard
Download and Install:
- AWS-sdk via npm
- Setting up the Serverless CLI and Credentials (YouTube Video)
Install Node.js v6.5.0 or later
Install the Serverless CLI v1.14.0 or later --- run "npm install -g serverless" to install.
Create an AWS Account, create an IAM user with Admin access and setup the Access Keys in your environment. Instructions can be found here that walk you through the process: https://serverless.com/framework/docs/providers/aws/guide/credentials/
- Download and install the Node Modules associated with the examples in the Git repository used for the tutorial: https://github.com/kevinold/serverless-tutorial-oreilly-live-training-2017
A Git repo containing source code will be provided
AWS Environments with AWS Lambda (learning path)
Learning AWS Lambda (video)
About your instructor
Kevin Old is a Front End Architect living White House, TN. He works for LifeWay Christian Resources building front ends using React, React Native, and Electron. He's a huge fan of coffee, micro-roasters and the entire ecosystem around single origin coffee. When he is not developing software he enjoys spending time with his wife, 2 sons, 2 dachshunds and cat.
The timeframes are only estimates and may vary according to how the class is progressing
Lecture: Why Serverless? (10mins)
- The concept of a Serverless Architecture, terminology and technologies to will be introduced and weighed against existing architectures.
Intro to AWS Lambda (10mins)
- A brief walkthrough of AWS Lambda in the AWS Console. An overview of the manual process of creating, updating and managing a Lambda will be given to highlight the need for better orchestration tools, such as the Serverless Framework, to be used throughout the rest of the course.
Serverless 101 (10mins)
- A brief overview of the Serverless Framework concepts, conveniences and commands that we will use throughout the course.
Lab: Hello World Lambda (10mins)
- Hands on lab that will walk through deploying a Lambda using the Serverless Framework.
Lab: HTTP endpoint (10mins)
- Hands on lab to introduce the first event, HTTP via API Gateway, to trigger a Lambda. This is the basis for a REST API example that will follow in the course. Discussion around the event-driven architecture used with Lambda’s will take place.
Lab: File conversion (30mins)
Hands on lab of a file conversion service housing two pieces of functionality 1) convert uploaded CSV file to an S3 bucket into a JSON “database” 2) API endpoint to serve JSON “database”. Advanced configuration management and resource creation (S3 bucket) will be discussed.
Lab: REST API (30mins)
- Hands on lab demoing a full REST API storing data in DynamoDB. Discussion around DynamoDB table creation via Serverless Framework.
Serverless GraphQL (30mins)
- Hands on lab demoing a GraphQL endpoint storing and retrieving data from DynamoDB. Discussion around GraphQL and it’s benefits in this architecture.
Crontab functionality with Lambda (10mins)
- Hands on lab demoing crontab functionality as an event to trigger a Lambda on an interval basis.
Tips and Tricks from Real-world Lambda development (5mins)