Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Post on 27-Jan-2015

119 views 3 download

Tags:

description

 

transcript

Content Management PlatformFor Business Applications/

2/13/2013 Damien METZLER

Build a cloud platform with Docker

Build a cloud platform with Docker

�2

• Nuxeo : a small introduction

• Running Nuxeo(s) in Docker

• Managing a cloud Platform

Nuxeo : small Intro

�3

Nuxeo : small intro

�4

• Open Source ECM platform

• In java

• Designed for extension

• Nuxeo Studio

Nuxeo : small intro

�5

Nuxeo Studio

�6

Nuxeo.io

• Our approach to PaaS

• Provide one-click Nuxeo deployment to our users

• Integrates all of our services (Studio, Market place, custom add-ons)

• Allow easy and fast deployment

�7

Running Nuxeo(s) in Docker

�8

Running Nuxeo in Docker

�9

• Nuxeo is Java based : runs in Tomcat

• Needs a DB : PostgreSQL

• With some utils• poppler-utils (pdf2html)

• OpenOffice (yes it’s an « util »)

• ImageMagick (image conversion)

Running Nuxeo in Docker

�10

http://www.nuxeo.com/blog/development/2014/01/docker-

containers-nuxeo-part-1/

Running Nuxeo in Docker

�10

http://www.nuxeo.com/blog/development/2014/01/docker-

containers-nuxeo-part-1/

OpenOffice

Running Nuxeo in Docker

�10

http://www.nuxeo.com/blog/development/2014/01/docker-

containers-nuxeo-part-1/

NuxeoOpenOffice

Running Nuxeo in Docker

�10

http://www.nuxeo.com/blog/development/2014/01/docker-

containers-nuxeo-part-1/

NuxeoOpenOffice

ImageMagick

Running Nuxeo in Docker

�10

http://www.nuxeo.com/blog/development/2014/01/docker-

containers-nuxeo-part-1/

PG

NuxeoOpenOffice

ImageMagick

Running Nuxeo in Docker

�10

http://www.nuxeo.com/blog/development/2014/01/docker-

containers-nuxeo-part-1/

PG

NuxeoOpenOffice

ImageMagick

popplers

Running Nuxeo in Docker

�10

http://www.nuxeo.com/blog/development/2014/01/docker-

containers-nuxeo-part-1/

PG

NuxeoOpenOffice

ImageMagick

popplers

Running Nuxeo in Docker

�11

http://www.nuxeo.com/blog/development/2014/01/docker-

containers-nuxeo-part-1/

Running Nuxeo in Docker

�12

PG

NuxeoOpenOffice

ImageMagick

popplers

Running Nuxeo in Docker

�12

PG

NuxeoOpenOffice

ImageMagick

popplers

Running Nuxeo in Docker

�12

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Running Nuxeo in Docker

�12

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Running Nuxeo in Docker

�12

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Running Nuxeo in Docker

�12

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Running Nuxeo in Docker

�12

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Running Nuxeo in Docker

�12

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Running Nuxeo in Docker

�13

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Services

Running Nuxeo in Docker

�13

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Nuxeo

Services

Running Nuxeo in Docker

�13

PG

Nuxeo

OpenOffice

ImageMagick

popplers

NuxeoNuxeo

Services

Running Nuxeo in Docker

�13

PG

Nuxeo

OpenOffice

ImageMagick

popplers

NuxeoNuxeoNuxeo

Services

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

• Running a lot of docker container may be harmful !

• We need some tooling to manage that

�15

Running Nuxeo in Docker

Managing a cloud Platform

�16

Managing a cloud platform

• We need to • Be aware of cluster’s state

• Be able to launch services

• Resilient

�17

Managing a cloud platform

