All Posts

Featured

LAMBDA – A Serverless Musical

Join the Serverless Revolution!

Learning a new paradigm can be really difficult, especially something as revolutionary (and different) as serverless. Thanks to a little inspiration from fellow AWS Serverless Hero, Forrest Brazeal, I created this Hamilton parody to help teach people what serverless is all about and why it’s such an amazing way to build applications. Hopefully it inspires you as well. Enjoy!

Continue Reading…

🚀 Project Update:

Data API Client: v1.1 Released

Bug fixes and feature updates including support for native JavaScript dates (thanks @cklam2), support for non-specific database queries, and deprecation of the HTTP keepAlive workaround in favor of the native SDK support. Read More...
Featured

Announcing the Serverless Reference Architectures Project

Serverless gives us the power to focus on delivering value to our customers without worrying about the maintenance and operations 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.

Almost 2 years ago now, I wrote a post on Serverless Microservice Patterns for AWS that became a popular reference for newbies and serverless veterans alike. The capabilities of serverless have changed dramatically since then, opening up a ton of new patterns and possibilities. Today I’m announcing the Serverless Reference Architectures Project. This project is intended to capture, share, explore, and debate the patterns and practices being used in serverless production applications today.

Continue Reading…

Featured

Takeaways from Programming AWS Lambda by Mike Roberts and John Chapin

Recently, Symphonia co-founders Mike Roberts and John Chapin wrote a book called Programming AWS Lambda: Build and Deploy Serverless Applications with Java. I personally abandoned Java long ago, but I knew full well that anything written by Mike and John was sure to be great. So despite the title (and my past war stories of working with Java), I picked up the book and gave it a read. I discovered that it’s not really a book about Java, but a book about building serverless applications with the examples in Java. Sure, there are a few very Java specific things (which every Java developer probably needs to read), but overall, this book offers some great insight into serverless from two experts in the field.

I had the chance to catch up with Mike on a recent episode of Serverless Chats. We discussed the book, how John and Mike got started with serverless (by building Java Lambda functions, of course), and what are some of the best practices people need to think about when building serverless applications. It was a great conversation (which you can watch/listen to here), but it was also jam packed with information, so I thought I’d highlight some of the important takeaways.

Continue Reading…

Featured

Making the Case for Serverless Use Cases

For quite some time, there was a running joke that “serverless” was just for converting images to thumbnails. That’s still a great use case for serverless, of course, but since AWS released Lambda in 2014, serverless has definitely come a long way. Even still, newcomers to the space often don’t realize just how many use cases there are for serverless. I spoke with Gareth McCumskey, a Solutions Architect at Serverless Inc, on a recent two part episode (part 1 and part 2) of Serverless Chats, and we discussed nine very applicable use cases that I thought I’d share with you here.

Continue Reading…

Featured

12 Important Lessons from The DynamoDB Book

Fellow serverless advocate, and AWS Data Hero, Alex DeBrie, recently released The DynamoDB Book, which ventures way beyond the basics of DynamoDB, but still offers an approachable and useful resource for developers of any experience level. I had the opportunity to read the book and then speak with Alex about it on Serverless Chats. We discussed several really important lessons from the book that every DynamoDB practitioner needs to know. Here are twelve of my favorites, in no particular order.

Continue Reading…

Featured

Takeaways from the State of Serverless Report

On a recent episode of Serverless Chats, I spoke with Stephen Pinkerton and Darcy Rayner of Datadog to dig into The State of Serverless report, which was released at the end of February 2020. After frequently fielding customer questions about the topic, Datadog looked at its data and customer use cases, and examined how they were using serverless. Datadog’s report is a way to break it all down, but it’s also an opportunity for its customers (and serverless users alike) to see how other people are using serverless in a data-driven way. I discussed methodology, findings, and key takeaways with Stephen and Darcy, and thought it’d be worthwhile to consolidate and share that insight.

Continue Reading…

🚀 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

UPDATE: I’ve started the Serverless Reference Architectures Project that provides additional context and interactive architectures for some of theses patterns along with code examples to deploy them to AWS. Check it out.


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 #103

Why buy the cow if you get the Machine Learning for free? 🐮

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

Last week, we got some awesome insights into serverless and cloud security and took a look at serverless machine learning. This week, we learn why you don’t need to buy a cow to do machine learning, how serverless can speed up your regression tests and we get a full season of Sessions with SAM to binge watch. Plus, we have plenty of great serverless content from the community.

Before we begin, make sure you check out TriggerMesh. They let you connect all your key SaaS and on-premises apps with AWS EventBridge. And you can also trigger workloads running on any managed Kubernetes cloud. Join the Beta program for Free! Sponsored

When you’re looking for serverless success stories… 📖

“Some of the integrations that weren’t useful anymore, remained in production as nobody was sure if they will break something else by removing it.” If that sounds like an old app you’re working with, see how Marin Radjenovic migrated a legacy application to serverless with EventBridge.

And if that’s not exciting enough for you, check out this post by Fernando Devegili that details how his team used serverless to reduce the amount of time it took to do visual regression tests from 20 minutes to 10 seconds.

When you’re looking for some good serverless use cases… 🗺

Why worry about writing an entire backend when you can just send e-mails right from Cloudflare Workers? Or if you’d like to create an SVG graph from your SQLite database, Alejandro Oviedo will show you how to do it using a Lambda function.

Jerry Mullis shows us how to stop EC2 instances on a scheduled basis, one of those classic serverless DevOps use cases. But if you want to get really meta, how about using serverless to manage its own scalability by scheduling AWS Lambda Provisioned Concurrency?

When there’s more to learn about serverless… 👩‍🏫

Paul Swail answers “where does Fargate fit into your serverless toolkit?” (just in case you had that question too), Yan Cui gives us some tips for debugging AWS Lambda timeouts, and Serkan Özal gives you the pros and cons of using a mono- or multi-repo in a serverless world.

There’s an entire series on running Ruby on AWS Lambda from the team at Hint Media, Ernesto Marquez explains when you should use Amazon RDS vs. Aurora Serverless, and Aman Sharma shares an introduction to Serverless/Edge scripting.

If you want to go back to basics, Shane Lee gives a brief 10-point guide to AWS Lambda. And if you’d like to explore more complex concepts, like static IPs for AWS Lambdas, Austin McDaniel has some ideas for you.

No time to write tests? Jan Groth has  12 recommendations on unit-testing AWS Lambdas in Python. There’s some good advice in here, like not bothering to test boto or other frameworks. They’re probably already well tested, so you should focus on your own business logic.

James Beswick has a new series that will tell you why using serverless backends to iterate quickly on web apps is important to rapid development and deployments, and Yan Cui has another great post that explains what alerts you should have for your serverless applications. Once you figure that out, James Allardice will demonstrate the process of setting up CloudWatch alarms with serverless.

When you just want to build something… 👷‍♀️

Auto-instrumented, trace-centric observability for serverless & k8s
If you’re running distributed serverless, Kubernetes, or containerized environments, you need a specialized tool that’s built to monitor them. Epsagon enables teams to automatically detect, troubleshoot, and resolve issues within complex microservices with no training, manual coding, tagging or maintenance required. Try free today, connect your first trace instantly, and grab one of our “cloud observability” drones! Sponsored

If you’re using Flutter to build native apps and you need a serverless backend, check out this post on full-stack Flutter that’ll show you how to create a backend for your app using AWS & serverless.

Just need to deploy a static site? Abhishek Wagh shows you how to deploy your websites with AWS Amplify (no, not the framework, the console). While you can deploy backends with the Amplify Console as well, Netlify has a pretty slick setup. You may want to check out this introduction to serverless functions.

Ben Smith isn’t ready to quit on the whole serverless PHP thing, so he wrote a post introducing the CDK construct library for the serverless LAMP stack. Regardless of your runtime of choice, implementing a passwordless API using Cognito and the Serverless framework might be a cool addition to your serverless apps.

What to do to tighten up your serverless security… 🔒

Another take on the recent ESG study points out that half of DevOps teams surveyed pushed vulnerable code “because the vulnerabilities identified were discovered too late in the [development] cycle to resolve them in time.” Um, I know lots of us face a tremendous amount of pressure to ship stuff, but knowingly shipping vulnerable code should be a show stopper.

Another interesting post I read was about the dangers of Denial-of-Wallet attacks. I think the possibilities of DoW attacks are very real and that you should absolutely put in place mitigation strategies in order to deal with them if they occur. That being said, I haven’t heard any major horror stories about this other than from devs accidentally doing it to themselves. I’m not saying this won’t be a thing, I just haven’t seen it yet.

When you’re looking for some interesting reading… 🤓

Charity Majors has a great post called The Future of Ops Jobs. In it she explains how Ops are not going away, but morphing into something different than you may be used to. Lots of great advice in here for those Ops people looking to advance their careers.

Remember when people were saying that serverless was a spectrum? Well Gillian Armstrong says that Machine Learning is spectrum and explains how to cheat at it by not owning a cow. There’s a helpful parable in here, but all you really need to know is that buying butter isn’t cheating. 😉

Not sure I’d read this to my kids, but Mariliis Retter wrote a “techy bedtime story” explaining how serverless came to be; complete with wizards, caves, and server monsters. In other serverless analogies, Shrikant Navelkar explains why serverless is like good portion control and helps us overcome the sunk cost fallacy.

When your Netflix Watch List is empty… 🍿

On Episode #62 of the Serverless Chats podcast, I had a chat with Nica Fee about the recently released New Relic One Platform, how observability can both reduce MTTR and help us optimize our applications for happier customers, and how New Relic is embracing open source and making observability available to teams of all sizes. Watch this episode on YouTube!

