Framework : squeezer.io
Docs : docs.squeezer.io
Chat : chat.squeezer.io
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
- Swagger UI API REST 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
- CloudFormation deployments , silent, no interruption for the current functionality ( really useful on production )
- CloudDormation Nested Stacks
support & use templates Outputs values directly as
process.envvariables - 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 on AWS API Gateway + Lambda )
- 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
- Install node.js version
>=6
Squeezer command-line interface
You can get various templates for creating a quick project stub :
| template | description |
|---|---|
| aws-api-nodejs | AWS generic API Hello World template |
| aws-api-nodejs-rest | AWS NodeJS REST API template + DynamoDB + Swagger support |
| aws-web-nodejs-reactjs | AWS NodeJS WebApp template + Pug ( ex-Jade ) + ReactJS support + Material UI + Bootstrap 3 styling |
NOTE: Windows users should enable symlinks in order to avoid unwanted symbolic links errors .
| cmd | description | |
|---|---|---|
| 1. | npm install -g squeezer-cli | Install Squeezer CLI |
| 2. | Configure AWS profile | AWS Profile |
| 3. | sqz create --project my-first-project --template aws-api-nodejs --email [email protected] | Create a project |
| 4. | cd my-first-project | Switch to the project's directory |
| 5. | sqz install | Install all requirements |
| 5. | sqz compile | Compile microservices |
| 7. | sqz serve | Simulates project on your local microservices platform NOTE : Live reload enabled by default |
WebApp : http://localhost:4001/
Swagger UI : http://localhost:4001/swagger-ui
| cmd | description | |
|---|---|---|
| 1. | sqz compile --production | Compile microservices |
| 2. | sqz deploy | Deploy your app into the cloud provider Note: initial deployments can take longer <= 40 mins |
.
├── cloudformation CloudFormation nested custom YAML templates
├── lib Project's Library
├── microservices Microservices Directory
│ └── microservice1
│ └── microservice2
├── node_modules Node NPM packages
└── plugins Project's plugins