SlideShare ist ein Scribd-Unternehmen logo
1 von 21
https://github.com/DockerKorea/pharos
https://github.com/DockerKorea/pharos-web
gopass2002@gmail.com
Pharos
 Docker Cluster Monitoring tool
 container resource monitoring
 container event monitoring
 lifecycle, resource alert, …
Daemons
 LightKeeper
 노드 당 한개 씩 존재하며, 해당 노드에서 동작 중인 컨테이너의
메트릭스 정보, 이벤트 정보를 수집
 LightTower
 클러스터에 한 개가 존재하며, 클러스터의 정보를 클라이언트에게
제공
 이벤트 boradcast
/proc
|-- 1
|-- 10
|-- 1001
|-- 1004
|-- 1019
|-- 10331
|-- 1025
|-- 10289
|-- 1029
|-- 10290
|-- 1030
|-- 1031
|-- 10676
|-- 10729
|-- 10730
|-- 10742
`-- ...
docker top ab555b981
UID PID PPID C STIME TTY TIME CMD
root 10331 16849 0 06:31 ? 00:00:00 ping 8.8.8.8
/proc/10331/
|-- cmdline
|-- cpuset
|-- environ
|-- io
|-- mem
|-- mountinfo
|-- mounts
|-- mountstats
|-- net
| |-- dev
| |-- stat
| |-- tcp
| |-- udp
| |-- unix
| `-- ...
|-- stack
|-- stat
|-- status
|-- task
| `-- 10331
`-- ...
Light Keeper Light Tower
Pharos
collect
lookup
lookup
Mount host:/proc -> container:/pharos/proc
Docker Node
Metric
Collector
Event
Monitor
LightKeeper
Other Containers
(File, mongoDB)
Storage
collect
Command Line
Interface
Web
Interface
event
query
Docker Node
Metric
Collector
Event
Monitor
LightKeeper
Other Containers
collect event
events events
Broadcast
Event
metrics metrics
LightTower
Event Collector REST API
pharos
|-- __init__.py
|-- cli
| |-- __init__.py
| |-- cluster.py
| `-- main.py
|-- common
| |-- __init__.py
| |-- data.py
| `-- util.py
|-- config.py
|-- display
| |-- __init__.py
| `-- window.py
|-- lightkeeper
| |-- __init__.py
| |-- main.py
| `-- node.py
|-- lighttower
| |-- __init__.py
| |-- container.py
| |-- event.py
| |-- main.py
| `-- node.py
`-- storage
`-- mongodb.py
python(2.7.x)를 기준으로 구현 (go로 전환할 수 있는 여지
있음)
주요 외부 package
• psutil: process 단위 metrics 수집
• pymongo: mongoDB python client
• docker-py: docker remote api python client
• requests: http 호출
• pyyaml: configuration
Create
Export
Destroy
Kill
Restart
Unpause
Die
Pause
Start Stop
• event의 예
• 생명주기
• 생명주기 관련 이벤트 컨테이너의 non-zero return code
life_cycle#ubuntu-dev#d2n9j29f1#{Id: d2n9j29f1…, status: stop, exit_code: -1}
• 분산 노드에서 동작 중인 컨테이너를 control 할 수 있게 구현 필요(docker remote API)
(run, stop, kill, inspect, …
• 자원 *
• 컨테이너의 의도치 않은 자원의 과도한 점유
(할당한 자원보다 더 많은 자원 점유)
res_alert#ubuntu-dev#d2n9j29f1#{resource metrics…}
• event message 구조 정의
• 다양한 언어의 listener를 지원 (python, java, javascript …)
Broadcast Event
Event Listener API
Subscribe
class EventListener(object):
def __init__(self, host, containerId):
# connect to publisher
...
def subscribe(self, kindOfEvent, handler):
registerSubsctibeTopic(kindOfEvent, handler)
...
def listen(self):
# support asynchronize(non-blocking) listener
while True:
event = subscriber.recvEvents()
getHandler(event.kindOfEvent).call(event, contoller)
...
def lifeCycleHandler(event, controller):
# do something
if event.status == 'stop' and event.exitCode != 0:
controller.restart(event.containerId)
interface EventListener{
void onContainerStarted(Event event, ContainerController controller);
void onContainerStopped(Event event, ContainerController controller);
void onContainerKilled(Event event, ContainerController controller);
void onContainerPaused(Event event, ContainerController controller);
void onContainerUnpaused(Event event, ContainerController controller);
}
class LifeCycleEventHandler implements EventListener{
@Override
public void onContainerStarted(Event event, ContainerController controller) {
//do something
}
@Override
public void onContainerStopped(Event event, ContainerController controller) {
//do something
}
@Override
public void onContainerKilled(Event event, ContainerController controller) {
//do something
}
@Override
public void onContainerPaused(Event event, ContainerController controller) {
//do something
}
@Override
public void onContainerUnpaused(Event event, ContainerController controller) {
//do something
}
...
}
https://github.com/imatix/zguide/tree/master/examples/
Ada Replace old XREP and XREQ examples with ROUTER and DEALER 3 years ago
Basic Improved code blocks throughout text. 4 years ago
C# fixed C# rrbroker bug 11 months ago
C++ Simplify C++ version of hwserver 3 months ago
C Include time.h and sys/time.h on Linux systems 2 months ago
CL Edited Chapter 4 2 years ago
Clojure add caveat for interop between jzmq/jeromq. 27 days ago
Delphi Rebuilt whole Guide a year ago
Erlang Edited Chapter 4 2 years ago
F# Edited Chapter 4 2 years ago
Felix Added Felix README file 3 years ago
Go Add three examples in Go for Chapter 3, including peering1/2/3.go 9 months ago
Haskell Merge branch 'master' of git://github.com/imatix/zguide a month ago
Haxe Edited Chapter 4 2 years ago
Java Handle state when broker doesn't respond 3 months ago
Lua Edited Chapter 4 2 years ago
Node.js Add Node.js version of `identity` example 11 months ago
OCaml Adding tasksink2 and taskwork2 to OCaml examples. a month ago
Objective-C Fix examples in CL, Closure, Haskell, Objective-C 3 years ago
PHP Fix unknown variable $request 2 months ago
Perl lpclient.pl: move main code loop into a main() sub. 6 months ago
Python Fix that when a variable with ttl=0 was created it was deleted direct… 8 months ago
Q Rewrote most of Chapter 3 2 years ago
Racket Updating examples for Planet 2 package system 2 years ago
Ruby Correct 'ZMQ::Device.new' wrt. method signature 6 months ago
Scala added example for lazy pirate server in Scala 2 months ago
Tcl Fixed comments in examples 9 months ago
listings Work on Clone Server 4 4 years ago
models mdp_worker.md changed because of the fix in specs.gsl a month ago
ooc Improved code blocks throughout text. 4 years ago
Language/Framework Name Repository Status
C# Docker.DotNet https://github.com/ahmetalpbalkan/Docker.DotNet Active
Erlang erldocker https://github.com/proger/erldocker Active
Go go-dockerclient https://github.com/fsouza/go-dockerclient Active
Go dockerclient https://github.com/samalba/dockerclient Active
Groovy docker-client https://github.com/gesellix-docker/docker-client Active
Java docker-java https://github.com/docker-java/docker-java Active
Java docker-client https://github.com/spotify/docker-client Active
Java jclouds-docker https://github.com/jclouds/jclouds-labs/tree/master/docker Active
JavaScript (NodeJS) dockerode https://github.com/apocas/dockerode Install via NPM: npm install dockerode Active
JavaScript (NodeJS) docker.io https://github.com/appersonlabs/docker.io Install via NPM: npm install docker.io Active
JavaScript docker-js https://github.com/dgoujard/docker-js Outdated
JavaScript (Angular)WebUI docker-cp https://github.com/13W/docker-cp Active
JavaScript (Angular)WebUI dockerui https://github.com/crosbymichael/dockerui Active
Perl Net::Docker https://metacpan.org/pod/Net::Docker Active
Perl Eixo::Docker https://github.com/alambike/eixo-docker Active
PHP Alvine http://pear.alvine.io/ (alpha) Active
PHP Docker-PHP http://stage1.github.io/docker-php/ Active
Python docker-py https://github.com/docker/docker-py Active
Ruby docker-api https://github.com/swipely/docker-api Active
Ruby docker-client https://github.com/geku/docker-client Outdated
Rust docker-rust https://github.com/abh1nav/docker-rust Active
Scala tugboat https://github.com/softprops/tugboat Active
Scala reactive-docker https://github.com/almoehi/reactive-docker Active
https://docs.docker.com/reference/api/remote_api_client_libraries/
• Storage의 경량화(dockerize), 다양화
• Pharos 설치 용의성 향상, 경량화
• MongoDB(현재) -> Redis, statsD …
• 다양한 언어의 Event Listener 지원 필요
• python, java, nodejs …
• Visualize
• D3, Graphite …
• License
• 코드 개작을 제외한 모든 것 허용
• 테스트 서버 공유
• AWS …
앞으로..

Weitere ähnliche Inhalte

Was ist angesagt?

OTcl and C++ linkages in NS2
OTcl and C++ linkages in NS2OTcl and C++ linkages in NS2
OTcl and C++ linkages in NS2Pradeep Kumar TS
 
Job Queue in Golang
Job Queue in GolangJob Queue in Golang
Job Queue in GolangBo-Yi Wu
 
Kubernetes Probes (Liveness, Readyness, Startup) Introduction
Kubernetes Probes (Liveness, Readyness, Startup) IntroductionKubernetes Probes (Liveness, Readyness, Startup) Introduction
Kubernetes Probes (Liveness, Readyness, Startup) IntroductionAkhmadZakiAlsafi
 
Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)Alexey Fyodorov
 
Kotlin for backend development (Hackaburg 2018 Regensburg)
Kotlin for backend development (Hackaburg 2018 Regensburg)Kotlin for backend development (Hackaburg 2018 Regensburg)
Kotlin for backend development (Hackaburg 2018 Regensburg)Tobias Schneck
 
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...Puppet
 
Servlet Async I/O Proposal (NIO.2)
Servlet Async I/O Proposal (NIO.2)Servlet Async I/O Proposal (NIO.2)
Servlet Async I/O Proposal (NIO.2)jfarcand
 
XebiCon'16 : Server-Side Swift. Par Simone Civetta, Développeur iOS chez Xebia
XebiCon'16 : Server-Side Swift. Par Simone Civetta, Développeur iOS chez XebiaXebiCon'16 : Server-Side Swift. Par Simone Civetta, Développeur iOS chez Xebia
XebiCon'16 : Server-Side Swift. Par Simone Civetta, Développeur iOS chez XebiaPublicis Sapient Engineering
 
Node.js/io.js Native C++ Addons
Node.js/io.js Native C++ AddonsNode.js/io.js Native C++ Addons
Node.js/io.js Native C++ AddonsChris Barber
 
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;Tzung-Bi Shih
 
Hibernate Import.Sql I18n
Hibernate Import.Sql I18nHibernate Import.Sql I18n
Hibernate Import.Sql I18nyifi2009
 
Dynamo: Not Just For Datastores
Dynamo: Not Just For DatastoresDynamo: Not Just For Datastores
Dynamo: Not Just For DatastoresSusan Potter
 
Bridge TensorFlow to run on Intel nGraph backends (v0.4)
Bridge TensorFlow to run on Intel nGraph backends (v0.4)Bridge TensorFlow to run on Intel nGraph backends (v0.4)
Bridge TensorFlow to run on Intel nGraph backends (v0.4)Mr. Vengineer
 
node.js and native code extensions by example
node.js and native code extensions by examplenode.js and native code extensions by example
node.js and native code extensions by examplePhilipp Fehre
 
Csw2016 gong pwn_a_nexus_device_with_a_single_vulnerability
Csw2016 gong pwn_a_nexus_device_with_a_single_vulnerabilityCsw2016 gong pwn_a_nexus_device_with_a_single_vulnerability
Csw2016 gong pwn_a_nexus_device_with_a_single_vulnerabilityCanSecWest
 
Non blocking io with netty
Non blocking io with nettyNon blocking io with netty
Non blocking io with nettyZauber
 

Was ist angesagt? (20)

OTcl and C++ linkages in NS2
OTcl and C++ linkages in NS2OTcl and C++ linkages in NS2
OTcl and C++ linkages in NS2
 
Job Queue in Golang
Job Queue in GolangJob Queue in Golang
Job Queue in Golang
 
Kubernetes Probes (Liveness, Readyness, Startup) Introduction
Kubernetes Probes (Liveness, Readyness, Startup) IntroductionKubernetes Probes (Liveness, Readyness, Startup) Introduction
Kubernetes Probes (Liveness, Readyness, Startup) Introduction
 
Event loop
Event loopEvent loop
Event loop
 
Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)
 
Kotlin for backend development (Hackaburg 2018 Regensburg)
Kotlin for backend development (Hackaburg 2018 Regensburg)Kotlin for backend development (Hackaburg 2018 Regensburg)
Kotlin for backend development (Hackaburg 2018 Regensburg)
 
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
 
devday2012
devday2012devday2012
devday2012
 
Servlet Async I/O Proposal (NIO.2)
Servlet Async I/O Proposal (NIO.2)Servlet Async I/O Proposal (NIO.2)
Servlet Async I/O Proposal (NIO.2)
 
Reactive server with netty
Reactive server with nettyReactive server with netty
Reactive server with netty
 
XebiCon'16 : Server-Side Swift. Par Simone Civetta, Développeur iOS chez Xebia
XebiCon'16 : Server-Side Swift. Par Simone Civetta, Développeur iOS chez XebiaXebiCon'16 : Server-Side Swift. Par Simone Civetta, Développeur iOS chez Xebia
XebiCon'16 : Server-Side Swift. Par Simone Civetta, Développeur iOS chez Xebia
 
Node.js/io.js Native C++ Addons
Node.js/io.js Native C++ AddonsNode.js/io.js Native C++ Addons
Node.js/io.js Native C++ Addons
 
R snippet
R snippetR snippet
R snippet
 
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
 
Hibernate Import.Sql I18n
Hibernate Import.Sql I18nHibernate Import.Sql I18n
Hibernate Import.Sql I18n
 
Dynamo: Not Just For Datastores
Dynamo: Not Just For DatastoresDynamo: Not Just For Datastores
Dynamo: Not Just For Datastores
 
Bridge TensorFlow to run on Intel nGraph backends (v0.4)
Bridge TensorFlow to run on Intel nGraph backends (v0.4)Bridge TensorFlow to run on Intel nGraph backends (v0.4)
Bridge TensorFlow to run on Intel nGraph backends (v0.4)
 
node.js and native code extensions by example
node.js and native code extensions by examplenode.js and native code extensions by example
node.js and native code extensions by example
 
Csw2016 gong pwn_a_nexus_device_with_a_single_vulnerability
Csw2016 gong pwn_a_nexus_device_with_a_single_vulnerabilityCsw2016 gong pwn_a_nexus_device_with_a_single_vulnerability
Csw2016 gong pwn_a_nexus_device_with_a_single_vulnerability
 
Non blocking io with netty
Non blocking io with nettyNon blocking io with netty
Non blocking io with netty
 

Andere mochten auch

Docker registry swift_junojunho
Docker registry swift_junojunhoDocker registry swift_junojunho
Docker registry swift_junojunhoJunho Kim
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_startSukjin Yun
 
boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기
boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기
boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기창훈 정
 
Docker registry swift
Docker registry swiftDocker registry swift
Docker registry swiftJunho Kim
 
Docker Casual Talk #2 - Dockerizing newrelic-sysmond
Docker Casual Talk #2 - Dockerizing newrelic-sysmondDocker Casual Talk #2 - Dockerizing newrelic-sysmond
Docker Casual Talk #2 - Dockerizing newrelic-sysmondDaegwon Kim
 
[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08Nomad Connection, Inc.
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude Kim
 
포스테키안 서평공모전 당선작(2016-1)
포스테키안 서평공모전 당선작(2016-1)포스테키안 서평공모전 당선작(2016-1)
포스테키안 서평공모전 당선작(2016-1)POSTECH Library
 
국회입법조사처 발암성물질 관리체계 개선방안(2010)
국회입법조사처 발암성물질 관리체계 개선방안(2010)국회입법조사처 발암성물질 관리체계 개선방안(2010)
국회입법조사처 발암성물질 관리체계 개선방안(2010)여성환경연대
 
Docker 와 Python 으로 아카마이 API 5분만에 사용해보기!
Docker 와 Python 으로 아카마이 API 5분만에 사용해보기!Docker 와 Python 으로 아카마이 API 5분만에 사용해보기!
Docker 와 Python 으로 아카마이 API 5분만에 사용해보기!Seung Heun Noh
 
가장 빨리 만나는 Docker 출간 후기
가장 빨리 만나는 Docker 출간 후기가장 빨리 만나는 Docker 출간 후기
가장 빨리 만나는 Docker 출간 후기pyrasis
 
Introduce Docker
Introduce DockerIntroduce Docker
Introduce DockerYongbok Kim
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS충섭 김
 
005.총공급과 총수요
005.총공급과 총수요005.총공급과 총수요
005.총공급과 총수요Namun Cho
 
도커를 이용한 파이썬 모듈 배포하기
도커를 이용한 파이썬 모듈 배포하기도커를 이용한 파이썬 모듈 배포하기
도커를 이용한 파이썬 모듈 배포하기JunSeok Seo
 
Dockerfile과 Bash
Dockerfile과 BashDockerfile과 Bash
Dockerfile과 Bashpyrasis
 
aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편negabaro
 

Andere mochten auch (20)

Pyramids
PyramidsPyramids
Pyramids
 
Docker registry swift_junojunho
Docker registry swift_junojunhoDocker registry swift_junojunho
Docker registry swift_junojunho
 
정책가이드북
정책가이드북 정책가이드북
정책가이드북
 
RZDESK-Docker hackday
RZDESK-Docker hackdayRZDESK-Docker hackday
RZDESK-Docker hackday
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_start
 
boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기
boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기
boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기
 
Docker registry swift
Docker registry swiftDocker registry swift
Docker registry swift
 
Docker Casual Talk #2 - Dockerizing newrelic-sysmond
Docker Casual Talk #2 - Dockerizing newrelic-sysmondDocker Casual Talk #2 - Dockerizing newrelic-sysmond
Docker Casual Talk #2 - Dockerizing newrelic-sysmond
 
[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 
포스테키안 서평공모전 당선작(2016-1)
포스테키안 서평공모전 당선작(2016-1)포스테키안 서평공모전 당선작(2016-1)
포스테키안 서평공모전 당선작(2016-1)
 
국회입법조사처 발암성물질 관리체계 개선방안(2010)
국회입법조사처 발암성물질 관리체계 개선방안(2010)국회입법조사처 발암성물질 관리체계 개선방안(2010)
국회입법조사처 발암성물질 관리체계 개선방안(2010)
 
Docker 와 Python 으로 아카마이 API 5분만에 사용해보기!
Docker 와 Python 으로 아카마이 API 5분만에 사용해보기!Docker 와 Python 으로 아카마이 API 5분만에 사용해보기!
Docker 와 Python 으로 아카마이 API 5분만에 사용해보기!
 
가장 빨리 만나는 Docker 출간 후기
가장 빨리 만나는 Docker 출간 후기가장 빨리 만나는 Docker 출간 후기
가장 빨리 만나는 Docker 출간 후기
 
Introduce Docker
Introduce DockerIntroduce Docker
Introduce Docker
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
 
005.총공급과 총수요
005.총공급과 총수요005.총공급과 총수요
005.총공급과 총수요
 
도커를 이용한 파이썬 모듈 배포하기
도커를 이용한 파이썬 모듈 배포하기도커를 이용한 파이썬 모듈 배포하기
도커를 이용한 파이썬 모듈 배포하기
 
Dockerfile과 Bash
Dockerfile과 BashDockerfile과 Bash
Dockerfile과 Bash
 
aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편
 

Ähnlich wie Pharos

Architecting Alive Apps
Architecting Alive AppsArchitecting Alive Apps
Architecting Alive AppsJorge Ortiz
 
Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Docker, Inc.
 
Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018Phil Estes
 
Scaling docker with kubernetes
Scaling docker with kubernetesScaling docker with kubernetes
Scaling docker with kubernetesLiran Cohen
 
Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant Ricardo Amaro
 
JDD2015: Kubernetes - Beyond the basics - Paul Bakker
JDD2015: Kubernetes - Beyond the basics - Paul BakkerJDD2015: Kubernetes - Beyond the basics - Paul Bakker
JDD2015: Kubernetes - Beyond the basics - Paul BakkerPROIDEA
 
Drupalcamp es 2013 drupal with lxc docker and vagrant
Drupalcamp es 2013  drupal with lxc docker and vagrant Drupalcamp es 2013  drupal with lxc docker and vagrant
Drupalcamp es 2013 drupal with lxc docker and vagrant Ricardo Amaro
 
The Ring programming language version 1.7 book - Part 75 of 196
The Ring programming language version 1.7 book - Part 75 of 196The Ring programming language version 1.7 book - Part 75 of 196
The Ring programming language version 1.7 book - Part 75 of 196Mahmoud Samir Fayed
 
containerD
containerDcontainerD
containerDstrikr .
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developerPaul Czarkowski
 
The Ring programming language version 1.8 book - Part 77 of 202
The Ring programming language version 1.8 book - Part 77 of 202The Ring programming language version 1.8 book - Part 77 of 202
The Ring programming language version 1.8 book - Part 77 of 202Mahmoud Samir Fayed
 
The Ring programming language version 1.5.1 book - Part 12 of 180
The Ring programming language version 1.5.1 book - Part 12 of 180The Ring programming language version 1.5.1 book - Part 12 of 180
The Ring programming language version 1.5.1 book - Part 12 of 180Mahmoud Samir Fayed
 
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexusMicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexusEmily Jiang
 
Docker Athens: Docker Engine Evolution & Containerd Use Cases
Docker Athens: Docker Engine Evolution & Containerd Use CasesDocker Athens: Docker Engine Evolution & Containerd Use Cases
Docker Athens: Docker Engine Evolution & Containerd Use CasesPhil Estes
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsRamit Surana
 
Understanding and Extending Prometheus AlertManager
Understanding and Extending Prometheus AlertManagerUnderstanding and Extending Prometheus AlertManager
Understanding and Extending Prometheus AlertManagerLee Calcote
 
Overview of Zookeeper, Helix and Kafka (Oakjug)
Overview of Zookeeper, Helix and Kafka (Oakjug)Overview of Zookeeper, Helix and Kafka (Oakjug)
Overview of Zookeeper, Helix and Kafka (Oakjug)Chris Richardson
 
Taming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, MacoscopeTaming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, MacoscopeMacoscope
 

Ähnlich wie Pharos (20)

Architecting Alive Apps
Architecting Alive AppsArchitecting Alive Apps
Architecting Alive Apps
 
Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...
 
Kubernetes debug like a pro
Kubernetes debug like a proKubernetes debug like a pro
Kubernetes debug like a pro
 
Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018
 
Scaling docker with kubernetes
Scaling docker with kubernetesScaling docker with kubernetes
Scaling docker with kubernetes
 
Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant
 
JDD2015: Kubernetes - Beyond the basics - Paul Bakker
JDD2015: Kubernetes - Beyond the basics - Paul BakkerJDD2015: Kubernetes - Beyond the basics - Paul Bakker
JDD2015: Kubernetes - Beyond the basics - Paul Bakker
 
Curator intro
Curator introCurator intro
Curator intro
 
Drupalcamp es 2013 drupal with lxc docker and vagrant
Drupalcamp es 2013  drupal with lxc docker and vagrant Drupalcamp es 2013  drupal with lxc docker and vagrant
Drupalcamp es 2013 drupal with lxc docker and vagrant
 
The Ring programming language version 1.7 book - Part 75 of 196
The Ring programming language version 1.7 book - Part 75 of 196The Ring programming language version 1.7 book - Part 75 of 196
The Ring programming language version 1.7 book - Part 75 of 196
 
containerD
containerDcontainerD
containerD
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
 
The Ring programming language version 1.8 book - Part 77 of 202
The Ring programming language version 1.8 book - Part 77 of 202The Ring programming language version 1.8 book - Part 77 of 202
The Ring programming language version 1.8 book - Part 77 of 202
 
The Ring programming language version 1.5.1 book - Part 12 of 180
The Ring programming language version 1.5.1 book - Part 12 of 180The Ring programming language version 1.5.1 book - Part 12 of 180
The Ring programming language version 1.5.1 book - Part 12 of 180
 
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexusMicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
 
Docker Athens: Docker Engine Evolution & Containerd Use Cases
Docker Athens: Docker Engine Evolution & Containerd Use CasesDocker Athens: Docker Engine Evolution & Containerd Use Cases
Docker Athens: Docker Engine Evolution & Containerd Use Cases
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
 
Understanding and Extending Prometheus AlertManager
Understanding and Extending Prometheus AlertManagerUnderstanding and Extending Prometheus AlertManager
Understanding and Extending Prometheus AlertManager
 
Overview of Zookeeper, Helix and Kafka (Oakjug)
Overview of Zookeeper, Helix and Kafka (Oakjug)Overview of Zookeeper, Helix and Kafka (Oakjug)
Overview of Zookeeper, Helix and Kafka (Oakjug)
 
Taming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, MacoscopeTaming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, Macoscope
 

Kürzlich hochgeladen

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 

Kürzlich hochgeladen (20)

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 

Pharos

  • 2. Pharos  Docker Cluster Monitoring tool  container resource monitoring  container event monitoring  lifecycle, resource alert, …
  • 3. Daemons  LightKeeper  노드 당 한개 씩 존재하며, 해당 노드에서 동작 중인 컨테이너의 메트릭스 정보, 이벤트 정보를 수집  LightTower  클러스터에 한 개가 존재하며, 클러스터의 정보를 클라이언트에게 제공  이벤트 boradcast
  • 4. /proc |-- 1 |-- 10 |-- 1001 |-- 1004 |-- 1019 |-- 10331 |-- 1025 |-- 10289 |-- 1029 |-- 10290 |-- 1030 |-- 1031 |-- 10676 |-- 10729 |-- 10730 |-- 10742 `-- ... docker top ab555b981 UID PID PPID C STIME TTY TIME CMD root 10331 16849 0 06:31 ? 00:00:00 ping 8.8.8.8 /proc/10331/ |-- cmdline |-- cpuset |-- environ |-- io |-- mem |-- mountinfo |-- mounts |-- mountstats |-- net | |-- dev | |-- stat | |-- tcp | |-- udp | |-- unix | `-- ... |-- stack |-- stat |-- status |-- task | `-- 10331 `-- ... Light Keeper Light Tower Pharos collect lookup lookup Mount host:/proc -> container:/pharos/proc
  • 5. Docker Node Metric Collector Event Monitor LightKeeper Other Containers (File, mongoDB) Storage collect Command Line Interface Web Interface event query Docker Node Metric Collector Event Monitor LightKeeper Other Containers collect event events events Broadcast Event metrics metrics LightTower Event Collector REST API
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. pharos |-- __init__.py |-- cli | |-- __init__.py | |-- cluster.py | `-- main.py |-- common | |-- __init__.py | |-- data.py | `-- util.py |-- config.py |-- display | |-- __init__.py | `-- window.py |-- lightkeeper | |-- __init__.py | |-- main.py | `-- node.py |-- lighttower | |-- __init__.py | |-- container.py | |-- event.py | |-- main.py | `-- node.py `-- storage `-- mongodb.py python(2.7.x)를 기준으로 구현 (go로 전환할 수 있는 여지 있음) 주요 외부 package • psutil: process 단위 metrics 수집 • pymongo: mongoDB python client • docker-py: docker remote api python client • requests: http 호출 • pyyaml: configuration
  • 15. • event의 예 • 생명주기 • 생명주기 관련 이벤트 컨테이너의 non-zero return code life_cycle#ubuntu-dev#d2n9j29f1#{Id: d2n9j29f1…, status: stop, exit_code: -1} • 분산 노드에서 동작 중인 컨테이너를 control 할 수 있게 구현 필요(docker remote API) (run, stop, kill, inspect, … • 자원 * • 컨테이너의 의도치 않은 자원의 과도한 점유 (할당한 자원보다 더 많은 자원 점유) res_alert#ubuntu-dev#d2n9j29f1#{resource metrics…} • event message 구조 정의 • 다양한 언어의 listener를 지원 (python, java, javascript …)
  • 17. class EventListener(object): def __init__(self, host, containerId): # connect to publisher ... def subscribe(self, kindOfEvent, handler): registerSubsctibeTopic(kindOfEvent, handler) ... def listen(self): # support asynchronize(non-blocking) listener while True: event = subscriber.recvEvents() getHandler(event.kindOfEvent).call(event, contoller) ... def lifeCycleHandler(event, controller): # do something if event.status == 'stop' and event.exitCode != 0: controller.restart(event.containerId)
  • 18. interface EventListener{ void onContainerStarted(Event event, ContainerController controller); void onContainerStopped(Event event, ContainerController controller); void onContainerKilled(Event event, ContainerController controller); void onContainerPaused(Event event, ContainerController controller); void onContainerUnpaused(Event event, ContainerController controller); } class LifeCycleEventHandler implements EventListener{ @Override public void onContainerStarted(Event event, ContainerController controller) { //do something } @Override public void onContainerStopped(Event event, ContainerController controller) { //do something } @Override public void onContainerKilled(Event event, ContainerController controller) { //do something } @Override public void onContainerPaused(Event event, ContainerController controller) { //do something } @Override public void onContainerUnpaused(Event event, ContainerController controller) { //do something } ... }
  • 19. https://github.com/imatix/zguide/tree/master/examples/ Ada Replace old XREP and XREQ examples with ROUTER and DEALER 3 years ago Basic Improved code blocks throughout text. 4 years ago C# fixed C# rrbroker bug 11 months ago C++ Simplify C++ version of hwserver 3 months ago C Include time.h and sys/time.h on Linux systems 2 months ago CL Edited Chapter 4 2 years ago Clojure add caveat for interop between jzmq/jeromq. 27 days ago Delphi Rebuilt whole Guide a year ago Erlang Edited Chapter 4 2 years ago F# Edited Chapter 4 2 years ago Felix Added Felix README file 3 years ago Go Add three examples in Go for Chapter 3, including peering1/2/3.go 9 months ago Haskell Merge branch 'master' of git://github.com/imatix/zguide a month ago Haxe Edited Chapter 4 2 years ago Java Handle state when broker doesn't respond 3 months ago Lua Edited Chapter 4 2 years ago Node.js Add Node.js version of `identity` example 11 months ago OCaml Adding tasksink2 and taskwork2 to OCaml examples. a month ago Objective-C Fix examples in CL, Closure, Haskell, Objective-C 3 years ago PHP Fix unknown variable $request 2 months ago Perl lpclient.pl: move main code loop into a main() sub. 6 months ago Python Fix that when a variable with ttl=0 was created it was deleted direct… 8 months ago Q Rewrote most of Chapter 3 2 years ago Racket Updating examples for Planet 2 package system 2 years ago Ruby Correct 'ZMQ::Device.new' wrt. method signature 6 months ago Scala added example for lazy pirate server in Scala 2 months ago Tcl Fixed comments in examples 9 months ago listings Work on Clone Server 4 4 years ago models mdp_worker.md changed because of the fix in specs.gsl a month ago ooc Improved code blocks throughout text. 4 years ago
  • 20. Language/Framework Name Repository Status C# Docker.DotNet https://github.com/ahmetalpbalkan/Docker.DotNet Active Erlang erldocker https://github.com/proger/erldocker Active Go go-dockerclient https://github.com/fsouza/go-dockerclient Active Go dockerclient https://github.com/samalba/dockerclient Active Groovy docker-client https://github.com/gesellix-docker/docker-client Active Java docker-java https://github.com/docker-java/docker-java Active Java docker-client https://github.com/spotify/docker-client Active Java jclouds-docker https://github.com/jclouds/jclouds-labs/tree/master/docker Active JavaScript (NodeJS) dockerode https://github.com/apocas/dockerode Install via NPM: npm install dockerode Active JavaScript (NodeJS) docker.io https://github.com/appersonlabs/docker.io Install via NPM: npm install docker.io Active JavaScript docker-js https://github.com/dgoujard/docker-js Outdated JavaScript (Angular)WebUI docker-cp https://github.com/13W/docker-cp Active JavaScript (Angular)WebUI dockerui https://github.com/crosbymichael/dockerui Active Perl Net::Docker https://metacpan.org/pod/Net::Docker Active Perl Eixo::Docker https://github.com/alambike/eixo-docker Active PHP Alvine http://pear.alvine.io/ (alpha) Active PHP Docker-PHP http://stage1.github.io/docker-php/ Active Python docker-py https://github.com/docker/docker-py Active Ruby docker-api https://github.com/swipely/docker-api Active Ruby docker-client https://github.com/geku/docker-client Outdated Rust docker-rust https://github.com/abh1nav/docker-rust Active Scala tugboat https://github.com/softprops/tugboat Active Scala reactive-docker https://github.com/almoehi/reactive-docker Active https://docs.docker.com/reference/api/remote_api_client_libraries/
  • 21. • Storage의 경량화(dockerize), 다양화 • Pharos 설치 용의성 향상, 경량화 • MongoDB(현재) -> Redis, statsD … • 다양한 언어의 Event Listener 지원 필요 • python, java, nodejs … • Visualize • D3, Graphite … • License • 코드 개작을 제외한 모든 것 허용 • 테스트 서버 공유 • AWS … 앞으로..