Configuration as Code.
Devise is a tool for standardized, programmatic, and bi-directional configuration management.
The key features of Devise are:
- Configuration as code: Devise encapsulates a wide range of APIs into a single powerfully simple API that applications can consume via gRPC. By enabling applications to configure themselves programmatically, Devise facilitates configuration as code by providing key-value pair lookups, or fully rendered templates at the request of the application.
- Universal RPC Framework: Utilizing protobuf and gRPC, applications written in any of the supported laguages can use Devise.
By default Devise uses ports 8080
and 50000
for the UI and backend respectively. The UI provides an interface for administration while the backend exposes an API that can be consumed directly inside client applications. To get started:
$ docker run \
--rm \
--detach \
--publish 8080:8080 \
--publish 50000:50000 \
--name devise \
autonomy/devise:latest serve
For an example on how a client might use Devise, see the example client.
Note: The default storage for Devise is an in-memory datastore. It is intended for development. Production deployments should make use of a production quality datastore.
The build of Devise depends on conform:
$ go get -u github.com/autonomy/conform
Note: Conform leverages multi-stage builds. Docker 17.05.0 or greater is required.
To build the image, run:
$ conform enforce