Here are all my serverless-related blog posts in 2019 in reverse chronological order. Follow me for more serverless content in 2020!
- Provisioned Concurrency — the end of cold starts
- Checklist for going live with API Gateway and Lambda
- The why, when, how of API Gateway service proxies
- Where does SLS plugin stops and platform starts
- Should you pack the AWS SDK in your deployment artefact?
- All you need to know about caching for serverless applications
- The API Gateway security risk you need to pay attention to
- Introducing the lumigo-cli
- Monitor Lambda cold start durations with CloudWatch
- Why you should use temporary stacks when you do serverless
- How to include SNS and Kinesis in your e2e tests
- The best reason to use DynamoDB Streams is…
- Top 10 Serverless best practices
- How to use the power of CloudFormation custom resources for great good
- SQS and Lambda: the missing guide on failure modes
- A simple event-sourcing example with snapshots using Lambda and DynamoDB
- Interview with ThinkServerless
- Getting the most out of CloudWatch Logs
- How to do blue-green deployment for Step Functions
- How to make Serverless framework boilerplates customizable
- Serverless Step Functions: no more leaky abstractions
- Amazon EventBridge: a new era of SaaS integration
- CloudFormation Ref and GetAtt cheatsheet
- How to connect SNS to Kinesis for cross-account delivery via API Gateway
- Introducing a better way to record custom metrics
- Meet the family, the “other” AWS serverless services
- Step Function as an ad-hoc scheduling mechanism
- AWS Lambda: how to share code between functions in a monorepo
- How to monitor Lambda with CloudWatch Metrics
- AWS Lambda: how to detect and stop accidental infinite recursions
- Serverless app to speed up all your Lambda functions
- A self-healing Kinesis function that adapts its throughput based on performance
- ICYMI: five updates you’ve missed about Serverless Step Functions
- How to log timed out Lambda invocations
- You are wrong about serverless vendor lock-in
- Why your business needs serverless
- CloudFormation protip: use !Sub instead of !Join
- How to include Serverless Repository apps in serverless.yml
- AWS SAM + CloudFormation macros, a patch made in heaven
- Lambda and Kinesis, beware of hot streams
- To VPC or not to VPC? Pros and Cons in AWS Lambda
- Using CloudWatch and Lambda to implement ad-hoc scheduling
- Introducing… CloudFormation extrinsic functions
- Observability without breaking the bank
- Canary deployment with LaunchDarkly and AWS Lambda
- Just how expensive is the full AWS SDK
- Comparing Nuclio and AWS Lambda
- How should you organize your functions in production?
- Making Terraform and Serverless framework work together
- How to test Serverless apps
- Canary deployment for AWS Lambda
- Comparison of Lambda deployment frameworks
- Lambda layers, when to use it
- Mono repo vs one per service
- DynamoDB TTL as an ad-hoc scheduling mechanism
- Understanding the scaling behaviour of DynamoDB OnDemand tables
- Chaos test your Lambda functions with Thundra
- AWS Lambda and Secret Management
- Lambda optimization tip — enable HTTP keep-alive
- Debugging serverless applications with Dashbird
- You are thinking about serverless costs all wrong
- Not so FaaS
- Subscribe SQS to a SNS topic in another account using CloudFormation
- My Thoughts on the Serverless Announcements at re:Invent 2018
- Considerations for the Beginner Serverless Developer
- Error Handling in AWS Lambda With Wrappers
re:invent chalk talks
Unfortunately chalk talks are not recorded as they’re very interactive and involves a lot of white-boarding. But you can still take a look at the slides to get a sense of the topics that were covered.
- SVS215 — Build observability into a serverless application
- API310 — How to refactor a monolith to serverless in 8 steps
Here are a few of the talks I presented at conferences and user groups.
Serverless is more FinDev than DevOps
This was my opening keynote to ServerlessDays Cardiff, where I discussed the idea of FinDev and the new business model that serverless technologies can enable. Speaking of which, ServerlessDays Cardiff 2020 is just around the corner. If you’re in the area, hope to see you there!
Serverless Security: defence against the dark arts
In this talk, I walked through a number of common attack vectors that you should consider for your serverless architecture and possible mitigation strategies (where applicable).
How to build a social network on Serverless
In this talk, I shared my journey of migrating Yubl’s backend to serverless and some of the lessons we learnt along the way.
I made a guest appearance on Heitor Lessa’s excellent Build On Serverless series.
I did a mini-series with Forrest Brazeal on the ThinkFaaS podcast
- Part 1 — Serverless in production
- Part 2 — Bursting the serverless bubble
- Part 3 — From DevOps to FinDev
Open source work
- lumigo-cli: helper commands for working with AWS and Lambda
- dazn-lambda-powertools: correlation IDs, structured logging, and more (Node.js only, for Python, check out Heitor Lessa’s Python Lambda Powertools)
- middy: middleware engine for Node.js Lambda functions
Serverless framework plugins
- serverless-step-functions: Step Functions made simple
- serverless-apigateway-service-proxy: API service proxy made simple
- serverless-plugin-extrinsic-functions: gives you the ability to use additional Fn:: functions such as StartsWith, Substring, etc.
- serverless-lumigo: auto-instrumentation with Lumigo
- serverless-sns-to-sqs-events: SNS -> SQS -> Lambda made simple
- lambda-janitor: cron job to delete old, unused versions of all Lambda functions in the region to free up storage space.
- auto-subscribe-log-group-to-arn: subscribes new and existing CloudWatch log groups to a Lambda function, Kinesis stream, or Firehose delivery stream by ARN.
- auto-set-log-group-retention: updates the retention policy for new and existing CloudWatch log groups to a specified number of days to reduce CloudWatch Logs cost.
- async-custom-metrics: lets you record custom metrics by writing to stdout (which is recorded in CloudWatch Logs) which is then parsed and forwarded to CloudWatch metrics as custom metrics.
- propagate-cfn-tags: propagates CloudFormation tags to resources that are not automatically tagged, e.g. CloudWatch log groups.
- autodeploy-layer: automatically deploys a Lambda layer to all new and existing functions in the region. Supports opt-in and opt-out via function tags.
- lambda-invocation-cfn-custom-resource: supports CloudFormation custom resource to invoke a Lambda function during deployment.
- dazn-lambda-powertools: deploys all the packages from DAZN lambda powertools (see above) as one Lambda layer in your account.
- cloudwatch-alarms-macro: deploys a CloudFormation macro that auto-generates CloudWatch Alarms for you based on the resources you have in a CloudFormation template.