A Weekly Newsletter By Jeremy Daly

Off-by-none: Issue #50

August 13, 2019

So much serverless content… 📚

Welcome to Issue #50 of Off-by-none. Thanks for stopping by! 😉

Last week, we looked at the new Serverless Components from Serverless, Inc. This week, we welcome Oracle to the FaaS party, share some excellent podcast listening, and we have a ridiculous amount of amazing serverless content from the community.

There is so much serverless goodness to get to, so we need to get right to it. 🎯

Serverless News & Product Announcements 🚀

Oracle Functions Now Generally Available
Oracle Cloud Infrastructure’s functions-as-a-service (FaaS) platform is now GA. (insert wisecrack here about being a little late to the dance).

Serverless September CFP!
The Cloud Advocates at Microsoft are hosting Serverless September. A new Azure serverless blog or tutorial will be posted every day during the month of September. Fill out this form if you’d like to contribute.

Serverless Stories 📖

From LAMP to serverless: case study of externals.io
Matthieu Napoli walks us through the migration of a PHP application to serverless on AWS using Bref. Lots of really interesting detail in here as well as an assessment of the effort required to accomplish each major task.

Building a minimal Evernote alternative in 6 hours with Amplify
Adam Clark was inspired by an old blog post of mine 🙌, and ended up building a prototype of a serverless note taking app in just a few hours!

How We Reduced Lambda Functions Costs by Thousands of Dollars
Mohamed Labouardy explains how his team implemented monitoring to tune their serverless infrastructure and save thousands of dollars.

Serverless: The Ideal Choice For Startups? (CloudForecast Case Study)
I love stories like this! Francois Lagier actually shows you the serverless.yml file that contains the four functions and IAM permissions that launched his startup’s infrastructure for $0.

Serverless with real-time communication (WebSockets)
Oskar Kaminski explains how his team built real-time communications into their app using API Gateway and websockets.

Serverless Use Cases 🗺

Some examples for micro services you can extract to serverless functions
Are you running enough server capacity to handle unexpected spikes? Philipp Heuberger explains why breaking off pieces of your application to make them serverless makes a whole lot of sense.

Building an infinitely scalable cloud host for less than $5/mo
Levi Nunnink does some back of the envelope math and discovers that a serverless solution would be quite inexpensive. Sure, there are other costs involved, but for the most part, his math isn’t far off.

How to Schedule Any Task with AWS Lambda
This is becoming a very common use case. Renato Byrro outlines several different serverless ways to schedule tasks with AWS.

Serverless Commit Message Validation
Here’s a simple use case that could come in quite handy. Harish Aravindan uses Lambda to validate commit messages by making sure they reference a JIRA ticket.

If you’re interested in learning some advanced serverless concepts… 🏗

The five Serverless Framework commands that you should be using
Ryan Jones outlines five common Serverless Framework commands that you should have at the ready. Deploying a single function and local testing are my two favorites.

How to generate deployment artifacts in your CI/CD pipeline for Serverless apps
This post looks at generating deployment artifacts in your CI/CD pipeline for Serverless Framework applications.

How to Manage Multiple Serverless API Gateways on AWS
The ability for custom domains in API Gateway to point different base paths to separate API Gateways is an incredibly powerful feature. Eoin Shanaghy shows you the basics in this post.

Differences between PUT and POST S3 signed URLs
Tamás Sallai explains the difference between PUT and POST S3 signed URLs. It’s good stuff to know, but he suggests just sticking with POST.

Getting the most out of CloudWatch Logs
Yan Cui does a deep dive into CloudWatch Logs and explains Subscription filters, metric filters for creating CloudWatch Metrics, and CloudWatch Logs Insights for analyzing log messages.

An easy way to manage Serverless project resources by using AWS Resource Groups
Yi Ai gives you a quick tutorial to show you how to use AWS Resource Groups with CloudFormation Stacks to list and perform tasks on corresponding resources in a group.

Understanding the AWS Lambda SQS Integration
Lots of people still struggle with the correct settings for SQS event sources with Lambda. Frank Rosner does a great job explaining the services and what to look out for in the configurations.