Yan Cui had an awesome conversation with Zack Kanter from Stedi on Real World Serverless, Episode #24. There’s a great discussion in here about tenancy and how Stedi thinks about it.

And if you’re looking for something to binge watch, all the episodes from Season one of Sessions with SAM starring Eric Johnson are nicely curated in this convenient blog post.

When you realize that apparently the devs at AWS never sleep… ☕️

There was a lot happening this past week at AWS. Let’s see if we can give you a quick summary of some of the major points. First of all Quantum computing is now available on AWS through Amazon Braket. I know it has nothing to do with serverless, but Jeff Barr is really excited about it.

ElastiCache also had a big week, announcing support for resource-based permission policies and ElastiCache Redis now supporting up to 500 Nodes per cluster. And not to be outdone, Amazon DynamoDB Accelerator (DAX) now supports next-generation, memory-optimized Amazon EC2 R5 nodes.

Moving on to more serverless related announcements, AWS is EOLing  Amazon Linux 1 support in Lambda on December 30, 2020. Eric Johnson shows you how you should be migrating AWS Lambda functions to Amazon Linux 2 (note that this means updating your runtimes). In related news, AWS Lambda now supports custom runtimes on Amazon Linux 2 as well as support for Go on Amazon Linux 2.  Plus AWS Lambda now supports Java 8 (Corretto), if you’re into that sort of thing.

In slightly more exciting news, AWS Lambda now supports Amazon Managed Streaming for Apache Kafka as an event source, which James Beswick explains how to set it up here.

AWS Step Functions added support for string manipulation, new comparison operators, and improved output processing, giving customer more flexibility within their state machine definitions and allowing for more dynamic behavior. This post goes into more detail and shows you some of the cool new things you can do.

Amplify iOS v1.1 was released, which includes support for the Combine framework for Swift, Amazon Comprehend added five new languages to Custom Entity Recognition, and Amazon Cognito User Pools now support customization of token expiration.

You can also set up CloudWatch Application Insights using CloudFormation, use the Copy API with Amazon S3 Access Points, and check out the updated Serverless Bot Framework solution that added support for securely integrating with third-party APIs.

When you need some handy serverless tools… 🛠

Any good builder needs their trusty tool belt, and if you’re building with serverless, sls-dev-tools gives you much of what you need. Ben Ellerby outlines some of the most useful features.

Ran Isenberg wrote up a piece on how to do AWS Lambda Event Validation using a tool called Pydantic. If you’re writing functions in python, this could be worth checking out.

Thoughts from Twitter 🐦

“I will die on this hill: One application environment per AWS account.” ~ Tom McLaughlin
As Tom is from Boston, I’ll assume he means Bunker Hill. Regardless, one application environment per account should be the absolute minimum. I heard AWS does one account PER MICROSERVICE. Think about that! 🤔

Serverless Jobs 👩‍💻 Sponsored

Serverless Engineer – stedi.com
At Stedi, we’re working in one of the biggest markets on the planet – EDI, the technological backbone of the physical product economy. We’re building a next-generation platform: a ubiquitous commercial trading network to automate the trillions of dollars in B2B transactions exchanged by nearly every company on Earth. If you’re interested in what we’re building and how we’re building it, we’d love to hear from you.

Have a job listing you’d like to share? Please contact me for more information. 

Upcoming Serverless Events 🗓

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

August 19, 2020 –AWS Lambda Data Storage: Choosing Between S3, EFS, and Local Storage (AWS Tech Talk)

August 24, 2020 –Embedding Analytics in Your Applications (AWS Tech Talk)

August 25, 2020 – 3 hours of Serverless Conference

September 1, 2020 – Deliver Business Value Faster with AWS Step Functions

September 3, 2020 – ServerlessDays Warsaw

October 1-2, 2020 – ServerlessDays Hamburg 2019

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 Jiju Thomas Mathew (@jijutm). Jiju is an Associate Process Manager at UST Global and an AWS Community Builder. He was previously CTO and cloud computing advisor for Innoval Digital Solutions Pvt Ltd. Jiju is the co-founder of an AWS User Group in Trivandrum, and has organized and spoken at meetups and community days for local developers. Thank you, Jiju, for being a leader and contributor within the serverless community!  🙌

Final Thoughts 🤔

Every week I try to make this newsletter shorter, and every week I seem to fail miserably. I even cut out two whole sections this week! I love reading all these stories and sharing them with you, so that won’t stop. But I am implementing something new that will trim some of the fat. It should 🤞 be ready next week. If you’ve read this far, you are a saint and I appreciate your commitment. I welcome any other ideas you may have to make this easier to consume.

I hope you enjoyed this newsletter. We’re always looking for ideas and feedback to make it better and more inclusive, so please feel free to reach out to me via Twitter, LinkedIn, Facebook, or email.

Cheers,
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 #102

Serverless security strategies… 🔐

Welcome to Issue #102 of Off-by-none. I’m happy you’re here!

Last week, we shared some dissenting opinions on serverless, but also got a bunch of awesome new tools. This week, we have some awesome insights into serverless and cloud security, we take a look at serverless machine learning, and try something a little different with the newsletter format. Plus, we have lots of great serverless content for you to explore.

When you’re curious what’s new with serverless… 📣

Check out the TriggerMesh guide “What Every CIO Needs to Know about Serverless” for feature comparisons of major offerings and an introduction to basic concepts like cloud native and microservices. Use it to inform your peers / managers on serverless benefits and available options. Sponsored

The Dashbird has a busy week. Not only did they just turn 3 years old, they also introduced Dashbird Atlas, a new real-time 3D map view of your entire serverless environment. And if that’s not enough, they also added insights for AWS Kinesis and Step Functions.

In other, sort of serverless news, WayScript just raised $5 Million. Last week we mentioned Paragon, which seems quite similar. Sort of like IFTTT, but with a lot more flexibility and customizations. I have a feeling we’ll see more and more systems like this that’ll continue to build higher level abstractions on top of serverless infrastructure.

When everyone starts adding buzzwords back into their pitch decks… 📈

Machine Learning is all the rage nowadays, and unlike several years ago when ML/AI was the cornerstone of every investor presentation, lots of companies are now actually able to deliver on that promise. An oft repeated criticism of Lambda (and most FaaS in general) has been its inability to handle machine learning use cases. But thanks to the recent addition of EFS support, and a clever post by Shitij Mathur, setting up serverless machine learning inference with AWS Lambda couldn’t be easier. 😉

There are plenty more examples, include Mike Palei’s post that shows you how to serve a Tensorflow 2 model on AWS Lambda. Or Joshua Jarvis’s Going Serverless for Your ML Backend with SAM CLI. For a more in depth discussion on what’s possible with ML and serverless, check out Datacast Episode 39: Serverless Machine Learning In Action with Carl Osipov.

What to do if PHP is still your jam… 🕺

Not to worry, the “Serverless LAMP stack” is definitely a thing. Ben Smith from AWS has another installment in his Serverless LAMP stack series, this time showing you how to build a serverless Laravel application and deploy it with AWS SAM.

And before you say, “hey, I bet Ben just made this whole thing up!”, Chandresh Singh also has a post that will show you how to setup a queue with Serverless Laravel using bref. If Laravel isn’t your thing, Smaine Milianni has a post that’ll show you how to deploy a Symfony application in AWS Lambda.

When you don’t want to repeat someone else’s mistakes… 🤦‍♂️

The Interwebs is filled with stories of success, but oftentimes learning what not to do can be even more instructive. Chris Plankey has a great post titled How I Failed at Generating Revenue with Alexa In-Skill Purchases that details his attempt to bring in some extra cash with a side hustle. We’re all prone to making bad assumptions, but maybe this will help you avoid a few.

Even if all your assumptions are correct, you’re still bound to hit some roadblocks when building out your serverless applications. Dimitri Saeys recounts how Sporza created a real-time sport data api (in tremendous detail). His team followed an interesting process, and there’s plenty to learn from their journey.

When you’re looking for a serverless solution to your problem… 🗺

If you still list DevOps on your LinkedIn profile, then perhaps using serverless for IAM user monitoring or sending bash commands to an EC2 cluster with AWS Lambda and SSM might be interesting to you.

For some simpler automations, Harish Aravindan can show you how to get notified on pull requests via Slack using AWS Lambda or you can see how Javaad Patel gets page views from Google Analytics using a Netlify Serverless function.

For the truly ambitious, Nghia Dang has an excellent post that shows you how to implement a highly available, scalable and cost-efficient video processing service using AWS Lambda, SNS and SQS. And if that’s not big enough for you, take a look at how AWS serverless architecture drives SBA’s Lender Gateway for PPP loans.

Where to go to level up your serverless knowledge… 🏗

Yan Cui compares choreography vs orchestration when dealing with serverless function composition. As he points out, both have their pros and cons, with Step Functions being the clear winner for mission critical workflows. Lots of useful information in here, but I still think there are cross-service use cases for Step Functions. Perhaps a discussion for another day.

Of course, Step Functions can get expensive, which is why Renato Byrro offers some suggestions on cutting Step Functions costs on enterprise-scale workflows. He mentions “orchestration” with EventBridge, but even though there are strong guarantees, this still falls into the “choreography” bucket for me.

If you’re still not fully up to speed on the magical service that is EventBridge, then perhaps this post on migrating applications to cloud with Amazon EventBridge by Emrah Samdan will fill in some gaps.

And speaking of magic, the new Direct Lambda Resolvers for AppSync are pretty darn cool as well. John Connerton not only helped build this new feature, but also explains why they are really effective.

Still thirsty for some serverless know-how? You can learn about Netlify Functions in 2-ish minutes, let Michael Bahr show you how to archive your AWS data to reduce storage costs, or get help from Ran Ribenzaft on how distributed tracing differs from logging. Plus, Lou Bichard can tell you why you’re alerting wrong with CloudWatch and Yossi Ittach will give you a rundown of your options for pub-sub services on AWS.

