Product Guy, Serverless Advocate & Startup Veteran

My name is Jeremy Daly. I appreciate the visit. 👍 I’ve been managing the development of complex web and mobile applications for businesses across the globe for over 20 years. I’m currently the Chief Technology Officer at AlertMe, but I always keep myself busy with several side projects and consulting clients. I’m also an AWS Serverless Hero.

I write a lot about serverless and I like to share thoughts and stories about programmingproduct managemententrepreneurship and productivity. Sometimes I’ll write reviews or have random thoughts that I need to get out of my head. I also like to post a how-to article every once in a while. Feel free to jump in to one of the categories above, view all my posts, or view my latest posts below.

If you want to keep up with what I’m working on, you can follow me on TwitterGithub and Facebook.

Also, if you’re interested in serverless, please subscribe to Off-by-none, a weekly newsletter that focuses on all things serverless, and be sure to listen to Serverless Chats, a weekly podcast that discusses all things serverless.


My Latest 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...

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

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…

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.