Serverless Summer School Cliff's Notes — AWS Serverless Products, Explained

Gracie Gregory

School's out for... Autumn? That's right, while you were avoiding the back-to-school rush at Office Depot, cutting the crusts off PB&Js, and taking the layers out of mothballs (confession: I have never seen let alone used a single mothball), Serverless Summer School began winding down and is now over for the season. Until next year, school-themed Stackery livestreams!

For those of you who joined a session or two, we hope you enjoyed the light, topical quippage from stellar hosts: AM Grobelny and Eric Johnson from AWS and Stackery's Chase Douglas, Sam Goldstein, and Danielle Heberling.

Moreover, we hope you learned more about how Stackery can make your development workflow clear, AWS services more comprehensible, and the entire experience more enjoyable. As I like to say, Stackery saves your head from hair pulling, head-scratching, and development aches. 

SSS: Serverless Confidence, AWS Proficiency

One of the main goals of Serverless Summer School was to provide a platform for our hosts and guests to explore the many possibilities of serverless development with AWS. We also endeavored to help our audience get more comfortable adopting new AWS tools into their workflow. This year, the topics ranged from building a single-page AWS serverless web application to Amazon SES, all using Stackery. If you couldn't make it to any/all of the streams, never fear! We've posted them on YouTube for evergreen participation. We do rolling admissions here at SSS ;)

AWS? Or the New York Public Library..? 

The library of AWS products could span multiple city blocks if it wasn't in the cloud. So how does a serverless developer even begin to undertake it without the Dewey decimal system? I think the answer lies in picking achievable starter projects (hello, Wild Rydes!), surveying the tools you'll need to use, and thinking about the others when you need them. The secret to sustaining new information is all about putting it into context you'll use, right?

You can absolutely just watch the modules, but following along with your own related project will probably cement all that wisdom in.

So, what AWS products will you get better acquainted with during the Serverless Summer School lessons? Let's take a look, project-by-project... 

SSS Cliff's Notes + AWS Product Glossary

Week One: Local Development and Debugging Workshop

AM, Chase, and Eric kicked off the first week of SSS by sharing the basics of getting started with a tutorial on locally debugging AWS Lambda functions and other serverless resources with Stackery. Local development and debugging both Lambdas and the services they interact with has traditionally been one of the largest workflow challenges serverless developers encounter.

"It's ridiculous to think about the possibility that you're going to try to create mocks or fakes of every AWS service you're going to consume as you're building a serverless app," said Chase on the stream. There's no way you can keep track of all that AWS is putting out there, but there's got to be a way that you can do what you want: hack on your source code locally in your machine while also interacting with AWS' cloud resources.

This tutorial starts at a great spot: using an easy, local workflow to debug an AWS Lambda inside a serverless application that somebody else built. Debug a simple app where you've got a topic connected to a Lambda function that then uploads them to an AWS table.

AWS & Stackery Terms Introduced:

  • AWS Serverless Application Model (AWS SAM): An open-source framework wherein you can build serverless applications on AWS. You'll get shorthand syntax to express functions, APIs, databases, and event source mappings and define the serverless application you want via SAM.

  • AWS Lambda: Amazon's version of serverless functions. Run code without provisioning or managing servers and only pay only for the compute time you consume with Lambda functions. 

  • AWS CLI: One of the main, core tools at AWS to interface with your account. When new services and features are released, one of the first places they are integrated is within the AWS CLI. You can package and deploy serverless applications here. 

  • AWS SAM CLI: This feature relies heavily on the AWS CLI, as there are a lot of interactions between the two. It allows you to locally build, test, and debug native Lambda runtimes defined by AWS SAM templates.

  • Amazon DynamoDB:  A fully managed, multi-region, multi-master, durable database with built-in security, backup and restore, and in-memory caching for internet-scale applications.

  • Amazon SNS: A fully-managed messaging service that enables you to decouple microservices, distributed systems, and serverless applications. 

  • Stackery CLI: An extension to the AWS SAM CLI that can debug any Lambda runtime against the cloudside stack of services 

  • Stackery local invoke: A Stackery command that allows you to run local function code using the cloud-side environment

  • Stackery VS Code plugin: A Stackery plugin for VS Code that allows you to edit CloudFormation architecture and locally debug/develop any AWS Lambda function

Find the repository for this lesson >> here and the video

Watch the video >> here

Week Two: Implementing the Wild Rydes Front-End

Wild Rydes is the name of a unicorn ride-sharing application built to call upon equine magic to get us from point A to B. The Wild Rydes workshop essentially provides a fun context and backstory for building a single-page serverless web application using CloudFront distribution for a CDN with an Amazon S3 Bucket to host the content and API Gateway to host a backend API. Finally, AWS Cognito is used to build an authentication system without a lot of heavy lifting.

The first serverless Wild Rydes tutorial was done back before modern serverless tooling came to be, so we rewrote it with Stackery to help you do all of this better, smarter, and faster.

In part one of this workshop, we're building the front-end of the app and expanding on the local debugging workshop from the previous lesson.

