7. 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
9. Running Nuxeo in Docker
• 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)
9
10. Running Nuxeo in Docker
nt/2014/01/dockerm/blog/developme
ttp://www.nuxeo.co
h
rs-nuxeo-part-1/
containe
10
11. Running Nuxeo in Docker
nt/2014/01/dockerm/blog/developme
ttp://www.nuxeo.co
h
rs-nuxeo-part-1/
containe
OpenOffice
10
12. Running Nuxeo in Docker
nt/2014/01/dockerm/blog/developme
ttp://www.nuxeo.co
h
rs-nuxeo-part-1/
containe
Nuxeo
OpenOffice
10
13. Running Nuxeo in Docker
nt/2014/01/dockerm/blog/developme
ttp://www.nuxeo.co
h
rs-nuxeo-part-1/
containe
Nuxeo
OpenOffice
ImageMagick
10
14. Running Nuxeo in Docker
nt/2014/01/dockerm/blog/developme
ttp://www.nuxeo.co
h
rs-nuxeo-part-1/
containe
Nuxeo
OpenOffice
ImageMagick
PG
10
15. Running Nuxeo in Docker
nt/2014/01/dockerm/blog/developme
ttp://www.nuxeo.co
h
rs-nuxeo-part-1/
containe
Nuxeo
OpenOffice
ImageMagick
PG
popplers
10
16. Running Nuxeo in Docker
nt/2014/01/dockerm/blog/developme
ttp://www.nuxeo.co
h
rs-nuxeo-part-1/
containe
Nuxeo
OpenOffice
ImageMagick
PG
popplers
10
17. Running Nuxeo in Docker
nt/2014/01/dockerm/blog/developme
ttp://www.nuxeo.co
h
rs-nuxeo-part-1/
containe
11
45. Managing a cloud platform
• We need to
•
Be aware of cluster’s state
•
Be able to launch services
•
Resilient
17
46. 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
47. Managing a cloud platform
• etcd provides a way to share cluster state
/discover/services
19
48. Managing a cloud platform
• etcd provides a way to share cluster state
nxio-core-01
/discover/services/host
nxio-core-01 => 192.168.1.20:1113
etcd
20
49. Managing a cloud platform
• etcd provides a way to share cluster state
nxio-core-01
/discover/services/host
nxio-core-01 => 192.168.1.20:1113
nxio-core-02 => 192.168.1.21:1113
etcd
nxio-core-02
etcd
21
50. Managing a cloud platform
• etcd provides a way to share cluster state
nxio-core-01
etcd
nxio-core-02
/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…]
!
etcd
22
51. Managing a cloud platform
• etcd provides a way to share cluster state
nxio-core-01
nxio01
etcd
nxio-core-02
nxio01
etcd
/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
!
23
57. 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
58. 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
59. 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
60. Thank you !
Damien METZLER : @damienmetzler
dmetzler@nuxeo.com
If you want to join, let’s talk !
28