Why Serverless deployment artifacts cannot be reused across stages
Jack Jiang from Seed.run explains why you can’t reuse artifacts from the Serverless Framework as part of stage promotions in your CI/CD process.

If you’re just starting your serverless journey… 🐣

The Ultimate Guide to Migrating to the Cloud with Serverless
Sam Williams has created this step by step guide to migrating an existing software product to run serverlessly in the cloud. If you’re looking to get started, this should help.

Why Use Serverless Architecture for App Development
Manisha Mishra outlines five reasons why you would want to utilize serverless. I’m curious if this statistic is correct: “developers spend 30–40% time in resolving the infrastructure or backend issues” with traditional architectures. It wouldn’t surprise me.

Developing AWS locally with Serverless Offline Plugins
I like to debug and test serverless functions locally, but Tobias Schaber takes it further by using local versions of DynamoDB and S3. I’m not a huge fan of local mocks, but do what you need to do to be productive.

Major in Serverless Confidence at Serverless Summer School!
If you haven’t had a chance to check out Stackery’s Serverless Summer School, you really should. There is a lot of great information and this will definitely help you develop (or sharpen) your serverless skills.

Serverless Tutorials 🏗

Meet AWS SAM CLI: sam init
Eric Johnson gives you a run down of all the commands you need to know to get you started with the AWS SAM CLI.

Building a Full-Stack Serverless App with Cloudflare Workers
In this tutorial, Kristian Freeman shows you how to build a full-stack serverless application on top of the CloudFlare Workers platform, using Wrangler, Cloudflare’s command-line tool for building and deploying Workers applications.

New – Local Mocking and Testing with the Amplify CLI
Danilo Poccia gives you a quick tutorial on how to use the new local mocking and testing features in the Amplify CLI.

Introduction to Amazon Lambda, Layers and boto3 using Python3
Gabriel Dos Santos Goncalves gives you the basics of setting up a Lambda function and using Lambda Layers to load a CSV file as a Pandas DataFrame, do some data wrangling, and save the metrics and plots on report files to an S3 bucket.

Found in translation
James Beswick shows how to connect an Amazon S3 bucket to Amazon Translate, so every time a new text object is added to the bucket it will be automatically translated into a number of different languages. Very cool.

Learn Serverless by Making a Slack App: Part 1
In this (very in depth) tutorial, Lekha Surasani shows you how to create a serverless Slack application with AWS.

Make your website live with Serverless framework
Maciek Grzybek gives you a quick and easy way to deploy your Gatsby site to AWS using the Serverless Framework with the serverless-finch plugin.

A Beginner’s Guide to AWS AppSync
Looking for a quick start on AWS AppSync? Ran Ribenzaft has a great tutorial to get you started.

How to create PDF in Lambda using Puppeteer
Crespo Wang follows up on his wkhtmltopdf post and this time uses Puppeteer and chrome-aws-lambda to accomplish the same task.

Developing and testing GraphQL APIs, Storage and Functions with Amplify Framework Local Mocking features
Ed Lima gives you another run through of working with the new local development features of Amplify.

Serverless Security 🔒

Serverless Security: Best Practices to Secure your Serverless Infrastructure
Hillel Solow outlines a number of serverless security best practices to make sure that your serverless infrastructure is secure.

Is Your Serverless Application Secure?
Swaroop Yermalkar points out several ways to exploit Lambda functions if you leave your application open to application level attacks. This is a good reminder that it doesn’t matter how secure the cloud is, YOU are still responsible for app security.

AWS Amplify’s Security UX is Insufficient and Dangerous
Ross Williams points out some security concerns with AWS Amplify. I’m curious if others have verified this?

Serverless Computing Services Security Quick Guide
Trisha Paine from Protego outlines more best practices for making sure your serverless applications are secure.

AWS Lambda Security Checklist
Ben Ellerby points out a few main things to be conscious of when deploying your serverless applications. Good advice.

Serverless Reads 🤓

How to do blue-green deployment for Step Functions
This is really interesting. Do you know what happens to Step Function executions when you deploy a new version? Yan Cui looks into it.

