The Serverless Framework gives users the ability to scaffold, deploy, and manage serverless architectures.
Serverless computing is quickly becoming a defacto way to build highly scalable fault tolerant systems. With the pay-per-execution pricing model, zero administration, and automatic scaling it's easy to see why.
This new level of operational abstraction has it's benefits but also introduces some additional complexities, thus the serverless framework was born.
The Serverless Framework is a command line interface for building web, mobile and IoT applications on serverless, event-driven compute services.
The CLI provides scaffolding, automation and best practices for developing and deploying your serverless architecture.
Designed from the ground up to be extendable via plugins, It's easy to extend functionality to fit specific project requirements.
Serverless is an MIT open source project and is actively maintained by a full-time, venture-backed team.
Links
Quick start
Follow these simple steps to install serverless.
Create and deploy your first service in under 5 minutes.
| Step | Command | Description |
|---|---|---|
| 1. | npm install -g serverless@beta |
Install Serverless CLI |
| 2. | mkdir my-first-service && cd my-first-service |
Create the project directory |
| 3. | Input your provider credentials | Connect Serverless with your provider |
| 4. | serverless create --template aws-nodejs |
Create an AWS node lamdba function |
| 5. | serverless deploy |
Deploy to live AWS account |
| 6. | serverless invoke --function hello |
run the live API endpoint |
Run serverless remove to clean up this function from your account.
Features
- Manage the lifecycle of your serverless architecture (build, deploy, update, delete)
- Group functions into services for easy management of code, resources & processes across large projects and teams
- Support for AWS Lambda, Azure Functions, Google CloudFunctions & more
- Safely, easily deploy functions, events and their required resources
- Minimal configuration and scaffolding
- Built-in support for multiple stages
- Optimized for CI/CD workflows
- Loaded with automation, optimization and best practices
- 100% Extensible: Extend or modify the Framework and its operations via Plugins
- An ecosystem of serverless services and plugins
- A fantastic and welcoming community!
Documentation
Take a look at our documentation to get started with Serverless and understand how it works behind the scenes.
- Understanding Serverless and its configuration files
- How to build your Serverless services
- Using plugins
- Building plugins
- Service templates
- Usage tracking
Contributing
We love our contributors! If you'd like to contribute to the project, feel free to submit a PR. But please keep in mind the following guidelines:
Please read our Contributing Document to learn more how you can start working on the Framework yourself.
Community
Some of the awesome people who contribute to Serverless. Join the community
- Email Updates
- Gitter Chatroom - We are in here all day long!
- Stackoverflow
- Serverless Meetups
- Contact Us
Consultants
These consultants use the Serverless Framework and can help you build your serverless projects.
- Trek10
- Parallax – they also built the David Guetta Campaign
- Just Serverless
- SC5 Online
- Carrot Creative
- microapps
- Apiwise
- Useful IO - and Hail Messaging
- WhaleTech
- Hop Labs
- Webscale
- API talent - who also run Serverless-Auckland Meetup
- Branded Crate
- cloudonaut
Badges
Previous Serverless Version 0.5.x
Below are projects and plugins relating to version 0.5 and below. Note that these are not compatible with v1.0 but we are working diligently on updating them.
v0.5.x Projects
Serverless Projects are shareable and installable. You can publish them to npm and install them via the Serverless Framework CLI by using $ serverless project install <project-name>
- serverless-graphql - Official Serverless boilerplate to kick start your project
- serverless-starter - A simple boilerplate for new projects (JavaScript) with a few architectural options
- serverless-starter-python - A simple boilerplate for new projects (Python) with a few architectural options
- serverless-graphql-blog - A blog boilerplate that leverages GraphQL in front of DynamoDB to offer a minimal REST API featuring only 1 endpoint
- serverless-authentication-boilerplate - A generic authentication boilerplate for Serverless framework
- sc5-serverless-boilerplate - A boilerplate for test driven development of REST endpoints
- [MoonMail] (https://github.com/microapps/MoonMail) - Build your own email marketing infrastructure using Lambda + SES
v0.5.x Plugins
Serverless is composed of Plugins. A group of default Plugins ship with the Framework, and here are some others you can add to improve/help your workflow:
- Meta Sync - Securely sync your the variables in your project's
_meta/variablesacross your team. - Offline - Emulate AWS Lambda and Api Gateway locally to speed up your development cycles.
- Hook Scripts - Easily create shell script hooks that are run whenever Serverless actions are executed.
- CORS - Adds support for CORS (Cross-origin resource sharing).
- Serve - Simulate API Gateway locally, so all function calls can be run via localhost.
- Webpack - Use Webpack to optimize your Serverless Node.js Functions.
- Serverless Client - Deploy and config a web client for your Serverless project to S3.
- Alerting - This Plugin adds Cloudwatch Alarms with SNS notifications for your Lambda functions.
- Optimizer - Optimizes your code for performance in Lambda. Supports coffeeify, babelify and other transforms
- CloudFormation Validator - Adds support for validating your CloudFormation template.
- Prune - Delete old versions of AWS lambdas from your account so that you don't exceed the code storage limit.
- Base-Path - Sets a base path for all API Gateway endpoints in a Component.
- Test - A Simple Integration Test Framework for Serverless.
- SNS Subscribe - This plugin easily subscribes your lambda functions to SNS notifications.
- JSHint - Detect errors and potential problems in your Lambda functions.
- ESLint - Detect errors and potential problems in your Lambda functions using eslint.
- Mocha - Enable test driven development by creating test cases when creating new functions
- Function-Package - Package your lambdas without deploying to AWS.
- Sentry - Automatically send errors and exceptions to Sentry.
- Auto-Prune - Delete old AWS Lambda versions.
- Serverless Secrets - Easily encrypt and decrypt secrets in your Serverless projects
