All Posts

🚀 Project Update:

Serverless MySQL: v1.5.4 released

This update includes a minor bug fix that automatically handles reconnections when receiving the occasional EPIPE error. Special thanks to @kernwig for the PR. Read More...
Featured

Verifying self-signed JSON Web Tokens (JWTs) with AWS HTTP APIs

“Trust no one.” Or at least that’s what Fox Mulder told me back in the 90s.

With the recent GA of HTTP APIs for API Gateway, I decided to start evaluating my existing API Gateway REST APIs to see if I could migrate them over to take advantage of the decreased latency and reduced cost of the new HTTP APIs. Several of them were disqualified because they utilize service integrations (a feature that AWS is working to add), but for one of my largest applications, the lack of Custom Authorizers is what brought me to a dead end. Or so I initially thought. 😉

After a bit of research (okay, it was actually several hours because I decided to read through a bunch of specs and blog posts and then run a ton of experiments), it turns out that hosting your own OIDC Conformant “server” to verify self-signed JSON Web Tokens with HTTP APIs is actually quite simple. So as long as you can use JWT for your bearer tokens, you can utilize your existing authentication service (and probably dramatically reduce your latency and cost).

In this post, I’ll show you everything you need to know to set this up yourself. We’ll generate certificates, create our OIDC discovery service, set up our HTTP API authorizers, generate and sign our JWTs, and protect routes with scopes.

Continue Reading…

🚀 Project Update:

Lambda API: v0.10.5 Released

Lambda API v0.10.5 has been released to fix a few minor bugs around ALB query string decoding and TypeScript definitions. Plus a new feature that allows you to disable error logging. Read More...
🚀 Project Update:

Data API Client: v1.0.1 Released

There was an issue with batch records via standard queries versus those wrapped in transactions. v1.0.1 includes a patch that checks the arguments and conditionally flattens the array for proper handling in each context. Read More...
Featured

Takeaways from AWS re:Invent 2019’s Amazon DynamoDB Deep Dive: Advanced Design Patterns (DAT403)

AWS re:Invent 2019 is a wrap, but now the real work begins! There are hundreds of session videos now available on YouTube. So when you have a few days (or weeks) of downtime, you can dig in to these amazing talks and learn about whatever AWS topics you fancy.

I was only able to attend a few talks this year, but one that I knew I couldn’t miss in person, was Rick Houlihan’s DAT403: Amazon DynamoDB deep dive: Advanced design patterns. At the last two re:Invents, he gave similar talks that explored how to use single-table designs in DynamoDB… and they blew my mind! 🤯 These videos were so mind-bending, that they inspired me to immerse myself in NoSQL design and write my How to switch from RDBMS to DynamoDB in 20 easy steps post. I was hoping to have a similar experience with this year’s edition, and I WAS NOT DISAPPOINTED.

As expected, it was a 60 minute firehose of #NoSQL knowledge bombs. There was A LOT to take away from this, so after the session, I wrote a Twitter thread that included some really interesting lessons that stuck out to me. The video has been posted, so definitely watch it (maybe like 10 times 🤷‍♂️), and use it to get started (or continue on) your DynamoDB journey.

Continue Reading…

Featured

Serverless Microservice Patterns for AWS

I’m a huge fan of building microservices with serverless systems. Serverless gives us the power to focus on just the code and our data without worrying about the maintenance and configuration of the underlying compute resources. Cloud providers (like AWS), also give us a huge number of managed services that we can stitch together to create incredibly powerful, and massively scalable serverless microservices.

I’ve read a lot of posts that mention serverless microservices, but they often don’t go into much detail. I feel like that can leave people confused and make it harder for them to implement their own solutions. Since I work with serverless microservices all the time, I figured I’d compile a list of design patterns and how to implement them in AWS. I came up with 19 of them, though I’m sure there are plenty more.

In this post we’ll look at all 19 in detail so that you can use them as templates to start designing your own serverless microservices.

Audio Version:

Continue Reading…

Off-by-none: Issue #83

A Treasure Trove of Serverless Patterns… 🙌

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

Last week, we had new virtual conferences, a re:Invent 2020 wishlist, and several serverless podcasts. This week, we’ve got a comprehensive collection of serverless patterns, a new survey on technical debt, and a bunch of amazing posts from the serverless community.

Serverless News & Announcements 📣

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

Announcing Troubleshooting Monolambdas with Express.js and Flask
So this is pretty cool. While I don’t like to encourage monolithic Lambda functions (or Lambdaliths), they are still quite prevalent and create an easy path for initial serverless adoption. So whether you’re using ExpressJS, Flask, or even my open source project Lambda API, the Serverless Framework Pro now supports monitoring route level statistics using these frameworks.

Prisma Cloud Native Security Platform Embeds Security into DevOps Lifecycle
The new release of the Prisma Cloud Native Security Platform from Palo Alto now has one click instrumentation of Lambda functions. This is all built off of the technology developed by our good friends from Puresec, so you know it’s going to be good.

S3 is the greatest cloud service of all time
If you missed March Madness this year, but love using the cloud, then perhaps you were part of the A Cloud Guru voting for #CloudMadness. S3 was the winner, and Forrest Brazeal tells you why.

The Read Aloud Cloud: An Innocent’s Guide to the Tech Inside – Available for Pre-order
Speaking of Forrest Brazeal, his first book is now available for pre-order! I love reading Forrest’s FaaS and Furious cartoons, and I’m really looking forward to seeing what he’s created with this.

SURVEY: Serverless – Testing and Technical Debt
A few academics are running a survey to investigate technical debt in serverless functions. The goal is to understand how FaaS is tested and which technical factors can influence technical debt.

Informatica brings serverless compute to Data Integration Cloud
If you can get through ZDNet’s mountain of ads, you might gain some insight into Informatica’s new serverless compute offering. Might be a bit hard to read between the lines, but you’ll see a lot more of this in the future, where platforms like Informatica are giving customers serverless functions to process data within their systems.

Serverless Stories 📖

Why I didn’t choose serverless framework?
Mandar Nilange decided to write his own deployment scripts utilizing the AWS CLI and Bash scripts, which he says gives him more control and flexibility. IMO, this is a very bad idea. As developers, we often get the urge to build solutions ourselves (I get it, I’ve been there, and still am sometimes), but building custom tools to deploy your services adds zero customer value and creates brittle deployment systems that require ongoing maintenance.

Think twice before you use Durable Functions
Tejash Shrestha had some issues scaling Durable Functions, and he writes about it in this post. I’m curious how much of this was an underlying issue with Durable Functions versus an implementation problem. Either way, cloud providers should take feedback like this very seriously.

Serverless Continuous Integration in the era of parallelism
Great post by Saar Tochner that discusses how Lumigo tweaked their serverless deployment system to achieve faster test results without compromising their testing suite.

Serverless Use Cases 🗺

The smallest way to introduce serverless into a brownfield application
Paul Swail points out one of the best serverless use cases out there, especially if you already have a brownfield application that likely won’t be easy to migrate to serverless.

Moving Laravel Artisan Commands To AWS Lambda
This use case by Mahfuzul Alam is a perfect example of offloading peripheral jobs to serverless.

Serverless Concepts 🏗

Serverless Patterns
Wow, wow, wow! Davide Taibi, Nabil El Ioini, Claus Pahl, and Jan Raphael Schmid Niederkofler wrote a research paper on Serverless Patterns and it is amazing. Lot of really cool patterns in here (including some of mine) for you to apply to your own serverless architectures.

The Official Guide to AWS HTTP APIs
Fernando Medina Corey put together an extensive guide to using the new AWS HTTP APIs. Lots of detail in here about use cases, drawbacks, pricing, and how they work with the Serverless Framework.

Serverless: Tweaking the Lambdas
Anuradha Wickramarachchi offers a few suggestions for optimizing your Lambda functions. There is some good information in here about Node.js concurrency, and a simple trick to minimize simultaneous asynchronous calls in the event loop.

AWS Serverless Series Part 1 : DynamoDB Distilled
In depth post by Dattatray Kulkarni that outlines the details of DynamoDB. He points out several limitations, but many are mostly limitations of NoSQL databases in general. Pagination is still my number one pet peeve, so 100% agree with him on that.

How to Migrate Your REST API to the New HTTP API in AWS
If you’ve yet to give AWS HTTP APIs a look, this article from Allen Helton will give you some details on what you’d need to do to migrate.

What is the ideal retention period for application logs?
Renato Byrro has a few suggestions to answer this question.

Serverless Tutorials 👷‍♀️

New How-To Videos from AWS: Amazon EventBridge Learning Path
Seven demo videos, 60 minutes, and a lot to learn about event-driven architectures. This highly visual learning path guides you through getting started with EventBridge, integrating with SaaS partners, and using advanced features like Schema Registry. It also provides additional resources to dive deep into EventBridge features and learn more about event-driven architectures. Sponsored

Verifying self-signed JWT Tokens with AWS HTTP APIs
Since AWS HTTP APIs are all the rage, I decided to do a bit of poking around myself to see if I could migrate some existing projects. Turns out that the limited authentication methods were my biggest roadblock. But after some research, I was able to set up a way to easily verify self-signed JSON Web Tokens. In this post, I’ll show you how.

How to build a Serverless API in AWS without using a single lambda
It’s not right for everything, but bypassing Lambda altogether is certainly a possibility for certain workloads. In this post, Andres Moreno shows you how to do just that.

Finding the nearest locations around you using AWS Amplify
Gerard Sans has an awesome tutorial that will teach you how to enable GraphQL distance-aware searches using the @searchable GraphQL transform along with AWS Amplify.