When you want to get hands-on with serverless… 👷‍♀️

Even though your code coverage is probably zero (don’t worry, I know you’ll eventually get to it), Mohammed Izzy shows you how to easily perform tests on your IaC code with Pulumi, so one less excuse. 😉

For those of you looking for a full-stack experience, Fidel Vazquez has a tutorial on designing and deploying a full-stack web application using AWS Amplify. Ashan Fernando shows you the simplest way to host a Gatsby website in AWS without servers, and Atila Fassina gives you the deets on deploying Netlify Functions with TypeScript.

Yi Ai has another excellent tutorial that shows you how to create an instance scheduler using AWS CDK, a common use case that I’m sure you’ll need to address at some point. You’re also likely going to need to process large S3 files with AWS Lambda, so give that one a look as well.

Simran Kaur Kahlon shows you how easy it is to setup an AWS Private API using Serverless Framework, and if you need multiple API versions in serverless microservices, Venkatachalam Dekshinamurthy will tell you how he does it (without using Route53).

If you’re ready to go with Go in Lambda, you might find this Ultimate Guide by Sebastian Karasiewicz handy. For something a little less involved, take a look at Adis Kovacevic’s post on how to add Algolia Search to Firestore using a cloud function.

When you need some serverless security best practices… 🔒

ICYMI: Serverless Security Strategies – A Recorded Session with AWS Principal Engineers
AWS Senior Principal Engineers Becky Weiss and Marc Brooker cover the most common areas of vulnerability including misapplied patches and updates, malicious code and runtime security, overly permissive access, and network segmentation, and share the ways that serverless technologies address these areas. This talk gives you a solid understanding of how a serverless security strategy functions technically and how it can be operationalized in your business. Sponsored

In addition to the excellent recommendations from Becky and Marc above, Anthony DiMarco offers up some best practices for serverless endpoints on AWS. For more insights into dealing with serverless security vulnerabilities, here’s how Cloudflare handles them.

Serverless certainly shifts more responsibility onto the developers, so it’s no surprise that security analysts want more help from developers to improve DevSecOps. After all, “only 15% of respondents said that a majority of developers participate in formal security training.” Couple that with the fact that a recent report showed misconfigured cloud storage services were prevalent in 93% of analyzed cloud deployments, it’s no wonder that the research suggests that cloud breaches will become faster and bigger. If you’re using serverless, you’re already in a much better position.

When you’re looking for some good serverless reads… 🤓

Corey Quinn brilliantly explains why multi-cloud is the worst practice. Not only does it force you to choose the least common denominator, but the likelihood of cloud agnostic workloads actually existing, is probably quite slim.

Sheen Brisals extends his theory of thinking and developing serverless applications as “Set-Pieces” in his most recent piece. This ties in nicely with Haim Raitsev’s Monolithic to Microservices post.

David Anderson explains how serverless helps enterprises scale DevOps, and how they did it at Liberty Mutual, while Brian Foody suggests that startups should be “Day One” Cloud Native Organizations.

I’m not sure who gave Forrest Brazeal the title of “Cloud bard”, but it’s spot on! He was interviewed on theCube and outlines common paths to failures (and successes) in enterprise cloud native evolutions. Unfortunately, there are no rap battles or cloud ballads performed during the interview. 🎹

Ben Ellerby has a great piece on Serverless BI and how serverless helps companies on their path towards data-driven Business Intelligence. And speaking of data, this early Twitter engineer has a suggestion for your next database.

When you’re looking for something serverless to listen to… 🎧

I had a great chat with Heitor Lessa on Episode #61 of the Serverless Chats Podcast. We discussed the the Well-Architected Serverless Lens and how best practices are defined, how services are chosen for the serverless lens, and what new services will be added to the Lens this year. You can also watch it on YouTube.

On Episode #23 of the Real World Serverless Podcast, Yan Cui talks with Ari Palo about how they do serverless at Alma Media and the third-party development tools they use to optimize their workflow.

When you’re curious what’s new with AWS… 🆕

AWS AppSync releases Direct Lambda Resolvers for GraphQL APIs, which we already mentioned, but it’s so cool that it deserves to be mentioned again. I’ve got nothing against VTL, but if you are rapidly prototyping something, this just feels like an easier way to get started. Ed Lima does a better job explaining it than I can.

AWS Lambda now provides IAM condition keys for VPC settings so you can ensure that users can only deploy functions connected to one or more allowed VPCs. Julian Wood gives some good use cases for it and why it might be right for you.

I just found out that Amazon API Gateway HTTP APIs now support wildcard custom domain names, which I didn’t realize wasn’t possible before they announced this. I’ve still yet to make HTTP APIs my go-to flavor of API Gateway. 🍦

In AWS ML news, Amazon Transcribe launches custom language models to let you add “out-of-lexicon terms.” In my experience, that includes most words in the English language 😬, but I’m sure it’s getting better all the time. Plus, Amazon Lex launches accuracy improvements and confidence scores, which will allow you to use business logic to help clarify intents. And AWS Step Functions adds support for Amazon SageMaker Processing with help from the Step Functions Data Science SDK. So that’s another thing I’ll add to my “probably need to learn this someday” list.

When you need some helpful serverless tools… 🛠

Neiman Marcus open sourced a Serverless Framework Plugin that gives you better control over Provisioned Concurrency Autoscaling.

Dynatron is a new NPM package that can “bridge between AWS DynamoDB Document Client and real world usage.” Gevorg Galstyan explains that this can find missing optimizations and hidden issues that are very hard to catch. Sounds interesting to me.

Midway Serverless is a “serverless framework used to build Node.js cloud functions and it helps you significantly reduce maintenance costs and focus more on product development in the cloud-native era.” Who doesn’t need another serverless framework? 😀

Serverless Jobs 👩‍💻 Sponsored

Serverless Engineer – stedi.com
At Stedi, we’re working in one of the biggest markets on the planet – EDI, the technological backbone of the physical product economy. We’re building a next-generation platform: a ubiquitous commercial trading network to automate the trillions of dollars in B2B transactions exchanged by nearly every company on Earth. If you’re interested in what we’re building and how we’re building it, we’d love to hear from you.

Have a job listing you’d like to share? Please contact me for more information. 

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.

September 1, 2020 – Deliver Business Value Faster with AWS Step Functions

September 3, 2020 – ServerlessDays Warsaw

October 1-2, 2020 – ServerlessDays Hamburg 2019

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 George Mao (@georgemao). George is the WW Technical Leader for Serverless Computing at AWS. He is a regular speaker at AWS Summits, re:Invent, and various tech events. George also contributes to open source projects and works with customers to design their applications in the cloud. Thanks for all of your contributions and work on serverless, George! 🙌

Final Thoughts 🤔

So, for those of you that have been around for a while, you may have noticed that I changed the format of the newsletter a bit. I’ve received a tremendous amount of feedback from a lot of you (which I greatly appreciate), and I’ve tried to start incorporating some of your suggestions. The biggest issue for me with the old format was that it had become terribly limiting, and in many cases, didn’t give me an opportunity to add the right amount of context. I have many more thoughts and ideas on additional changes that I plan on making (which I’ll share in a blog post soon), but I’m a sucker for feedback, so I’d love to know your thoughts.

I hope you enjoyed this newsletter. We’re always looking for ideas and feedback to make it better and more inclusive, so please feel free to reach out to me via Twitter, LinkedIn, Facebook, or email.

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 #101

Tell us what you really think of serverless… 🤭

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

Last week, we celebrated our 100th issue, and at the same time, realized we have a lot more to share about serverless! This week, we get some dissenting opinions on serverless while at the same time getting a bunch of awesome new tools to make it even better. Plus, we’ve got plenty of great posts from the serverless community.

Serverless News & Announcements 📣

The brand new TriggerMesh integration with Amazon EventBridge lets you use any TriggerMesh source in EventBridge. Our sources include GitHub, GitLab, Slack, Zendesk, Azure Activity Logs, as well as on-premises apps. Learn more here! Sponsored

New Relic pricing plummets with product overhaul
New Relic just released their New Relic One platform, which is a complete overhaul of their existing system. This is a great article that sums up the need to reposition in an increasingly saturated cloud observability market.

YC alum Paragon snags $2.5M seed for low-code app integration platform
This is an interesting new tool that is built on a AWS serverless backend. You still need quite a bit of technical knowledge, but most of the infrastructure is abstracted away for you. Give me a way to do IaC with this, and I might be very interested.

Announcing the New AWS Community Builders Program!
Looking to get access to AWS product teams, information about new services and features, mentorship from AWS experts, Promotional Credits, and other helpful resources to support content creation and community-based work? Check out this new program from AWS.

Rockset Shatters Operational Barriers for Real-Time Analytics
Maybe this is just an overhyped press release, but the idea of “Converged Indexes” that support real-time SQL queries on semi-structured data at massive scale is pretty exciting. I was just chatting with someone about RocksDB the other day, and they have been very happy with it.

Serverless Stories 📖

How I scaled an AppSync project to 200+ resolvers
If you’re working on a massive AppSync project, you definitely want to read how Yan Cui built one with over 200 AppSync resolvers and 600 CloudFormation resources.

How I Built a Serverless Search for My Blog
This is amazing. Probably total overkill, but amazing nonetheless. Gunnar Morling used Java and the Apache Lucene full-text search library, compiled into a native binary using the Quarkus framework and GraalVM, to deploy a serverless search engine on Lambda.

AWS DynamoDB: Writing millions of records: Not consuming provisioned throughput: Global Secondary Index and Sharding
This article does a great job explaining why write sharding might be necessary when using low-cardinality partition keys in secondary indexes. If you’re writing lots of data to DynamoDB, definitely give this a look.

Serverless Concepts 🏗

Understanding database options for your serverless web applications
Helpful post by James Beswick that outlines a few patterns that can be used to handle database interactions from your serverless applications. The relational database story for AWS and serverless is getting much better (thanks RDS Proxy), but it’s still not quite there yet.

The Pains of Testing Serverless Applications
Having difficulty testing your serverless applications? You’re not the only one. Paul Swail reveals some of the problems and complaints from developers collected through his recent serverless survey.

AWS Compiled 001
Alejandra Quetzalli has put together (what I think) is the first issue of an AWS newsletter. This one focuses on Java and Serverless. I hope there are more of these.

Best Practices for an Improved Serverless Developer Experience
I think Harsh Chaudhary has a lot of really good recommendations in here, but I’m personally not a huge fan of mocking cloud services locally. But, hey, whatever works for you. That’s what’s important.

Serverless Tutorials 👷‍♀️

Auto-instrumented, trace-centric observability for serverless & k8s
If you’re running distributed serverless, Kubernetes, or containerized environments, you need a specialized tool that’s built to monitor them. Epsagon enables teams to automatically detect, troubleshoot, and resolve issues within complex microservices with no training, manual coding, tagging or maintenance required. Try free today, connect your first trace instantly, and grab one of our “cloud observability” drones! Sponsored

Serverless Framework & Immutable Packaging: How to
Samuel Cozannet outlines a strategy for creating immutable deployment packages with the Serverless Framework. It’s an interesting approach, though it still requires the framework to rebuild the CloudFormation templates on every deploy. As soon as you throw certain plugins into the mix, everything goes out the window.

Why You Should Never, Ever print() in a Lambda Function
Paul Singman offers some advice for you to “upgrade your dance” when it comes to logging in your Lambda functions. Also, take a look at the structured logging format provided by AWS if you really want to take it to the next level.

Building well-architected serverless applications: Controlling serverless API access – Part 1Part 2, and Part 3
I love this series by Julian Wood. It takes you through all the steps and questions you need to be asking to make sure your serverless app’s API access is secure and well-architected.

Serverless Security 🔒

Study finds misconfigured cloud storage services in 93% of cloud deployments analyzed
I wish this came as a surprise. This has “led to nearly 200 breaches that have given attackers access to 30 billion records over the past two years.” 😳

Serverless Reads 🤓

The AWS Serverless LAMP Stack: The Future of PHP or Vendor Lock-in?
The good news about this article is that they don’t criticize serverless, just the proprietary nature of building a LAMP stack on top of Lambda and the AWS ecosystem. I’ll say one thing about vendor lock-in. If I had a nickel for every time I had to move my production application to another provider… I’d be broke.

My monolith doesn’t fit in your serverless
Gabriel Chertok gives some reasons why he thinks serverless isn’t right for apps that live somewhere between really simple and infinitely scalable. He makes some good points, and I’ve been arguing for awhile that I think we’ve added too much complexity to the serverless paradigm. What are your thoughts?

Why the Benefits of Serverless May Never Be Realized
“I think serverless as a whole has been over-hyped. It may be part of a broader cloud-native computing revolution, but serverless on its own falls short of being revolutionary. It’s a handy technology, but it’s not exactly a pathbreaking or singularly disruptive one.” I strongly disagree. Yes it has constraints, but I’ve never worked with a technology that offered this much potential.

For the podcast listener… 🎧

Episode #60: Going Green with Serverless with Paul Johnston (Part 2)
In part 2 of this two-part episode, I finish my chat with Paul Johnston about how the big cloud providers are addressing climate change, what the tech industry can do as a whole, the effect this will have on globalized business, and how the positive downstream impact of choosing serverless can create a more sustainable business.

New from AWS 🆕

Amazon Kinesis Data Firehose now supports data delivery to HTTP endpoints
This feature enables you to use a fully managed service to stream data to an HTTP endpoint without building custom applications or worrying about operating and managing the data delivery infrastructure. I’m down for that! It also supports data delivery to DatadogNew Relic, and MongoDB Cloud.

AWS CodeBuild supports code coverage reporting
This is a nice new feature. Supports any test framework that outputs files for JaCoco XML, SimpleCov JSON, Clover XML, and Cobertura XML.

Amazon GuardDuty expands threat detection coverage to help you better protect your data stored in Amazon S3
Threat detection coverage has been broadened to monitor for highly-suspicious data access and anomaly detection to help you better protect your data residing in Amazon Simple Storage Service. We now know that 93% of their customers need it. Read more.

Serverless Tools 🛠

Is serverless cheaper for your use case? Find out with this calculator.
Xavier Lefèvre has put together a really helpful serverless calculator that has a ton of default values already configured. You’re free to use the official AWS cost calculator, but this one assumes things based on a “typical” serverless application.

5 Serverless Security Tools You Should Be Using
Miguel Calles put together a list of serverless security tools for you. There are lots of other monitoring/observability tools available, but it’s a handy reference.

CLI tool to Query the AWS Aurora Serverless Data API
Chris Bailey wrote a python script that lets you query your Aurora Serverless cluster right from your CLI. Great little tool for debugging and development.

Serverless Jobs 👩‍💻 Sponsored

Serverless Engineer – stedi.com
At Stedi, we’re working in one of the biggest markets on the planet – EDI, the technological backbone of the physical product economy. We’re building a next-generation platform: a ubiquitous commercial trading network to automate the trillions of dollars in B2B transactions exchanged by nearly every company on Earth. If you’re interested in what we’re building and how we’re building it, we’d love to hear from you.

Have a job listing you’d like to share? Please contact me for more information. 

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.

September 3, 2020 – ServerlessDays Warsaw

October 1-2, 2020 – ServerlessDays Hamburg 2019

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 Nicole Yip (@Pelicanpie88). Nicole is an Engineering Manager at the LEGO Group, where, prior to her recent promotion (congrats!) she has been involved with the platform team looking after the hosting infrastructure (AWS), CI/CD and dev experience, SRE, operations and security for both application and infrastructure. Her experience as an infrastructure and DevOps engineer has allowed her to help teams of all sizes get their services to AWS. Nicole has also spoken at the Serverless Architecture Conference and DevOps Con. Thank you, Nicole, for helping others make the jump to serverless! 🙌

Final Thoughts 🤔

There were several new tools released this week that help with building serverless applications. From New Relic’s new platform, to TriggerMesh’s EventBridge integration, to Xavier Lefèvre’s Serverless Cost Calculator, all of these investments are a continued testament to the growing power and popularity of serverless.

While there were several articles this week that criticize serverless, it seems to be the same old recycled arguments, many of which have been addressed by the cloud providers or the community. We just need to keep fighting the good fight and spreading the serverless word. Eventually the dissenters will find themselves left in the dust with a whole bunch of servers to manage.

I hope you enjoyed this newsletter. We’re always looking for ideas and feedback to make it better and more inclusive, so please feel free to reach out to me via Twitter, LinkedIn, Facebook, or email.

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

Celebrating 100 Issues! 🥳🥂

Welcome to issue #100! Thanks for being here! 🎉

Last week, we got a Q2 serverless recap, someone realized that NAT Gateways were expensive, and we learned how to model our serverless apps in a way that allows us to evolve them more easily.

This week, we’re celebrating the 100th issue of Off-by-none with what you’ve come to know, expect, and hopefully love: the many, many great serverless articles, projects, and tools from our community. But what’s more: I’m taking the time to reflect on the wonderful community we’ve built here, in your inbox, and sharing some ways I hope to improve your newsletter experience.

I’ve always wanted this newsletter to recognize the community’s vast and great work, and be inclusive and representative of those who are in it. I want you to feel like you’re a part of this newsletter and that you can see yourself in this community. To better accomplish that, I’m in the final stages of launching the new Off-by-none website. Though I’ve still got some work to do on it, it’s the vision of the site I am most excited about. I hope that it will be a place where I can facilitate more engagement, invite more submissions, ideas, and stars, and better amplify the many voices that make this community so great. If you have any suggestions, as always, please feel free to let me know, as I want the Off-by-none site to truly be a place for all of us. 🙌

Serverless News & Announcements 📣

TriggerMesh helps you do more with serverless
Connect GitLab with Confluent and Zendesk, or connect these and dozens of other apps with AWS services like Kinesis, SQS, SNS, and Cognito. Even integrate with EventBridge. Join the Beta program today! Sponsored

Cloudflare launches Workers Unbound, the next evolution of its serverless platform
Oh wow, this looks amazing. Workers Unbound is meant for more complex and longer-running processes and operates at a fraction of the cost of Lambda, Azure Functions, and Google Cloud Function.

The AWS Serverless Application Model CLI is now generally available
In case you don’t know, the AWS SAM CLI is the command line tool companion for AWS SAM templates. It provides developers local tooling to create, develop, debug, and deploy serverless applications, and now it’s finally GA.

The Node.js Runtime
FYI, Google Cloud Functions now support Node.js 12 (in beta). I’d love to see Google become more competitive with some of their serverless offerings. Node 12 was released over a year ago.

Epsagon Further Accelerates Growth with New Investment from DTCP
Congrats to the team over at Epsagon! This latest investment brings their total funding to $30M which will help them increase their team to service their growing customer base. Apparently observability in the cloud is getting very popular.

Serverless Stories 📖

We went serverless with our new startup. And you should (probably) too.
I totally agree. Ankit explains why he chose serverless and what some of the benefits are. He gives some reasons when not to go serverless, but I think we’ve addressed those objections many times over.

A Plumber’s Guide to Cloud
Great post by Daniel Singletary, who took his experience as a plumber and applied the same troubleshooting methodology to complete Forrest Brazeal’s “Cloud Resume Challenge”.