AWS Terms Introduced:

  • Amazon CloudFront: A content delivery network (CDN) that gives developers an easy and cost-effective way to distribute content with low latency and high data transfer speeds. CloudFront delivers your files to end-users using a global network of edge locations.

  • AWS Cognito: Easily add user sign-up and authentication to your mobile and web apps with AWS Cognito. This service also enables you to authenticate users through an external identity provider and provides temporary security credentials to access your app's backend resources in AWS or any service behind Amazon API Gateway 

  • Amazon S3: A simple object storage service that offers durable, highly available, and infinitely scalable data storage infrastructure at very low costs.

  • Amazon S3 Bucket: Where you store your Amazon S3 objects

  • Amazon API Gateway: This service makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale. API Gateway handles all the tasks involved in accepting and processing concurrent API calls, including traffic management, authorization and access control, monitoring, and API version management.

  • Stackery Init -n: This command will initialize a blank stack which you can label in a directory of the same name. There, you'll find a blank template.yaml and a .stackery-config.yaml configuration file.

  • Stackery Edit: This command will build your new stack locally and prompt a blank canvas to open in your browser

Find the documentation for this lesson >> here (we cover the "frontend" and "user management" sections to start).

Watch the video >> here

Week Three: Building the Wild Rydes Back-End

Part two of the Wild Rydes workshop covers (you guessed it!) building the back-end of a single-page serverless web application. Without a back-end, our app won't be able to actually call up a unicorn, and I've been waiting to ride around on one since age 5, so this module is of personal importance to me.

To build the back-end, we cover the Environment Parameters and Secrets, Backend API, and Production Deployment sections of our documentation.

AWS & Stackery Terms Introduced:

  • AWS Systems Manager (SSM) Parameter Store: Allows you to centralize operational data from multiple AWS services and automate tasks across your AWS resources. It also provides a centralized and consistent way to gather operational insights and carry out routine management tasks.

  • AWS Secrets Manager: Helps you protect secrets needed to access your applications, services, and IT resources. AWS Secrets Manager allows you to easily rotate, manage, and retrieve database credentials, API keys, and other secrets throughout their lifecycle. 

  • Stackery Environments page: An abstraction layer for AWS serverless in the form of a resource center within Stackery. It is a compilation of the best practices of using environments in serverless development. Create and manage multiple environments with Stackery

Find the documentation for this lesson >> here

Watch the video >> here

Week Four: Amazon SES with Stackery

For week four, SSS was lucky enough to get guest hosts Sam Goldstein, VP of Engineering at Stackery and one of our awesome serverless engineers, Danielle Heberling. In this lesson, we move from building out the Wild Rydes app to exploring Amazon Simple Email Service (Amazon SES).

Sam and Danielle focus their efforts on building an application users sign up (using AWS Cognito as the authentication system) and then receive triggered emails based on activities with the power of AWS SES.

AWS & Stackery Terms Introduced:

  • AWS SES: Amazon Simple Email Service is a scalable service for sending and receiving email. Amazon SES eliminates the complexity and expense of building an in-house email solution or licensing, installing, and operating a third-party email service.

  • Stackery create: A Stackery command that initializes a new repo in your GitHub account, initializing it with the contents of the referenced blueprint repository.

Watch the video >> here

Week Five: Serverless WebSocket APIs with API Gateway

For the last lesson in the SSS 2019 series, Chase Douglas and AM Grobelny reunited for a conversation and tutorial on serverless WebSocket APIs.

"Essentially," says AM, "WebSockets are real-time data streaming back-and-forth so you can dynamically keep your client-side applications consuming data without constantly hammering your back-end." The WebSocket API is a fantastic improvement over the old push/pull model of development.

AWS' WebSocket integration in Amazon APIGateway is a great way to do this serverlessly. This lesson will show you how to make the entire experience of building serverless WebSocket APIs with Amazon API Gateway more streamlined and logical.

Useful documentation for this lesson >> here (especially when making a new stack in Stackery)

Watch the video >> here

AWS Terms Introduced:

  • Amazon APIGateway: A service that makes it easy for developers to publish, maintain, monitor, and secure APIs that acts as a "front door" for applications to access data, business logic, or functionality from your back-end services. Amazon API Gateway handles all of the tasks involved in accepting and processing up to hundreds of thousands of concurrent API calls.

  • API Gateway "Stages": A way to version out your API; you can create prod or dev "stage", for instance, in order to test out different functionalities against the same set of CloudFormation templates. This prevents you from having to create multiple APIs.

#H.A.G.S. (err... #H.A.G.F..?)

So, there you have it! Thanks again to everyone who followed along, shared their feedback, and elected to spend an hour or so per week learning with us.

One thing we hear from customers often is that Stackery has helped their team feel more comfortable adopting new AWS tools into their workflow. This is a big deal because it means these folks are growing more confident in their serverless skills, which equals more advanced, production-grade applications. When you think about it, this is good for the health of technological advancement: less stress and frustration for developers means more self-assurance to build groundbreaking stuff. Take it from our CTO Chase, confidence is crucial for better application development, serverless or otherwise.


Side-note: If you have watched any of the SSS lessons and followed along with your own project, tweet or email us at serverlessschool@stackery.io with screenshot of anything you built using Stackery for Serverless Summer School and we'll send you an awesome pair of socks!

Related posts

Building Serverless State Machines
ServerlessBuilding Serverless State Machines

© 2022 Stackery. All rights reserved.