Serviced is a PaaS runtime. It allows users to create, manage and scale services in a uniform way.
Switch branches/tags
Clone or download
csmouse Merge pull request #3711 from control-center/feature/CC-3559
Add deadlock detection support to healthchecks
Latest commit 7fd85a5 Sep 24, 2018
Permalink
Failed to load latest commit information.
Godeps bumped the build image to use go1.7.4 Dec 7, 2016
acceptance Update UI tests to retry checking the resource button Feb 6, 2018
audit Added cc audit logging for service starts (#3545) Jun 5, 2017
auth Make groups a string slice Aug 14, 2018
build update build to use xenial; also make xenial deb files Jan 22, 2018
chef/serviced added instructions for pulling down required cookbooks Oct 11, 2013
cli Make groups a string slice Aug 14, 2018
commons CC-4119 memory leak in commons/queue/queue.go Aug 8, 2018
config Make groups a string slice Aug 14, 2018
container Add deadlock detection support to healthchecks Sep 20, 2018
coordinator go fmt Jul 17, 2017
dao Expose 'service pause' to the serviced cli. Jun 12, 2018
datastore Feature/CC-3494 Add facilities for CC audit logging (#3534) May 22, 2017
dfs Fix tests Jul 18, 2017
dita removed celery isvc and scheduled tasks Sep 14, 2016
doc fixes CC-843: moved licenses and copyright to correct place May 14, 2015
domain Add deadlock detection support to healthchecks Sep 20, 2018
facade Preserve NatIP during updateHost Jul 19, 2018
health Add deadlock detection support to healthchecks Sep 20, 2018
isvcs upadate proxy image; tell api-key-proxy to use TLS; update healthcheck ( Aug 1, 2018
logging Add unit tests around logging configuration Oct 19, 2016
metrics Remove space in struct field tag. Aug 24, 2018
node CC-3959: Fix the CC API port mapping when full interface:port is given Dec 1, 2017
pkg Make groups a string slice Aug 14, 2018
proxy Update the mux to use the new code Oct 20, 2016
rpc Addressed PR comments Mar 6, 2018
scheduler update comment to reflect change underlying logic Sep 22, 2017
script Replace glog w/logrus in script Feb 13, 2017
serviced-controller Consolidate retrieval and defaults for /usr/local/serviced/... May 4, 2017
servicedversion Adds "addme" method to serviced Mar 5, 2018
shell Consolidate retrieval and defaults for /usr/local/serviced/... May 4, 2017
stats Make the tagmap for each metric in each storage registry. Jan 18, 2017
testfiles initial commit. Aug 13, 2013
tools Force the -o dm.thinpooldev option in serviced-storage check Sep 13, 2017
utils update serviced to take either array of strings or string for audience Jul 18, 2018
vagrant added vagrantfiles for ubuntu & fedora Oct 10, 2013
validation fixes CC-2019: Serviced private subnet should accept cidr addresses Jun 2, 2016
vendor Add simple backoff to glog<->logstash integration May 17, 2017
volume Unescape the ascii code for the plus sympol Sep 27, 2017
web add flag to toggle whether api key proxy isvc runs Jul 24, 2018
zzk CC-4082 Host disconnect should reflect timeout duration int he logs May 8, 2018
.clocignore adding Godeps to SLOC ignore Sep 6, 2016
.gitignore pin yarn, nodejs, and dep version numbers Nov 29, 2016
AUTHORS reorganize and implement rsync snapshots Jan 28, 2014
CONTRIBUTORS Update CONTRIBUTORS Aug 7, 2014
LICENSE add Apache 2.0 license, standardize headers Jul 15, 2014
README.md test pr builder with webhooks Jul 20, 2017
VERSION Bump develop to 1.6.2 Aug 28, 2018
acceptance.sh Setup proper SERVICED_HOME for smoke and acceptance tests May 5, 2017
api_acceptance.sh Setup proper SERVICED_HOME for smoke and acceptance tests May 5, 2017
build-tags.sh Calculate build tags dynamically based on the environment Aug 3, 2015
convert-btrfs-to-devicemapper.sh CC-1064: Add warning text for single-host systems Jul 6, 2015
get_govet.sh Workaround for govet incompatiblity with GO 1.4.2 Jan 7, 2016
gitstatus.sh add version subcommand Jul 11, 2014
jenkins_rc.sh bumped the build image to use go1.7.4 Dec 7, 2016
main.go Add LogControl interface for unit tests Oct 19, 2016
makefile don't make version variable as other projects have a dependency Jan 22, 2018
serviced-bash-completion.sh Generate completion matches only when valid options exist Jan 11, 2017
serviced-tests.py Refactor - change serviced-tests.py to use a more recent isvc image Aug 10, 2017
smoke.py Path to serviced in a more better manner Nov 29, 2016
smoke.sh Setup proper SERVICED_HOME for smoke and acceptance tests May 5, 2017
test_lib.sh Update test_lib.sh Feb 6, 2018

README.md

serviced

Serviced is a PaaS runtime. It allows users to create, manage and scale services in a uniform way.

Installation

Serviced can run on a single host or across multiple hosts. First, serviced depends on docker.

  1. Follow the instruction at http://www.docker.io/ , to install it on every host that serviced will run on. Ensure docker is running.

  2. Install a generated package

    sudo apt-key adv --keyserver keys.gnupg.net --recv-keys AA5A1AD7  REPO=http://get.zenoss.io/apt/ubuntu sudo sh -c 'echo "deb [ arch=amd64 ] '${REPO}' trusty universe"
    > /etc/apt/sources.list.d/zenoss.list' sudo apt-get update sudo apt-get install -y serviced

    Or follow the steps below in the dev section to a source build.

  3. Start the service. On ubuntu,

start serviced

There will be some delay the first time serviced is started before it is ready for user requests. You can track the output of serviced at /var/log/upstart/serviced.log.

  1. Browse the UI at https://localhost

Usage

Serviced is a platform for running services. Serviced is composed of a master serviced process and agent processes running on each host. Each host must be registered with the master process. To register a agent process:

serviced host add HOST:PORT RESOURCE_POOL

Dev Environment

Serviced is written in go. To install go, download go v1.4 from http://golang.org. Untar the distribution to /usr/local/go. If you use a different location for go, you must set GOROOT. See the http://www.golang.org for more information. Ensure that $GOROOT/bin is in you path.

Add your development user to the "docker" group.

sudo usermod -G docker -a $USER

Ubuntu 14.04 is the typical development environment. There are additional dependencies your install will need.

sudo apt-get install git mercurial libpam0g-dev make

With $GOROOT set and $GOROOT/bin in your $PATH, create a development workspace.

export GOPATH=~/mygo
export PATH="$PATH:$GOPATH/bin"
mkdir -p $GOPATH/{bin,pkg,src}
mkdir -p $GOPATH/src/github.com/control-center
cd $GOPATH/src/github.com/control-center
git clone git@github.com:control-center/serviced
    # alternatively: git clone https://github.com/control-center/serviced
cd serviced
make

After this, a binary should exist at $GOPATH/bin/serviced & $GOPATH/src/github.com/control-center/serviced/serviced. You can run the server with

sudo serviced -master