A Weekly Newsletter By Jeremy Daly

Off-by-none: Issue #82

March 24, 2020

Too early to think about re:Invent? 🤔

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

Last week, HTTP APIs from AWS went GA and NPM got acquired. This week, we’ve got new virtual conferences, re:Invent 2020 wishlists, and several serverless podcasts to fill your ears. Plus we’ve got a ton of great posts from the serverless community.

This is your LAST CHANCE to take the Serverless Community Survey! We’ve had a few hundred completions, but we need your input too. It doesn’t matter your level of serverless usage, the more data we have, the better. It takes LESS THAN 15 MINUTES to complete. 🙏

Serverless News & Announcements 📣

End-to-End Observability for Serverless
Instantly monitor and troubleshoot Lambda functions to get the full picture of what they’re doing and why they fail. Agentless and automated, Epsagon delivers full visibility for containers, VMs, FaaS, and more with no training, manual coding, tagging or maintenance required. Try free today! Sponsored

ServerlessDays Virtual – Call for Papers
What do you do when your local ServerlessDays event has been canceled? Go virtual! The new ServerlessDays Virtual conference is now accepting talk submissions. The first virtual conference is scheduled for April 29, 2020. More details to follow!

Azure Functions custom handlers are now in preview
Azure has some more serverless innovation to share. Custom handlers let you implement a functions app in a language beyond the officially supported languages or runtimes. Plus you can have more granular control over the app execution environment.

Serverless Stories 📖

How I Built a Machine Learning Pipeline on AWS for Under $7 a Day
Adam Tankanow worked with his team at CloudZero to split up their ML workloads, put them on Lambda, and get the cost down to $2.15 per day. This is a great example of how a little experimentation (and rethinking how you build your systems) can result in some amazing serverless applications.

How to go bankrupt trying the new cheap AWS HTTP API service
Dennis Butovetsky apparently found out the hard way that detailed metrics on the AWS HTTP API service can quickly rack up some massive CloudWatch Metrics charges. It seems strange that url parameters would be considered unique routes, so perhaps there is something he’s missing?

How I handle time-based events in serverless architecture
We’ve covered this topic many times, but it’s certainly worth repeating over and over again because it is such a powerful pattern. Richard Fan compares four ways to schedule events, and like most, comes to the conclusion that CloudWatch scheduled events plus SQS message delays work the best.

Serverless Use Cases 🗺

5 Minutes to Create an AWS Lambda Function to Stay Updated About COVID-19 in Your Area
This is a great use case that shows how serverless can be used as an extension to existing services. You could use this to monitor a SaaS service’s status page, or check for new updates on an RSS feed, or yes, even use it to get up-to-date info on COVID-19.

How to automatically create CloudWatch alerts with CloudTrail, Lambda, and Serverless
Here’s another great use case, using serverless to alert your team whenever a new Lambda function is added to your AWS account. Antonio Terreno shows you how his team set us this simple way of detecting new functions that your CI/CD system or non-instrumented functions would miss.

Serverless Framework To Test AWS Microservices
This is an interesting use case from Puneet Punj, using serverless to run automated tests runners, upload the reports to S3, and use SNS to notify you of errors.

Slack Messaging from AWS Serverless
Slackbots and serverless are like peanut butter and jelly. Krishnan Viswanath provides some simple scaffolding for building a Java-backed Slackbot using API Gateway and Lambda deployed with SAM. There are plenty of optimizations to be added, but the use case is solid.

Serverless Concepts 🏗

Supercharge Development, Delivery and Management of Serverless Applications
Stackery empowers enterprise development teams to deliver Well-Architected serverless applications quickly, securely, and at scale— without the overhead of complex infrastructure and operations management. Accelerate overall development and secure delivery of serverless applications by up to 60x – so your team can focus on perfecting core business logic. Sponsored

A comprehensive analysis of AWS Lambda function: optimize spikes and prevent cold starts
Excellent post that discusses how Lambda Provisioned Concurrency works, how it relates to Reserved Concurrency and auto scaling groups, and even a code snippet to help you schedule Provisioned Concurrency when you expect spikes in your workloads.

