HTTP APIs for the rest of us… 🚀
Welcome to Issue #81 of Off-by-none. Thanks for joining us!
Last week, the Serverless Framework added Lambda Destination support, we saw some massive investment in serverless, and we introduced Yan Cui’s new serverless podcast. This week, we’re all about lightweight HTTP proxies to Lambda functions. Plus we’ve got some amazing posts from the serverless community.
Also, PLEASE don’t forget to take the Serverless Community Survey and share it with all your coworkers, family, and friends! The data from this is super important and will help the community make serverless better!
When you just need a simple HTTP proxy to your Lambda function… 👩💻
This past week, AWS announced that HTTP APIs have become GA, which is pretty darn cool. For web-facing serverless applications, API Gateway was likely the main entry point, which forced developers to use a fairly complex (and sort of expensive) tool to solve a simple problem. With the release of HTTP APIs, HTTP proxying to Lambda functions is not only super simple, but also 71% cheaper and 60% faster. Plus there’s a ton of other really great features and some exciting things on the roadmap.
If you want to learn more, check out:
- Building faster, lower cost, better APIs – HTTP APIs now generally available by Eric Johnson
- The Ultimate Guide to AWS HTTP APIs by Fernando Medina Corey
- HTTP API goes GA today! by Yan Cui
And if you want to hear from one of the Senior Project Managers on the API Gateway team, have a listen to this week’s episode of Serverless Chats featuring Eric Johnson and Alan Tan.
Serverless News & Announcements 📣
End-to-End Observability for Serverless
Instantly monitor and troubleshoot Lambda functions to get the full picture of what they’re doing and why they fail. Agentless and automated, Epsagon delivers full visibility for containers, VMs, FaaS, and more with no training, manual coding, tagging or maintenance required. Try free today!
Lightbend Secures $25 Million In Funding Led By Dell
Lightbend is the company that launched the CloudState spec initiative a while back that proposed adding state to serverless. It looks like whatever they are doing is getting attention from investors.
Tencent Cloud FaaS capability was evaluated as a “strong performer”
I know this is just a press release, but I think we should all keep our eyes on Tencent Cloud. I know that the Serverless Framework is working closely with them, and they appear to be bulking up their serverless offerings.
Next Phase Montage
Not really serverless news, but NPM is being acquired by GitHub (aka Microsoft). I think this will add more stability and security to NPM, which is a good thing, but the fact that Microsoft is buying another part of the backbone of the open source ecosystem seems a bit concerning. I should probably take off my tinfoil hat.
Stackery Announces Support for AWS HTTP APIs service
Stackery users can now implement the new HTTP APIs in their projects. And if it works for your API use case, you should definitely do this.
Serverless Stories 📖
How Serverless Saved Us For $2.
This is one of those serverless stories that should be sent to every naysayer out there. Generating 2,000 PDFs with a dedicated server takes up to 11 hours. With Lambda functions and SQS, it takes 2 minutes and costs $1.63.
Serverless CI/CD: How we added a staging step
I’ve never met the same serverless CI/CD process twice, and this one from the dev team at Lumigo is no exception. It’s always interesting to see how teams set these things up, so take a peek if you’re looking for some ideas.
How I Built a Serverless Geo-Search App with DynamoDB
Allen Helton recounts some of the bumps along the road when creating a completely serverless geo-search app. Some interesting notes in there about the constraints of third-party packages and the gotcha many people find when trying to update values in a DynamoDB table’s primary index.
Serverless Use Cases 🗺
Comparing Two Ways to Trigger Lambda from S3
Eoin Shanaghy compares S3 notifications versus EventBridge with CloudTrail to trigger a downstream Lambda function. While he notes the latency is higher with EventBridge, the decoupling is definitely a benefit.
Using AWS Sagemaker and Lambda function to Build a Serverless ML Platform
Machines learning use cases with Lambda can be tricky, but throwing SageMaker in there can open up a whole new set of possibilities. This is a really great post that shows how to leverage serverless tools with SageMaker to build a really cool prediction algorithm.
🤖 Price Tracking with Telegram Bot
Periodically checking something and pushing data to a bot seems like a pretty good serverless use case to me. Leon Wee provides a full blown tutorial in here, so if you wanted to implement something like this for yourself, feel free to give it a try.
Can you use Serverless for Artificial Intelligence today?
Rodolphe Cambier runs through two different types of AI use cases and examines whether or not they are a good fit for Lambda functions. I think we’ve been clear that many machine learning use cases are hindered by some of Lambda’s limitations, but I have a feeling that’s going to change at some point in the not so distant future.
Serverless Concepts 🏗
How to model one-to-many relationships in DynamoDB
Another awesome post by Alex DeBrie on DynamoDB modeling. There are so many amazing things that can be done with NoSQL if the data is modeled correctly, and Alex gives you a very thorough lesson on a very useful pattern.
Designing Serverless APIs with AWS
This is a good overview by Udith Gunaratna of the different ways to build APIs using API Gateway and Lambda functions. It outlines some pros and cons to single purpose versus fat Lambdas, along with a discussion on the different types of integrations. Of course, HTTP APIs is likely going to change you approach to this.
Best Practices for Serverless Observability
Whenever the subject of observability comes up, Ran Ribenzaft’s always a great resource to turn to. This post will give you a great overview of what observability is, and how you should be applying it to your serverless applications.
DynamoDB Crash Course — Intro and Secondary Indexes
If you’re looking for a more general overview of DynamoDB, take a look at this article by Stephen Lizcano. I’m loving the recent influx of articles and videos on DynamoDB. We have an entire generation of developers that need to start looking at NoSQL very seriously.
Serverless Tutorials 👷♀️
Debug AWS Lambda functions with Thundra Online Debugging
The new Thundra Online Debugger is pretty sweet, so at the very least, you should give this thing a try. Ryan Jones walks you through the whole process from setting up your Thundra account, to installing the VS code plugin, to debugging your first Lambda function.
How to access cloud resource configuration from your local tests
This is a common task that many people end up banging their head against the wall trying to solve. Paul Swail teaches you his preferred method using the
serverless-export-env plugin for the Serverless Framework.
How to Build A Serverless Telegram Bot with AWS Lambda
It seems Telegram Bot is popular this week. This post shows you how to implement a Lambda function to respond to bot requests.
Mastering the AWS SAM CLI
There are lots of framework options out there for deploying serverless applications, but if you’re doing straight AWS, it’s hard to go wrong with SAM. Serkan Özal gives you a detailed overview of all the commands you need to know to be publishing serverless apps in no time.
Testing serverless apps with Mocha on Begin
I’m a big fan of Test-Driven Development (though I’m not always a strict practitioner), but any time I see workflows encourage and fully integrate testing, it’s worth sharing. Paul Chin Jr. shows you how this works with Begin using either Mocha or Jest.
Conditionally deploy Serverless services only when modified in a mono Git repository
I’ve included this because I think it’s a creative approach to this common problem. I really like splitting out my services into separate repos, but this has bitten me more that a few times. There are more options now for serverless monorepo deployments, but it never hurts to open up the hood and see how this stuff works.
Serverless Reads 🤓
Natively Debug AWS Lambda on your IDE!
Thundra allows you to natively debug your serverless applications on the cloud with their own permissions. Thundra’s online-debugger sets up a secure bridge between your AWS Lambda environment and your IDE. VSCode and IntelliJ IDEA are natively supported with plugins. For other IDEs, Thundra provides a portable client to foster the integration with any IDEs. Start debugging Node.js, Python and Java functions for free today!
Why Organizations Are Adopting or Avoiding Serverless
Roger Magoulas has another wrap up article about the O’Reilly survey on serverless architecture adoption. Some interesting takeaways in here, especially the fact that “security concerns” was the top reason why organizations were avoiding serverless. Also, still seeing “vendor lock-in” way up on the list of challenges.
Edge Computing: Cloudflare’s Current Expansion Is Different
I know I’ve said this before, but if you’re wondering what comes after serverless, edge computing is probably it. Cloudflare’s strategy on this is really interesting, and while there is some competition, they’re certainly positioning themselves well to be the pioneers on this.
Will Virtual Machines Fade Out for Containers and Serverless?
I thought this was a good piece by Joao-Pierre S. Ruth that highlights the importance of choosing the right technology for the right job. There’s no doubt that lifting and shifting to VMs is easier than containerizing your applications, and that taking the next step to serverless will require a complete refactor. So while new applications will obviously benefit from modern technologies, there are still plenty of reasons why we’ll be seeing VMs for quite some time.
InfiniCache: Distributed Cache on Top of AWS Lambda (paper review)
Mikhail Shilkov did an excellent job reviewing “InfiniCache: Exploiting Ephemeral Serverless Functions to Build a Cost-Effective Memory Cache”, a paper by Ao Wang et al. It’s always interesting to see what kinds of crazy ideas people come up with, and sometimes it things like this that can push providers to make their better products.
For the audio/visual crowd… 📽
Serverless Chats – Episode #40: HTTP APIs for API Gateway with Eric Johnson and Alan Tan
In this episode, I chat with Eric Johnson and Alan Tan about why HTTP APIs should be your first choice, the path to REST API feature parity, how private integrations work, implementing CORS and authentication more easily, and so much more.
Using Environment Variables to Deploy to Different Environments with AWS CodePipeline
Marcia Villalba shows you how to configure your SAM templates to create dynamic resource mappings when deploying your serverless applications using AWS CodePipeline.
Real World Serverless #2: The case for monorepoes with Joe Emison
Part 1 of Yan Cui’s conversation with Joe Emison, who has been building serverless applications since 2015 with Firebase on GCP and then later with AWS Lambda. They discuss the value of serverless, especially to startups, and why he has built Branch Insurance to be fully serverless.
Serverless Lunch Chats with James: EventBridge resources
James Beswick, Senior Developer Advocate for Serverless at AWS, did a Twitter Live chat the other day and discussed EventBridge. He posted some additional materials as well that will help you start building better event-driven applications.
New from AWS 🆕
Amazon Athena now publishes CloudWatch Events for Athena query state transitions
This is an awesome new feature that can open up a ton of new data processing pipelines. Using these new events, you can create a rule that invokes an AWS Lambda function to post-process the query results when a query has reached the Successful terminal state. Very cool stuff.
Amazon ElastiCache for Redis announces Global Datastore
So, not really serverless, but Redis has become the go-to for many serverless apps that need reliable and fast caching. This new feature lets you replicate your cache to two different AWS regions, which could dramatically reduce latency for many applications that are still pulling data from a single region. More details here.
Amazon Athena adds support for managing Athena Workgroups using AWS CloudFormation
Athena has become an essential part of my serverless data infrastructure, so more repeatable CloudFormation configurations are always welcome.
Amazon Elasticsearch Service announces support for Elasticsearch versions 7.4
Still not serverless, but like ElastiCache, Elasticsearch is another necessity in many “mostly” serverless applications. This new update adds support for the distance_feature query, some new range aggregations, plus a few updates to Kibana.
New AWS Certification validates expertise in AWS databases
For those of you striving to become an AWS purpose-built database master, you can now attain blackbelt status with this new certification.
Amazon S3 adds tagging support for S3 Batch Operations jobs
S3 Batch is pretty amazing, but it can also be a bit dangerous if anyone in your organization can trigger a job. With this new update, you can use tags to restrict access to specific jobs using IAM.
You now can update your Amazon DynamoDB global tables from version 2017.11.29 to the latest version with a few clicks in the DynamoDB Console
If you are running old DynamoDB global table versions, you should consider doing this. It’s free, requires no table rebuilds, and will allow you to take advantage of the more modern replication features, higher availability, and access to additional regions.
Amazon Redshift introduces support for materialized views (Generally Available)
Also not serverless, but this is a really cool feature. Lots of us have data in Redshift, even if it’s replicated from something like DynamoDB for analytics purposes. These new materialized views can help speed up query performance by pre-computing some of the more predictable workloads.
Serverless Tools 🛠
10 Essential Serverless Framework Plugins
The rich ecosystems of plugins is just another reason why the Serverless Framework is so powerful. Itay Herskovits calls out ten that are super useful in the serverless developer’s toolbox.
Testing DynamoDB offline with Serverless Framework
Michael Timbs shows you how to implement testing using the
serverless-dynamodb-local plugin. I’ve gone back and forth on the value of trying to replicate DynamoDB locally, and I tend to favor using a real cloud environment instead. However, if you have a reason for doing it this way, this post will point you in the right direction.
Debugging Event Sources for AWS Lambda
New Relic has always been a solid tool for monitoring applications, and since the team from IO Pipe joined them, the new features being churned out for serverless are quite amazing. Adam Johnson walks you through their event sources feature for Node.js and Python that lets you see which service invoked your Lambda function.
Kumologica: First low-code development tool for AWS Lambda
I don’t know anything about this company, but I came across this blog post and thought it looked like an interesting tool. I need to give it a more thorough look.
Upcoming Serverless Events 🗓
There are a lot of upcoming serverless events, webinars, livestreams, and more. If you have an event you’d like me to mention, please email me.
March 13-April 10, 2020 – Getting Started with Amazon DynamoDB (Virtual Workshops)
March 19, 2020 – ServerlessDays Zürich (Rescheduled to September 24th) March 24, 2020 – ServerlessDays Helsinki (Postponed – new date pending) March 27, 2020 – ServerlessDays Hamburg (Rescheduled to October 2nd) April 6, 2020 – ServerlessDays Boston (Postponed – new date pending)
April 20, 2020 – ServerlessDays Auckland
April 23, 2020 – ServerlessDays Vienna (Rescheduled to September 24th) April 24, 2020 – ServerlessDays Paris (Canceled)
Serverless Star of the Week ⭐️
There is a very long list of people that are doing #ServerlessGood and contributing to the Serverless community. These people deserve recognition for their efforts. So each week, I will mention someone whose recent contribution really stood out to me. I love meeting new people, so if you know someone who deserves recognition, please let me know.
This week’s star is Aviad Mor (@AviadMor). Aviad is the CTO and Co-Founder at Lumigo, a serverless intelligence platform. Aviad’s work extends beyond working on serverless tools that help in troubleshooting serverless applications though. He’s also spoken at ServerlessDays events, chatted with the Devops Chat podcast, and has a few blog posts on serverless that have appeared on the Lumigo blog and on The New Stack. Thank you, Aviad, for helping developers build more reliable serverless applications! 🙌
Final Thoughts 🤔
It’s been a bit of a strange week as the world adjusts to this new normal caused by COVID-19. I’m hoping that all this self-quarantining will lead to inspiration and we’ll see a bunch of really great serverless content and projects come from all this extra free time that people have. Maybe it’s time for you to write your first blog post? 😉
However you decide to spend your time, please stay safe, take care of your loved ones, follow the advice of your local officials, and support health care workers and neighbors in whatever ways you can. We can do this.
I hope you enjoyed this issue of Off-by-none. Please send me your feedback and suggestions as they help to make this newsletter better each week. You can reach me via Twitter, LinkedIn, Facebook, or email and let me know your thoughts, criticisms, or (perhaps) even how you’d like to contribute to Off-by-none.
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.