ICYMI: Serverless Q2 2019
Everything you could possibly want to know about serverless happenings at AWS in Q2, nicely curated for you.

Non Prod AWS Lambda Environments
How does serverless benefit us in environments & deployment management? Muhammad Umair explains.

Approaches for serverless without vendor lock-in
Jason Umiker wrote a demo Express.js app that can be deployed to all three major cloud providers. I get the initial appeal of this, but I think making potentially subpar technology choices just to avoid highly unlikely migration costs in the future is wasted productivity.

Why Serverless Apps Are Taking Over
This post is another take on the pros and cons of serverless applications. There are more and more pieces like this, but I always like seeing what others make of the benefits (and shortcomings) of serverless.

Whole-Event Serverless Observability
Erica Windisch explains why IOpipe has chosen to implement Whole Event Observability that is complete, unsampled, and non-aggregated.

Serverless Functions With WebAssembly Modules
This is a really interesting set of experiments run by James Thomas. Being able to use WebAssembly modules in our Node.js serverless functions is pretty cool, especially if we need more complex compiled libraries.

Why I Converted an AWS SAM Template to Serverless (And Maybe You Should Too)
Yann Stoneman from Serverless Gurus really likes the Serverless Framework. According to this post, using the Serverless Framework reduced deployment complexity by 97.4%. I do like what AWS is doing with SAM, but the Serverless Framework is just so easy.

Serverless application architecture with GraphQL
Pritam Roy explains why he believes GraphQL is superior to traditional REST APIs. I’m a big fan of GraphQL, but I still love REST for lots of things.

Python Pandas at Extreme Performance
What if you could write simple code in Python and run it faster than using Spark, without requiring any re-coding or devops overhead? Yaron Haviv says it’s possible today using Nuclio and RAPIDS.

When you prefer multimedia experiences… 📽

Serverless Chats – Episode #9: Chaos Engineering in Serverless with Gunnar Grosch
In this episode, I chat with Gunnar Grosch about the motivations behind chaos engineering, how we run chaos experiments, and what are some of the common weaknesses we can test for in our serverless applications.

Serverless beyond Functions: Building Modern Applications
Another great presentation by Danilo Poccia. These are just the slides, but just reading through them is still worth it.

Fast, Cheap & Global React Apps via Serverless Framework Components [Video]
Here’s a tutorial from Austen Collins on how you can deploy React applications that are fast, global and cheap to host. The outcome of this is a website with a React app, a custom domain and SSL certificate.

ServerlessTalk – S02 Episode 2 – Discussing Observability with Honeycomb CTO Charity Majors
This is an excellent episode featuring Charity Majors. Charity says failed deployments should be rare, and if you’re not deploying on Fridays, you’re sacrificing 20% of your velocity. “Code only matters once it’s been shipped!”

Testing Serverless AWS AppSync GraphQL APIs with AWS Amplify – Quick Start
In this quick video, Nader Dabit shows you how to use the “mock” command that was added as part of new test suite built into the Amplify CLI that allows you to test GraphQL APIs, NoSQL databases, storage, and Lambda functions.

When you’re wondering what AWS is building… 👷‍♀️

Amazon SNS Message Filtering Adds Support for Attribute Key Matching
Amazon Simple Notification Service (SNS) message filtering now supports attribute key matching. This feature lets you create an Amazon SNS subscription filter policy that matches incoming messages which contain an attribute key, regardless of the attribute value associated with this key.

Amazon CloudFront Announces Support for Resource-Level and Tag-Based Permissions
You can now define Identity and Access Management (IAM) policies to specify granular resource-level and tag-based user permission in CloudFront. These new features give you increased flexibility to manage access to your CloudFront distributions.

Amazon Rekognition now detects violence, weapons, and self-injury in images and videos; improves accuracy for nudity detection
Hot dog, or not hot dog. Plus Amazon Rekognition improves Face Analysis.

AWS Step Functions Adds Support for Nested Workflows
AWS Step Functions now allows you to orchestrate more complex processes by composing modular, reusable workflows. This is pretty cool!