Moving Messages in AWS: Super-Fast Lambdas Use Batches
Good advice from Greg Farrow in here about using the available batching options provided by various AWS services when making calls from Lambda functions. If you need proof that it’s much faster, check out the tests he ran.

AWS HTTP APIs is GA. Here are my favorite features!
We talked a lot about HTTP APIs last week, but George Mao outlines a few of his favorite features. Improved CORS, JWT authorizes, and auto-deploy are all 💯!

EventBridge: The key component in Serverless Architectures
Ben Ellerby gives you the lowdown on EventBridge and why it’s such an important tool for building event-driven architectures in serverless.

Using middleware for cross-cutting concerns in your Lambda functions
Someday (hopefully in the very near future) much of the boilerplate code we need to add to our Lambda functions will go away. Until then, using middleware (like Middy) to help you standardize some of those processes can help you keep your sanity. Paul Swail explains how.

Serverless Tutorials 👷‍♀️

Configuring Serverless Framework for multiple stages
Brett Andrews shows you a simple way to use custom variables in your serverless.yml to change values based on the current stage.

How to Deploy a Local Serverless Application With AWS SAM
Lorenz Vanthillo has a great tutorial that will get you up and running (locally) with the Serverless Application Model, and then show you how to move your work to the cloud.

How to: optimize Lambda memory size during CI/CD pipeline
Yan Cui has added Alex Casalboni’s aws-lambda-power-tuning to the lumigo-cli tool. Now you can easily tune your functions for the optimal memory setting, even as part of your CI/CD pipeline. Lots of considerations when doing this, but this makes it simple.

Building a simple streaming app with Azure Cosmos DB, Event Hubs and Azure Functions
Will Velida walks you though building an event-driven app using serverless tools on Azure. It doesn’t matter what cloud you’re using, embracing and learning distributed system techniques is critical to building modern serverless applications.

Defeating malicious code injection with IAM conditions
Rob Sutter has an awesome video tutorial that shows you how to add a Condition statement to your IAM roles that can restrict item level access in your DynamoDB tables. This is super powerful for all us #SingleTableForLife peeps. This takes fine-grained security to the max. 🔒

Serverless Reads 🤓

Natively Debug AWS Lambda on your IDE!
Thundra allows you to natively debug your serverless applications on the cloud with their own permissions. Thundra’s online-debugger sets up a secure bridge between your AWS Lambda environment and your IDE. VSCode and IntelliJ IDEA are natively supported with plugins. For other IDEs, Thundra provides a portable client to foster the integration with any IDEs. Start debugging Node.js, Python and Java functions for free today! Sponsored

Tim’s Take: A re:Invent 2020 Serverless Wishlist
Tim Wagner (aka the father of Lambda) has a few #awswishlist items that he’d like the serverless teams at AWS to work on. Lots of really interesting ideas in here. My favorite is the idea of a shared in-memory cache (like Redis, only serverless). And let’s add serverless Elasticsearch to this list while we’re at it. 😉

Serverless computing: An ‘exciting space for engineers to play in’
I love reading interviews with serverless engineers that just get it. And Dave Anderson from Liberty IT definitely gets it. Dave gives some really solid answers to a number of common serverless questions.

Back to Basics: Why Global Infrastructure Matters
Great read by Serhat Can that discusses why being able to deploy to multiple regions is so important. It’s really easy to think about single region deployments, but with the right planning (think IaC), service providers like AWS make multi-region deployments an attainable goal for most organizations.

Abstractions and serverless
Adam Warski has an interesting piece that talks about (mis)handling abstractions and why we should be careful not to repeat the mistakes of the past as we continue to evolve serverless. I don’t agree with everything said (like building a non-trivial service with serverless is a high-risk), but I do agree that our current abstraction layers for serverless are not great.

Serverless Videos, Podcasts, and more… 🎧

Serverless Chats – Episode #41: Communication Patterns in Serverless with Paul Swail
In this episode, I chat with Paul Swail about the types of messaging systems available from AWS, how to use them with your serverless applications, and why thinking asynchronously is important to building resilient systems. ALSO: Serverless Chats is now on YouTube, so you can watch the episode here.