• Based on The Grid (aka Flynn Layer0 http://flynn.io)

• Backed by CoreOS (http://www.coreos.com), small linux distro which provides• etcd (distributed registry)

• systemd (replacement for init.d)

• of course docker

�18

Managing a cloud platform• etcd provides a way to share cluster state

�19

/discover/services

Managing a cloud platform• etcd provides a way to share cluster state

�20

/discover/services/host nxio-core-01 => 192.168.1.20:1113nxio-core-01

etcd

Managing a cloud platform• etcd provides a way to share cluster state

�21

/discover/services/host nxio-core-01 => 192.168.1.20:1113 nxio-core-02 => 192.168.1.21:1113

nxio-core-01

etcd

nxio-core-02

etcd

Managing a cloud platform• etcd provides a way to share cluster state

�22

/discover/services/host nxio-core-01 => 192.168.1.20:1113 nxio-core-02 => 192.168.1.21:1113 /nxio/nxio-01 db-host: …. s3bucket: … domain: mydomain.nuxeo.io mp-packages: [dm, dam…] !

nxio-core-01

etcd

nxio-core-02

etcd

Managing a cloud platform• etcd provides a way to share cluster state

�23

/discover/services/host nxio-core-01 => 192.168.1.20:1113 nxio-core-02 => 192.168.1.21:1113 /discover/services/nxio-01 node1 => 192.168.1.20:5678 node2 => 192.168.1.21:4523 /nxio/nxio-01 db-host: …. s3bucket: … domain: mydomain.nuxeo.io mp-packages: [dm, dam…] /domains/ mydomain.nuxeo.io => nxio-01 !

nxio-core-01

etcd

nxio-core-02

etcd

nxio-01

nxio-01

Managing a cloud platform• Reverse proxy uses etcd to resolve requests path

�24

nxio-core-01

etcd

nxio-01

nxio-core-02

etcd

nxio-01

Soft etcd based reverse proxy

/discover/services/host nxio-core-01 => 192.168.1.20:1113 nxio-core-02 => 192.168.1.21:1113 /discover/services/nxio-01 node1 => 192.168.1.20:5678 node2 => 192.168.1.21:4523 !…. !/domains/ mydomain.nuxeo.io => nxio-01 !

Managing a cloud platform• Reverse proxy uses etcd to resolve requests path

�24

nxio-core-01

etcd

nxio-01

nxio-core-02

etcd

nxio-01

Soft etcd based reverse proxy

/discover/services/host nxio-core-01 => 192.168.1.20:1113 nxio-core-02 => 192.168.1.21:1113 /discover/services/nxio-01 node1 => 192.168.1.20:5678 node2 => 192.168.1.21:4523 !…. !/domains/ mydomain.nuxeo.io => nxio-01 !

mydomain.nuxeo.com

Managing a cloud platform• Reverse proxy uses etcd to resolve requests path

�24

nxio-core-01

etcd

nxio-01

nxio-core-02

etcd

nxio-01

Soft etcd based reverse proxy

/discover/services/host nxio-core-01 => 192.168.1.20:1113 nxio-core-02 => 192.168.1.21:1113 /discover/services/nxio-01 node1 => 192.168.1.20:5678 node2 => 192.168.1.21:4523 !…. !/domains/ mydomain.nuxeo.io => nxio-01 !

mydomain.nuxeo.com

Managing a cloud platform• Reverse proxy uses etcd to resolve requests path

�24

nxio-core-01

etcd

nxio-01

nxio-core-02

etcd

nxio-01

Soft etcd based reverse proxy

/discover/services/host nxio-core-01 => 192.168.1.20:1113 nxio-core-02 => 192.168.1.21:1113 /discover/services/nxio-01 node1 => 192.168.1.20:5678 node2 => 192.168.1.21:4523 !…. !/domains/ mydomain.nuxeo.io => nxio-01 !

mydomain.nuxeo.com

Managing a cloud platform• Reverse proxy uses etcd to resolve requests path

�24

nxio-core-01

etcd

nxio-01

nxio-core-02

etcd

nxio-01

Soft etcd based reverse proxy

/discover/services/host nxio-core-01 => 192.168.1.20:1113 nxio-core-02 => 192.168.1.21:1113 /discover/services/nxio-01 node1 => 192.168.1.20:5678 node2 => 192.168.1.21:4523 !…. !/domains/ mydomain.nuxeo.io => nxio-01 !

mydomain.nuxeo.com

Managing a cloud platform

• Why use a « soft » reverse proxy• No service « restart » = full dynamic

• Allow to intercept calls for metrics

• Useful for passivation

• Allow to deal with interruptions of service

• Ask the user to wait

• Ask the cluster to start a new instance

�25

Actual State

• Labs using Vagrant on bare metal

• Still have to know how to start nuxeo container ;-)• via a systemd service

• like a job via flynn-host

• POC on AWS for end of february

�26

Conclusion

• Docker allows us to start/stop new instances very fast

• It allows to design an infrastructure that is not tied to IaaS provider (but can be run onto)

• Very young ecosystem/tools like etcd, discoverd, flynn stack etc…

�27

Thank you !

�28

@damienmetzler

If you want to join, let’s talk !

Damien METZLER :dmetzler@nuxeo.com