Realize asynchronous Slack slash command with AWS serverless
Great tutorial by Chen-Che Huang that shows you how to use the AWS CDK to deploy a Slackbot that can help manage deployments in your AWS environment. Plenty of other use cases for this as well.

Decorated Lambda handlers
This post by Tom Vincent shows you how to take a lot of the repetitive boilerplate that’s added to Lambda functions and wrap them up in a simple, reusable decorator. This would be a great use case for Lambda Layers.

Serverless Security 🔒

Apple Turns the Anti-Ad Thumbscrews With Safari Cookie Blocking
Not entirely serverless here, but important information (and insight) into the state of privacy on the web and how it will affect lots of developers. I’ve always been a privacy advocate, but killing offline PWAs by reseting local storage every seven days seems like using a chainsaw versus a scalpel.

DDoS Defence
A quick summary of some DDoS defense tactics using AWS services and infrastructure.

Serverless Reads 🤓

Immutable Infrastructure
This is an amazing post by Adrian Hornsby (set aside at least 30 minutes to read and absorb it) that discusses the benefits of (or more realistically, the need for) immutable infrastructures in the cloud. Whether you’re developing serverless applications or traditional ones, applying this mindset could save you a lot of headaches in the future.

How your org predicts your CI/CD pipeline
I think Forrest Brazeal wins this month’s “prolificness” award. He has another excellent piece that outlines some common CI/CD patterns and explains how they map back to your engineering organization’s (likely broken and messy) structure.

Should development firms support multiple clouds for their serverless client projects?
Paul Swail has some thoughts on multi-cloud serverless deployments and why he thinks it’s a bad idea.

13 Top Serverless Solutions for 2020
This post by Ashan Fernando gives a serverless solution for a number of different categories and then some alternatives for each. There’s a plug in here for something that I wouldn’t really consider “serverless”, so feel free to play the “one of these things is not like the other” game.

Knative Crowds out Other Serverless Software Packages (and Other CNCF Survey Takeaways)
Lawrence Hecht does an awesome job digging into the number of the CNCF survey and offers up some additional insights (especially into the effect Knative is having on other installable serverless solutions).

Serverless Videos and Podcasts… 🎥

Episode #42: Better Serverless Microservices using Domain Driven Design with Susanne Kaiser
In this episode, I chat with Susanne Kaiser about the problems with poor software design, how Wardley Maps can help you focus on your core business domains, what are the patterns and practices of Domain Driven Design, and how they can help you build better serverless backends. Don’t forget that you can watch it on YouTube!

Streaming realtime data using Kinesis Firehose
In this video, Marcia Villalba teaches you about AWS Kinesis Firehose, and then builds a demo that sends streaming data to it.

Happy Little APIs, Season 2: Episode 1
A new season of Happy Little APIs with Eric Johnson. This episode features Ran Ribenzaft from Epsagon talking about Private Integrations with HTTP APIs. Catch new episodes every other Tuesday through May 31, 10 AM PDT.

New from AWS 🆕

Amazon Kinesis Data Streams now supports scaling up to 10,000 MB/s throughput with a single API call
Starting today, you can use the UpdateShardCount API in Amazon Kinesis Data Streams to scale up to 10,000 shards for a single data stream. That is a lot of data.

AWS Global Accelerator launches TCP Termination at the Edge
This is a very cool feature if you have really low latency requirements. By creating TCP connections in parallel, the total connection time is reduced, increasing performance for workloads such as API calls, file uploads, or Voice over IP calls.

Amazon DocumentDB (with MongoDB compatibility) Adds Support for Role-Based Access Control
Amazon DocumentDB added support for Role-based Access Control (RBAC). RBAC gives you the ability to create users and attach built-in roles to restrict what operations the user has authorization to perform.

Amazon Managed Cassandra Service now helps you automate the creation and management of resources by using AWS CloudFormation
You can now create and manage settings for resources in MCS based on CloudFormation templates. The templates enable you to specify the name of keyspaces and tables as well as the schema, read/write mode, and provisioned throughput settings for tables.

Serverless Tools 🛠

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

Serverless Ecommerce Platform: a sample implementation of a serverless backend for an e-commerce website
Nicolas Moutschen put together an incredible resource for devs and architects that want to learn how to build and connect serverless microservices. You can deploy this sample, or simply use it as a roadmap to architect your own solution.

Creating Serverless Application effortlessly with LaconiaJS
Haven’t played around with this, but it looks like a pretty solid library.

s0enke/cloudformation-templates: A collection of common tasks automated with CloudFormation
Soenke Ruempler just added two new CloudFormation templates that easily let you send AWS events to a Slack channel using AWS Chatbot. One sends health events, and the other sends CodePipeline events.

What’s new on sls-dev-tools ?
Lots of new features have been added to sls-dev-tools, including expanded AWS authentication support, EventBridge monitoring, and a keyboard shortcut to open the AWS Console for a function.

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)

April 2-May 31, 2020 – Sessions with SAM: Live Twitch sessions by Eric Johnson (every Thursday at 10AM PDT)

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

April 7, 2020 – Chaos Engineering: What is it and Why do you need it! (panel discussion)

April 22, 2020 – From Monolithic to Modern: MasterStream’s Serverless Transformation with Stackery (webinar)

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 John Demian (@JohnDemian). John is a Software Engineer-turned-Marketer who very recently joined the team at Sematex, an organization building innovative cloud and on premise solutions. Prior to Sematex, John was a Developer Advocate at Dashbird, and a self-proclaimed part of the “serverless revolution.” John’s written many blog posts about serverless, and you can always count on him to share a tweet from discourse within the community. Thanks John for being an active part of the serverless dialogue! 🙌

Final Thoughts 🤔

These weeks in self-quarantine seem to be flying by, but at least the serverless content engine seems to be firing on all cylinders, so that’s good. Anyway, as we all continue to practice social distancing (which seems like it could last for quite some time), I hope you’re finding time to connect with new people online, learn new skills, and spend time with your loved ones. Crazy times we’re living in, but hopefully we can all use this time wisely.

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.

Stay safe out there,
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.

Off-by-none: Issue #82

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.

Off-by-none: Issue #81

HTTP APIs for the rest of us… 🚀

Welcome to Issue #81 of Off-by-none. Thanks for joining us!

Last week, the Serverless Framework added Lambda Destination support, we saw some massive investment in serverless, and we introduced Yan Cui’s new serverless podcast. This week, we’re all about lightweight HTTP proxies to Lambda functions. Plus we’ve got some amazing posts from the serverless community.

Also, PLEASE don’t forget to take the Serverless Community Survey and share it with all your coworkers, family, and friends! The data from this is super important and will help the community make serverless better!

When you just need a simple HTTP proxy to your Lambda function… 👩‍💻

This past week, AWS announced that HTTP APIs have become GA, which is pretty darn cool. For web-facing serverless applications, API Gateway was likely the main entry point, which forced developers to use a fairly complex (and sort of expensive) tool to solve a simple problem. With the release of HTTP APIs, HTTP proxying to Lambda functions is not only super simple, but also 71% cheaper and 60% faster. Plus there’s a ton of other really great features and some exciting things on the roadmap.

If you want to learn more, check out:

And if you want to hear from one of the Senior Project Managers on the API Gateway team, have a listen to this week’s episode of Serverless Chats featuring Eric Johnson and Alan Tan.

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

Lightbend Secures $25 Million In Funding Led By Dell
Lightbend is the company that launched the CloudState spec initiative a while back that proposed adding state to serverless. It looks like whatever they are doing is getting attention from investors.

Tencent Cloud FaaS capability was evaluated as a “strong performer”
I know this is just a press release, but I think we should all keep our eyes on Tencent Cloud. I know that the Serverless Framework is working closely with them, and they appear to be bulking up their serverless offerings.

Next Phase Montage
Not really serverless news, but NPM is being acquired by GitHub (aka Microsoft). I think this will add more stability and security to NPM, which is a good thing, but the fact that Microsoft is buying another part of the backbone of the open source ecosystem seems a bit concerning. I should probably take off my tinfoil hat.

Stackery Announces Support for AWS HTTP APIs service
Stackery users can now implement the new HTTP APIs in their projects. And if it works for your API use case, you should definitely do this.

Serverless Stories 📖

How Serverless Saved Us For $2.
This is one of those serverless stories that should be sent to every naysayer out there. Generating 2,000 PDFs with a dedicated server takes up to 11 hours. With Lambda functions and SQS, it takes 2 minutes and costs $1.63.

Serverless CI/CD: How we added a staging step
I’ve never met the same serverless CI/CD process twice, and this one from the dev team at Lumigo is no exception. It’s always interesting to see how teams set these things up, so take a peek if you’re looking for some ideas.

How I Built a Serverless Geo-Search App with DynamoDB
Allen Helton recounts some of the bumps along the road when creating a completely serverless geo-search app. Some interesting notes in there about the constraints of third-party packages and the gotcha many people find when trying to update values in a DynamoDB table’s primary index.

Serverless Use Cases 🗺

Comparing Two Ways to Trigger Lambda from S3
Eoin Shanaghy compares S3 notifications versus EventBridge with CloudTrail to trigger a downstream Lambda function. While he notes the latency is higher with EventBridge, the decoupling is definitely a benefit.

Using AWS Sagemaker and Lambda function to Build a Serverless ML Platform
Machines learning use cases with Lambda can be tricky, but throwing SageMaker in there can open up a whole new set of possibilities. This is a really great post that shows how to leverage serverless tools with SageMaker to build a really cool prediction algorithm.

