Skip to content
This repository was archived by the owner on Feb 25, 2020. It is now read-only.
This repository was archived by the owner on Feb 25, 2020. It is now read-only.

Single process server #531

Open
Open
@jdegoes

Description

@jdegoes

To make it as simple as possible to run Precog, we need to bundle Precog and Labcoat and all required dependencies into a fully self-contained package suitable for distribution, run all Precog services in a single process using a single port, and launch Precog and Labcoat with a single command.

Configuration options for this single process server should be kept extremely minimal, and every option must have a sensible default which works out of the box on all supported platforms (Mac, Linux, Windows).

Among the possible options:

  • The port to run on. Could default to something like 7777.
  • The home directory for the file system (if local file system is being used). Could default to something like ./data/.
  • The home directory for temporary files. Could default to /tmp/ or ./tmp/.
  • The directory for accounts/security/etc. metadata (location of H2 database?). Could default to something like ./meta/.

With no external dependencies and simple configuration options that all have sensible defaults, it will be possible for average and casual users to maintain Precog, and many more people to try Precog out without having to master a half dozen other technologies (kafka, zookeeper, haproxy, mongodb, httpd, etc.).

This ticket will be considered complete when the following is possible:

  • Run an sbt task to build the new standalone release from scratch (both Precog and Labcoat)
  • cd into the standalone release directory
  • Run precog or precog.bat scripts depending on OS (Mac/Linux or Windows)
  • If no command-line arguments are specified, the script launches Precog server in a single process and port (if it is not already running), and launches Labcoat configured to point to the newly-launched Precog server
  • In addition to the default action of starting Precog and launching Labcoat, the scripts support the commands 'stop', 'start', and 'restart', which stop, start, and restart the Precog server (respectively), as well as a 'launch' command which launches Labcoat, and a 'status' command which shows whether or not Precog server is running.

The standalone release will be the release version that's pre-built and distributed online for users who don't want to build Precog / Labcoat from scratch. Therefore, it's essential that it be bullet-proof and "just work" out of the box with no tweaking, configuration, or additional external dependencies.

This ticket should not be completed most of the other tickets in the Simplified Precog milestone have been completed.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions