A Treasure Trove of Serverless Patterns… 🙌
Welcome to Issue #83 of Off-by-none. Thanks for being here!
Last week, we had new virtual conferences, a re:Invent 2020 wishlist, and several serverless podcasts. This week, we’ve got a comprehensive collection of serverless patterns, a new survey on technical debt, and a bunch of amazing posts from the serverless community.
Serverless News & Announcements 📣
Natively Debug AWS Lambda on your IDE!
Thundra allows you to natively debug your serverless applications on the cloud with their own permissions. Thundra’s online-debugger sets up a secure bridge between your AWS Lambda environment and your IDE. VSCode and IntelliJ IDEA are natively supported with plugins. For other IDEs, Thundra provides a portable client to foster the integration with any IDEs. Start debugging Node.js, Python and Java functions for free today!
Announcing Troubleshooting Monolambdas with Express.js and Flask
So this is pretty cool. While I don’t like to encourage monolithic Lambda functions (or Lambdaliths), they are still quite prevalent and create an easy path for initial serverless adoption. So whether you’re using ExpressJS, Flask, or even my open source project Lambda API, the Serverless Framework Pro now supports monitoring route level statistics using these frameworks.
Prisma Cloud Native Security Platform Embeds Security into DevOps Lifecycle
The new release of the Prisma Cloud Native Security Platform from Palo Alto now has one click instrumentation of Lambda functions. This is all built off of the technology developed by our good friends from Puresec, so you know it’s going to be good.
S3 is the greatest cloud service of all time
If you missed March Madness this year, but love using the cloud, then perhaps you were part of the A Cloud Guru voting for #CloudMadness. S3 was the winner, and Forrest Brazeal tells you why.
The Read Aloud Cloud: An Innocent’s Guide to the Tech Inside – Available for Pre-order
Speaking of Forrest Brazeal, his first book is now available for pre-order! I love reading Forrest’s FaaS and Furious cartoons, and I’m really looking forward to seeing what he’s created with this.
SURVEY: Serverless – Testing and Technical Debt
A few academics are running a survey to investigate technical debt in serverless functions. The goal is to understand how FaaS is tested and which technical factors can influence technical debt.
Informatica brings serverless compute to Data Integration Cloud
If you can get through ZDNet’s mountain of ads, you might gain some insight into Informatica’s new serverless compute offering. Might be a bit hard to read between the lines, but you’ll see a lot more of this in the future, where platforms like Informatica are giving customers serverless functions to process data within their systems.
Serverless Stories 📖
Why I didn’t choose serverless framework?
Mandar Nilange decided to write his own deployment scripts utilizing the AWS CLI and Bash scripts, which he says gives him more control and flexibility. IMO, this is a very bad idea. As developers, we often get the urge to build solutions ourselves (I get it, I’ve been there, and still am sometimes), but building custom tools to deploy your services adds zero customer value and creates brittle deployment systems that require ongoing maintenance.
Think twice before you use Durable Functions
Tejash Shrestha had some issues scaling Durable Functions, and he writes about it in this post. I’m curious how much of this was an underlying issue with Durable Functions versus an implementation problem. Either way, cloud providers should take feedback like this very seriously.
Serverless Continuous Integration in the era of parallelism
Great post by Saar Tochner that discusses how Lumigo tweaked their serverless deployment system to achieve faster test results without compromising their testing suite.
Serverless Use Cases 🗺
The smallest way to introduce serverless into a brownfield application
Paul Swail points out one of the best serverless use cases out there, especially if you already have a brownfield application that likely won’t be easy to migrate to serverless.
Moving Laravel Artisan Commands To AWS Lambda
This use case by Mahfuzul Alam is a perfect example of offloading peripheral jobs to serverless.
Serverless Concepts 🏗
Wow, wow, wow! Davide Taibi, Nabil El Ioini, Claus Pahl, and Jan Raphael Schmid Niederkofler wrote a research paper on Serverless Patterns and it is amazing. Lot of really cool patterns in here (including some of mine) for you to apply to your own serverless architectures.
The Official Guide to AWS HTTP APIs
Fernando Medina Corey put together an extensive guide to using the new AWS HTTP APIs. Lots of detail in here about use cases, drawbacks, pricing, and how they work with the Serverless Framework.
Serverless: Tweaking the Lambdas
Anuradha Wickramarachchi offers a few suggestions for optimizing your Lambda functions. There is some good information in here about Node.js concurrency, and a simple trick to minimize simultaneous asynchronous calls in the event loop.
AWS Serverless Series Part 1 : DynamoDB Distilled
In depth post by Dattatray Kulkarni that outlines the details of DynamoDB. He points out several limitations, but many are mostly limitations of NoSQL databases in general. Pagination is still my number one pet peeve, so 100% agree with him on that.
How to Migrate Your REST API to the New HTTP API in AWS
If you’ve yet to give AWS HTTP APIs a look, this article from Allen Helton will give you some details on what you’d need to do to migrate.
What is the ideal retention period for application logs?
Renato Byrro has a few suggestions to answer this question.
Serverless Tutorials 👷♀️
New How-To Videos from AWS: Amazon EventBridge Learning Path
Seven demo videos, 60 minutes, and a lot to learn about event-driven architectures. This highly visual learning path guides you through getting started with EventBridge, integrating with SaaS partners, and using advanced features like Schema Registry. It also provides additional resources to dive deep into EventBridge features and learn more about event-driven architectures.
Verifying self-signed JWT Tokens with AWS HTTP APIs
Since AWS HTTP APIs are all the rage, I decided to do a bit of poking around myself to see if I could migrate some existing projects. Turns out that the limited authentication methods were my biggest roadblock. But after some research, I was able to set up a way to easily verify self-signed JSON Web Tokens. In this post, I’ll show you how.
How to build a Serverless API in AWS without using a single lambda
It’s not right for everything, but bypassing Lambda altogether is certainly a possibility for certain workloads. In this post, Andres Moreno shows you how to do just that.
Finding the nearest locations around you using AWS Amplify
Gerard Sans has an awesome tutorial that will teach you how to enable GraphQL distance-aware searches using the @searchable GraphQL transform along with AWS Amplify.
Realize asynchronous Slack slash command with AWS serverless
Great tutorial by Chen-Che Huang that shows you how to use the AWS CDK to deploy a Slackbot that can help manage deployments in your AWS environment. Plenty of other use cases for this as well.
Decorated Lambda handlers
This post by Tom Vincent shows you how to take a lot of the repetitive boilerplate that’s added to Lambda functions and wrap them up in a simple, reusable decorator. This would be a great use case for Lambda Layers.
Serverless Security 🔒
Apple Turns the Anti-Ad Thumbscrews With Safari Cookie Blocking
Not entirely serverless here, but important information (and insight) into the state of privacy on the web and how it will affect lots of developers. I’ve always been a privacy advocate, but killing offline PWAs by reseting local storage every seven days seems like using a chainsaw versus a scalpel.
A quick summary of some DDoS defense tactics using AWS services and infrastructure.
Serverless Reads 🤓
This is an amazing post by Adrian Hornsby (set aside at least 30 minutes to read and absorb it) that discusses the benefits of (or more realistically, the need for) immutable infrastructures in the cloud. Whether you’re developing serverless applications or traditional ones, applying this mindset could save you a lot of headaches in the future.
How your org predicts your CI/CD pipeline
I think Forrest Brazeal wins this month’s “prolificness” award. He has another excellent piece that outlines some common CI/CD patterns and explains how they map back to your engineering organization’s (likely broken and messy) structure.
Should development firms support multiple clouds for their serverless client projects?
Paul Swail has some thoughts on multi-cloud serverless deployments and why he thinks it’s a bad idea.
13 Top Serverless Solutions for 2020
This post by Ashan Fernando gives a serverless solution for a number of different categories and then some alternatives for each. There’s a plug in here for something that I wouldn’t really consider “serverless”, so feel free to play the “one of these things is not like the other” game.
Knative Crowds out Other Serverless Software Packages (and Other CNCF Survey Takeaways)
Lawrence Hecht does an awesome job digging into the number of the CNCF survey and offers up some additional insights (especially into the effect Knative is having on other installable serverless solutions).
Serverless Videos and Podcasts… 🎥
Episode #42: Better Serverless Microservices using Domain Driven Design with Susanne Kaiser
In this episode, I chat with Susanne Kaiser about the problems with poor software design, how Wardley Maps can help you focus on your core business domains, what are the patterns and practices of Domain Driven Design, and how they can help you build better serverless backends. Don’t forget that you can watch it on YouTube!
Streaming realtime data using Kinesis Firehose
In this video, Marcia Villalba teaches you about AWS Kinesis Firehose, and then builds a demo that sends streaming data to it.
Happy Little APIs, Season 2: Episode 1
A new season of Happy Little APIs with Eric Johnson. This episode features Ran Ribenzaft from Epsagon talking about Private Integrations with HTTP APIs. Catch new episodes every other Tuesday through May 31, 10 AM PDT.
New from AWS 🆕
Amazon Kinesis Data Streams now supports scaling up to 10,000 MB/s throughput with a single API call
Starting today, you can use the UpdateShardCount API in Amazon Kinesis Data Streams to scale up to 10,000 shards for a single data stream. That is a lot of data.
AWS Global Accelerator launches TCP Termination at the Edge
This is a very cool feature if you have really low latency requirements. By creating TCP connections in parallel, the total connection time is reduced, increasing performance for workloads such as API calls, file uploads, or Voice over IP calls.
Amazon DocumentDB (with MongoDB compatibility) Adds Support for Role-Based Access Control
Amazon DocumentDB added support for Role-based Access Control (RBAC). RBAC gives you the ability to create users and attach built-in roles to restrict what operations the user has authorization to perform.
Amazon Managed Cassandra Service now helps you automate the creation and management of resources by using AWS CloudFormation
You can now create and manage settings for resources in MCS based on CloudFormation templates. The templates enable you to specify the name of keyspaces and tables as well as the schema, read/write mode, and provisioned throughput settings for tables.
Serverless Tools 🛠
Supercharge Development, Delivery and Management of Serverless Applications
Stackery empowers enterprise development teams to deliver Well-Architected serverless applications quickly, securely, and at scale— without the overhead of complex infrastructure and operations management. Accelerate overall development and secure delivery of serverless applications by up to 60x – so your team can focus on perfecting core business logic.
Serverless Ecommerce Platform: a sample implementation of a serverless backend for an e-commerce website
Nicolas Moutschen put together an incredible resource for devs and architects that want to learn how to build and connect serverless microservices. You can deploy this sample, or simply use it as a roadmap to architect your own solution.
Creating Serverless Application effortlessly with LaconiaJS
Haven’t played around with this, but it looks like a pretty solid library.
s0enke/cloudformation-templates: A collection of common tasks automated with CloudFormation
Soenke Ruempler just added two new CloudFormation templates that easily let you send AWS events to a Slack channel using AWS Chatbot. One sends health events, and the other sends CodePipeline events.
What’s new on sls-dev-tools ?
Lots of new features have been added to sls-dev-tools, including expanded AWS authentication support, EventBridge monitoring, and a keyboard shortcut to open the AWS Console for a function.
Upcoming Serverless Events 🗓
There are a lot of upcoming serverless events, webinars, livestreams, and more. If you have an event you’d like me to mention, please email me.
March 13-April 10, 2020 – Getting Started with Amazon DynamoDB (Virtual Workshops)
April 2-May 31, 2020 – Sessions with SAM: Live Twitch sessions by Eric Johnson (every Thursday at 10AM PDT)
April 6, 2020 – ServerlessDays Boston (Postponed – new date pending)
April 7, 2020 – Chaos Engineering: What is it and Why do you need it! (panel discussion)
April 22, 2020 – From Monolithic to Modern: MasterStream’s Serverless Transformation with Stackery (webinar)
April 20, 2020 – ServerlessDays Auckland (Postponed – new date pending)
April 21, 2020 – Failover CONF: A virtual event on reliability 🗣
April 23, 2020 – ServerlessDays Vienna (Rescheduled to September 24th) April 24, 2020 – ServerlessDays Paris (Canceled)
April 29, 2020 – ServerlessDays Virtual
Serverless Star of the Week ⭐️
There is a very long list of people that are doing #ServerlessGood and contributing to the Serverless community. These people deserve recognition for their efforts. So each week, I will mention someone whose recent contribution really stood out to me. I love meeting new people, so if you know someone who deserves recognition, please let me know.
This week’s star is John Demian (@JohnDemian). John is a Software Engineer-turned-Marketer who very recently joined the team at Sematex, an organization building innovative cloud and on premise solutions. Prior to Sematex, John was a Developer Advocate at Dashbird, and a self-proclaimed part of the “serverless revolution.” John’s written many blog posts about serverless, and you can always count on him to share a tweet from discourse within the community. Thanks John for being an active part of the serverless dialogue! 🙌
Final Thoughts 🤔
These weeks in self-quarantine seem to be flying by, but at least the serverless content engine seems to be firing on all cylinders, so that’s good. Anyway, as we all continue to practice social distancing (which seems like it could last for quite some time), I hope you’re finding time to connect with new people online, learn new skills, and spend time with your loved ones. Crazy times we’re living in, but hopefully we can all use this time wisely.
I hope you enjoyed this issue of Off-by-none. Please send me your feedback and suggestions as they help to make this newsletter better each week. You can reach me via Twitter, LinkedIn, Facebook, or email and let me know your thoughts, criticisms, or (perhaps) even how you’d like to contribute to Off-by-none.
Stay safe out there,
P.S. If you like this newsletter, and think others would too, please do me the honor of sharing it with friends and coworkers who are interested in serverless.
Share this newsletter with your friends and coworkers!
Off-by-none is a weekly email newsletter that focuses on the technical details of building applications and products in the cloud using serverless technology. Together we can become better developers and product people by making fewer mistakes as we learn from each other. Off-by-none is the idea that we can become exceptional at what we do, if we are willing to put in the work. Join me on this journey as we help the community work to develop best practices, share our ideas, and learn to build better cloud-based software.
I respect your privacy and I will NEVER sell, rent or share your email address.