Deployment Requirements

Overview

Jiffy was written with the idea of generating sidecar-free backend service applications. While this is a nice goal, the current version of Jiffy relies on the presence of some external processes and/or services depending on the target environment.

Database System

The generated application will need to connect to a database system from the supported list. It is easiest to use sqlite3 for initial testing if you do not want to install a full DBMS in the development environment. Connectivity to the database can be checked by running the test suite in the github.com/1414C/sqac repository. The sqac repository will be pulled into the Go environment when the Jiffy source code is installed via go get -u. See the README.md file in the sqac repository for instructions.

Key Value Store

A KVS is required in order to persist the current group-leader information. This is discussed in the Key Value Store Support section of this documentation. Deployment-specific considerations are outlined for each of the deployment scenarios.

Load Balancer

Jiffy applications are designed to scale horizontally by starting more application server instances (processes). The applications do not handle load balancing however, and in a bare metal or VM-type deployment it is recommended to use something like NGinx to direct traffic.

Sample Deployment Scenarios

This section of the documentation contains sample high-level deployment scenarios for a jiffy-generated application. The examples should be considered as general guidance rather than production-deployment-cookbooks. Infrastructure security is not discussed in any depth, but the usual precautions apply when deploying a Jiffy-application productively.