Skip to content

Deployment

Anya Petersen edited this page Mar 5, 2021 · 17 revisions

General

Alfalfa is a containerized application that can be deployed via docker-compose, Docker Swarm, or Kubernetes. Experience deploying and troubleshooting Docker applications is a pre-requisite.

Caveats

  1. All deployment instructions here use environment variables that are committed to the repo. Where the environment variable represents an authentication credential, you should update the files with your secret values before deploying.
  2. As configured in these examples, none of the deployed filesystems are persistent. This means that restarting any container will reset its state, including related databases and uploaded files.
  3. Unlike your average web application, Alfalfa is heavily dependent on in-memory state. Underlying building models must run in memory. This means that deployments are not resilient to worker restarts; if a worker is restarted while a model is running, that model state will be lost.

Historian

Alfalfa includes optional Historian functionality, which is enabled by setting the HISTORIAN_ENABLE=true environment variable for the worker container and adding two containers to the stack:

  1. InfluxDB for timeseries data storage
  2. Grafana for visualization

Notes

  1. Note that in images published to DockerHub, the datasource has been provisioned to connect to InfluxDB using the username and password in the repo's .env file. If you have updated these (as you should) for your deployment, you will also need to manually update them via the Grafana UI, which can be accessed at <grafana-host>/datasources/edit/1/
  2. All recorded data points use UTC, which is also the default for chart display. This means that plot filters like "past 6 hours" are relative to current UTC time.

Deploy with docker-compose

This assumes that you have installed Docker and docker-compose and are in the root of this repo.

  1. update .env file: replace any credentials with real values and modify VERSION_TAG if appropriate to a tag available on DockerHub. To build the containers yourself, append --build to the up commands below.
  2. Without Historian: docker-compose up
  3. With Historian: export HISTORIAN_ENABLE=true && docker-compose -f docker-compose.yml -f docker-compose-historian.yml up -d
  4. Visit the web server at http://localhost
  5. Visit the minio (file upload) server at http://localhost:9000
  6. Visit the historian (if applicable) at http://localhost:3000.
  7. Clean up with docker-compose down or docker-compose -f docker-compose.yml -f docker-compose-historian.yml down

Deploy with Docker Swarm

TODO

Deploy with Kubernetes

TODO


Model Configuration

Openstudio

Tutorials

Guides

Reference

Modelica

Guides

Alfalfa Interaction

Tutorials

Guides

Reference

Explanation

Alfalfa Development

Guides

General

Reference

Explanation

Clone this wiki locally