Tutum
The Story So Far
Image
Your application and all it's dependencies packaged together.
gazelle/wit:latest
OS: Debian
Language: Ruby
App: WIT
Gems + Packages
Describing the Environment
Service
tst-wit-web:
image: 'tutum.co/gazelle/wit:latest'
deployment_strategy: high_availability
environment:
- FORCE_SSL=1
- RACK_ENV=staging
- 'VIRTUAL_HOST=https://wit-tst.cns.gazelle.com,http://wit-tst.cns.gazelle.com'
expose:
- '8080'
tags:
- open
- tst
Stack
tst-wit-lb:
image: 'tutum/haproxy:latest'
deployment_strategy: high_availability
environment:
- BACKEND_PORT=8080
- 'DEFAULT_SSL_CERT=-----BEGIN PRIVATE KEY----------END CERTIFICATE-----'
- 'OPTION=http-server-close, redispatch, httplog, dontlognull, forwardfor'
- 'SSL_BIND_CIPHERS=ECDHE-RSA-AES128-GCM-SHA256'
- 'STATS_AUTH=admin:password'
links:
- tst-wit-web
ports:
- '80:80'
- '443:443'
- '1936:1936'
restart: always
roles:
- global
tags:
- open
- tst
tst-wit-web:
image: 'tutum.co/gazelle/wit:latest'
deployment_strategy: high_availability
environment:
- FORCE_SSL=1
- RACK_ENV=staging
- 'VIRTUAL_HOST=https://wit-tst.cns.gazelle.com,http://wit-tst.cns.gazelle.com'
expose:
- '8080'
tags:
- open
- tst
Running the Environment
Node
172.31.255.255
An AWS instance that hosts containers
Docker
Daemon
tst-wit-lb
tst-wit-web
Node Cluster
A collection of nodes with the same attributes:
- Tags
- VPC
- Subnet
- Security
VPC: tutum-open-vpc
Tags: tst, open, t2large
Subnet: tutum-open-subnet
Security group: tst-tutum-vpc
172.31.255.255
172.31.255.255
172.31.255.255
172.31.255.255
172.31.255.255
172.31.255.255
Networking
Ports
172.31.255.255
tst-wit-web
serves
8080
app
container
expose
8080
as
8080
publishes
8080
Publishing Ports
172.31.255.255
A node can only publish port 8080 for one app
tst-sort-web
tst-wit-web
8080
8080
Overlay Network
172.31.255.255
A software network that treats containers like nodes
tst-wit-web
tst-multi-lb
link
8080
expose
8080
publish
8080
link
8080
tst-sort-web
Demo
CLI
> brew install tutum
> tutum login
user: gazelle
password: **********
# Tails combined log of all instances of this service
> tutum service logs -f tst-wit-web
# Connects to the running instance
> tutum container exec tst-wit-web-1 bash
# After an instance is terminated, it sticks around for a little bit, so names can clash.
# Use this to find the ID of the container.
> tutum container ps | grep tst-wit-web
> tutum container exec af2342 bash
问题?
Tutum
By blatyo
Tutum
- 857