syros

module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2017 License: MIT

README

Syros

A highly available and horizontally scalable DevOps tool for managing microservices across multiple regions and environments.

Components:

  • Syros Agent (collects various system data)
  • Syros Indexer (aggregates, transforms and persists collected data)
  • Syros App (management UI and API)

Backend:

  • NATS (communication backbone)
  • RethinkDB (persistence layer)
Development

Syros back-end is written in golang and the front-end in javascript (VueJs).

Prerequisites:

  • macOS or Linux
  • golang >= 1.7
  • node >= 4.0
  • npm >= 3.0
  • docker >= 1.13
  • make >= 3.81

Local setup:

# clone the repo into your go PATH under github.com/stefanprodan
$ git clone https://github.com/stefanprodan/syros.git
$ cd syros
# install go dependencies
$ go get -u github.com/kardianos/govendor
$ govendor sync
# install node dependencies
$ cd ui
$ npm install

Run locally:

# start NATS and RethinkDB
$ docker-compose up -d
# build and run all services
$ make build run APP_VERSION=0.0.1 RDB=192.168.1.135:28015 NATS=nats://192.168.1.135:4222
# remove build artifacs 
$ make clean
# remove containers and images
$ make purge APP_VERSION=0.0.1
# run go fmt and go vet
$ make fmt vet
Continuous Integration

The CI pipeline is written in Make and uses Docker containers, no external dependencies like go or nodejs are required to build, test and deploy the services.

# build the UI with webpack and the golang binaries for Alpine
$ make build APP_VERSION=0.0.1
# run integration tests
$ make build test APP_VERSION=0.0.1 RDB=192.168.1.135:28015 NATS=nats://192.168.1.135:4222
# push Docker images to registry
$ make build pack push APP_VERSION=0.0.1 REGISTRY=index.docker.io REPOSITORY=stefanprodan
# remove test containers and local images
$ make purge APP_VERSION=0.0.1

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL