Custom Batch Windows, Dynamic Parallelism, and the PostgreSQL Data API… 😱
Welcome to Issue #56 of Off-by-none. Thanks for joining us! 👋
Last week, we look at a new way to model our DynamoDB data and shared lots of exciting serverless news. This week, we’ve got videos from ServerlessDays Milan, some awesome new AWS serverless announcements, and a ton of content from the serverless community.
Plenty of great stuff to get to, so let’s jump in. 👍
When you try to say “serverless” in Italian… 🇮🇹
Back in June, I gave the opening keynote at ServerlessDays Milan. They just posted the video of my talk, so if you’d like to listen to me tell people to “Stop Calling Everything Serverless”, you should give it a watch. There were some really amazing talks that day. Here are some of my favorites that you should definitely check out:
All of the talks were really great. You can check out the rest of them here.
Serverless News & Product Announcements 🚀
There were several really great announcements from AWS this week, so be sure to check out the AWS updates section below.
Iguazio Expands Serverless To Scale-out Machine Learning and Analytics Workloads
New serverless capabilities in Iguazio’s Data Science Platform enable on-demand resource consumption, elastic scaling, and simpler ML pipelines.
Serverless Stories 📖
Flexy: Serverless Travel App
Kelvan Ince built a new app that has a completely serverless backend. Check out how he built it.
Serverless: 15% slower and 8x more expensive
This enlightening post by Einar Egilsson exposes the major problems that serverless advocates face. There are so many ways to accomplish things with serverless, and it’s fairly easy to rack up huge expenses and run into bottlenecks if you design your application incorrectly. Chris Munns had a thoughtful response to this, which you can read here.
How I Built a Serverless BigCommerce App on AWS
If you’ve got A LOT of free time and want to read all about how Patrick Puente built a serverless app on AWS, check out this article.
Serverless Use Cases 🗺
Adobe Campaign Content Recommendations in Email
I really like the idea of vendor-side serverless compute models like Adobe I/O and Twilio functions. In this post, Denis Bozonnet uses an Adobe I/O function to add personalized content recommendations to user emails. This is certainly possible using APIs and transactional emails with third-party systems, but why not just simplify the entire process and run it at the source?
Playing with Cloudflare Workers
I love these little use case for serverless. Antal Orcsik uses a Cloudflare worker to transform a URL and perform a redirect, in 8 lines of code. Simple, straightforward, and no need to set up a server.
Visual Game Worlds, designed in Unity, hosted in Functions-as-a-Service
Here’s an interesting use case from Tom Larkworthy. Run graphical game engines using FaaS.
When you’re interested in advanced Serverless concepts… 🏗
Building Lambda Functions with MongoDB Atlas via VPC Peering
Saras Arya explains probably more than you want to know about how VPC peering works with AWS.
Hey CDK, how can I migrate my existing CloudFormation templates?
If you’re thinking about migrating your apps to use the new AWS CDK, Philipp Garbe has a few tips to help make the transition easier.
3 methods for microservice communication
Kyle Galbraith outlines three methods that allow microservices to communicate with each other. He uses SNS as a message broker (which I used to use as well), but now with EventBridge, we have a lot more capabilities.
Gently Down the Stream with AWS Kinesis
Helen Anderson’s post is an overview of how AWS Kinesis can be built into new or existing architecture to process, transform, and analyze streaming data for faster decision making.
Explaining Eventbridge Amidst the Hype
Sarjeel Yusuf explains what’s different about EventBridge, and why it could become an important part of your serverless toolkit. I’ve been using it extensively for my latest project, and so far, I’m extremely impressed.
AWS Lambda vs EC2
Rajesh Bhojwani gives us an in-depth comparison of AWS Lambda and EC2. Of course, comparing the cost of ONE t2.micro to that of a Lambda function is apples to oranges. As Rajesh points on, there’s not only the added Ops work, but additional infrastructure to support it.
If you’re relatively new to serverless… 🐣
Why Serverless Architectures?
Mohit Gupta gives an overview of why you’d want to go serverless. Plus an explanation of the serverless model, and how to get started with AWS and Lambda.
Serverless Migration: review your existing application
Ryan Jones and the team at Serverless Guru launched a series on migrating your application to serverless. This first post helps you review your existing application in order to make some decisions about the services and models you’ll be using as part of the migration.
Serverless Migration: break apart your application
In the second installment of the Serverless Migration series, Ryan Jones takes you through some use case that might apply to your application, and how you can make those use cases compatible with serverless.
Serverless: Learn how to get it into your team without making them AWS Cloud Architect Experts.
You don’t need to be a “cloud architect expert” to build a serverless application, but knowledge of the cloud and the services available is definitely a prerequisite. Cleriston Bernardes has some thoughts on how you can start building in serverless, even if you’re just starting your cloud journey.
A Serverless Function Example: Why & How to Get Started
Francis Cote has a comprehensive post that is both an introduction to serverless, as well as a tutorial for the first time user. Worth taking a look if you’re new to this whole “serverless” thing.
How to solve the testing challenges that come with serverless apps
Glenn Buckholz outlines some of the challenges you face when testing serverless applications. He offers some ideas to make it easier, and gives you an overview of some of the tools that are there to help you.
Serverless for Frontend Developers – ArmadaJS
Alexander Simovic’s presentation from ArmadaJS is a great intro for frontend developers that want to start using serverless to build full-stack applications.
Getting started with AWS SAM | SAM Series #1
Sometimes we just a need a simple introduction to something. If you are still curious what SAM (Serverless Application Model) is all about, and how to get started simply, check out this video.
Serverless – AWS Parameter Store
I hope you’re not still hardcoding secrets into your serverless functions, but if you need a basic intro to the AWS Parameter Store, Dorian Machado has you covered.
12 Reasons to Opt for Serverless Computing for Your Mid-sized Venture
This post is targeted at “mid-sized ventures”, but I think the 12 reasons outlined are applicable to organizations of every size.
Serverless Tutorials 🏗
Tutorial: Building & Monitoring Serverless Web Applications
Ran Ribenzaft has another great tutorial that shows you how to build a simple serverless web application that uses Cognito for authorization.
Deploy a static website with AWS
Need to get a static website up on AWS without all the added complexity? Karen Sanchez has a simple tutorial that walks you through the process using the AWS Console.
AWS [Amplify, Appsync, GraphQL]
Rigoberto Miranda has a full tutorial that shows you how to create and test a GraphQL API for an iOS application using AWS services AppSync and Amplify.
Deploy a Python serverless function on ZEIT Now
ZEIT is another popular way to easily deploy serverless applications. Juan Olvera’s tutorial will show you how to get up and running with a simple API.
How to get started with AWS AI Services
Timo Böhm has a step-by-step walkthrough that builds out a serverless service using Amazon Rekognition for image processing.
Testing infrastructure with the AWS Cloud Development Kit (CDK)
Imagine if you could easily write unit tests for your Infrastructure as Code configuration files? With the AWS CDK you can, and this post will show you how to do it using the familiar Jest framework.
Build Serverless REST API on AWS from Scratch – Part 1 & Part 2
This straightforward, two-part tutorial by James Murithi will walk you through creating a simple TODO API using AWS serverless, NodeJS and DynamoDB.
Serverless Security 🔒
They can’t hack your servers if you don’t have any servers, right?
Matthew Henderson has some thoughts on serverless security. As he points out, bad coding practices can create vulnerabilities in your application security, so make sure you use the tools available and add some security remediation to your DevOps pipelines.
6 Things You’re Probably Doing Wrong Securing Serverless Apps
Tal Melamed dives into six important security considerations for your serverless applications.
Serverless Reads 🤓
How We Design Features for Wrangler, the Cloudflare Workers CLI
This is a really interesting post by Ashley Lewis and Gabbi Fisher that shows how they iterated through adding functionality into the Cloudflare Workers CLI, Wrangler. It’s an incredibly thoughtful approach that product people should be adopting to build new tools.
Will AWS CDK replace Terraform and Serverless Framework?
Kevin van Ingen worked with the AWS CDK, Terraform and the Serverless Framework all in the same month, and shares some of his insights as to the strengths and weaknesses of each. He thinks the CDK has promise, but he points out that with complex projects, there is no clear winner (for now).
Monitor Your Serverless Apps Like a Formula 1 Engineer
The Serverless Guru reviews a few serverless monitoring tools and why they are an important part of your serverless application.
8 ways to speed up serverless development
Efi Merdler-Kravitz gives you some tips and tricks that will allow you to accelerate serverless development and launch your products faster.
Cloud Native is Serverless-First
John Gilbert recommends a “serverless-first” approach for several reasons, but I think the most compelling one is speed to market. Getting something out there fast and iterating on it gives startups and product dev teams a huge advantage by being able to fail faster. Containers might not be the wrong choice, but you can always fallback onto containers. Rearchitecting your app for serverless becomes a lot harder if you don’t start there.
Cloud Native is Event-First
John Gilbert has another post that reiterates the point that highly coupled systems (i.e. api-first architectures) are at a much higher risk for failure when interdependent services fail (which they will). Taking an event-first approach, systems remain autonomous, storing only the data they need, and publishing state changes via events. Does this make things more complex? Compared to a monolith, yes. But there are many benefits to this that John points out.
Do Oracle’s Claims Versus AWS Pass Scrutiny?
Oh Larry Ellison, what silly things do you have to say now? My favorite is the idea that a single Oracle database can handle EVERY possible use case. 🤦🏻♂️
Static First: Pre-Generated JAMstack Sites with Serverless Rendering as a Fallback
Phil Hawksworth has an excellent post that talks about “static-first” as an approach to serving up user generated content. If the static page doesn’t exist, a simple fallback to a serverless function will create the page on the fly. This is not only incredibly effective and scalable, but also incredibly inexpensive.
Compare and Contrast: VM, Containers, & Serverless
This is a great post that compares these three approaches. I agree with Shaira Yvonne’s thought at the end: “When we use serverless… then we’ll have more time listening to our customers and mainly focus on delivering what is valuable to them.”
What is Serverless?
Matthew Tyson has some thoughts about serverless and how it compares with IaaS and PaaS.
When you prefer an audio/visual experience… 🎧
Episode #15: How Liberty Mutual is Embracing Serverless with Gillian Armstrong and Mark McCann
In this episode I chat with Gillian Armstrong and Mark McCann about Liberty Mutual’s strategy for serverless adoption, how they evangelized serverless and focused on developer enablement, and some of the successful serverless projects they’ve launched.
Going Serverless with AJ Stuyvenberg
Corey and AJ discuss what a day in the life of an engineer at Serverless looks like, what the Serverless framework actually is and how it helps developers, how an open source company makes money, how Serverless differentiated itself from AWS, the differences between Serverless plugins and components, what’s in the company’s future, and more.
Nested Applications with SAR using SAM and Severless Framework | FooBar
Marcia Villalba shows you how to nest applications from the serverless application repository into your AWS SAM and Serverless Framework projects.
Publish Serverless Applications to the Serverless Application Repository | FooBar
In this video, Marcia Villalba shows you how to publish an existing SAM application to the Serverless Application Repository.
iRobot is Enabling the Next Generation of Connected Homes with a Serverless Architecture on AWS
Here’s a short video that shows Ben Kehoe and his team explaining why iRobot chose serverless on AWS and how it’s helping them make better connected products for your smart home. There are a few Richard Boyd cameos in there as well. 😉
When the AWS devs have been crushing it lately… 👷♀️
Amazon Aurora Serverless PostgreSQL Now Supports Data API
The Data API keeps getting better and better, and now you can access your Aurora Serverless PostgreSQL databases as well. Make sure you check out the Data API Client for NodeJS if you want to make your life even easier.
AWS Lambda Now Supports Custom Batch Window for Kinesis and DynamoDB Event Sources
So here is another amazing update! There are a lot of use cases that include lower volume Kinesis streams or infrequently updated DynamoDB tables. Being able to control the invocation of your downstream Lambda functions based on time, record count, or payload size is a huge win for cost optimization.
AWS Step Functions adds support for dynamic parallelism in workflows
And another incredibly cool feature that has been added to your arsenal of serverless weapons. This new feature for Step Functions lets you create nested workflows that can run in parallel based on a map generated from the previous step. This gives you a lot of control over parallel processing, plus all the error handling that comes along with it. Read more in Danilo Poccia’s post here.
Amazon S3 introduces Same-Region Replication
It’s always a good idea to copy important data, and now you can use SRR (same-region replication) to automatically copy files uploaded to S3 based on the bucket, prefix, or object tag levels.
Amazon Athena adds support for inserting data into a table using the results of a SELECT query or using a provided set of values
This is incredibly cool! You can now insert data into Amazon Athena (including from SELECT query results) which will write data back to S3 for you. I can see a lot of use cases emerging from this.
Build, test, and deploy your Amazon Sagemaker inference models to AWS Lambda
This is kind of interesting. In certain situations (definitely not all) you can use AWS Lambda functions to host your Amazon Sagemaker inference models.
AWS Amplify Console provides downloadable access logs for hosted web apps
Amplify Console now allows users to download access logs for their CDN distribution. Cool.
Serverless Tools 🛠
Yan Cui and the team at Lumigo took some common serverless development tasks and shortcuts and added them to a CLI tool. I have a feeling that the features of this will continue to expand.
Chris Noring open-sourced a workshop that teaches you all about building serverless microservices using GraphQL.
Thoughts from Twitter 🐦
Ruthless definition of #Serverless found in a comment on Reddit: ‘It’s just marketing speak for “we reinvented cgi-bin, but now you pay each time it’s invoked.”‘ ~ Arialdo Martini
I know some people think this is somehow making fun of serverless, but I love thinking about FaaS this way. As someone who spent a lot of time working with cgi-bins, I welcome the analogy, because it’s just as easy, and it scales with almost no limits.
This is a good post by @einaregilsson comparing an Elastic Beanstalk workload to a Lambda + API-GW #Serverless one. Not quite apples to apples, but the math checks out. It’s important for folks to evaluate their needs across the spectrum of compute services @awscloud has (a thread) ~ Chris Munns
In addition to his post on Reddit, I have to commend Chris Munns for the way he responded to this article. “Serverless” still has a long way to go, and this was a genuine response that truly acknowledged the customer’s pain and the work that needs to be done to better educate them.
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 26, 2019 – Increasing Serverless Development Velocity (Webinar)
October 2, 2019 – Deep Dive on Amazon EventBridge (Webinar)
October 3, 2019 – How to Leverage Serverless to Optimize for Cost and Performance (Webinar)
October 7-9, 2019 – Serverlessconf 2019 in New York City
October 14-16, 2019 – Serverless Architecture Conference Berlin
October 24, 2019 – ServerlessDays Stockholm
October 30, 2019 – Retail at the Scale of Serverless with AWS – Webinar
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 Ryan Jones (@ryanjonesirl). Ryan is the founder and CEO at Serverless Guru, a software development and consulting firm that builds modern applications using serverless. The mission of Serverless Guru is to educate companies and developers by creating content and training materials that help them succeed with serverless. Ryan’s company’s recent development partnership with Serverless, Inc., his speaking engagements, and the constant flow of content he produces, shows his deep commitment to the serverless community. We’re glad you’re here, and appreciate what you do. 🙌
Final Thoughts 🤔
Sometimes you don’t need to launch a major new product to have a huge impact on the serverless ecosystem. AWS made four relatively small improvements to existing services this week (custom batch windows, dynamic parallelism in Step Functions, PostgreSQL support for Data API, and Athena INSERTS), but all of them open up more use cases and make working with serverless even better. Are we close to the point with serverless where small, incremental improvements to existing products will be the focus, or are there still some major announcements to come? Either way, it’s an exciting time for serverless, and I’m happy to be on this ride.
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.
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.