Amazon DynamoDB now helps you monitor as you approach your account limits
Amazon DynamoDB now publishes account metrics to help you monitor capacity consumption against your account limits. You can now alarm as your capacity approaches your account limits and proactively request limit increases, helping ensure your DynamoDB tables are always available.

Serverless Tools 🛠

Automating AWS Lambda Layer Creation for Python with Makefile
Ojas Kale gives you a simple Makefile that will automate the creation of Lambda Layers for Python.

A History of Amazon Web Services (AWS)
Not sure if this classifies as a “tool” or not, but Jerry Hargrove has done an amazing job putting together this list of announcement and launch dates for AWS services.

sosw – Serverless Orchestrator of Serverless Workers
sosw is a set of serverless tools for orchestrating asynchronous invocations of AWS Lambda Functions. Nikolay Grishchenko has a post that explores how you can use it to solve some uncommon use cases.

Thoughts from Twitter 🐦

“My question is: what happens in a serverless world when the cloud provider doesn’t detect hardware wonkiness due to gray failure? How would an app owner identify that an increase in errors is localized to a particular “node”, if that abstraction isn’t exposed?” ~ Lorin Hochstein
This is just one of those really interesting questions that most of us never think to ask.

Upcoming Serverless Events 🗓

There are a lot of upcoming serverless events, webinars, livestreams, and more. If you have an event you’d like me to mention, please email me.

August 16, 2019 – Serverless Application Troubleshooting Webinar with Yan Cui (Lumigo)

August 27, 2019 –  ServerlessDays Sydney

August 29, 2019 –  ServerlessDays Melbourne

September 4-6, 2019 – Production-ready Serverless Workshop – Full Stack Fest

October 7-9, 2019 – Serverlessconf 2019 in New York City

October 14-16, 2019 – Serverless Architecture Conference Berlin

October 24, 2019 –  ServerlessDays Stockholm

Serverless Star of the Week ⭐️

There is a very long list of people that are doing #ServerlessGood and contributing to the Serverless community. These people deserve recognition for their efforts. So each week, I will mention someone whose recent contribution really stood out to me. I love meeting new people, so if you know someone who deserves recognition, please let me know.

This week’s star is Rich Buggy (@richbuggy).  Rich is the CTO at piiq digital and a serverless consultant from Sydney, Australia. He also writes about all aspects of the serverless development process on his excellent blog, goingserverless.com. But one of the things that makes Rich such a valuable member of the serverless community, is his willingness to help people. It’s hard to find a post on forum.serverless.com that he hasn’t replied to. And if he can’t provide you with an answer, he’ll at least point you in the right direction.  His continued dedication not only makes the forums more useful, but he makes the community a better place to be. Thanks for everything you do, Rich! 🙌

Final Thoughts 🤔

Wow. There was so much content this week! 😳 Speaking of which, I’ve been adding some additional content sources to find new and interesting serverless posts, but if you ever have an article to share, please send it to me. Also, Off-by-none is turning ONE in a few weeks. We’re planning something big, so stay tuned. 🎂

I hope you enjoyed this issue of Off-by-none. Please send me your feedback and suggestions as they help to make this newsletter better each week. You can reach me via Twitter, LinkedIn, Facebook, or email and let me know your thoughts, criticisms, or (perhaps) even how you’d like to contribute to Off-by-none.

If you like this newsletter, and think others would too, please do me the honor of sharing it with friends and coworkers who are interested in serverless.

Until next time,
Jeremy

Share this newsletter with your friends and coworkers!


Off-by-none is a weekly email newsletter that focuses on the technical details of building applications and products in the cloud using serverless technology. Together we can become better developers and product people by making fewer mistakes as we learn from each other. Off-by-none is the idea that we can become exceptional at what we do, if we are willing to put in the work. Join me on this journey as we help the community work to develop best practices, share our ideas, and learn to build better cloud-based software.

Sign up below and get Off-by-none delivered to your inbox every Tuesday.

I respect your privacy and I will NEVER sell, rent or share your email address.