🤖 Price Tracking with Telegram Bot
Periodically checking something and pushing data to a bot seems like a pretty good serverless use case to me. Leon Wee provides a full blown tutorial in here, so if you wanted to implement something like this for yourself, feel free to give it a try.

Can you use Serverless for Artificial Intelligence today?
Rodolphe Cambier runs through two different types of AI use cases and examines whether or not they are a good fit for Lambda functions. I think we’ve been clear that many machine learning use cases are hindered by some of Lambda’s limitations, but I have a feeling that’s going to change at some point in the not so distant future.

Serverless Concepts 🏗

How to model one-to-many relationships in DynamoDB
Another awesome post by Alex DeBrie on DynamoDB modeling. There are so many amazing things that can be done with NoSQL if the data is modeled correctly, and Alex gives you a very thorough lesson on a very useful pattern.

Designing Serverless APIs with AWS
This is a good overview by Udith Gunaratna of the different ways to build APIs using API Gateway and Lambda functions. It outlines some pros and cons to single purpose versus fat Lambdas, along with a discussion on the different types of integrations. Of course, HTTP APIs is likely going to change you approach to this.

Best Practices for Serverless Observability
Whenever the subject of observability comes up, Ran Ribenzaft’s always a great resource to turn to. This post will give you a great overview of what observability is, and how you should be applying it to your serverless applications.

DynamoDB Crash Course — Intro and Secondary Indexes
If you’re looking for a more general overview of DynamoDB, take a look at this article by Stephen Lizcano. I’m loving the recent influx of articles and videos on DynamoDB. We have an entire generation of developers that need to start looking at NoSQL very seriously.

Serverless Tutorials 👷‍♀️

Debug AWS Lambda functions with Thundra Online Debugging
The new Thundra Online Debugger is pretty sweet, so at the very least, you should give this thing a try. Ryan Jones walks you through the whole process from setting up your Thundra account, to installing the VS code plugin, to debugging your first Lambda function.

How to access cloud resource configuration from your local tests
This is a common task that many people end up banging their head against the wall trying to solve. Paul Swail teaches you his preferred method using the serverless-export-env plugin for the Serverless Framework.

How to Build A Serverless Telegram Bot with AWS Lambda
It seems Telegram Bot is popular this week. This post shows you how to implement a Lambda function to respond to bot requests.

Mastering the AWS SAM CLI
There are lots of framework options out there for deploying serverless applications, but if you’re doing straight AWS, it’s hard to go wrong with SAM. Serkan Özal gives you a detailed overview of all the commands you need to know to be publishing serverless apps in no time.

Testing serverless apps with Mocha on Begin
I’m a big fan of Test-Driven Development (though I’m not always a strict practitioner), but any time I see workflows encourage and fully integrate testing, it’s worth sharing. Paul Chin Jr. shows you how this works with Begin using either Mocha or Jest.

Conditionally deploy Serverless services only when modified in a mono Git repository
I’ve included this because I think it’s a creative approach to this common problem. I really like splitting out my services into separate repos, but this has bitten me more that a few times. There are more options now for serverless monorepo deployments, but it never hurts to open up the hood and see how this stuff works.

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

Why Organizations Are Adopting or Avoiding Serverless
Roger Magoulas has another wrap up article about the O’Reilly survey on serverless architecture adoption. Some interesting takeaways in here, especially the fact that “security concerns” was the top reason why organizations were avoiding serverless. Also, still seeing “vendor lock-in” way up on the list of challenges.

Edge Computing: Cloudflare’s Current Expansion Is Different
I know I’ve said this before, but if you’re wondering what comes after serverless, edge computing is probably it. Cloudflare’s strategy on this is really interesting, and while there is some competition, they’re certainly positioning themselves well to be the pioneers on this.

Will Virtual Machines Fade Out for Containers and Serverless?
I thought this was a good piece by Joao-Pierre S. Ruth that highlights the importance of choosing the right technology for the right job. There’s no doubt that lifting and shifting to VMs is easier than containerizing your applications, and that taking the next step to serverless will require a complete refactor. So while new applications will obviously benefit from modern technologies, there are still plenty of reasons why we’ll be seeing VMs for quite some time.

InfiniCache: Distributed Cache on Top of AWS Lambda (paper review)
Mikhail Shilkov did an excellent job reviewing “InfiniCache: Exploiting Ephemeral Serverless Functions to Build a Cost-Effective Memory Cache”, a paper by Ao Wang et al. It’s always interesting to see what kinds of crazy ideas people come up with, and sometimes it things like this that can push providers to make their better products.

For the audio/visual crowd… 📽

Serverless Chats – Episode #40: HTTP APIs for API Gateway with Eric Johnson and Alan Tan
In this episode, I chat with Eric Johnson and Alan Tan about why HTTP APIs should be your first choice, the path to REST API feature parity, how private integrations work, implementing CORS and authentication more easily, and so much more.

Using Environment Variables to Deploy to Different Environments with AWS CodePipeline
Marcia Villalba shows you how to configure your SAM templates to create dynamic resource mappings when deploying your serverless applications using AWS CodePipeline.

Real World Serverless #2: The case for monorepoes with Joe Emison
Part 1 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. They discuss the value of serverless, especially to startups, and why he has built Branch Insurance to be fully serverless.

Serverless Lunch Chats with James: EventBridge resources
James Beswick, Senior Developer Advocate for Serverless at AWS, did a Twitter Live chat the other day and discussed EventBridge. He posted some additional materials as well that will help you start building better event-driven applications.

New from AWS 🆕

Amazon Athena now publishes CloudWatch Events for Athena query state transitions
This is an awesome new feature that can open up a ton of new data processing pipelines. Using these new events, you can create a rule that invokes an AWS Lambda function to post-process the query results when a query has reached the Successful terminal state. Very cool stuff.

Amazon ElastiCache for Redis announces Global Datastore
So, not really serverless, but Redis has become the go-to for many serverless apps that need reliable and fast caching. This new feature lets you replicate your cache to two different AWS regions, which could dramatically reduce latency for many applications that are still pulling data from a single region. More details here.

Amazon Athena adds support for managing Athena Workgroups using AWS CloudFormation
Athena has become an essential part of my serverless data infrastructure, so more repeatable CloudFormation configurations are always welcome.

Amazon Elasticsearch Service announces support for Elasticsearch versions 7.4
Still not serverless, but like ElastiCache, Elasticsearch is another necessity in many “mostly” serverless applications. This new update adds support for the distance_feature query, some new range aggregations, plus a few updates to Kibana.

New AWS Certification validates expertise in AWS databases
For those of you striving to become an AWS purpose-built database master, you can now attain blackbelt status with this new certification.

Amazon S3 adds tagging support for S3 Batch Operations jobs
S3 Batch is pretty amazing, but it can also be a bit dangerous if anyone in your organization can trigger a job. With this new update, you can use tags to restrict access to specific jobs using IAM.

You now can update your Amazon DynamoDB global tables from version 2017.11.29 to the latest version with a few clicks in the DynamoDB Console
If you are running old DynamoDB global table versions, you should consider doing this. It’s free, requires no table rebuilds, and will allow you to take advantage of the more modern replication features, higher availability, and access to additional regions.

Amazon Redshift introduces support for materialized views (Generally Available)
Also not serverless, but this is a really cool feature. Lots of us have data in Redshift, even if it’s replicated from something like DynamoDB for analytics purposes. These new materialized views can help speed up query performance by pre-computing some of the more predictable workloads.

Serverless Tools 🛠

10 Essential Serverless Framework Plugins
The rich ecosystems of plugins is just another reason why the Serverless Framework is so powerful. Itay Herskovits calls out ten that are super useful in the serverless developer’s toolbox.

Testing DynamoDB offline with Serverless Framework
Michael Timbs shows you how to implement testing using the serverless-dynamodb-local plugin. I’ve gone back and forth on the value of trying to replicate DynamoDB locally, and I tend to favor using a real cloud environment instead. However, if you have a reason for doing it this way, this post will point you in the right direction.

Debugging Event Sources for AWS Lambda
New Relic has always been a solid tool for monitoring applications, and since the team from IO Pipe joined them, the new features being churned out for serverless are quite amazing. Adam Johnson walks you through their event sources feature for Node.js and Python that lets you see which service invoked your Lambda function.

Kumologica: First low-code development tool for AWS Lambda
I don’t know anything about this company, but I came across this blog post and thought it looked like an interesting tool. I need to give it a more thorough look.

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 19, 2020 ServerlessDays Zürich (Rescheduled to September 24th)

March 24, 2020 ServerlessDays Helsinki (Postponed – new date pending)

March 24, 2020 – Introducing HTTP APIs: A Better, Cheaper, Faster Way to Build APIs (Online Tech Talk)

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

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

April 24, 2020 ServerlessDays Paris (Canceled)

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 Aviad Mor (@AviadMor). Aviad is the CTO and Co-Founder at Lumigo, a serverless intelligence platform. Aviad’s work extends beyond working on serverless tools that help in troubleshooting serverless applications though. He’s also spoken at ServerlessDays events, chatted with the Devops Chat podcast, and has a few blog posts on serverless that have appeared on the Lumigo blog and on The New Stack. Thank you, Aviad, for helping developers build more reliable serverless applications! 🙌

Final Thoughts 🤔

It’s been a bit of a strange week as the world adjusts to this new normal caused by COVID-19. I’m hoping that all this self-quarantining will lead to inspiration and we’ll see a bunch of really great serverless content and projects come from all this extra free time that people have. Maybe it’s time for you to write your first blog post? 😉

However you decide to spend your time, please stay safe, take care of your loved ones, follow the advice of your local officials, and support health care workers and neighbors in whatever ways you can. We can do this.

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.

Best,
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.

Off-by-none: Issue #80

Welcome to your Lambda Destination… 🏝

Welcome to Issue #80 of Off-by-none. Thanks for joining us!

Last week, we met some new heroes, got HTTP APIs support in the Serverless Framework, and a GA version of NoSQL Workbench. This week, the Serverless Framework adds Lambda Destination support, we see a massive investment in serverless, and we get a new serverless podcast. Plus we have plenty of awesome posts from our friends in the serverless community.

⚠️ Before we begin, don’t forget to take the Serverless Community Survey! And if you already took it, please share it with all your recently work-from-home (or self-quarantined 😬) coworkers, family, and friends. ☣️

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

AWS Lambda Destination Support
Praise [insert deity of your choice]! 🙌I cannot understate the importance (or my excitement of) Lambda Destinations. And now that the Serverless Framework supports them, I can go through all my recent projects and pull out those AWS::Lambda::EventInvokeConfigs from my resources.

Netlify nabs $53M Series C as microservices approach to web development grows
Another big money investment into the serverless space. Netlify is a great example of taking a serverless use case to the extreme and monetizing it. Happy to see this company keep growing and enabling more serverless sites.

Announcing the new Real-World Serverless podcast
More serverless content for your commute! 🎧Yan Cui has launched a brand new podcast where he discusses real-world use cases and challenges with the engineers who are building serverless applications.

2019 CNCF Survey results are here: Deployments are growing in size and speed as cloud native adoption becomes mainstream
The CNCF released the results of their cloud native survey from last year. Some of the big takeaways are that container usage is up (no surprise there), but 41% of respondents are using serverless, with AWS Lambda topping out the hosted solution (53%) and Knative being the most popular (34%) for installable software.

TriggerMesh Joins the Cloud Native Computing Foundation
I still think we need to have a separate “Cloud Native, but for real this time, Computing Foundation” that focuses only on serverless, but I guess having more contributors to the CloudEvents spec isn’t a bad thing.

Putting an End to the Misery of Serverless Application Debugging With Thundra
I saw a demo of the Thundra Debugger the other day and it is very, very cool. One of the biggest problems we have as serverless developers is needing to test code remotely, which often means republishing over and over and adding more logging. The way this tool integrates directly with your IDE changes everything.

Serverless Stories 📖

Rust and Serverless, with a focus on Cloudflare Workers
Simon Werner has a good post that documents his experience trying to build a REST API with Rust and serverless. Lots of roadblocks right now, but given the future of WASM and serverless computing at the edge, this is something to keep your eye on.

How to Build a Scalable, Cost-Effective Event-Driven ETL Solution using Serverless?
Vyas Sarangapani has an awesome post that documents the architecture his team used to build a serverless ETL system. I love when people share their architectures. It’s always super instructive to see how others solve their problems.

AWS Lambda With Static Outgoing IP
Not every problem is easily solved with a serverless solution (though I’ve had success using a NAT Gateway as a proxy), so sometimes throwing an EC2 server into the mix might work for you. Yury Smykalov explains why EC2 plus tinyproxy worked for him.

Serverless Use Cases 🗺

Build Slack Home Tab in minutes using AWS Lambda and Amazon EventBridge
Slobodan Stojanović has a great article that shows you how Vacation Tracker is using their SAR App to route their Slack commands through EventBridge and off to Lambda workers to handle the response. There are some very cool patterns in here, plus sample code if you want to implement some of this yourself.

AWS primitives for scheduling future tasks
Paul Swail outlines a few strategies that can be used to schedule tasks with AWS. This has been written about extensively (and he includes some links to those articles), but it’s a common use case that creeps up from time to time. I personally like running a CloudWatch Event every 15 minutes and using an SQS with a DeliveryDelay to handle more precision, but everything has its tradeoffs.

Does Serverless Make Sense for Your Organization?
This article lays out five different use cases for serverless that are being applied by a number of large companies. There are a few “other considerations” in here, but I feel like we’ve addressed those a thousand times over.

Monitor Servers and Reboot SolusVM via AWS Lambda Function
Whether you’re running SolusVM or not, using a Lambda function to monitor servers or perform schedules maintenance is a great DevOps use case for serverless.

Serverless Concepts 🏗

5 reasons why you should use EventBridge instead of SNS
Yan Cui outlines five reasons why EventBridge should be your new go-to over SNS. There are still plenty of reasons why you’d want to use SNS, but with all the capabilities being added to EventBridge (like content filtering), the majority of use cases will be satisfied.

Firecracker: lightweight virtualization for serverless applications
If you ever wanted to do a deep dive on Firecracker, but didn’t want to dig through all the open source docs, Adrian Colyer has a treat for you. In this post, he summarizes the recently released NSDI’20 paper on Firecracker and gives you a great overview of its design and the problems it solves.

5 Steps to Making a Predictable Cost Model for AWS Serverless Projects
Great article by Allen Helton that points out a number of cost considerations when building serverless applications. Data transfer, execution time, CloudWatch logs, etc., all have costs associated with them. He also mentions cost modeling around business processes, which I’m a huge fan of. One of the super powers of serverless is knowing exactly how much a particular process will cost you, which makes calculating the value of that process much easier.

Introduction to Firebase
You know I’m a big fan of the AWS ecosystem, but if you’ve never looked at Firebase, you definitely should. There are some great features and capabilities (like built-in auth) that make it a handy tool in your serverless arsenal.

Lambdas in Production
Caleb Brewer has a nice “cheatsheet” of things to remember when running Lambdas in production. It’s not a long list, but each one is an absolute must.

Serverless Tutorials 👷‍♀️

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

HTML to PDF conversion using Node.js runtime as AWS Lambda Functions
Keyur Bhole shows you how to generate a PDF from HTML and CSS using the Node.js runtime on AWS Lambda Functions. He also provides you with the compiled executables to add to you Lambda Layers.

Add type definitions to your Lambda functions
Great tip from Paul Swail about using the @types/aws-lambda library to add autocomplete and type checking to your IDE when developing with TypeScript.

New at Begin: add and manage routes via manifest file
I really like what Brian Leroux and his team are doing over at Begin. The Architect Framework is really powerful and super easy to use, and Begin ties it all together to let you build modern apps, “fast af.” 😉

Serverless Kubernetes with Amazon EKS
I have absolutely no interest in doing this, but for those of you looking for a K8s alternative with the same basic semantics, this tutorial is for you.

Using Serverless Framework with the Amplify Client Library
If you want to take advantage of the Amplify Client Library, but you’d like more control over your serverless backend, Josh Heling can show you how.

Serverless Security 🔒

Egress Filtering in Serverless Applications
I love me a good serverless security post. Dorian Smiley points out something that many people seem to overlook (besides the fact that most developers don’t think about security). Lambda functions that are not in a VPC have wide open “outbound” access to the public Internet. There are several reason why you would want this, but if you are using lots of NPM dependencies (and you know you are), then this can be a huge security risk. Dorian offers some mitigation strategies in here, but having the ability to disable outbound access from non-VPC Lambda functions has been on my #awswishlist for quite some time.

Serverless (in)security
Pawel Rzepa rehashes the main concerns with security in serverless. As he says, it’s really all about application security. Don’t trust any inputs (even if generated by a cloud resource), use the Principle of Least Privilege, and be wary of third-party dependencies. That should get you most of the way there.

Serverless Reads 🤓

Cloud developers are falling in love with serverless computing – and more soon should
Jason English has a nice round up of some recent studies and reports about serverless that point to the adoption curve trajectory. We’ve commented in the past on the reports mentioned, and the underlying data certainly seems to show that people get it. Although, that recent CNCF survey said 83% of cloud customers are running containers with 78% on Kubernetes.

11 Reasons Why You Are Going To Fail With Microservices
This isn’t specific to serverless, but I found the article to be quite interesting. I’m a huge fan of microservice architecture, especially using serverless, but it is very easy to get lots of things wrong. There are many excellent reasons to choose microservices, however, be cautious of the potholes along your journey.

Serverless is not functions
David Carboni has a thoughtful piece that discusses the “unlearning” that must happen as we move to a serverless mindset. He also recounts his “presentation-less” talk at ServerlessDays Cardiff (which I was lucky enough to see in person).

De-construct the Monolith: How Serverless Modernizes Infrastructure & Refactors Apps
Another great post by Tim Zonca from Stackery. If you’re trying to get some decision makers to buy in on serverless, send them a link to this post.

For the commuter… 🚎

Serverless Chats Podcast – Episode #39: Big Data and Serverless with Lynn Langit
In this episode, I chat with Lynn Langit about why big data is outgrowing traditional systems, how bioinformatics and genomics are generating the biggest data scale ever seen, and why serverless and the cloud are making it easy for researcher to process this data faster and more economically.

ServerlessDays Nashville 2020 – How to fail with Serverless by Jeremy Daly
Here’s my talk from ServerlessDays Nashville. The cloud is designed for failure, and public cloud providers like AWS have several ways to deal with those failures in your applications. In this talk, I review the failure modes and retry policies that allow you to build resilient, highly-available systems.

Videos from ServerlessDays Nashville 2020
And if you really want to dig deep, check out the YouTube playlist for all of the talks at ServerlessDays Nashville 2020.

Why you should use OpenAPI for your API design
Nick Van Hoof talks about how OpenAPI can make your life easier in a serverless world in his presentation from the API Conference.

New from AWS 🆕

AWS Serverless Application Repository adds support for sharing applications with AWS organizations
I really love the concept behind SAR, but multi-account sharing was always a bit of a pain. Now you no longer need to manually enter in account ids, but can share with your entire organization and never have to worry about updating your app configs again. Check out this great post by James Beswick.

Amazon CloudWatch now allows you to combine multiple alarms
You can now combine multiple alarms to reduce alarm noise and focus on critical operational issues. This is a pretty cool feature. For example, I have an alarm on ApproximateNumberOfMessagesVisible and another one on ApproximateAgeOfOldestMessage. I only need an alert if they both cross a certain threshold.

AWS WAF adds Anonymous IP List for AWS Managed Rules
Useful feature if you want to block users who attempt to hide their identity or evade geographic restrictions.

Build k-Nearest Neighbor (k-NN) similarity search engine with Amazon Elasticsearch
This is a very cool new feature built in to Amazon Elasticsearch. While a relatively simple algorithm, k-NN is quite effective, and can be a super useful addition to your ES datasets.

Amazon SageMaker Ground Truth Now Supports Multi-Label Image and Text Classification and Amazon CloudWatch Events
If you’ve ever actually built a machine learning application, you’ve likely had to set up an interface for human review (it’s okay, you can admit it). So having SageMaker Ground Truth at your disposal is pretty sweet. And now you can enable multi-classification and CloudWatch events to kick off additional workflows.

Serverless Tools 🛠

24 open source tools for the serverless developer: Part 1 & Part 2
Yan Cui has assembled a list of open source tools that help make serverless development easier.

Thoughts from Twitter 🐦

In this thread: more evidence AWS needs to build a circuit breaker state service, and integrate it deeply into Lambda. Customers arguing about the best way to implement something we all need to build for ourselves is a prime indicator of opportunity. ~ Ben Kehoe
Ben makes an extremely important point. If you’re not using circuit breakers, you should be, but the implementation (and the best practices) aren’t very obvious when it comes to Lambda functions. Also, depending on the invocation method, velocity, and throughput, there are different ways to approach the problem (think stream processing). Having an official built-in feature would be very nice.

We recently made changes that reduced the time to ~5 min consistently. We’re not done yet as this continues to be a priority for us this year. When we say a config is deployed we reference p100 metrics; however, most edge locations are updated in seconds. ~ Amazon CloudFront
Um, so this is awesome news. I was not seeing these improvements the other day (still looking at 20+ minutes for initial deployments and 15+ for modifying updates), but the fact that this is being worked on and some changes have been made, is welcome news.

Friends, I’m just starting to get into and research AWS Lambdas, but as primarily a front-end dev, I don’t have a lot of use cases in mind. What are some of the ways you’re using Lambdas? ~ Kyle Shevlin
Kyle has been an awesome contributor to the JavaScript space, and it’s great to see him venturing into serverless. His post asks for use cases, and while I commented that you can use serverless for almost anything, there were several more specific responses that you might find helpful in the thread.

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 10, 2020 – How Best Friends Animal Society Shifts-Left with Security Strategy on AWS Serverless Infrastructure (webinar)

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

March 19, 2020 – ServerlessDays Zürich

March 24, 2020 – ServerlessDays Helsinki 🗣

March 24, 2020 – Introducing HTTP APIs: A Better, Cheaper, Faster Way to Build APIs (Online Tech Talk)

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

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

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

April 20, 2020 – ServerlessDays Auckland

April 23, 2020 – ServerlessDays Vienna

April 24, 2020 – ServerlessDays Paris

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 Amy Arambulo Negrette (@nerdypaws). Amy most recently started a role as Cloud Architect at Trek10, a company that designs, builds, and supports serverless and event-driven architectures for its customers. But before her recent move, Amy was a Cloud Software Engineer at CloudReach, and prior to that, came from the public sector where she designed enterprise scale solutions while updating them with serverless technologies. She’s even built web applications for names like Yahoo! Sports and NASA. Thank you, Amy, for all your work in serverless! 🙌

Final Thoughts 🤔

Lots of great stuff happening in the serverless space this past week. More tools, more investments, and more great content to help developers learn how to build better serverless applications. In other not-so-good news, the recent COVID-19 outbreak is wreaking havoc on people’s health and the world economy. So, stay safe out there, wash your hands, take care of your loved ones, and if you’ve got some extra time at home because you no longer need to commute to the office, use that time to learn more about serverless. 😉

Also, please don’t forget to take the Serverless Community Survey! The more responses we get, the more valuable the data will be. We are sharing this data with everyone, so your input will help the community make serverless better.

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.

Best,
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.

Off-by-none: Issue #79

Super Serverless Tuesday… ☑

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

Last week, we launched the Serverless Community Survey (don’t forget to take it and share it). This week, we meet some new heroes, welcome HTTP APIs support in the Serverless Framework, and upgrade our NoSQL Workbench. Plus we have loads of awesome content from the serverless community.

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

Introducing a Dart runtime for AWS Lambda
I’ve heard a lot of people championing Dart lately, though I’ve yet to spend any meaningful amount of time with it. But if you want to dive in with Dart, then this new custom runtime is for you.

Announcing Support for AWS HTTP APIs
Awesome! HTTP APIs are a great (and much cheaper) alternative to many API workloads. Now that the Serverless Framework supports them (and we get closer to the HTTP APIs GA), I think we’ll see a massive uptick in adoption of this new service.

Announcing the FaunaDB Extension for Visual Studio Code
This extension allows users to browse their FaunaDB databases, indexes, collections, documents, and functions from right inside of the VS Code sidebar.

Get to know the latest AWS Heroes, including the first IoT Heroes!
Congratulations to all the new AWS Heroes, including some new serverless ones!

Serverless Use Cases 🗺

Handling 350k Requests for $3 using Lambda
Insightful post by Burak Karakan on how his browser extension side project is handling hundreds of thousands of API calls per month for less than $3. He makes a number of serverless criticisms as well, mostly around the common arguments of observability and vendor lock-in. While he does praise Lambda, he also argues for a limited set of use cases, then offers Docker and Kubernetes as an alternative. I find this a bit antithetical to his “set it and forget” and ease of “serverless deploy” arguments from earlier. Opinions are fine, but pigeonholing use cases makes adoption harder IMO.

The Serverless Path to DevOps
Excellent article by Sarjeel Yusuf about the DevOps use cases enabled by serverless tools and why implementing them is a no-brainer. I’ve always loved this approach to serverless adoption, because it has the immediate benefit of improving the reliability and resiliency of your entire infrastructure, even if you’re still running VMs.

Serverless Concepts 🏗

Amazon API Gateway HTTP APIs with the Serverless Framework
Eduardo Rabelo adds some additional detail about the differences between API Gateway REST and HTTP APIs, why you should choose one over the other, and some implementation details using the recently added Serverless Framework support.

Serverless Auth with AWS HTTP APIs
Now that the Serverless Framework supports HTTP APIs, why not take advantage of the built-in authorizer support? This post from Fernando Medina Corey will show you how to use JSON Web Tokens to authorize your endpoints against Cognito.

“Serverless Transformation: at any scale” Preview Chapter
Ben Ellerby from Theodo has started working on a book about transforming your organization to a serverless-first approach, and you can get a preview chapter for free.

Inter-service communication channels for serverless microservices in AWS
Paul Swail shares some pros and cons for using different methods to pass messages between serverless microservices. There is some good information in here. A key thing to remember with inter-service communication is making sure you have message durability and sound replay strategies.

Serverless Tutorials 👷‍♀️

Setup AWS CI/CD for Serverless Deployment
Another day, another way to setup a serverless CI/CD process. Jay Desai shows you step by step how he does it.

Build a global serverless application in 30 minutes with AWS CDK.
Brian Foody shows you how to use AWS CDK to deploy a multi-region serverless application, complete with Route 53 Latency-based routing and global DynamoDB tables.

Getting started with AWS, Serverless & TypeScript
Michael Timbs gives you a complete set of instructions, along with all the tools, plugins and tweaks you’ll need to set up your first Serverless Framework project on AWS with TypeScript.

Optimise your Lambda functions using Webpack
This is something that should be built-in to every Node.js serverless deployment. I do this with all my projects, and I highly recommend you do as well.

Simple Firebase Authorization for AWS Lambda and API Gateway
Everyone’s jumping in on this HTTP APIs JWT authorizer capability. Joseph King shows you how to use Firebase as your issuer from both the console, and with IaC using the new support from the Serverless Framework.

Serverless Reads 🤓

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

10 Tips to Optimize Your DynamoDB Costs
I have some notes for a similar post, but until I can find time to finish it, Rafal Wilinski’s should hold you over. Lots of really good suggestions in here to cut down your total DynamoDB bill.

Creating Stream Processors with AWS Lambda Functions
John Gilbert discusses his approach to stream processing in Lambda using his aws-lambda-stream library. I think this is an interesting approach, but I think some of this complexity is better off handled by the cloud. I do really like some of the built in functional programming components.

Catching up with Google BigQuery
Informative post by Tony Baer about some of the recent moves made by GCP to add to their BigQuery offering. This idea of running ML models from SQL is something other clouds are working on too, but adding more powerful computation to the data engine enhances GCP’s already powerful serverless data offering.

ABL in focus #8: Instrumenting distributed systems for operational visibility
Efi Merdler-Kravitz shares is notes on David Yanacek’s post from the Amazon Builders’ Library. Lots of great bullet points in here with some practical advice from Efi himself.

How do I structure a monorepo serverless project with the Serverless Framework?
Ryan Jones outlines how he sets up a monorepo for serverless projects. It’s such a tough call sometimes balancing the pros and cons of a mono- versus multi-repo setups, especially when it comes to CI/CD. But as he points out, the new Serverless Framework Pro can handle this quite nicely, which might make the choice easier.

For the commuter… 🚎

Serverless Chats Podcast – Episode #38: From Digital to Serverless Transformation with Ben Ellerby
In this episode, I chat with Ben Ellerby about the evolution from digital to serverless transformation, why hands-on experience is important to understanding what serverless actually is, the current problems with complexity, and why you can’t be cloud native without embracing some form of lock-in.

Intro to Amazon EventBridge
James Beswick covers the challenges and benefits of implementing an event-driven design using EventBridge. It’s a relatively short video, but it is packed with lots of really useful information.

New from AWS 🆕

NoSQL Workbench for Amazon DynamoDB is now generally available
I really love this tool, so I’m glad to see that it’s now GA. I did give the latest version a test drive, and there are still a few things I’d like to see changed, but overall, it is really great to work with.

Automate index management with Amazon Elasticsearch Service
Now if they can just make it fully serverless! But seriously, these are great additions that certainly cut down some of the ongoing operational management.

Amazon Managed Cassandra Service now enables you to add new columns to existing tables
I didn’t even know you couldn’t do this! Well, if this was holding you back, this update should make you happy. I prefer to stick with DynamoDB, but maybe that’s just me.

Amazon Athena adds support for querying data in S3 buckets using AWS Identity and Access Management’s aws:CalledVia condition key
This is a nice security feature that was added to S3. I use Athena all the time, and making this work in the past forced you to skip some of the additional security controls available to you.

AWS Step Functions now supports CloudWatch Logs for standard workflows
You can now use AWS Step Functions to log workflow execution history to CloudWatch Logs, which make it faster and easier to monitor event-driven, serverless workflows.

AWS Lambda@Edge now supports Node 12.x and Python 3.8
You can now use Node.js 12.x and Python 3.8 to develop functions in Lambda@Edge, but you still have to wait quite some time for your code changes to propagate. 🤷‍♂️

Amazon Transcribe now supports automatic content redaction
This seems like a really cool feature for the right use cases. However, I stopped using Transcribe a while ago because the quality just wasn’t high enough, so I’d be interested in hearing how effective this is, especially when it eventually supports non-English languages.

AWS Control Tower now supports single-step account provisioning
This looks like another step in the right direction for Control Tower. You still need to set up a new master account to use Control Tower, so maybe a project for another day.

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 10, 2020 – How Best Friends Animal Society Shifts-Left with Security Strategy on AWS Serverless Infrastructure (webinar)

March 19, 2020 – ServerlessDays Zürich

March 24, 2020 – ServerlessDays Helsinki 🗣

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

April 6, 2020 – ServerlessDays Boston

April 20, 2020 – ServerlessDays Auckland

April 23, 2020 – ServerlessDays Vienna

April 24, 2020 – ServerlessDays Paris

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 Shingo Yoshida (@yoshidashingo). Shingo is the CTO of CYDAS, a cloud-based human resource empowerment platform, as well as the founder of Section-9, which, among many other things, helps companies with AWS migration and optimization. Shingo is actively involved in the serverless community, founding Serverless Community (JP), and is also a member of the Japan AWS User Group. Additionally, Shingo was named a 2019 AWS Serverless Hero for his contributions through community events, blog posts, and books focused on serverless. Thank you, Shingo, for being an advocate for serverless! 🙌

Final Thoughts 🤔

It’s bittersweet to think of the awesome time I had at ServerlessDays Nashville last week. The organizers put on a heck of a show in an amazing and vibrant city. My heart goes out to all the people affected by the recent tornado. I’m hoping their community can recover quickly. 🙏

In brighter news, please don’t forget to take the Serverless Community Survey and share it with all your friends, family, coworkers, neighbors, pets, etc. The data collected will be 100% open sourced and available to anyone that wants to use it. The more responses we get, the more valuable the data will be.

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.

Off-by-none: Issue #78

The Serverless Community Survey… ✅

Welcome to Issue #78 of Off-by-none. It’s great to have you here! 🤘

Last week, we looked at a few posts that explored the pros and cons of microservices versus monoliths. This week, we’ve finally launched the Serverless Community Survey, plus we have lots of amazing content from the community.

When you want to get to know how people are using serverless…

The Serverless Community Survey is now LIVE! 🙌 I’ve been working with all of you for several weeks to put together a set of questions that would help everyone in the community (serverless users, solution providers, software vendors, and cloud providers) get a better understand of how people are using serverless, what they’re building with it, and how we can make it better. The survey is finally open and accepting responses.

The team at Nuweba is helping sponsor the survey and will be giving away a number of prizes to survey participants. The complete set of results (minus any PII) will be made available for anyone to use once the survey is complete. Please share with your networks and CLICK HERE to take the survey!

Serverless Stories 📖

Modern monitoring for microservice & serverless architectures
Understand Lambda & container-based applications in a truly unified platform. Epsagon’s automated, end-to-end tracing enables full visibility into your production in minutes without needing to install an agent. Try free today. Sponsored

An app modernization story
As I’ve said before, I really like what Cloud Run is doing. And this story from Mete Atamel about migrating from monolithic containers to microservices running on Cloud Run is a great example of the ability to evolve to a serverless infrastructure (yes, even if you are still using containers). I’m still not down with the whole Knative portability argument, because as you’ll see from his final architecture, Cloud Storage, Cloud Pub/Sub, and Cloud Firestore are the real lock-in, not the commoditized compute layer.

Decisions in the world where computing is commoditized — our serverless tale about event based project
Interesting read that hits on a few major points when planning to build a new application. Time to market is critical, and without an (already in place) experienced Ops team, the choice to invest time in designing and building out infrastructure (cloud-based or not), just seems to be antithetical to modern application development. No one should be saying that “serverless is easy” (because it’s not), but I have never in my 20+ years of application development seen a way to deliver value so quickly.

One year at The LEGO Group as an Application Engineer
I like to read stories about people who challenge themselves and grow as developers. Even better if they’re growing and applying their serverless knowledge.

Creating a Work Visa Search Engine
Chris Oh discusses how he build Visatopia using a serverless architecture, why he made the decisions he made, and how he worked around some of the problems he faced.

Going Serverless
Ilai Malka from Nielsen Marketing Cloud explains the data processing platform they built using a serverless infrastructure, the cost savings they achieved, and some of the pitfalls they experienced.

From Django to Serverless
Another modernization story, this one from Nicolò Gasparini.

Serverless Use Cases 🗺

Experimenting with WebAssembly in a Serverless context
There are some super cool things going on with WASM and serverless, and it’s going to be interesting to see if and when this becomes the standard for compute at the edge. Perhaps even running directly on the client.

AWS Lambda Layers for sub-millisecond Static Cache
I’ve seen an optimization like this before, and depending on your use case, it might make sense. Paul Heath outlines how he uses a Lambda Layer to load static cache data into his Lambda functions.

Serverless Concepts 🏗

Is it ok to call one Lambda function from another?
Paul Swail tries to answer the question that seems to plague most serverless developers from time to time. As with most things related to serverless best practices (or serverless in general), it’s complicated. He points out two times when he thinks this is okay, but there is a lot more context and nuance to function chaining, microservice communication patterns, and network configuration, that makes this question much more complicated than it seems.

Developing on AWS Lambda (Part 2): Understanding AWS event sources
George Mao gives you some more detail on AWS event sources and how to invoke Lambdas programmatically or automatically. He also shows you how to use SAM’s built-in generate-event command to use for test invocations.

Some code is more equal than others
Paul Swail’s recent prolificness is benefiting us all, this time with some pros and cons of a “functionless” approach to building serverless applications. There are definitely times when it makes sense, but sometimes having an easier paradigm to wrap one’s head around is the winning factor.

DynamoDB Transactions Performance Testing
Alex DeBrie tests the theory that DynamoDB Transactions suffer from performance overhead. TLDR; they do, but it’s worth reading Alex’s post to see what impact transactions really have, and if they’re worth it given the right circumstances.

AWS CloudWatch Part 2/3: Alarms and Alerts
Ran Ribenzaft dives deeper into CloudWatch in part 2 of his series on the topic. This time he explains alarms and alerts and how you can implement anomaly detection, alerting a human, and more.

How is my AWS Lambda triggered?
Nothing wrong with the occasional refresher. Serkan Özal explains the ways in which a Lambda function can be triggered and what behavior you can expect.

Async Initialisation of a Lambda Handler
There was a good question asked on Twitter about how to make asynchronous initialization calls from outside your Node Lambda handlers. Paul Swail captured the suggested solutions. It’s a common question, so probably worth knowing in case you ever run into a need for it.

Reusing S3 bucket for multiple Serverless Framework projects deploy
Eduardo Rabelo explains how to organize your deployment artifacts for your Serverless Framework projects to keep from exceeding your AWS S3 Bucket limits.

An Introduction To Cloudflare Workers And Cloudflare KV store
Cloudflare Workers and the Cloudflare KV are very cool, and there are lots of interesting use cases that can be handled with them. Siddharth Shishulkar has a good piece that explains what they are, and what you can do with them.

Serverless Tutorials 👷‍♀️

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

Adding a Custom Domain to the API in AWS Cloud
Super simple step-by-step tutorial by Hyoeun Lee that shows you how to add a custom domain to your Serverless Framework projects using the serverless-domain-manager plugin.

Unit testing when using Lambda Layers
David Conde Marin shows you a simple trick with Jest to make unit testing your Lambda Layers a bit easier.

Super easy load testing for your Serverless APIs and Functions
Doesn’t matter if it’s serverless, or some other type of application architecture, knowing how to load test your applications is important. George Mao has a tutorial that shows you how to use Artillery to do just that. He also shows you how to use the sigv4 plugin to authenticate requests.

Create PDF using Pdf-lib on Serverless AWS Lambda
Crespo Wang has another post showing you how to create PDFs with AWS Lambda, this time he’s using the pdf-lib library.

Serverless Security 🔒

5 ways to make your serverless functions more secure
Eric Johnson (nope, not that one, and nope, not that one either) outlines a few key points to keeping your serverless applications safe. There hasn’t been a lot of security articles around serverless lately, and lots of these are just a rehashing of what has been said before. Nonetheless, I think we under appreciate the need for security in our serverless applications, so a reminder now and then can’t hurt.

Serverless Reads 🤓

Serverless is more than AWS Lambda
Tim Zonca from Stackery makes several important points in this post. He says that while Lambda (or really, event-driven ephemeral compute), is an important part of serverless applications, the abstraction and reduced friction of the architecture is what enables developers to move faster and focus on business logic. Plus, recognizing that non-serverless components are inevitable, and understanding how they fit into a serverless environment, will go a long way towards adoption.

Crossing the Serverless Chasm
Sven Al Hamad’s piece echoes the concerns of many in the serverless ecosystem, especially those of other vendors. Even as it’s gained steam, serverless remains a peripheral tool for many organizations. This makes it harder for innovative service providers and software vendors to target some of these early adopters that aren’t necessarily “all in” on serverless. But the work they are doing is critical to moving the ball forward.

Could Microsoft Azure Actually Win the Cloud?
Interesting piece by Matthew MacDonald, and I have to say, he might not be wrong. We’ve seen the coupling effects of Amazon.com and AWS on vendor preference and selection, and as Matthew points out in the article, there are still a lot of Microsoft shops that haven’t made a foray into the cloud yet. If Azure can eventually compete on solutions, what’s the likelihood of AWS getting those contracts?

Kubernetes is popular, complex, a security risk – and destined for invisibility
This article by Mark Albertson expands upon what Kelsey Hightower said in a tweet last December, “The cloud made the hypervisor disappear. Kubernetes will be next.” Kubernetes is a complex beast that requires so many configurations and add-ons, that most of us want nothing to do with managing it. I agree with Kelsey. The cloud will eventually reduce all that K8s complexity for you.

Question the Current Dogma: Is Kubernetes Hyper-Scale Necessary for Everyone?
Another important post by Tim Zonca. I know I’ve said this a thousand times, but compute has become more and more commoditized, and as Tim points out, “Hiring more people to manage and understand unnecessary plumbing doesn’t make sense.” I totally agree.

The Serverless Chats Podcast
Geek out on everything serverless! Each week, Jeremy Daly, serverless advocate, AWS Serverless Hero, and Off-by-none founder, chats with another serverless champion to explore and do a deep-dive into specific topics in the serverless space. Sponsored

For the commuter… 🚎

Serverless Chats – Episode #37: The State of Serverless Education with Dr. Peter Sbarski
In this episode, I chat with Dr. Peter Sbarski about why education is the key to serverless adoption, how certifications help build stronger teams, what traditional institutions need to do to adapt to the new cloud economy, and much more.

New from AWS 🆕

AWS Lambda now supports Ruby 2.7
For all you hardcore Ruby lovers, you can now enjoy support for new features like pattern matching, argument forwarding and numbered arguments. Also, the Ruby 2.7 runtime is built on top of Amazon Linux 2, so the performance should be much better as well.

AWS Lambda metric for Concurrent Executions now supports all functions, versions, and aliases
The ConcurrentExecutions metric is now emitted for all functions, versions, and aliases. You can use this metric to review usage patterns of your Lambda functions to see which ones are using up your reserved concurrency.

AWS Lambda participates in Compute Savings Plans
If you are using Lambda functions for heavy, sustained workloads, there’s now a way to potentially lower that cost by participating in the Compute Savings Plans. Here is some more info from Jeff Barr.

AWS has launched the Activate Founders package for Startups 🚀
If you’re building an app and want $1,000 is AWS credits, take a look at this new program. I will say, if you try to build your startup on Kubernetes, then you’ll probably blow through that pretty quickly. On the other hand, with a serverless approach, you’ll likely have a much longer runway.

Amazon Managed Cassandra Service now enables you to optimize the price of throughput for predictable workloads
If you have predictable workloads and you’re using MCS, then this is for you. But seriously, this looks like it could save you quite a bit of cash.

Serverless Tools 🛠

Offline debugging of Serverless Apps with Thundra
This is a very cool feature that Thundra recently released. Debugging your serverless applications is consistently one of the biggest complaints I hear, so being able to jump directly to your code to see where issues are is a big deal.

Thoughts from Twitter 🐦

Why Object Lock is Cool: A Twitter Thread With all this talk about Veeam 10, I thought it would be good to take a step back and send out a note on why I am absurdly into S3 Object Lock ~ Paul Meighan
Great thread by Paul Meighan explaining what S3 Object Locks are and why you might need them.

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.

February 27, 2020 – ServerlessDays Nashville 🗣

March 19, 2020 – ServerlessDays Zürich

March 24, 2020 – ServerlessDays Helsinki 🗣

March 27, 2020 – ServerlessDays Hamburg 🗣

April 6, 2020 – ServerlessDays Boston

April 20, 2020 – ServerlessDays Auckland

April 23, 2020 – ServerlessDays Vienna

April 24, 2020 – ServerlessDays Paris

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 Bret McGowen (@BretMcG). Bret is a Developer Advocate for Serverless at Google. As part of his role on the Google Cloud Platform team, Bret’s got his hands in some of your favorite serverless products like Cloud Run, Cloud Function, App Engine, and Firebase – just to name a few. He has vast experience in the cloud industry, and if you don’t bump into him at one of the many ServerlessDays he’s speaking at, make sure to check out his Serverless Toolbox series on YouTube. Thank you, Bret, for teaching others about the cloud and serverless! 🙌

Final Thoughts 🤔

I’m off to Nashville, Tennessee tomorrow for the first ever Music City ServerlessDays conference. I’ll have plenty of stickers, so please come and find me if you want to chat about serverless. Also, please, please, please take the Serverless Community Survey and share it around. The data is 100% open source and will be available to anyone that wants to use it.

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.

Until next time,
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.

Off-by-none: Issue #77

Monoliths versus Microservices…

Welcome to Issue #77 of Off-by-none. Thanks for joining us! 🙌

Last week, we looked at the new Serverless Lens for the Well-Architected Framework Tool. This week, we have a few posts that explore the pros and cons of microservices versus monoliths, plus plenty of excellent content from the community.

Serverless Stories 📖

Modern monitoring for microservice & serverless architectures
Understand Lambda & container-based applications in a truly unified platform. Epsagon’s automated, end-to-end tracing enables full visibility into your production in minutes without needing to install an agent. Try free today. Sponsored

Migrating to a serverless contact management backend
This is a great post from Emily Shea that perfectly captures how serverless can allow you to build something quickly, prove its value, and then enhance it as your feature requirements grow. The first version of her architecture shows a heavy reliance on SendGrid to handle the undifferentiated processes of contact management and email delivery. But as more features are needed, the architecture evolves to support functionality that can provide unique business value to her app. There are a lot of really good lessons to be learned from her overall approach.

Why the ‘WHY’ matters more than the ‘WHAT’ in Serverless!
Sheen Brisals is getting tired of endless serverless definitions, and instead wants to focus more on “why” we should be building applications with it.

Serverless and the RDS Data API: A journey to deployment
Chris Buonocore recounts his team’s all-too-familiar story of spiking database connections with Lambda functions connecting to RDS. They migrated to the RDS Data API and learned some lessons along the way.

Serverless Use Cases 🗺

Building a static serverless website using S3 and CloudFront
Sometimes it’s those little nuances that really get you. Sander Knape points out a very important factor to consider when hosting static sites with S3 and CloudFront.

Using AWS Lambda to Create a MongoDB Connection Proxy
Interesting approach here by the team at Webiny. The DB connection / FaaS concurrency issue is a real problem, but introducing another layer of Lambda functions seems like more overhead than it’s worth. I’d suggest using the same approach as serverless-mysql and managing connections using db.serverStatus().connections to get the current usage.

Saga Patterns inside Step Functions world
The team at Chaos Gears points out some standard practices for implementing Saga patterns with Step Functions. Interesting subtext in here about using Step Functions for communicating across distributed components/microservices, a topic I recently debated with Yan Cui.

Introducing Multi-Region Asynchronous Object Replication Solution
If you need to replicate S3 objects to different regions automatically, this new AWS Solution gives you everything you need to make it happen.

Serverless Concepts 🏗

Serverless Framework: Warming up AWS Lambda to avoid “cold start”
I appreciate the content from Michele Riso, but as someone who has written the Lambda Warmer package, I can tell you that the pitfalls of this approach are grave. AWS now has an official solution to this problem with Provisioned Concurrency (so does Azure). So, if you really need to reduce cold starts (which in many cases you don’t), then take a look at some better, non-blocking solutions.

