ofbiz development with docker
play

OFBiz Development with Docker http://ofbiz.apache.org - PowerPoint PPT Presentation

OFBiz Development with Docker http://ofbiz.apache.org http://docker.io/ 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 1 What is OFBiz? http://ofbiz.apache.org/ 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 2 OFBiz Java ERP 873 tables,


  1. OFBiz Development with Docker http://ofbiz.apache.org http://docker.io/ 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 1

  2. What is OFBiz? http://ofbiz.apache.org/ 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 2

  3. OFBiz ● Java ● ERP ● 873 tables, 309 views ● Tons of application service logic 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 3

  4. What is docker? http://docker.io/ 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 4

  5. Docker ● Linux ● Containers - LXC ● Copy On Write 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 5

  6. Docker - Linux ● Maybe some of you have heard of linux? 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 6

  7. Docker - Containers ● LXC - Namespaces Process ● Each type of namespace is Filesystem isolated from others of its type User Network Lighter weight than standard virtualization - Better performance 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 7

  8. Docker - Copy On Write ● AUFS ● Multiple Layers ● Copy of all files can be made in seconds, by adding a new layer. Writable Top Layer Read-Only Base Layers 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 8

  9. Docker - OSx/Windows ● docker is linux. ● boot2docker.io – self-contained bootable iso – virtualbox 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 9

  10. OFBiz Development - New Feature ● Get the code ● Initialize the system(*) ● Write the test case ● Implement the feature ● Submit for approval(and merge) 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 10

  11. OFBiz Development - Bug Found ● Yes, bugs can happen. ● Replicate environment(*) ● Update test case ● Fix the code ● Submit for approval(and merge) ● Cross fingers, hope it works in production 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 11

  12. OFBiz Development - Coding ● Which code base is being updated? – OFBiz backend, content frontend, high-availability cat herding dispatcher? ● Does the new code require changes in multiple layers? ● Which test case framework will get updated? – OFBiz, selenium, spreadsheet? 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 12

  13. OFBiz Development - Environment ● Initialize and replicate require a real environment ● Which database? – Mysql, Postgresql, Derby, Oracle ● What web frontend? – Apache, Nginx ● Email(MTA)? – Exim, Postfix, Qmail, Sendmail 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 13

  14. OFBiz Development - Environment ● Is there a content frontend? – wordpress, drupal, django, etc? ● How much data should be made available? – Empty, seed, or a full database copy? 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 14

  15. OFBiz Development with Docker 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 15

  16. docker - Dockerfile ● A simple way to run a series of commands ● Can do almost anything – Install packages – Modify files – Copy external configuration settings 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 16

  17. docker - Dockerfile ● Each step is cached – This allows for long running steps to be skipped if nothing has changed ● There are many pre-packaged docker images available, to save time from having to build your own. 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 17

  18. docker/base/Dockerfile FROM debian:wheezy # install packages RUN apt-get install postgresql-9.1 libpostgresql-java nginx-full # configure packages USER root RUN ln -s /srv/ofbiz/etc/nginx.conf /etc/nginx/sites-enabled/ofbiz.conf USER postgresql RUN createdb ofbiz; create user ofbiz # this will start postgres, ofbiz, and nginx COPY ofbiz-startup.sh /etc/init.d/ofbiz-startup ENTRYPOINT /etc/init.d/ofbiz-startup 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 18

  19. docker - build ● docker build -t $name-base docker/base – Dockerfile – ofbiz-startup.sh 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 19

  20. docker - seed $ id=$(docker create -v $PWD:/srv/ofbiz $name-base) $ docker start $id $ # wait $ docker exec $id “/srv/ofbiz/ant load-seed” $ docker stop $id $ docker commit $id $name-seed-base 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 20

  21. dockerfile - seed FROM $name-seed-base ENTRYPOINT /etc/init.d/ofbiz-startup 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 21

  22. docker - snapshot $ id=$(docker create -v $PWD:/srv/ofbiz $name-base) $ docker start $id $ # wait $ docker exec $id “zcat /srv/ofbiz/dumps/pgdump.sql.gz | su - postgresql” $ docker stop $id $ docker commit $id $name-snapshot-base 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 22

  23. dockerfile - snapshot FROM $name-snapshot-base ENTRYPOINT /etc/init.d/ofbiz-startup 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 23

  24. docker - run ● docker run -v $PWD:/srv/ofbiz $name – Created write-layer on top of files in $name – Mounts the current directory at the requested location – Runs the previously defined ENTRYPOINT 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 24

  25. 2015-04-15 OFBIZ.APACHE.ORG - PRELIMINARY 25

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend