All Projects → cnbm → container-orchestration

cnbm / container-orchestration

Licence: Apache-2.0 license
A Benchmark for Container Orchestration Systems

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to container-orchestration

Acs Engine
WE HAVE MOVED: Please join us at Azure/aks-engine!
Stars: ✭ 1,049 (+5421.05%)
Mutual labels:  orchestration, mesos, dcos
Etcd Mesos
self-healing etcd on mesos!
Stars: ✭ 68 (+257.89%)
Mutual labels:  cluster, mesos, dcos
Dcos
DC/OS - The Datacenter Operating System
Stars: ✭ 2,316 (+12089.47%)
Mutual labels:  cluster, mesos, dcos
Minimesos
The experimentation and testing tool for Apache Mesos - NO LONGER MAINTANED!
Stars: ✭ 429 (+2157.89%)
Mutual labels:  cluster, mesos
Dcos Commons
DC/OS SDK is a collection of tools, libraries, and documentation for easy integration of technologies such as Kafka, Cassandra, HDFS, Spark, and TensorFlow with DC/OS.
Stars: ✭ 162 (+752.63%)
Mutual labels:  mesos, dcos
Cook
Fair job scheduler on Kubernetes and Mesos for batch workloads and Spark
Stars: ✭ 314 (+1552.63%)
Mutual labels:  cluster, mesos
Linkerdcosdockerfile
Linker Dcos DockerFile&DockerCompose yml file
Stars: ✭ 8 (-57.89%)
Mutual labels:  mesos, dcos
Verwalter
A tool which manages cluster of services
Stars: ✭ 34 (+78.95%)
Mutual labels:  cluster, orchestration
Orcinus
Agnostic Orchestration Tools
Stars: ✭ 17 (-10.53%)
Mutual labels:  cluster, orchestration
Amp
** THIS PROJECT IS STOPPED ** An open source CaaS for Docker, batteries included.
Stars: ✭ 74 (+289.47%)
Mutual labels:  cluster, orchestration
manager
The API endpoint that manages nebula orchestrator clusters
Stars: ✭ 28 (+47.37%)
Mutual labels:  cluster, orchestration
Scale
Processing framework for containerized algorithms
Stars: ✭ 100 (+426.32%)
Mutual labels:  mesos, dcos
urb-k8s
Kubernetes adapter for Universal Resource Broker
Stars: ✭ 19 (+0%)
Mutual labels:  cluster, mesos
marathon-slack
Integration for Marathon's Event Bus with Slack
Stars: ✭ 42 (+121.05%)
Mutual labels:  mesos, dcos
Picluster
A Simplified Docker Swarm or Kubernetes Alternative to Container Scheduling and Orchestration
Stars: ✭ 390 (+1952.63%)
Mutual labels:  cluster, orchestration
Vault Gatekeeper
A small service for securely delivering Vault authorization keys to Mesos tasks and ECS containers.
Stars: ✭ 83 (+336.84%)
Mutual labels:  mesos, dcos
dcos-autoscaler
Autoscaler for DC/OS hosted in a cloud provider
Stars: ✭ 12 (-36.84%)
Mutual labels:  mesos, dcos
Marathon Lb
Marathon-lb is a service discovery & load balancing tool for DC/OS
Stars: ✭ 449 (+2263.16%)
Mutual labels:  mesos, dcos
kubernetes the easy way
Automating Kubernetes the hard way with Vagrant and scripts
Stars: ✭ 22 (+15.79%)
Mutual labels:  cluster, orchestration
microservices-demo.github.io
The Microservices Demo website.
Stars: ✭ 65 (+242.11%)
Mutual labels:  mesos, dcos

Container Orchestration Benchmark

Go Report Card godoc

The purpose of the container orchestration benchmark (cnbm-co for short) is to provide a vendor-neutral, extendable benchmark for container orchestration systems. The current focus is on stateless workloads and we're implementing it for the following container orchestration systems (targets):

  • DC/OS
  • Kubernetes

If you want to contribute, simply fork this repo, add your implementation in pkg/ and send in a PR.

Contents:

Using

Launching

In general:

$ ./cnbm-co launch -h
Launches the CNBM container orchestration benchmark

Usage:
  cnbm-co launch [flags]

Flags:
  -h, --help             help for launch
  -p, --params string    Comma separated key-value pair list of target-specific configuration parameters. For example: k1=v1,k2=v2
  -r, --runtype string   The benchmark run type. Allowed values: [scaling distribution apicalls servicediscovery recovery]
  -t, --target string    The target container orchestration system to benchmark. Allowed values: [dcos kubernetes]

Global Flags:
      --config string   config file (default is $HOME/.cnbm.yaml)

DC/OS

$ ./cnbm-co launch --runtype scaling --target dcos -p dcosurl=http://example.com,dcosacstoken=123
INFO[0000] Setting up DC/OS scaling benchmark
INFO[0000] Executing DC/OS scaling benchmark
INFO[0000] Deploying a new application
INFO[0000] RESULT:
 Target: DC/OS
 Output: {}
 Elapsed time: 0s

Kubernetes

To benchmark a Kubernetes cluster, use --target kubernetes, for example, to launch the scaling run type, do:

$ ./cnbm-co launch --runtype scaling --target kubernetes --params kubeconfig=/Users/mhausenblas/.kube/config,ns=cnbm,numpods=3,cpu=50m,mem=300Mi
INFO[0000] Setting up Kubernetes scaling benchmark
INFO[0000] Executing Kubernetes scaling benchmark
INFO[0006] Tearing down Kubernetes scaling benchmark
INFO[0008] RESULT:
 Target: Kubernetes
 Output: {benchmark succeeded}
 Elapsed time: 6.752147169s

Note the following params that are required, depending on the --runtype:

  • scaling
    • kubeconfig … the Kubernetes config to use, for example /Users/mhausenblas/.kube/config
    • ns … the namespace to use, for example cnbm
    • numpods … the number of pods to launch, for example, 10
    • cpu … the CPU seconds (at least 40m) per pod
    • mem … the memory (at least 300Mi) per pod
  • servicediscovery
    • kubeconfig … the Kubernetes config to use, for example /Users/mhausenblas/.kube/config
    • ns … the namespace to use, for example cnbm

Availability matrix

The following matrix shows the availability of benchmark run types per target:

benchmark run type DC/OS Kubernetes
scaling Y Y
distribution N N
distribution N N
apicalls N N
servicediscovery N N

Developing

Building

$ make
Building the CNBM CO CLI
go build -ldflags "-X github.com/cnbm/container-orchestration/cli/cmd.releaseVersion=0.1.0" -o ./cnbm-co cli/main.go

Vendoring

We are using Go dep for dependency management. If you don't have dep installed yet, do go get -u github.com/golang/dep/cmd/dep now and then:

$ dep ensure

Testing

For unit tests we use the go test command, for example:

$ go test -v -short -run Test* .
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].