Tagging Traces in Distributed Applications
Monitoring distributed applications is hard. So any time there are features that give you the ability to both trace transactions, and classify them with tags to make it easier to investigate issues, I’m going to be a fan.

7 ways to do async message processing in AWS
Paul Swail has a great article that shows you seven different ways to send messages asynchronously between Lambda functions when building serverless applications. Lots of these are standard ways, but as he mentions at the end, you should consider using Step Functions if you have complex workflows that require lots of guarantees and rollbacks.

DynamoDB Transactions: Use Cases and Examples
Everything you’ve ever wanted to know about DynamoDB Transactions (and even some things you probably didn’t 😉). Alex DeBrie has another excellent in depth post that will show you how transactions work, when you should use them, and when you should be aware of their performance impact.

Amazon Builders’ Library in focus #7: Going faster with continuous delivery
In the seventh installment of Amazon Builders’ Library in focus series, Mike Roberts of Symphonia picks out the key insights from the article Going faster with Continuous Delivery by Mark Mansour. This is an excellent analysis with lots of lessons for teams looking to build and release quality software faster.

Enhancing Distributed Tracing with Business Context
As with Epsagon’s tagging features, Thundra provides a similar functionality. Great stuff for understanding your distributed workloads.

Building a serverless URL shortener app without AWS Lambda
Brilliant series of posts by Eric Johnson. I can almost guarantee that the built-in features of the cloud are much more secure, resilient, and reliable than any Lambda code you or I could write. This doesn’t mean we never need Lambda, but if you can evolve certain apps to reduce its synchronous usage, there are a lot of performance gains to be had.

Where do you store secrets for AWS Serverless apps?!?
George Mao breaks down the Ease of Use, Level of Security, and Cost associated with the different approaches to secrets storage on AWS.

The Serverless Chats Podcast
Geek out on everything serverless! Each week, Jeremy Daly, serverless advocate, AWS Serverless Hero, and Off-by-none founder, chats with another serverless champion to explore and do a deep-dive into specific topics in the serverless space. Sponsored

Serverless Tutorials 👷‍♀️

Painless AWS Chalice Application Debug
If you’re building your serverless applications with AWS Chalice, this post from Alex Gelman will show you how you can speed up your workflow and debug your applications locally.

Promotion Pipelines
As I’ve said before, I really like what the Serverless Framework Pro is doing with CI/CD. In this post, Gareth McCumskey shows you how to “kind of” build promotion pipelines using a Gitflow strategy. I’m still waiting for actual promotion pipelines that reuse immutable artifacts, but I realize that it’s a more difficult problem to solve.

Ensuring Usernames are Unique in Your AWS Amplify App
This seems like a really roundabout way to do username checks with AWS Amplify, but as of this writing, nobody has challenged it yet.

Building a Serverless JAMstack ECommerce Store with Gatsby & AWS Amplify
Nader Dabit walks you through the building blocks needed to build a completely serverless, JAMstack ecommerce store using a static site generator and AWS Amplify.

Create PDF using PdfKit on Serverless AWS Lambda with Layer
Crespo Wang shows you how to package PdfKit into a Lambda Layer and then use it to manipulate PDFs with your Lambda functions.

Serverless Security 🔒

Keeping your Lambda functions safe with Joi
I really like what Tal Bereznitskey has done here to validate events being passed into Lambda functions. Event injection is a real thing, so having a standard way to sanitize those events can really up your security posture.

Serverless Reads 🤓

What’s next for serverless architecture?
This is an excellent article by Brecht De Rooms that lays out the evolution of cloud computing and how eventually the edge will be the source of both compute and dynamic data. For those of you that are still holding on to the idea of monoliths, this is a good read for you. If edge is in fact the future of distributed applications, then the monolith is not going to hold up.

How Serverless Impacts Design: Gojko Adzic at DDD Europe
It’s always great to hear Gojko Adzic’s perspective on serverless. This article is a nice recap of his talk at DDD Europe and links to his slides as well.

How to avoid turning microservices into distributed spaghetti code
Interesting post by Matt Asay. There has been a lot of talk lately about the value of monoliths versus microservices, particularly around the notion that most “microservices” are ending up as just distributed monoliths. This is likely an education and organization problem, but if you build a tightly coupled network of services, you’re going to feel the pain of that very quickly.

Comparing Serverless and Containers: Which is Best?
“Containers are a more secure technology that can help support long-term cloud infrastructure.” If you feel like reading another Containers vs. Serverless post that’ll make you want to bang your head against a wall, please click here.

Ask the Expert: Serverless: Public cloud’s second wave
Great post by Tim Wagner about the architectural shifts in cloud computing and how serverless is clearly becoming the new norm for developing cloud-based applications. He touches on some of the main pain points that have slowed serverless adoption, but also points out the hybrid approach taken by services like Fargate and Cloud Run that help with the inevitable transition.

The Serverless Supremacy
I’m glad Sven Al Hamad had the time to write this post, because I’m very much so in agreement with him. It wouldn’t be another day on the Internet without DHH defending his approach to application architecture. I’ve been doing this for a very long time, and I’ve never seen anything as promising as serverless and (properly designed) microservice architectures. Nothing is a panacea, and that most definitely includes Ruby on Rails and its monolithic approach.

For the A/V enthusiast… 🍿

Episode #36: The Cloud Database Landscape with Suphatra Rufo
In this episode, I chat with Suphatra Rufo about how enterprises are migrating data to the cloud, why the cloud database market is shifting to NoSQL, and the hybrid database strategy that companies need to adopt.

Choosing the right Infrastructure as Code framework – between CloudFormation, SAM, CDK and Amplify
Marcia Villalba shares a brief description of CloudFormation, AWS SAM, AWS CDK, and AWS Amplify, and then shows you when and where you should use each of them.

New from AWS 🆕

Configure fine-grained data access with Amazon Elasticsearch Service
Until there is a serverless Elasticsearch service, we are still required to provision our own managed ES clusters. Setting up a new cluster for each service is expensive and a major pain, so giving us more control over who can access what in a shared environment is a very cool feature.

Amazon MSK increases the default broker limit per cluster to 30 brokers
If you are using Amazon Managed Streaming for Apache Kafka for your workloads and you need 30 brokers, good for you! That is some serious throughput.

Amazon Cognito User Pools service now supports case insensitivity for user aliases
Hmm, I wonder if this helps solve the Amplify unique username issue from the post we mentioned earlier?

AWS CloudFormation StackSets introduces automatic deployments across accounts and regions through AWS Organizations
I really like what AWS is doing with StackSets, so having additional automation built in is a nice improvement.

Amazon Rekognition now detects text in videos, and lets you filter results by region, bounding box size and confidence score
I remember when I built a service that used an open source OCR tool to attempt text detection in images. It was pretty terrible, and it took me a very long time to do it. If I had a tool like Rekognition back in the day, who knows what the impact would have been if I had all that extra time to work on things that actually mattered to the business.

You can now restore Amazon DynamoDB table backups as new tables in other AWS Regions
I can see this being a handy feature, especially if you are running multi-region rollups through a single region pipeline.

Serverless Tools 🛠

Essential Open Source Serverless Code Libraries
Erez Berkner points you towards several open source libraries to use with your serverless applications. And thanks for the Lambda API mention.

LearnServerless.dev
Jeremy Thomerson is putting together an online training course to teach you how to build a serverless REST API on AWS. I’m not sure if there is a cost associated with this, but you can sign up for the mailing list to get more info.

DynamoDB Pricing Calculator
Simple web-based tool for forecasting DynamoDB costs.

Make a serverless Express API with OpenJS Architect
Another way to migrate an existing Express API to serverless is now available via Architect’s Express migration middleware.

Thoughts from Twitter 🐦

I’ve been in a cave over the past few months working in silence. I’ve become much more aligned with “why” I started @serverlessgurux. One of the biggest reasons, empowering the community and giving back equally. Based on this, you will find 100% free templates, docs, training videos, deep dive articles, podcast episodes, meetups, webinars and so on all free. ~ Ryan Jones
Ryan has done some great work with serverless, so if you’re interested in checking out all the work he’s contributed, give his site a look.

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.

February 20, 2020 – The Complete Guide to Observability (webinar)

February 21, 2020 – ServerlessDays Rome

February 27, 2020 – ServerlessDays Nashville 🗣

March 19, 2020 – ServerlessDays Zürich

March 24, 2020 – ServerlessDays Helsinki 🗣

March 27, 2020 – ServerlessDays Hamburg 🗣

April 6, 2020 – ServerlessDays Boston

April 20, 2020 – ServerlessDays Auckland

April 23, 2020 – ServerlessDays Vienna

April 24, 2020 – ServerlessDays Paris

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 Ajay Nair (@ajaynairthinks). Ajay is the Director of Product for Lambda at Amazon Web Services, which means he’s your guy for all things AWS Lambda. Ajay’s role is instrumental in driving the serverless product strategy at AWS and he leads a team of amazing individuals that keep propelling the product roadmap forward. Thank you Ajay for your work bringing the serverless features we need to life! 🙌

Final Thoughts 🤔

I spent the end of last week in Wales at the ServerlessDays Cardiff event, and it was a really great showing of serverless enthusiasts and newcomers to the community. The overall community is still relatively small, but seeing so many engaged developers, and listening to others talk about how serverless is having a hugely positive effect on their development processes, makes me think all this nonsense of monolith versus microservices is just a bunch of background noise. If you’ve yet to experience the power of serverless, I can understand your skepticism. But a new world order is coming, and spoiler alert, it’s not going to be monolithic Rails apps running on Heroku. 🤷‍♂️

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.

Until next time,
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.