Congrats to Serverless! I'm strongly considering it for a new project I'm working on. I was initially thinking about Terraform + AWS Lambda, but Serverless looks like a much better choice.
I think I should probably go to the next API:World conference, because I'm working on a product called FormAPI [1]. Not sure if it would be worth it, though. I went to a tech conference earlier this year, and I didn't get too much out of it.
If you were working on a product like FormAPI and wanted to go to one or two tech conferences per year, which ones would you choose? I'm thinking about RailsConf (since FormAPI is written with Ruby on Rails), and maybe API:World.
I don't know too much about it, but it's a framework for managing your lambda functions, and it makes it really easy to deploy them to a cloud provider.
You could also use Terraform, CloudFormation templates, or write your own shell scripts using the AWS CLI. But serverless does everything for you, and I always prefer to use opinionated tools that don't require too much configuration.
With serverless, you'll probably end up writing a CloudFormation template snippets to provision resources to support the Lambda anyway (it's just in the serverless YAML file).
But it does make deployment easier. A good example is macOS + Python. If you have C extensions (such as LXML or crypto libs, etc.), you'll want to build the dependencies inside a Linux environment. serverless has a plugin that can use docker to build and package dependencies.
For reasons I can't put my finger on, I'm not a huge fan of serverless. Maybe the npm focus? But it seems like the best tool out there for Lambdas. Unless you're use-case is narrower, then something like Zappa might make sense.
It offers a file driven framework rather than just a web-editor.
With that comes many different strengths including plugins, importing libs/modules to the deployables, as well as components. It also has a variety of examples to work with.
We've been heavy users of the Serverless Framework on AWS for the last 2 years.
In short, its a template generator for the resource management system of your cloud provider of choice (supporting AWS, Azure, Google, and a few others), with some deployment management CLI tools mixed in.
In our case, it generates boilerplate CloudFormation (since we're in AWS most of the time) based on the "common cases" of how Lambda and API Gateway work together - including the necessary IAM and CloudWatch templates, and wraps the AWS CLI with with deployment commands, which we leverage in our CI/CD pipelines.
It's a great way to get started on small, or even medium-sized projects. For larger systems you'll probably need more direct control of your CloudFormation templates.
In my experience, if you don’t use Serverless Framework, you will end up writing the same functionality yourself as custom deployment scripts, which will not be as stable, extensible and well documented.
There are some alternatives in the Amazon ecosystem, such as AWS SAM and AWS CDK, but they are only now approaching the maturity level of SF and don’t have the same amount of plugins for various use cases.
9 comments
[ 1.9 ms ] story [ 31.4 ms ] threadI think I should probably go to the next API:World conference, because I'm working on a product called FormAPI [1]. Not sure if it would be worth it, though. I went to a tech conference earlier this year, and I didn't get too much out of it.
If you were working on a product like FormAPI and wanted to go to one or two tech conferences per year, which ones would you choose? I'm thinking about RailsConf (since FormAPI is written with Ruby on Rails), and maybe API:World.
[2] https://formapi.io
You could also use Terraform, CloudFormation templates, or write your own shell scripts using the AWS CLI. But serverless does everything for you, and I always prefer to use opinionated tools that don't require too much configuration.
But it does make deployment easier. A good example is macOS + Python. If you have C extensions (such as LXML or crypto libs, etc.), you'll want to build the dependencies inside a Linux environment. serverless has a plugin that can use docker to build and package dependencies.
For reasons I can't put my finger on, I'm not a huge fan of serverless. Maybe the npm focus? But it seems like the best tool out there for Lambdas. Unless you're use-case is narrower, then something like Zappa might make sense.
With that comes many different strengths including plugins, importing libs/modules to the deployables, as well as components. It also has a variety of examples to work with.
In short, its a template generator for the resource management system of your cloud provider of choice (supporting AWS, Azure, Google, and a few others), with some deployment management CLI tools mixed in.
In our case, it generates boilerplate CloudFormation (since we're in AWS most of the time) based on the "common cases" of how Lambda and API Gateway work together - including the necessary IAM and CloudWatch templates, and wraps the AWS CLI with with deployment commands, which we leverage in our CI/CD pipelines.
It's a great way to get started on small, or even medium-sized projects. For larger systems you'll probably need more direct control of your CloudFormation templates.
There are some alternatives in the Amazon ecosystem, such as AWS SAM and AWS CDK, but they are only now approaching the maturity level of SF and don’t have the same amount of plugins for various use cases.
[0]: https://read.iopipe.com/the-right-way-to-do-serverless-in-py... [1]: https://read.iopipe.com/the-right-way-to-do-serverless-in-py...