A Weekly Newsletter By Jeremy Daly

Off-by-none: Issue #51

August 20, 2019

Live from the AWS Developer Influencer Summit… 🤓

Welcome to Issue #51 of Off-by-none. Thanks for being here!

Last week, we welcomed Oracle to the brave new world of FaaS and shared a ridiculous amount of serverless content. This week, I’m at the AWS Developer Influencer Summit, learning about how AWS plans on making their serverless offerings better, and giving our feedback. But have no fear, we’ve got plenty of great serverless content to share this week.

There is a lot of great content to get to. So let’s get right to it. 👍

Serverless News & Product Announcements 🚀

Announcing the general availability of Python support in Azure Functions
Python support for Azure Functions is now generally available. You can now develop Python 3.6 apps to run on the cross-platform, open-source Functions 2.0 runtime.

Seed only deploys the services that have been updated
This is a great new feature from the team over at Seed.run. Monorepos are great for small to mid-size projects, but using it to deploy multiple Serverless projects can be a pain. This new update should solve that issue.

Protego Serverless Security Announces Integration with Splunk and Slack
This is a helpful new feature. Security teams and operations can now get security posture data, security events, and tasks sent straight to their favorite alerting platform from Protego.

Serverless Programming Cookbook
If you’re interested in building serverless applications on AWS with Java, the Serverless Programming Cookbook is available for free.

Debugging the Node.js 10 runtime on AWS Lambda with IOpipe
The Node.js 10.x runtime in AWS Lambda is getting better, but it’s still not perfect. But at least you can monitor it with IOpipe’s new update.

Serverless Stories 📖

Amazon Prime Day 2019 – Powered by AWS
While I’m glad Jeff Barr got a great deal on a new monitor, I’m more interested in the fact that across the 48 hours of Prime Day, there were 7.11 trillion calls to the DynamoDB API, peaking at 45.4 million requests per second. I’m betting your traffic is lower than that. 😉

Killing Trees with Lambda Functions
This is an extremely thorough and well thought out piece by Shea Kelly that outlines his organization’s serverless journey. Could make a great roadmap for people looking to get started.

How We Built a Serverless Progressive Web App with Cloudflare Workers
Krayx is a personal finance application to gain insights into your finances, and was built entirely using CloudFlare Workers and WebAssembly. That’s pretty interesting.

Serverless Use Cases 🗺

Automating AWS infrastructure workflows with the Serverless Framework
This is a great post by Bernat Ràfales that shows three different ways his organization utilized Lambda functions and native AWS infrastructure to add automation to their existing stack. All of these are a great way to start your serverless journey.

AWS Lambda as form submit handler
Form handling is a classic use case for serverless. Nickolay Laptev outlines this use case in a way that’s much more complex than it needs to be, but the general idea is correct.

How to put EC2 instances to sleep automatically
Dave Macdonald uses Lambdas in a similar way to shutdown unneeded EC2 instances at night. This post also contains a complete tutorial to get you up and running (or shutting down) in no time.

Serverless Transactional Email Setup with Analytics using AWS SES, Glue, Athena, QuickSight
Pratik Bhopal outlines some ideas for building a serverless email component for sending transaction emails. He then uses Athena and QuickSight to add some performance reporting.

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

SQS and Lambda: the missing guide on failure modes
There seems to be a lot of confusion around subscribing Lambdas to SQS queues. Yan Cui wrote this piece to clear some things up.

Tracking API Gateway metrics in Serverless applications
Debugging errors with API Gateway and Lambda functions can be an arduous task. Alex DeBrie identifies three major visibility issues and explains how the new full lifecycle Serverless Framework is making it easier for you.

What is the right way to do rollbacks in Serverless apps
You might think that rollbacks in serverless would be very similar to those in more traditional systems. Frank from Seed.run points out why this isn’t always the case.

What you gonna do when failures come for you?
Karol Junde explains how using Step Functions and implementing the SAGA pattern can help you add more resiliency to your serverless applications.

Common Design Patterns in Distributed Architectures
This is a great article by Nitzan Shapira from Epsagon about four patterns that can be used with our distributed applications.

Why you should use a manual approval step in a Serverless CI/CD pipeline
More sound advice from Seed.run. I’d love to live in a world of continuous deployment, but having that manual approval step has saved me a few times in the past.

Deploying a monorepo Serverless app with interdependent services
I’m always wary of creating too much coupling between serverless services, but this is a common technique. In circumstances like this, I usually deploy a separate service with just an SNS topic. This way, services are dependent on a single higher level abstraction, instead of each other.

When are Cold Starts a Problem?
Ido Neeman gives a complete breakdown of what causes cold starts, what factors impact them, and how the cloud providers compare.

If you’re just starting your serverless journey… 🐣

10 Things I Wish I Had Known About Serverless
I feel like there have been a lot of these posts lately, but nonetheless, worth the read if you’re starting with serverless.

The time for serverless is now – tips for getting started
Chris Wahl shares his experiences getting to grips with serverless technology, what he learned throughout the process, and whether, ultimately, serverless is something worth considering. TLDR; It is.

The traits of serverless architecture
Wisen Tanasa has a great piece that outlines six different “traits” of serverless applications and how we need to understand them to build better serverless applications.

Why is Serverless Architecture becoming popular for App Development?
This is a bit of a lengthy piece, but if you’re looking for a general overview of the serverless paradigm, as well as some pros and cons, this might be a good read. And, yes, we know there are servers in serverless.

Serverless Tutorials 🏗

The difficulty with monitoring AWS Lambda functions (and how to solve it)
Gareth McCumskey outlines some of the difficulties of monitoring Lambda functions and shows how the Serverless Framework’s new monitoring capabilities can help you.

How to deploy only the updated services in a monorepo Serverless app
The team at Seed.run adds a bit more context to the difficulties of deploying multiple services in a monorepo. In this post, they offer two great strategies for handling this yourself (that is, if you don’t want to use their product).

Uploading objects to S3 using one-time pre signed URLs
Eetu Tuomala had some ideas for creating one-time pre-signed URLs for S3. This is an interesting approach, that he’ll walk you through.

Rest Api Just with ApiGateway and DynamoDb
API Gateway Service Integrations are incredibly powerful and allow you to skip using a Lambda function altogether. Rafael Campana gives us a quick and dirty intro. Be sure to heed his advice about securing your API.

Serverless – PDF Generation
Jose Santos outlines how to configure a Serverless application to generate PDF reports.

Serverless PHP using AWS Lambda
More helpful tips for serverless PHP fans. Jacques Fu shows you how to use bref to setup a serverless Laravel project on AWS Lambda.

Callbacks with AWS Step Functions
Using callbacks to control Step Function executions opens up lots of really handy use cases. Ross Rhodes Shows you how to set them up using the CDK.

Adding serverless functionality to existing applications
James Beswick walks you through deploying applications and components using the Serverless Application Repository (SAR). He also shows you how to build your own. Why reinvent the wheel if you don’t need to?

Using callback URLs for approval emails with AWS Step Functions
If you want another great example from SAR, let Ben Kehoe walk you through using the sfn-callback-urls SAR app to generate one-time-use callback URLs through a call to either an Amazon API Gateway or a Lambda function.

Good to Go: Getting Started with AWS Lambda and Go
Using Go with Lambda is fast. If you’re interested in how you can get started, this piece from Ran Ribenzaft with give you a good primer.

Serverless Security 🔒

Severe Truth About Serverless Security and Ways to Mitigate Major Risks
I don’t think that Roman Sachenko is trying to scare you, but he does make several really good points about serverless security. I don’t think serverless apps are more “porous”, as he puts it, but this is definitely worth the read.

Serverless Reads 🤓

Lambda vs Lambdas
This is a great piece by Sheen Brisals that calls attention to the dilemma that we face every day as serverless developers. While the single responsibility principle makes a ton of sense, the practicality of its implementation often leaves us hitting a performance brick wall.

