Contents
What is Squeezer ?
Squeezer is a framework designed to help developers to get a better architecture on serverless
zero-administration compute platforms where code runs on the top of
microservices clouds like
AWS Lambda , Azure Functions , IBM OpenWhisk & Google Functions
Features in short
- Swagger UI API REST documentation support
- SEO-friendly web apps with the PUG support ( formerly known as JADE ) + your favorite JS framework + CDN integrated support for project's assets (js, images, css, ...)
- share components between microservices
- auto-deployable, auto-scalable , no DevOps requirements
- silent deployments ,no interruption for the current functionality ( really useful on production )
- access deployed resources credentials (DB user, pass ...) directly from
process.env
variables - one single command to simultaneously deploy all available microservices on your project
- quick intuitive code deployments by using a special mechanism which will deploy only assets, functions and file packages
where code changed from the last deployment
- automatic rollback to the previous working deployment if something goes wrong
- sequential deployments, wait for the current deployments in progress to finish
- self-healing microservices
- test your code locally on a simulated microservices platform for a faster development cycle
- separate your environments in multiple stages
- extend framework functionality with your own "home-made" plugins
- pay only for the usage ( no monthly subscriptions )
- competitive pricing ( >= 2$ / 1 million HTTP requests )
- smart external dependencies inclusion into the compiled microservice ( node_modules and other project files ) ... just
like on any other trivial NodeJS project
- Babel ES6/ES7 + Webpack 2 integration
Requirements
Squeezer CLI
Squeezer command-line interface
Templates
Create a quick project stub by using templates :
template | description |
---|
aws-api-nodejs | AWS generic API app template. |
aws-web-nodejs | AWS generic WEB app template. |
azure-api-nodejs | Azure generic API app template. |
azure-web-nodejs | Azure generic WEB app template. |
Plugins
Extend or merge the Squeezer framework functionality with plugins
Example Projects
Getting started
NOTE: Windows users should enable symlinks in order to avoid unwanted symbolic links errors .
Run
| cmd | description |
---|
1. | npm install -g squeezer-cli | Install Squeezer CLI |
2. | sqz create --project my-first-project --template aws-api-nodejs --email you@example.org | Create a project |
3. | cd my-first-project | Switch to the project's directory |
4. | Configure credentials | Cloud credentials |
5. | sqz install | Install project's required packages |
5. | sqz compile | Compile project's microservices |
7. | sqz serve | Development mode NOTE : Live reload enabled by default |
Deploy
| cmd | description |
---|
1. | sqz compile --cloud | Compile microservices for cloud deployments |
2. | sqz deploy --stage dev | Deploy your app into the cloud provider Note: initial deployments can take longer <= 40 mins |
Contributing
See contributing.md for contribution guidelines