meetup docker@nuxeo - build a cloud platform with docker

60
Content Management Platform For Business Applications / 2/13/2013 Damien METZLER Build a cloud platform with Docker

Upload: nuxeo

Post on 27-Jan-2015

125 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Content Management PlatformFor Business Applications/

2/13/2013 Damien METZLER

Build a cloud platform with Docker

Page 2: Meetup Docker@Nuxeo - 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

Page 3: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Nuxeo : small Intro

�3

Page 4: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Nuxeo : small intro

�4

• Open Source ECM platform

• In java

• Designed for extension

• Nuxeo Studio

Page 5: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Nuxeo : small intro

�5

Page 6: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Nuxeo Studio

�6

Page 7: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 8: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo(s) in Docker

�8

Page 9: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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)

Page 10: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�10

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

containers-nuxeo-part-1/

Page 11: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�10

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

containers-nuxeo-part-1/

OpenOffice

Page 12: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�10

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

containers-nuxeo-part-1/

NuxeoOpenOffice

Page 13: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�10

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

containers-nuxeo-part-1/

NuxeoOpenOffice

ImageMagick

Page 14: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�10

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

containers-nuxeo-part-1/

PG

NuxeoOpenOffice

ImageMagick

Page 15: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�10

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

containers-nuxeo-part-1/

PG

NuxeoOpenOffice

ImageMagick

popplers

Page 16: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�10

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

containers-nuxeo-part-1/

PG

NuxeoOpenOffice

ImageMagick

popplers

Page 17: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�11

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

containers-nuxeo-part-1/

Page 18: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�12

PG

NuxeoOpenOffice

ImageMagick

popplers

Page 19: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�12

PG

NuxeoOpenOffice

ImageMagick

popplers

Page 20: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�12

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Page 21: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�12

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Page 22: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�12

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Page 23: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�12

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Page 24: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�12

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Page 25: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�12

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Page 26: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�13

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Services

Page 27: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�13

PG

Nuxeo

OpenOffice

ImageMagick

popplers

Nuxeo

Services

Page 28: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�13

PG

Nuxeo

OpenOffice

ImageMagick

popplers

NuxeoNuxeo

Services

Page 29: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Running Nuxeo in Docker

�13

PG

Nuxeo

OpenOffice

ImageMagick

popplers

NuxeoNuxeoNuxeo

Services

Page 30: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

Page 31: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

Page 32: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

Page 33: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

Page 34: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Page 35: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Page 36: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Page 37: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Page 38: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Page 39: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Page 40: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Page 41: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Page 42: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Problems…

�14

PG

OpenOffice

ImageMagick

popplers

Services

NuxeoNuxeoNuxeoNuxeo

Host1

NuxeoNuxeoNuxeoNuxeo

Host2

NuxeoNuxeoNuxeoNuxeo

Host3

NuxeoNuxeoNuxeoNuxeo

Host4

Reverse Proxy

Page 43: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

• Running a lot of docker container may be harmful !

• We need some tooling to manage that

�15

Running Nuxeo in Docker

Page 44: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Managing a cloud Platform

�16

Page 45: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Managing a cloud platform

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

• Be able to launch services

• Resilient

�17

Page 46: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 47: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

�19

/discover/services

Page 48: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 49: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 50: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 51: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 52: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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 !

Page 53: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 54: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 55: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 56: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 57: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 58: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 59: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

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

Page 60: Meetup Docker@Nuxeo - Build a Cloud Platform with Docker

Thank you !

�28

@damienmetzler

If you want to join, let’s talk !

Damien METZLER :[email protected]