Why You Should Double Down On Serverless Infrastructure
Jesse Moore argues that serverless allows an individual or a company to focus its entire efforts on its Unique Selling Proposition (USP), and he’s not wrong.

Mono- or Multi-repo?
This isn’t specific to serverless, but it is always interesting to hear other people’s experience with mono vs multi-repos. John Clarke adds his perspective.

FaaS is Key to DevOps Efficiency
I think that DevOps is a great onramp for serverless adoption. There are so many things that can be automated (or re-automated) with Lambda functions. Mike Duensing only scratches the surface here, but I definitely like the angle.

When you prefer multimedia experiences… 📽

Episode #10: Testable Serverless Applications with Slobodan Stojanović
In this episode, I chat with Slobodan Stojanović about why testing is important, how it changes with serverless, and how to make our applications more testable using hexagonal architecture.

Upload a file to S3 using Amplify | Serverless
In this video, Marcia Villalba shows us how to upload a file to S3 from a React app using AWS Amplify library.

Serverless v Containers
World renowned serverless hero and aspiring rapper, Forrest Brazeal, brings us the latest song to take over the tech/cloud/serverless rap world. Watch and listen as Forrest leads you through three minutes of artisanal, eloquently crafted english in this beautiful yet raw masterpiece. 🎤

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

Amazon Athena now supports querying data from Amazon S3 Requester Pays Buckets
With this release, Athena workgroup administrators can configure workgroup settings to allow members to reference S3 Requester Pays buckets in queries.

AWS App Mesh now supports routing based on HTTP headers and specifying route priorities
AWS App Mesh now supports HTTP header-based routing to manage traffic between services, in addition to the previously available path prefix based and host based routing capabilities.

Serverless Tools 🛠

horike37/serverless-apigateway-service-proxy: Serverless Framework plugin that supports the AWS service proxy integration feature of API Gateway
Make building service integrations easier with this Serverless Framework plugin. It now supports an S3 proxy as well.

lambci/node-custom-lambda: A custom runtime for AWS Lambda to execute functions in Node.js v10.x or v12.x
If, for some reason, you need to use Node.js v12.x, the node-custom-lambda runtime has been updated with v12.8.1.

Thoughts from Twitter 🐦

Recently, there seems to be a trend of dumbnification of AWS services to make it easier for newcomers, while making good design harder. This is not a good trend. ~ @bjorg
Sometimes over simplifications can create constraints. I’m curious about your thoughts on this.

What would you consider are the “best practices” and “anti-patterns” of using the @goserverless framework? e.g. using * for IAM perm is definitely an anti-pattern! #serverless #aws #awslambda ~ @theburningmonk
Interesting discussion here. There are so many ways to accomplish things, but certainly we are getting to a point where rights and wrongs are becoming more understood.

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 22, 2019 – We are the AWS Serverless Heroes – Ask the Experts

August 27, 2019 –  ServerlessDays Sydney

August 29, 2019 –  ServerlessDays Melbourne

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

September 19, 2019 – IOpipe and Mapbox Webinar: Visualizing critical, location-based metrics on serverless

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 Sheen Brisals (@sheenbrisals).  Sheen is a seasoned software engineer and AWS Certified Solutions Architect that is architecting and guiding engineers building serverless ecommerce solutions at LEGO (yes, that LEGO). Sheen has been speaking at serverless conferences around the world and spreading LEGO’s serverless success story. Recently, he’s written some blog posts that are highlighting the serverless purity versus practicality issue that so many developers and companies are facing. These are the types of stories that others need to hear and cloud providers need to address. Thanks for your continued insights and contributions, Sheen!  🙌

Final Thoughts 🤔

I’ve only been at this AWS Developer Influencer Summit for a few hours, but it is abundantly clear that AWS is committed to upping their serverless game. If you have any questions or feedback that you’d like me to pass on to the team, just let me know.

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.

See you next week,
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.