Syros Save Abandoned

DevOps tool for managing microservices

Project README


Build Status

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


  • Syros Agent (collects various system information)
  • Syros Indexer (aggregates, transforms and persists collected data)
  • Syros App (management UI and API)
  • Syros PGHA (automatic failover and split brain mitigation for PostgreSQL repmgr clusters)
  • Syros Deployctl (CD tool for Docker containers, PostgreSQL/Kafka/OpenTSDB migrations)


  • NATS (communication backbone)
  • MongoDB (persistence layer)
  • Consul (service registry, monitoring, leader election)


HA Setup:

  • Agent: 2 instances per environment or one per host, indexer will do deduplication
  • Indexer: 2 instances per environment, NATS will load balance the messages between instances
  • App: one per environment, HAProxy or NGNIX can be used but not required
  • NATS: 3 instances minimum
  • MongoDB: 3 instances minimum



  • Docker (engine info, containers specs and stats)
  • Consul (service registry, health checks)
  • vSphere (clusters, datastores, networks, physical hosts specs, virtual machines specs and stats)


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


  • 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
$ git clone
$ cd syros
# install go dependencies
$ go get -u
$ dep ensure
# install node dependencies
$ cd ui
$ npm install

Run locally:

# start NATS and MongoDB
$ docker-compose up -d
# build and run all services
$ make build run APP_VERSION=0.0.1 MONGO= NATS=nats://
# 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

Profiling on macOS

# install graphviz
brew install gperftools
brew install graphviz
# install pprof
go get
# CPU profile
pprof --web localhost:8887/debug/pprof/profile
# goroutine profile
pprof -web localhost:8886/debug/pprof/goroutine
# memory profile

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 MONGO= NATS=nats://
# push Docker images to registry
$ make build pack push APP_VERSION=0.0.1 REPOSITORY=stefanprodan
# remove test containers and local images
$ make purge APP_VERSION=0.0.1
Open Source Agenda is not affiliated with "Syros" Project. README Source: stefanprodan/syros
Open Issues
Last Commit
3 years ago

Open Source Agenda Badge

Open Source Agenda Rating