A micro API in Firebase and Cloudflare Workers
This was a fun little experiment by Braeden Smith that compared building a simple micro API for loading an image in both Firebase and Cloudflare Workers. Fun Fact: Cloudflare won.

Serverless Use Cases 🗺

Serverless magic links with AWS Cognito
Here’s a really interesting use case for serverless that takes advantage of Cognito’s multi-factor login support to allow for temporary “magic links”. Thomas Schoffelen explains how secure it is, how it scales, and provides some code for a proof of concept.

Functions as a Service — A simple use case
Need to catch a webhook and publish a message to the Slack API? Pavel Pratyush explains why serverless is the perfect solution for this simple use case.

Processing PGP Encrypted Data in AWS Lambda using Python.
Here’s an interesting serverless use case. Mayank Madhukar shows you how to use python-gnupg to decrypt emails from an S3 bucket using Lambda.

Serverless Concepts 🏗

Monitor & Debug Serverless with 30-Second Auto-Instrumentation
Complete observability over your serverless environment with no code changes required. With one-click distributed tracing, Lumigo lets you effortlessly find & fix issues in serverless and microservices environments. Get serverless-specific smart alerts before they impact performance or cost. Sign up for a free account and get up & running in minutes. Sponsored

Real-time Data Processing With Kinesis Data Analytics
Nick Van Hoof and David Smits put together an excellent post that shows the serverless architecture they use to track, analyze and alert on traffic jams in Belgium using (near) real-time analytics processing. Very cool stuff.

Breaking Down Serverless Anti-Patterns
Parts of this post by Sarjeel Yusuf are a bit hard to follow, but the overall point should be well taken. We have to think and operate differently when building serverless applications, and in many circumstances, best practices are still a moving target.

Connecting Accounts with AWS Event Bridge
I like John Gilbert’s overall approach here, especially separating subsystems at the AWS account level to create bulkheads to contain the blast radius. I’m curious if there might be an alternative approach that doesn’t require upstream subsystems to know about other subsystems? Perhaps creating a common bus in a separate account that all subsystems can push to and read from?

Five Reasons You Should Consider AppSync Over API Gateway
Excellent breakdown by Yan Cui that outlines and explains five really good reasons to give AppSync another look.

Replacing web server functionality with serverless services
Another great post by James Beswick that explains how to significantly reduce your infrastructure requirements, setup time, and maintenance needs by switching to a serverless approach. Getting all that scalability and multi-AZ redundancy right out of the box should make the choice simple.

Serverless Tutorials 👷‍♀️

Implementing a Serverless Speech-To-Speech Language Translation App
Andre Beck started a series of articles that aim to illustrate the implementation of simple cloud apps on serverless platforms. First up is a language translation app that uses Step Functions.

How to handle duplicate Lambda invocations
Important message from Murali Allada about idempotent operations when dealing with asynchronous Lambda invocations. He suggests using DynamoDB, which makes a lot of sense, but you should also determine whether mitigating the side effects is worth the extra effort.

AWS CI/CD Pipeline Tools: CodeBuild and CodePipeline
Ran Ribenzaft walks you through setting up a CI/CD pipeline for a serverless project using CodeBuild and CodePipeline.

Creating an AWS SAM CLI project with Typescript and Both Types of Layers (Dependencies and Function)
Thinking about building a serverless Typescript project using AWS SAM? Nick Bordeau has you covered, complete with his project boilerplate.

Serverless Security 🔒

Twilio: Someone broke into our unsecured AWS S3 silo, added ‘non-malicious’ code to our JavaScript SDK
Note to self: Don’t enable S3 access policies that leave SDKs readable and writable by anyone. Otherwise, automated cyber-crime campaigns that prey on JavaScript code might infect said SDKs and take you over 8 hours to realize it.

Serverless Reads 🤓

Liberty IT Adopts Serverless Best Practices Using AWS Cloud Development Kit
Andrew Robinson wrote up a great piece (with the help of Matthew Coulter) on how Liberty IT is using the AWS CDK along with a number of best practices to create secure, repeatable deployments for their services. Nice mention of the CDK Patterns site as well.

Serverless for Enterprise: Scale big or go home
Using serverless for greenfield applications should be a no brainer at this point, but for enterprises with existing workloads, the choice isn’t always as clear. Mariliis Retter offers a few things enterprises should be keeping in mind as they start to make the transition.

What comes after Kubernetes?
I once knew an Ops person who said his primary role was to automate himself out of a job. And that’s what cloud providers are doing with K8s IMO. There are a lot more interesting things to be built on the infrastructure than there is to be done to the infrastructure. It’s just a matter of time until Kubernetes will be given as much thought as the hypervisor or Firecracker.

The Edge Computing Opportunity: It’s Not What You Think
Matthew Prince goes into detail about the future of Edge Computing and how Cloudflare Workers are addressing things like speed, cost, and most importantly, compliance.

Serverless or Kubernetes: When do you use which?
Pradeep Kumar lays out a number of rational arguments as to why you’d choose one over the other. I still think the choice isn’t just between FaaS and containers, though. There are so many other serverless “services” available, that trying to implement any of these on K8s would seem like a colossal waste of time and resources.

Videos, Podcasts, and more… 📽

Free 50-Minute Learning Path: How to Use Objects in Amazon S3 to Trigger Automated Workflows Using AWS Lambda
From the same author that brought you the episodic Innovator Island virtual workshop, this 6-episode learning series shows you how to use the S3 and Lambda pattern through several example applications. You’ll deploy applications into your own AWS account, explore extending them to your own use-cases, and ultimately be ready to develop sophisticated distributed applications built around S3 events using custom code to integrate with other AWS services. Sponsored

Episode #59: Going Green with Serverless with Paul Johnston (Part 1)
In part 1 of this two-part episode, I chat with Paul Johnston about how serverless compares to traditional computing in terms of being “green”, the impact of data centers on climate, why efficiency is only a first step, what people in tech can do to affect change, and so much more. Watch on YouTube.

ServerlessDays Virtual – July 2020
The second edition of ServerlessDays Virtual happened live last night! The replay is available now, so make sure you check out the amazing talks by Adrian Cockroft, Linda Nichols, Rusthem Feyzkhanov, Rich Buggy, Will Velida and Dr. Denis Bauer.

The Talking Serverless Podcast #19
I had a great time being a guest on The Talking Serverless Podcast with Ryan Jones. He’s had a lot of amazing guests, so you should check out the archives and give the show a listen.

Real World Serverless #21: From K8 to Serverless at Wealth Wizards
Yan Cui talks with Ionut Craciunescu from Wealth Wizards and discusses why their team decided to move away from Kubernetes and adopt a more serverless approach.

Simplest Serverless App with AWS CDK (API Gateway, AWS Lambda and DynamoDB)
Marcia Villalba give us an introduction to the AWS CDK and shows us how to deploy a simple serverless stack that creates an API route, a Lambda function, and a DynamoDB Table.

New from AWS 🆕

Amazon CloudFront adds additional geolocation headers for more granular geotargeting
This is an awesome update. You can now access a visitor’s city, state, and zip code, plus their timezone and approximate latitude and longitude. Lots of cool personalization that can be done with this

Amazon Elastic File System increases per-client throughput by 100%
Starting to play around with EFS and Lambda? Well, Amazon EFS now supports up to 500 MB/s of per-client throughput, a 100% increase from the previous limit of 250 MB/s.

AWS CodeBuild now supports accessing Build Environments with AWS Session Manager
Great feature if you need to dig in to diagnose complex build problems. Since you should be using CI/CD for all your production workloads anyway, this could become a handy tool.

Amazon Elasticsearch Services announces support for Elasticsearch versions 7.7
Nope, still not serverless, but new features are always welcome.

Amazon CloudFront announces Cache Key and Origin Request Policies
Another very cool update to CloudFront. You now have more control over your cache keys, and can even forward varying information to your origin, but still used the same cached content if necessary. Very cool.

Announcing AWS Serverless Application Model (SAM) CLI now generally available for production use
We already mentioned this at the beginning, but here is the official “what’s new” announcement. Good stuff from the SAM team.

Amazon Lightsail now offers CDN distributions to accelerate content delivery
This is an interesting way to take your “not-so-serverless” application and add a bit of serverless to it. Adding a CDN to cache assets and pages automatically is at least a good first step.

Serverless Jobs 👩‍💻 Sponsored

Serverless Engineer – stedi.com
At Stedi, we’re working in one of the biggest markets on the planet – EDI, the technological backbone of the physical product economy. We’re building a next-generation platform: a ubiquitous commercial trading network to automate the trillions of dollars in B2B transactions exchanged by nearly every company on Earth. If you’re interested in what we’re building and how we’re building it, we’d love to hear from you.

Have a job listing you’d like to share? Please contact me for more information. 

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.

July 29, 2020 – Orchestrating Distributed Business Workflows with AWS Step Functions

July 30, 2020 – Building Intelligent Application Flows in the Cloud and On-premises with TriggerMesh (Webinar)

September 3, 2020 – ServerlessDays Warsaw

October 1-2, 2020 – ServerlessDays Hamburg 2019

Serverless Star of the Week ⭐️

Each week, I fill this spot with people who are helping to grow the serverless community with their work. With people in every corner of the globe making great contributions, I unfortunately and inevitably cannot know them all. That’s why I am asking for your help in ensuring we amplify the accomplishments of our friends and colleagues through my new Serverless Star nomination form. These are the people on your team, in your circle, who are grinding out new projects, ideas, and perspectives that can make a difference in the serverless community. In honor of our 100th issue, let’s take this step to elevate their voices, and recognize their contributions together. You can start by nominating someone here.

Final Thoughts 🤔

Wow. 100 issues! I’ve learned so much over the last two years from reading all the amazing content that this community has created, and I hope you have too. Thank you all for continuing to be a part of this.

Like I mentioned in the beginning, the new site should be available soon, and I hope it will give the community more ways to contribute, learn, and amplify the voices of our members.

I hope you enjoyed this newsletter. We’re always looking for ideas and feedback to make it better and more inclusive, so please feel free to reach out to me via Twitter, LinkedIn, Facebook, or email.

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

The Storage First Pattern

The Storage First Pattern allows you to reliably capture data from incoming API requests without needing a Lambda function to parse, process, transform and save the data. Under the right circumstances, this pattern can reduce latency, save money, and minimize bugs.

Interactive Reference Architecture

Click on the components or numbered steps below to explore how this architecture works.

The Storage First pattern is useful when your application doesn’t require a lot of data transformation on incoming API requests. Rather than attaching API Gateway to a Lambda function that has to parse, process, transform, and save data, we can bypass the Lambda function by using a “service integration” that will send the data directly to an AWS service, like SQS. This reduces the latency of our API calls, saves money by removing the need to run a processing Lambda function, and makes our application more reliable because we are not introducing additional code.

In our example above, we’re using an SQS queue and then processing data off of that using a Lambda function subscription. There are plenty of other services that can be written to directly including DynamoDB, Kinesis, and EventBridge. To the best of my knowledge, Eric Johnson from AWS coined the term “Storage First” to indicate that we want to ensure that we save a user’s raw data before we attempt to run any processing on it. That way, if downstream services or processing fails, we always have a copy of the original request. He explains the process in his post Building a serverless URL shortener app without AWS Lambda.

The incoming data can be transformed and verified using VTL templates, but the more complexity you introduce, the more likely you are to create issues with edge cases. This is an incredibly useful pattern for high velocity workloads like webhooks and clickstream data because it provides low latency and high reliability. Additional processing can be done asynchronously, allowing you to add resiliency to your application if downstream systems are unavailable.

Deploy this Pattern

Below are the basic configurations for deploying this pattern using different frameworks and platforms. Additional configuration for your environment will be necessary. The source files and additional examples are available in the GitHub repo.

  • TO IMPLEMENT

The Circuit Breaker

The Circuit Breaker pattern keeps track of the number of failed (or slow) API calls by using a cache to share the status across multiple Lambda functions. This allows you to perform load shedding when downstream services become unavailable.

Interactive Reference Architecture

Click on the components or numbered steps below to explore how this architecture works.

The Circuit Breaker pattern keeps track of the number of failed (or slow) API calls by using a cache to share the status across multiple Lambda functions. In this example, we’re using a DynamoDB table so that we can avoid using a VPC. If you were in a VPC already, ElastiCache would be a good alternative.

Here’s how it works. When the number of failures reaches a certain threshold, we “open” the circuit and send errors back to the calling client immediately without even trying to call the API. After a short period of time, we “half open” the circuit, sending just a few requests through to see if the API is finally responding correctly. All other requests receive an error. If the sample requests are successful, we “close” the circuit and start letting all traffic through. However, if some or all of those requests fail, the circuit stays “open”, and the process repeats with some algorithm for increasing the timeout between “half open” retry attempts.

This is an incredibly powerful (and cost saving) pattern for any type of synchronous request to an API or downstream system. You are accumulating charges whenever a Lambda function is running and waiting for another task to complete. Allowing your systems to self-identify issues like this, provide incremental backoff, and then self-heal when the service comes back online, adds a tremendous amount of resiliency to your applications.

Deploy this Pattern

Below are the basic configurations for deploying this pattern using different frameworks and platforms. Additional configuration for your environment will be necessary. The source files and additional examples are available in the GitHub repo.

Off-by-none: Issue #99

Modeling business logic flows in serverless applications… 📈

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

Last week, we got more CDK patterns to explore, another reason to look at BigQuery, and some updated serverless best practices. This week, we get a Q2 serverless recap, someone realizes that NAT Gateways are expensive, and we learn how to model our apps for simpler evolutions. Plus, we’ve got some amazing posts from the serverless community.

Serverless News & Announcements 📣

TriggerMesh helps you do more with serverless
Connect GitLab with Confluent and Zendesk, or connect these and dozens of other apps with AWS services like Kinesis, SQS, SNS, and Cognito. Even integrate with EventBridge. Join the Beta program today! Sponsored

ICYMI: Serverless Q2 2020
The Serverless Team at AWS has wrapped up all of the Q2 serverless announcements, blog posts, videos and more into a nice little package for you. Lots of stuff happened, so set aside a few hours if you click this link!

Epsagon Introduces Fastly Technology Integration
Pay attention to Fastly. Oh, and by the way, Epsagon now supports tracing their requests from the edge.

MIT Spinoff Data Management Company TileDB Closes $15 Million
“With a totally serverless infrastructure, TileDB delivers access control and enables distributed computing at extreme scale, eliminating all cluster management and minimizing TCO.” Hmm, a universal data engine that can access, analyze, and share complex data sets with any tool at planet scale? Very, very interesting. 🤔

Begin supports renaming default GitHub branches
I’ve seen a lot of people rightfully question some of the naming conventions we use in tech, but Begin actually did something about it. Now you no longer need to use the master branch, but can rename it to something else and still have their system pick it up.

Serverless Stories 📖

A 1 year review of Laravel Vapor
This is an excellent post by Jack Ellis that not only recounts his team’s use of Laravel Vapor, but offers some great insights into the benefits (and constraints) of serverless. For those of you toiling with servers to run your Laravel applications, this glowing endorsement of Vapor might be just what you’re looking for.

Lessons in Serverless Tech. 1 – NAT GW is expensive.
Yup. I might even go as far as saying it’s too expensive. If you are trying to optimize your serverless application costs, think long and hard about whether you need both VPC and Internet access from the same Lambda function. Audrius Kucinskas clearly agrees with me.

El Chapo: an open source & serverless URL shortener written in python/flask
Here is an interesting post by Sankalp Jonna that highlights one of the core tenets of serverless development: build vs. buy. In order to save $30/mth on a prebuilt solution, his team spent a day building their own, and now it costs only $5/mth to run it. I probably would have built my own solution as well, but I have to think the $25/mth cost savings wouldn’t outweigh the cost of development. 🤷‍♂️

Serverless Use Cases 🗺

What scenarios are appropriate for serverless?
“Serverless computing is best-used for tasks that don’t block the user interface.” 🤦‍♂️ Please, please, please stop saying things like this. Either the author has never run a serverless application at scale, or didn’t take the time to learn how to optimize it. According to the results of the Serverless Community Survey, 75% of respondents are using serverless for REST APIs. So, yes, this is a perfectly appropriate scenario for it!

How I Built a REST API Using Google Sheets
I think there are much easier ways to accomplish this without needing to use Cloud Run, but the use case still stands. Google Sheets works great for a number of things, and being able to pull or push data to it from an API can make a lot sense in the right scenario.

5 Popular Use Cases for Going Serverless
Mariliis Retter offers up five use cases for serverless. We’ve covered these in depth before, but it never hurts to get a good reminder now and then.

Serverless Concepts 🏗

Scale and Resilience Aren’t Just Buzzwords
So this isn’t specifically about serverless, and I have a feeling this series is going to eventually go down the Kubernetes route, but Stephanie Wong lays out some very good principles here, and more importantly, adds helpful context to the terms “scale” and “resilience”. I know I’ve seen “but will it scale?” become a party joke, but for modern application developers, it needs to be the cornerstone of your architecture.

Using the AWS Serverless Application Model (SAM)
Great post by Andrew May that compares and contrasts SAM and the Serverless Framework. He points out a lot of the limitations faced by SAM, but I often find myself working around limitations in the Serverless Framework as well. If you’re trying to choose between the two, this post will give you some good insights.

TypeScript and Netlify Functions
The more you know. Alex Chiu reminds us that Netlify just uses AWS Lambda functions, and can therefore utilize the @types/aws-lambda type definitions for event object autocompletion.

6 things you didn’t know you could do with the Twilio Serverless Toolkit
I really love this model that allows you to develop serverless functions on the SaaS platforms you’re using. In this post, Phil Nash highlights a few features of the Twilio Serverless Toolkit.

Serverless Tutorials 👷‍♀️

Free 50-Minute Learning Path: How to Use Objects in Amazon S3 to Trigger Automated Workflows Using AWS Lambda
From the same author that brought you the episodic Innovator Island virtual workshop, this 6-episode learning series shows you how to use the S3 and Lambda pattern through several example applications. You’ll deploy applications into your own AWS account, explore extending them to your own use-cases, and ultimately be ready to develop sophisticated distributed applications built around S3 events using custom code to integrate with other AWS services. Sponsored

Crash Course on AWS CDK and Serverless with REST API and Data Lake Analytical Querying
If you’re looking to get started with the AWS CDK, this might be a good place to start. Simple, straightforward tutorial by Renato Byrro that walks you step by step through the basics and then right into a working example.

Vue Serverless Side Rendering with AWS Lambda@Edge
David Porter has some code and explanations that will let you perform SSR with Vue apps on Lambda@Edge. Lots of good reasons to do this, which David points out in the post.

AppSync: how to inject table names into DynamoDB batch & transact operations
Yan Cui has a quick fix for those of you using dynamic table names for DynamoDB and are required to pass it into your AppSync resolvers. Really interesting approach, but he says this could be better encapsulated as part of the serverless-appsync-plugin. So if you have some free time, maybe add a PR. 😀

How to structure GraphQL and Typescript app using Serverless infrastructure
Here’s a tutorial from Mirco Guidetti that uses the apollo-server-lambda npm package to turn Lambda into a GraphQL server. Should you use AppSync instead? Maybe, but I’ve seen people having success with this approach.

Serverless end-to-end tracing, troubleshooting & performance monitoring with Lumigo
Mohammed Izzy provides a good overview of Lumigo and how their tracing features and console allow you to quickly debug your serverless applications. There are a lot of good tools out there for adding observability to your serverless applications, and at this point, you probably can’t go wrong choosing any of them.

Serverless Security 🔒

Protecting Your Serverless Solution
This article by Sat Gainda gives a pretty good overview of all the things to think about when it comes to securing your serverless application, along with some other things to think about (like cost). The section on serverless development was a bit confusing (modern approaches use IaC, not containers), but otherwise, some really great info in here.

Serverless Reads 🤓

Monitor & Debug Serverless with 30-Second Auto-Instrumentation
Complete observability over your serverless environment with no code changes required. With one-click distributed tracing, Lumigo lets you effortlessly find & fix issues in serverless and microservices environments. Get serverless-specific smart alerts before they impact performance or cost. Sign up for a free account and get up & running in minutes. Sponsored

Modeling business logic flows in serverless applications
I really enjoyed this piece by James Beswick that walks you through the evolution of a serverless application as business requirements change. My evolutions have never been quite as smooth and straightforward as the example James gives, but the point is well taken. Designing serverless applications in small, single-purpose, discrete actions, certainly does make iteration much easier.

Building Well-Architected Serverless Applications with Thundra (3-part series)
This three-part series is vendor specific to Thundra, but Emrah Samdam does an excellent job taking you through the Well-Architected Serverless Lens and addressing the questions that every developer should be asking when building a serverless app.

AWS Serverless: you might not need third party monitoring
This is a really interesting post by Rehan van der Merwe that highlights all of the powerful monitoring, logging, and tracing features provided by AWS for your serverless applications. Here’s the problem, the complexity of setting all of these components up (and getting everything configured correctly) is still a massive exercise in patience. For smaller projects, I will typically rely on the built-in AWS services, but for critical applications, third-party services give you what you need out-of-the-box, with minimal setup.

Grow, not build, your serverless team!
If Sheen Brisals can’t inspire you to go serverless, then no one can! In his latest post, he outlines a number of stages for growing a serverless team from with your organization, culminating in an agile and efficient culture with highly-accelerated development processes.

The exotic mixture of Enterprise and Serverless
This is an entertaining read by Pang Bian that juxtaposes the multiple layers of corporate bureaucracy with the novelty of serverless in the enterprise he works for. I’m still not sure how they seem to make it work, but good for them for trying.

For the serverless (non)commuter… 🚎

Episode #58: Observing Serverless Observability with Erica Windisch
In this episode, I chat with Erica Windisch about the challenges with monitoring and troubleshooting serverless applications, why observability is so important with serverless, what advancements have been made over the last year, and so much more. Watch on YouTube.

New from AWS 🆕

Announcing automatic backups for Amazon Elastic File System
It would be amazing if AWS would do more things like this. Under what circumstances would you not want your file system backed up? There might be a few, but things like this make more sense as an opt out.

New classroom course: AWS Cloud Financial Management for Builders
Interesting course from AWS that says it’ll teach how to design “cost-optimized” architectures. The syllabus seems quite solid, and just might give you some Corey Quinn level skills (without all the snark of course 😉).

Amazon CloudFront announces new TLS1.2 security policy for viewer connections
Improvements to the SSL/TLS protocols are always good to see.

Announcing CDK Pipelines Preview, continuous delivery for AWS CDK applications
Two things you need to know about this. One, CDK Pipelines are self-mutating, meaning they automatically update themselves when you add new applications or stages, and two, they seem pretty amazing.

Introducing Amazon Interactive Video Service (Amazon IVS)
I have no idea how good (or pricey) this is, but under the right circumstances, hosting your own live broadcasts does sound amazing. There are plenty of streaming platforms out there, but to be able to “own your audience” is an interesting value prop.

New Amazon Elastic File System console simplifies file system creation and management
Again, I like these moves by AWS to simplify the user experience. Not known for their console UX, seeing these strides gives me hope for the future.

Amazon SQS Now Supports New Console Experience
Not to keep harping on this, but these upgrades are very welcome. Now, granted, most of this stuff should be managed with IaC, but being able to poke around and easily look at configurations is a handy feature.

Introducing the Cloud Development Kit for Terraform (Preview)
cdktf lets you define application infrastructure with familiar programming languages, while leveraging the hundreds of providers and thousands of module definitions provided by Terraform and the Terraform community. Hey, if this is your thing, go for it.

Serverless Jobs 👩‍💻 Sponsored

Serverless Engineer – stedi.com
At Stedi, we’re working in one of the biggest markets on the planet – EDI, the technological backbone of the physical product economy. We’re building a next-generation platform: a ubiquitous commercial trading network to automate the trillions of dollars in B2B transactions exchanged by nearly every company on Earth. If you’re interested in what we’re building and how we’re building it, we’d love to hear from you.

Have a job listing you’d like to share? Please contact me for more information. 

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.

Featured Event
July 28th, 2020 – CloudZero presents How We Built a Serverless Machine Learning Pipeline for Under $7/Day with Adam Tankanow (Webinar)

July 22, 2020 – Serverless 201: Advanced Development and Monitoring with AWS, Stackery, and Lumigo

July 22, 2020 – Predicting and Managing Costs in Serverless Applications with AWS

July 27/28, 2020 – ServerlessDays Virtual

July 28, 2020 – Hosting Without Hoisting: NPM Flattening for Zero Cold Start Serverless (Online Meetup)

July 29, 2020 – Orchestrating Distributed Business Workflows with AWS Step Functions

July 30, 2020 – Building Intelligent Application Flows in the Cloud and On-premises with TriggerMesh (Webinar)

September 3, 2020 – ServerlessDays Warsaw

October 1-2, 2020 – ServerlessDays Hamburg 2019

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 Alex Wood (@alexwwood). Alex is currently a Senior Software Engineer at AWS developing open source serverless tools. Before that, Alex was the lead developer on the AWS Ruby SDK and is the author of the AWS Lambda Ruby runtime. He’s spoken about writing Lambda functions as idiomatic Ruby code and running them on AWS for the Ruby on Rails podcast, and also had a re:Invent 2019 session, speaking about AWS SAM and the AWS SAM CLI. Thank you, Alex, for your incredible work – and sharing it with others! 🙌

Final Thoughts 🤔

Another busy week for serverless, and it’s super exciting to see some additional serverless events starting to pop up.

And speaking of super exciting, next week the Off-by-none newsletter celebrates 100 issues! It seems a bit crazy to think about how many amazing serverless stories, use cases, tutorials, and more have been shared over the last two years. I’m planning something kinda big for next week, so I hope you’ll share this with your friends and coworkers so they don’t miss it!

I hope you enjoyed this newsletter. We’re always looking for ideas and feedback to make it better and more inclusive, so please feel free to reach out to me via Twitter, LinkedIn, Facebook, or email.

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

More serverless CDK Patterns for you to explore… 🕵️‍♀️

Welcome to Issue #98 of Off-by-none. I’m glad you could join us!

Last week, we announced a new way to explore serverless architectures, learned how to debug and load test serverless applications, and we finally got “connection pools” from Lambda. This week, we get more CDK patterns to explore, yet another reason to look at BigQuery, and some updated serverless best practices. Plus, we have plenty of great content from the serverless community.

Serverless News & Announcements 📣

Webinar: Would you like to connect applications like GitLab, Confluent, Zendesk, AWS services together?
You can, using TriggerMesh Bridges which allows you to build intelligent application flows using any service, running in the cloud or on-premises. Join us July 30 to see how easy TriggerMesh makes it connect application flows! Sponsored

Announcing the FaunaDB Data Manager
The FaunaDB Data Manager (FDM) can assist with a variety of import and export tasks, including copying documents, collections, indexes, functions, and roles from one FaunaDB database, at any particular point in time, to another FaunaDB database, plus a variety of useful data features. It’s still in preview mode, but looks like a useful tool for FaunaDB customers.

Google Cloud announces BigQuery Omni multicloud analytics solution
So this sounds way too good to be true, but if I can actually query my AWS data using BigQuery without worrying about data transfer costs or duplicating data, that’s pretty amazing. This could be a game changer.

Serverless Spotlight – Sign up to be a guest
I’m launching a new web series called Serverless Spotlight that will “Shine a light on the people who make serverless awesome!” The episodes are 5-10 minutes, and will feature people like you sharing what they are working on in serverless. Commercial, open source, blog post, whatever, we want to hear from you. Be sure to sign up to be a guest.

AWS Serverless Customer Success
Not convinced that serverless is ready for primetime? These customer success stories should help change your mind. AWS recently launched a “Serverless Customer Success” page that highlights a series of case studies that show the positive impact of serverless on companies ranging from startups to enterprises.

Serverless Stories 📖

How I Built a Serverless AWS Lambda Twitter Bot in NodeJS in a Single Day
Spencer Pollock walks through his journey building a Twitter Bot using AWS Lambda. It’s fun following someone’s thought process like this. I would use Parameter Store for my Twitter credentials instead of storing them in a file that’ll likely get checked into git, but for a quick and dirty first go, it’ll do.

The Cloud Resume Challenge, or How I Learned to Stop Worrying and Love the Cloud
Kudos again to Forrest Brazeal for starting the Cloud Resume Challenge. There are several people writing about their experiences, but I found this one from Antonio Lo Fiego to be incredibly enlightening. He doesn’t seem to agree that “… the latest version [of the] SAM CLI makes serverless development easier for developers.” His well-placed JT GIF perfectly encapsulates the way many people new to serverless feel.

How I built a zero cost serverless scraper
Anshaj Khare explains how he built a Twitter scraper using cloud native GCP tools. This post makes me wonder about the differences in the developer experience between GCP and other clouds.

Serverless Use Cases 🗺

Convert HTML to Markdown with a serverless function
Michael Vigor outlines a simple use case that I certainly wouldn’t want to set up and maintain a server for. I love little one-off services like these that are easy to build with FaaS, and enable developers to build things quickly without all the red tape.

A rock-paper-scissors app with gesture detection and voice
Who would have thought of serverless Rochambeau? The cloud advocates at Microsoft, that’s who. This uses a bunch of Azure native services (not 100% serverless), but still a pretty interesting application of the technologies.

How We Automatically Create And Delete Environments For Developers
Gavin Cornwell has written before about automation using Step Functions, but in this post he shows how his team creates an environment when feature branches are created, and then deletes the environment when the branch is removed.

Serverless Concepts 🏗

CDK Patterns at 20! Let’s Walk Through all 20 Serverless Patterns for AWS
Matt Coulter has done an amazing job on the CDK Patterns site and repository and has consolidated all 20 patterns into a comprehensive blog post. There are so many amazing ideas to explore with this, so make sure you check it out.

AWS Serverless Application Lens — A Summary
Amulya Rattan Bhatia attempts to summarize the Well-Architected Serverless Application Lens whitepaper. It’s a much shorter read and does a good job covering the most important points. If you don’t have time to read the whitepaper, this should at least get you headed in the right direction.

Are Lambda-to-Lambda calls really so bad?
This recent post by Yan Cui started a bit of a debate on Twitter regarding his recommendation to put an API Gateway in between inter-service, synchronous calls that ultimately map to a Lambda function. I’m personally a big fan of using synchronous Lambda-to-Lambda calls using the SDK (when appropriate) to reduce overhead and complexity, but Yan makes a lot of really good points why not to do this. Serverless best practices are constantly evolving, so you’d be wise to follow this debate.

Lambda Execution Leaks: A Practical Guide
Dori Aviram points out the problem when unresolved promises leak into your Node-based Lambda functions. This is probably more common than you think, and can be a massive pain to debug. This post outlines what can cause this issue and some ways to mitigate it.

Serverless Tutorials 👷‍♀️

Monitor & Debug Serverless with 30-Second Auto-Instrumentation
Complete observability over your serverless environment with no code changes required. With one-click distributed tracing, Lumigo lets you effortlessly find & fix issues in serverless and microservices environments. Get serverless-specific smart alerts before they impact performance or cost. Sign up for a free account and get up & running in minutes. Sponsored

The Serverless LAMP stack part 3: Replacing the web server
Benjamin Smith and Matthieu Napoli (the creator of Bref) show you how to build serverless PHP applications without needing a web server. Matthieu also explains how the implementation of FastCGI Process Manager inside of Lambda helps makes this possible.

Integrating Amazon EventBridge and Amazon ECS
Jakub Narloch shows you how the new EventBridge to API Gateway target enables new use cases. Even if ECS isn’t your thing, you can use this to route events to webhook consumers, map inter-service communication contracts, and even handle complex integration tests.

Get More Out Of Lambda Authorizers- Use Response Context
Adrin Mukherjee outlines a scenario that uses custom authorizers to pass additional context into your Lambda functions that can be used for calls to downstream services. It’s a powerful pattern, and with the integration into Secrets Manager, you can apply a lot of security best practices, including automatic credential rotation.

Creating low-latency, high-volume APIs with Provisioned Concurrency
Even though James Beswick craps on my Lambda Warmer project (😂 totally kidding, I don’t actually use it anymore), he does a great job explaining how Provisioned Concurrency can ensure predictable start-up times to latency-sensitive Lambda functions. And if your workload really needs this, a 75% reduction in your slowest execution times is a compelling reason to spend the extra money.

Explore Serverless On Alibaba Cloud With SLS Framework
Thinking about going serverless on the Alibaba cloud? The Serverless Framework has got you covered, and the Serverless Guru team has provided us with this straightforward tutorial to get you started.

Multipart uploads with S3 pre-signed URLs
Great tutorial by Shahar Yakov that walks you through the detailed steps of initiating a multipart upload to S3, generating pre-signed URLs for all the parts, and then stitching them all back together to complete the process.

Serverless Reads 🤓

Serverless: a backend thing that gives superpowers to frontend developers
Another fun post by Slobodan Stojanović that explains how serverless can give frontend developers the power to make their applications more interactive and highly scalable using modern techniques, rather than relying on traditional servers.

Why we didn’t choose QLDB for a healthcare app
Yan Cui has a great article that simply points out the pros and cons of Amazon’s Quantum Ledger Database, and explains why his client decided it wasn’t quite ready for their application.

How to pick the right Compute Savings Plan for Serverless Workloads on AWS
If you’re interested in saving some money on your AWS serverless workloads (and who doesn’t like saving money?), they check out this post by Michael Bahr that outlines how Compute Savings Plans work, and when they might be right for you.

How to design Serverless Apps like a Pro using *Interactive* Serverless Reference Architectures 🚀🔥
Farrah Campbell wrote up a piece on the Serverless Reference Architecture project (which she and Stackery were instrumental in getting off the ground). We’re working on more patterns and content, so stay tuned for more serverless!

For the commuter… 🚎

Episode #57: Building Serverless Applications using Webiny with Sven Al Hamad
In this episode, I chat with Sven Al Hamad about how Webiny makes building serverless applications easier, why everyone from small startups to large enterprises should be choosing serverless, whether or not Webiny could be a WordPress killer, and much more. Watch on YouTube

Good Morning Serverless with Tom McLaughlin
I had a blast chatting with Tom McLaughlin on his Good Morning Serverless Show last week. It airs every Thursday morning at 8:30 am ET, and he’s always looking for guests, so be sure to sign up.

DynamoDB with Alex DeBrie
Alex DeBrie seems to be the hardest working man in DynamoDB right now 😂, making the rounds on the podcast circuit. He has a great interview with Jeff Meyerson on the Software Engineering Daily podcast that you definitely should check out.

New from AWS 🆕

Announcing the New Version of the Well-Architected Framework
Not specific to serverless, but it’s great to see the Well-Architected Framework evolving based on customer feedback and experience. More on it here.

Amazon Comprehend launches real time Custom Entity Recognition
This is a great update that allows you to identify terms that are specific to your domain in real time. If you’ve ever worked with NLP, you’ll know how important this is.

Docker and AWS collaborate to help deploy applications to Amazon ECS on AWS Fargate
Great news for those still using containers for parts of your workload. You can now use Docker Desktop and Docker Compose to deploy containers on Amazon Elastic Container Service using the AWS Fargate launch type. No need for third-party tools anymore.

Amplify CLI adds support for Lambda layers to easily share code & assets across Lambda functions
Amplify CLI now makes it easy to use Lambda layers to share code & assets across various Lambda functions. Plus, you can add existing Lambda layers to your Lambda functions by referencing existing Lambda layer ARNs.

Amazon Athena adds support for managing data catalogs using AWS CloudFormation
No more using the console or APIs to register your data sources. You can now create, update and delete your data sources using the AWS CloudFormation AWS::Athena::DataCatalog resource.

Amazon DocumentDB (with MongoDB compatibility) adds support for cross-region snapshot copy
This is a nice feature for all you MongoDBers out there. You can now copy a snapshot to another region for the purpose of disaster recovery, security, or to populate a development/test environment.

Amazon Keyspaces now enables you to back up your table data continuously by using point-in-time-recovery (PITR)
And for all your Cassandra(ers), PITR provides you with continuous backups of your Amazon Keyspaces table data to help you protect against accidental writes or deletes. When enabled, it’ll back up your table data automatically with per-second granularity and then you can restore your table data to any second in time in the preceding 35 days. Crazy.

Serverless Jobs 👩‍💻 Sponsored

Serverless Engineer – stedi.com
At Stedi, we’re working in one of the biggest markets on the planet – EDI, the technological backbone of the physical product economy. We’re building a next-generation platform: a ubiquitous commercial trading network to automate the trillions of dollars in B2B transactions exchanged by nearly every company on Earth. If you’re interested in what we’re building and how we’re building it, we’d love to hear from you.

Have a job listing you’d like to share? Please contact me for more information. 

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.

July 22, 2020 – Serverless 201: Advanced Development and Monitoring with AWS, Stackery, and Lumigo

July 27/28, 2020 – ServerlessDays Virtual

July 30, 2020 – Building Intelligent Application Flows in the Cloud and On-premises with TriggerMesh (Webinar)

September 3, 2020 – ServerlessDays Warsaw

October 1-2, 2020 – ServerlessDays Hamburg 2019

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 Gal Zabib (@GalZabib). Gal is the co-founder and CEO of Altostra, an intuitive serverless development platform that helps developers build modern cloud applications. Altostra allows for quicker serverless adoption by automating development workflows, which is incredibly helpful for teams looking to hit the ground running. Gal’s background in software engineering and leading R&D certainly has given her great insight into the needs of teams looking to adopt serverless. Thank you, Gal, for making it easier for other teams to adopt serverless quickly and confidently! 🙌

Final Thoughts 🤔

Remember last week when I said it was getting harder and harder to narrow down all the amazing serverless posts? Well, it was even harder this week. If I didn’t include your post, please feel free to shoot me a DM and I’ll be happy to retweet it. The amount of serverless content and ideas being generated is incredible, which is a great sign for serverless adoption. Keep the posts coming, and I’ll keep working to find additional ways to amplify them.

I hope you enjoyed this newsletter. We’re always looking for ideas and feedback to make it better and more inclusive, so please feel free to reach out to me via Twitter, LinkedIn, Facebook, or email.

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