Screaming in the Cloud: Serverless Evangelism with Farrah Campbell
Corey Quinn chats with Farrah Campbell about the serverless community, her role as an AWS serverless hero, and how a serendipitous 20-minute car ride inspired her to make the jump into technology.

Real World Serverless – Episode #3: Building a fully serverless insurance company with Joe Emison
Part 2 of Yan Cui’s conversation with Joe Emison, who has been building serverless applications since 2015 with Firebase on GCP and then later with AWS Lambda.

The Serverless Trilemma: Building High-Quality Architectures
Quick video that gives a good overview of The Serverless Trilemma (paper about serverless function composition) and walks you through some examples of each of the three principles.

Build a serverless real-time analytics pipeline with AWS managed services
In this video, Marcia Villalba shows you how to get started building a serverless real-time analytics pipeline with AWS managed services and explains why we need analytics in our applications.

New from AWS 🆕

Amazon Managed Cassandra Service (preview) is now available in 18 AWS Regions
For those of you who love Cassandra, but hate managing it, MCS is now available in a region near you.

Amazon GuardDuty Price Reduction
Amazon GuardDuty is reducing the price of threat detection by adding an additional volume discount tier and further optimizing its CloudTrail analysis. Effective March 1, 2020, GuardDuty pricing for VPC Flow Log and DNS Log analysis now includes a new top discount tier of $0.

Amazon CloudWatch dashboards metric quotas has increased
Amazon CloudWatch now supports up to five times the number of metrics per graph and dashboard than before — up to 500 metrics per graph (from 100) and 2500 metrics per dashboard (from 500).

Amazon CloudWatch now provides more metric data, faster, with GetMetricData quota increase
You can now retrieve more metric data from Amazon CloudWatch, faster. The quota for the bulk metric retrieval service GetMetricData has increased from 100 to 500 metrics per request.

Thoughts from Twitter 🐦

AWS NodeJS sdk protip: ‘new aws.S3({logger: console})’ – async errors suddenly become much easier to understand ~ Gojko Adzic
Awesome tip from Gojko. This lets you log all the request details when calling S3 via the AWS SDK. Also, this option is available on all the other services like SQS, SNS, and DynamoDB.

Well, this changes everything. #AWSCertified. #aws #cloud ~ Andrew Brown
According to Andrew’s tweet, you can now take all AWS Certification exams with online proctoring. If you were looking for something to do during this lockdown, maybe an AWS certification would be a wise choice.

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.

March 13-April 10, 2020 – Getting Started with Amazon DynamoDB (Virtual Workshops)

March 26, 2020 – AWS Serverless AMA on Reddit

March 27, 2020 ServerlessDays Hamburg (Rescheduled to October 2nd)

March 30, 2020 – Optimizing Lambda Performance for Your Serverless Applications (Online Tech Talk)

April 6, 2020 ServerlessDays Boston (Postponed – new date pending)

April 20, 2020 ServerlessDays Auckland (Postponed – new date pending)

April 21, 2020 – Failover CONF: A virtual event on reliability

April 23, 2020 ServerlessDays Vienna (Rescheduled to September 24th)

April 24, 2020 ServerlessDays Paris (Canceled)

April 29, 2020 – ServerlessDays Virtual

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 Angela Timofte (@AngelaTimofte).  Angela is a Tech Lead at Trustpilot, a global review platform that helps businesses collect and leverage customer reviews. Angela’s work has focused on building scalable solutions, and in particular, migrating from monolithic to serverless and event-driven architectures. Angela has also been active in the serverless community, speaking at ServerlessDays Stockholm and at AWS Community Day Nordics 2020 about DynamoDB. Thank you, Angela, for practicing and preaching about serverless! 🙌

Final Thoughts 🤔

I hope you are all doing well and staying healthy and sane during these crazy times. Many of us are lucky enough to be able to work from home and spend some extra time with our families, but I know that’s not the case for a lot of people out there right now. Wishing all of you well, and sending a big thank you from my family to the people on the frontlines of this crisis. Stay safe! 😷

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.

Take care,
Jeremy

P.S. 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.

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.