Serverless Reference Architectures for the Rest of Us… 👩🏫
Welcome to Issue #97 of Off-by-none. Thanks for joining us this week!
Last week, we learned how serverless applications can be truly vendor neutral and how EFS is finally makes serverless ML a reality. This week, we announce a new way to explore serverless architectures, learn how to debug and load test serverless applications, and we finally get “connection pools” from Lambda. Plus, we have lots of awesome content from the serverless community.
Serverless News & Announcements 📣
Webinar: Building Intelligent Application Flows in the Cloud and On-premises with TriggerMesh
Join us July 30 as we build some example Bridges. One will perform sentiment analysis on ZenDesk tickets using AWS, another will execute an Oracle Cloud function in response to a change in an on-premises OracleDB. See you there!
Announcing the Serverless Reference Architectures Project
Shameless plug here for the new Serverless Reference Architectures Project that I just launched. I have been sharing and discussing serverless microservice patterns for years, and finding a better, more interactive way to share them has been a goal of mine for quite some time. This is just the first step, but I hope people find it useful and will contribute their own patterns and examples to help others.
Fauna Raises $27 Million to Continue Providing Cutting Edge Solutions for Developers
I love seeing companies in the serverless space raising money. It’s inevitable, serverless will (someday) take over the world. Will Fauna be the global datastore of choice when that happens?
Vendia raises $5.1M for its multi-cloud serverless platform
No surprises here. Tim Wagner, and the former head of blockchain at AWS, Shruthi Rao, are the ultimate serverless dream team. This is another company/space to pay attention to.
Dfinity demo’s its TikTok clone, opens up its ‘Internet Computer’ to outside developers
Speaking of blockchain, what do you get when you cross serverless with blockchain, and then mix in some WebAssembly? Apparently an “Internet Computer” that can run distributed applications without servers, databases, or firewalls.
Production-Ready Serverless is back (with improved curriculum)!
Yan Cui’s course was groundbreaking when it first launched, now it has the benefit of feedback and iteration on its side. Not only that, but he’s offering it in a much more interactive way. This is probably the best serverless training resource out there.
Gartner Names Lumigo a Cool Vendor in Performance Analysis for Cloud-Native Architectures
When you’re working hard behind the scenes to try and build something amazing, getting positive feedback like this is important. And for the record, Lumigo has been in my “Cool Vendor” column for quite some time. 😉
Epsagon Achieves Privacy Shield Framework Certification
Certifications like this are a sign of maturity, so congrats to Epsagon for doing the work to not only bring you an awesome product, but also to bring it up to the highest standards of security and privacy.
Serverless Stories 📖
Serverless Web Apps in Python
A good collection of tips and tricks based on what Sanjay Siddhanti learned while using Zappa to build serverless applications.
Serverless-Side Rendering With Lambda at Edge
Great use case and example explained by Joe Duran that uses Lambda@Edge to render static pages for their application. Interesting note in there about solving the problem of competitors scraping their public API. SPAs can be great for many reasons, but making data easily accessible via an API, might not be the best strategic choice.
Serverless Use Cases 🗺
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.
Serverless BERT with HuggingFace and AWS Lambda
Awesome post by Philipp Schmid that shows you how to build a serverless question-answering API with BERT and HuggingFace. These ML use cases for serverless are great.
Create a COVID-19 dashboard with Angular 9+Serverless+AWS Lambda
Angular would not be my first choice, but to each their own. This post shows how to create a server-side rendered backend that loads a datasource and generates graphs using AWS Lambda.
Send Emails Serverlessly With Node.js, Lambda, and AWS SES
Another serverless use case that is becoming a standard go-to solution. Angad Singh shows you how to set up and test this in a sandbox environment. This post just scratches the surface of what’s possible.
Serverless Concepts 🏗
How to Debug AWS Lambda Performance Issues
Latency can have a huge impact on the business metrics of your applications, so making sure you are achieving an acceptable level of performance is hugely important. Yan Cui has another excellent post that dives deep into how to debug these issues and optimize your use cases.
Protect your RDS MySQL DB from AWS Lambda Scalability
Matt Coulter has added a new pattern to his CDK Patterns site that implements the new RDS Proxy service. The code is available in Python and Typescript. Good stuff.
Deletion Policy To Keep Serverless Stack Safe
Simple, yet powerful reminder by Rajesh Kankran to set deletion policies for production AWS services so that you don’t accidentally lose data. It’s okay to admit that it happened to you.
Challenges of Going Serverless (2020 edition)
This is a good overview by Mariliis Retter that outlines some of the common challenges of developing serverless applications. I totally agree that serverless has many challenges and causes for confusion due to the unknowns. But it’s still totally worth it.
Disaster Recovery strategies using AWS Serverless Services
This is a good read by Harshavardhan Ghorpade that explains the importance of Disaster Recovery and how serverless helps us achieve that at a much lower cost that traditional serverfull environments.
Serverless Tutorials 👷♀️
Build serverless apps that seamlessly connect to MySQL & PostgreSQL databases
Amazon RDS Proxy is a fully managed, highly available database proxy that allows applications to pool and share database connections, improving database efficiency, application scalability, and security. Previously launched in Preview at AWS re:Invent in 2019, RDS Proxy is now generally available and can be enabled for MySQL and PostgreSQL workloads through both the Amazon RDS and AWS Lambda consoles.
Load testing a web application’s serverless backend
It’s all fine and good to say that serverless can easily scale, but do you know if your architecture actually can? This is why load testing is so important to confirm your system’s scalability before you realize it during a Black Friday sale. James Beswick has another excellent post that walks you through setting up the tools and running the experiments to make sure you serverless system will handle anything you throw at it.
It’s simple with AWS: A step by step serverless fan-out architecture guide
Rafael Rodriguez has a great tutorial that shows you how to implement the fan-out pattern using AWS serverless services. He’s using an SNS topic in this example, but EventBridge could also be another effective way to implement it.
Handling webhooks with EventBridge, SAM and SAR
Slobodan Stojanović explains the evolution of webhook implementations at Vacation Tracker and then shows you how to create a SAR app that publishes incoming message to an EventBridge event bus for further processing.
Deploying Serverless Golang APIs With The AWS CDK
Go is screaming fast on Lambda, so it’s becoming a popular choice for developers building serverless applications. Dennis O’Keeffe has created a tutorial that shows you how to deploy a Golang API using the AWS CDK.
Chromium and Selenium in AWS Lambda
Headless browser running in an AWS Lambda function? No problem. Vittorio Nardone shows you how to get Chromium up and running and then how to use Selenium to run some tests.
Serverless Reads 🤓
The GoLD Stack
We don’t see enough articles that look at serverless from a management perspective, and as we see more developers adopting it, I think it’s wise to be able to effectively communicate the value “up-the-stack”. Zef Hemel put some thoughts out there on this as it relates to using Go with Lambda and DynamoDB.
The truth about Serverless
How can you not click on a title like this? But seriously, Gareth Thomas outlines the perceived pros and cons of serverless and then offers a reality check for each one.
You’re not ready for feature flags
Another batch of good advice from Forrest Brazeal about making sure you nail down the basics of cloud deployments before you go ahead and try getting all fancy-like.
Why do so few vendors in the serverless space offer metered billing?
Interesting observation by Paul Swail about why most third-party serverless products are using a quota-based billing model instead of a more “serverless” pay-per-use model. He partially answers his own question, but definitely something to think about if you’re building a business in this space.
My Time as a Black Woman Software Engineer at Capital One
Though it isn’t about serverless, I had to include this incredibly brave post that recounts the horrific experience suffered by a black woman working as a software engineer. As I read this, my heart sank to the floor. The ideas and contributions of underrepresented people are far too often marginalized or hijacked by the current culture in tech. If you witness anything like this (even the things that may seem small to you), please speak out and stand up for changing toxic cultures.
Podcast, videos, and more… 🎧
Episode #56: Accelerating DynamoDB Workflows using Dynobase with Rafal Wilinski
In this episode, I chat with Rafal Wilinski about the challenges developers face when using DynamoDB, why DynamoDB makes sense for applications big and small, and why we need more tools like Dynobase to make working with your data easier. Watch on YouTube.
How Vendia’s founders aim to leverage serverless and blockchain to solve data sprawl
As I said before, Tim Wagner and Shruthi Rao are a serverless force to be reckoned with. This is a good article (and video interview) that goes much deeper into their vision and what Vendia is capable of.
New from AWS 🆕
Amazon RDS Proxy is Generally Available
Amazon RDS Proxy, a fully managed, highly available database proxy for Amazon Relational Database Service (RDS), is now generally available with MySQL and PostgreSQL compatibility. I think this is a good solution for those that need a better way to manage their connections from Lambda. Read more here
Amazon QuickSight now supports Lake Formation–protected Athena data sources
QuickSight users can now visualize their Lake Formation–protected Athena data, natively using the benefits that come with Lake Formation, including table and column-level access controls.
AWS AppSync introduces new 12xlarge instance for server-side API caching
AWS AppSync is a managed GraphQL service that simplifies application development by letting you create a flexible API to securely access, manipulate, and combine data from one or more data sources.
Amazon Elastic File System increases file system minimum throughput
Amazon Elastic File System (Amazon EFS) file systems using the default bursting throughput mode now have a minimum throughput of 1 MiB/s.
Amazon DocumentDB (with MongoDB compatibility) now supports T3 medium instances
Amazon DocumentDB (with MongoDB compatibility) is a fast, scalable, highly available, and fully managed document database service that supports MongoDB workloads. Amazon DocumentDB makes it easy and intuitive to store, query, and index JSON data. Amazon DocumentDB now supports t3.
Serverless Tools 🛠
DRY (Don’t Repeat Yourself) on the cloud with Pulumi
This is a nice write up about using Pulumi to build repeatable cloud deployments. If you’re not familiar with Pulumi, it’s like a CDK for all major cloud vendors.
Jeshan Babooa ported the Ghost project to Lambda, which should give you a way to run the blogging platform serverlessly. It is very early on and there are some expected issues, but it’s a good start.
Koyeb Serverless Data Processing Platform Early Access
I came across this article about a new tool for easily building serverless workflows. Looks really interesting.
Thoughts from Twitter 🐦
So, I was going to write up a whole blog post about DynamoDB performance in Lambda with Deno. But ultimately the whole things can be represented by this picture. ~ Matthew Bonig
Click to see the picture, but it doesn’t take a thousand words to describe it. Deno is not ready for primetime with Lambda and DynamoDB.
Serverless Jobs 👩💻
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 9, 2020 – Debugging AWS Lambda Performance Issues
July 9, 2020 – Good Morning Serverless with Tom McLaughlin (I’ll be his guest)
July 30, 2020 – Building Intelligent Application Flows in the Cloud and On-premises with TriggerMesh (Webinar)
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 Josh Carlisle (@joshcarlisle). Josh is a Senior Sales Engineer – Partner Channel for AppDynamics, and a Microsoft MVP (Azure). In his role at AppDynamics, Josh provides technical and sales enablement to strategic partners implementing AppDynamics on the Azure platform. Based in Raleigh, he’s active in the local serverless community, co-organizing and participating in meet-ups, user groups, and code camps. Josh has also spoken at conferences around the country, including ServerlessDays events in Austin, Nashville and Amsterdam. Thank you, Josh, for sharing your knowledge and passion! 🙌
Final Thoughts 🤔
I mentioned in tweet that it’s getting harder and harder to narrow down all the amazing serverless posts that are being published every week. As you’ve probably noticed, this newsletter gets quite long, and I’m only including a fraction of the posts that I collect and review. I have a lot of ideas about how to make this better, so stay tuned for some upgrades to the Off-by-none experience coming soon.
In the meantime, be sure to check out the Serverless Reference Architectures Project and contribute your thoughts, ideas and patterns. The more examples, the better, so people can learn and experiment with the tools and languages they are comfortable with. #ServerlessForEveryone
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.