Deploying applications to the cloud can be painful. Booting virtual machines, configuring networks, and setting up databases, requires massive amounts of specialized knowledge — knowledge that’s scattered across documentation, blog posts, tutorials, and source code.
Quilt aims to make sharing this knowledge simple by encoding it in JavaScript. Just as developers package, share, and reuse application code, Quilt’s JavaScript framework makes it possible to package, share, and reuse the knowledge necessary to run applications in the cloud.
To take this knowledge into production, simply quilt run
the JavaScript blueprint of
your application. Quilt will set up virtual machines, configure a secure network, install
containers, and whatever else is needed to get up and running smoothly on your favorite
cloud provider.
Install Quilt with npm:
$ npm install -g @quilt/install
Check out more in our Getting Started Guide.
Run any container.
let web = new Container('web', 'someNodejsImage');
Load balance traffic.
let webGroup = web.replicate(3);
let webLoadBalancer = new LoadBalancer('web-lb', webGroup); // A load balancer over 3 containers.
Share and import blueprints via npm.
const Redis = require('@quilt/redis');
let redis = new Redis(2, 'AUTH_PASSWORD'); // 2 Redis database replicas.
Set up a secure network.
allow(publicInternet, webGroup, 80); // Open the webservers' port 80 to the public internet.
redis.allowFrom(webGroup, redis.port); // Let the web app communicate with Redis.
Deploy VMs on any supported cloud provider.
let vm = new Machine({
provider: 'Amazon',
size: 't2.micro'
});
See full example blueprints and check out our docs.
# Deploy your application.
$ quilt run ./someBlueprint.js
# SSH into VMs and containers.
$ quilt ssh <ID>
# Check the status of your deployment.
$ quilt show
This is just a small sample of the Quilt CLI. Check out more handy commands for managing your deployment.
- Get started with our tutorial
- Check out our docs
- Contribute to the project
- Learn more on our website
- Get in touch!
We would love to hear if you have any questions, suggestions, or other comments!