A framework for modern application infrastructure.
Praxis allows you to specify the entire infrastructure for your application using simple primitives.
caches: sessions: expire: 1d keys: master: roll: 30d queues: mail: timeout: 1m services: web: build: . port: 3000 scale: 2-10 timers: cleanup: schedule: 0 3 * * * command: bin/cleanup service: web
Praxis makes these primitives available to your application with a simple API.
# list applications GET /apps # put an item on a queue POST /apps/myapp/queues/mail # get an item from a queue GET /apps/myapp/queues/mail # encrypt some data POST /apps/myapp/keys/master/encrypt
A Rack is the substrate for running Praxis applications and exposes the Praxis API both externally to management tools and operators and internally to the applications themselves.
Praxis Racks are currently available for the following environments:
Runs on your laptop (or any single node). Great for development and CI.
A fault-tolerant, highly scalable architecture built on modern AWS services such as ECS, ALB, and Lambda.
$ curl https://s3.amazonaws.com/praxis-releases/cli/darwin/cx -o /usr/local/bin/cx $ chmod +x /usr/local/bin/cx
$ curl https://s3.amazonaws.com/praxis-releases/cli/linux/cx -o /usr/local/bin/cx $ chmod +x /usr/local/bin/cx
$ sudo cx rack install local
Local Rack installation requires
sudo to resolve and route local hostnames such as
$ cx rack install aws
Create a convox.yml
convox.yml and the
examples/ subdirectory of this project.
Create an application
$ cx apps create myapp
Set environment variables
$ cx env set FOO=bar
Deploy the application
$ cx deploy
Your local CLI will automatically keep itself up to date.
You can update an installed Rack using
cx rack update.
Convox, Inc. 2017