SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Joomla Continuous Delivery 
with Docker 
Jirayut Nimsaeng (Dear) 
Joomla Day Bangkok, Thailand 2014 
December 14, 2014 @ C.P. Tower 
Release Build 
Deploy Test
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
#whoami 
● Jirayut Nimsaeng (Dear) 
● Infrastructure Team Lead 
at Proteus Technologies 
● ScrumMaster 
● Interested in Cloud and 
Open Source Technology 
● Working with Docker since 
version 0.6
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Experienced? 
● Develop and test on AppServ or XAMPP 
● Deploy with FileZilla 
● Git 
● Vagrant 
● Docker 
● Testing 
● Automated test 
● Automated deploy
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Why 
Continuous Delivery?
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Classic Release 
Requirement 
Design 
Implementation 
Testing 
Release 
Waterfall
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Risk
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Release Frequently 
Split your product 
Optimize business value 
$$$ 
$ 
Split time 
January April
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Why 
Docker?
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Developer Problems 
Developer Local Test QA 
Production
What Developer needs 
Production-like Quick Repeatable 
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Docker can 
● Deploy reliably & consistently 
● Everything will be exactly the same 
– Distros 
– Software versions 
– Library dependencies 
● If it works locally, it will work everywhere
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Docker can 
● Deploy efficiently 
– Laptop can run 10-100 containers easily 
– Server can run 10-1000 containers 
● Containers can run at native speeds 
– http://www.slideshare.net/BodenRussell/kvm-and-docker- 
lxc-benchmarking-with-openstack
Docker CPU benchmark 
Docker / KVM: Compute Node Steady-State CPU (Segment Overlay) 
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
14 
12 
10 
8 
6 
4 
2 
0 
docker-usr 
docker-sys 
kvm-usr 
kvm-sys 
Time: KVM(95s - 307s) Docker(31s – 243s) 
CPU Usage In Percent 
Docker Averages 
– 0.2 
– 0.03 
KVM Averages 
– 1.91 
– 0.36
Docker Memory benchmark 
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
7.00E+09 
6.00E+09 
5.00E+09 
4.00E+09 
3.00E+09 
2.00E+09 
1.00E+09 
0.00E+00 
Docker / KVM: Compute Node Used Memory (Overlay) 
kvm 
docker 
Axis Title 
Memory Used
Docker Memory benchmark 
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
MEMCPY DUMB MCBLOCK 
14000 
12000 
10000 
8000 
6000 
4000 
2000 
0 
3823.3 
4393.3 
12881.61 
3813.38 
4395.92 
12905.68 
3428.95 3461.59 
7223.23 
Memory Benchmark Performance 
Bare Metal (MiB/s) 
docker (MiB/s) 
KVM (MiB/s) 
Memory Test 
MiB/s
Docker I/O benchmark 
Sysbench Synchronous File I/O Random Read/Write @ R/W Ratio of 1.50 
1 2 4 8 16 32 64 
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
1600 
1400 
1200 
1000 
800 
600 
400 
200 
0 
docker 
KVM 
Threads 
Total Transferred In Kb/sec
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
What is Docker? 
● Platform to help code, test and deploy 
applications 
● Combine with 
– Lightweight container virtualization 
– Work flows 
– Tooling
App 
B1 
Jirayut Nimsaeng 
Containers are isolated, 
but share OS and, where 
appropriate, bins/libraries 
Bins/Libs Bins/Libs 
Host OS 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Containers vs. VMs 
App 
A2 
Hypervisor 
Host OS 
Server 
App 
A1 
Guest 
OS 
Guest 
OS 
Guest 
OS 
Bins/ 
Libs 
Bins/ 
Libs 
Bins/ 
Libs 
VM 
Server 
App A1 
App A2 
App B1 
App B2 
App B3 
Docker daemon 
Container
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Dockerfile 
● Dockerfile is instructions to build Docker image 
– How to run commands 
– Add files or directories 
– Create environment variables 
– What process to run when launching container
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Sample Dockerfile 
FROM ubuntu:14.04 
MAINTAINER Jirayut Nimsaeng <w [at] winginfotech.net> 
ADD build-files /build-files 
RUN apt-get update 
RUN apt-get install -y openssh-server vim tmux rsync byobu 
RUN mkdir /var/run/sshd 
RUN sed -i 's/required pam_loginuid.so/optional 
pam_loginuid.so/g' /etc/pam.d/sshd 
CMD /start.sh 
EXPOSE 22
Commit Change 
Jirayut Nimsaeng 
App A2 Container 
App A App A Image 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Docker life cycle 
App A 
Docker Container 
Docker 
Registry 
Commit Push 
Host 
App A1 Container 
Pull 
Docker Engine 
Ubuntu 
Base Docker 
Apache 
Docker Container 
Apache 
Bins/Libs 
Apache + PHP 
Docker Image 
Bins/Libs 
Apache 
App A 
ΔΔ 
Change 
App A 
Apache 
Bins/Libs 
App A 
Docker image
App A Image App A 
Docker Engine 
Jirayut Nimsaeng 
Image App A 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Docker workflows 
Dockerfile 
For App A 
Host 1 (Dev/Build Server) 
Docker 
Registry 
Host 2 (Container Server) 
1.Build 
2.Push 
3.Pull 
4.Run 
Docker Engine 
Container App A Production
2022 2035 
2035 
Jirayut Nimsaeng 
80 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Docker Use Cases 
● Docker as Development Environment 
Host 
Virtualbox VM 
22 
SSH Docker Daemon 
Web Server 
boot2docker-vm 
80 1024+ 
Docker Containers 
Database 
Host-only 
80
Jirayut Nimsaeng 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
Docker Use Cases 
● Docker for Continuous Delivery
Continuous Delivery with Docker 
Jirayut Nimsaeng 
Docker 
Registry 
Docker Engine 
Joomla Continuous Delivery with Docker 
December 14, 2014 @ C.P. Tower 
DB 
Backup 
Server Gitlab 
Server 
Gitlab CI 
Server 
Docker Engine 
Gitlab CI Runner 
Test/Prod Server 
MySQL 
Dockerfile 
Joomla 
Dockerfile 
Image MySQL Image 
Joomla Image Joomla Image 
Joomla Container 
MySQL Container 
1. Push Code 
2. Trigger 
3. Trigger 
4. Get 
5. Build 
5.1. Get 
6. Push Joomla Docker Image 
7. Build 
7.1. Import 
8. Push MySQL Docker Image 
9. Trigger 
10. Pull 
Docker Image 
12. Acceptance Test 
3.5. Unit Test 
11. Deploy

Weitere ähnliche Inhalte

Was ist angesagt?

Azure architecture
Azure architectureAzure architecture
Azure architecture
Amal Dev
 

Was ist angesagt? (20)

Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Kubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration DockerKubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration Docker
 
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Azure architecture
Azure architectureAzure architecture
Azure architecture
 
Docker
DockerDocker
Docker
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Docker on Docker
Docker on DockerDocker on Docker
Docker on Docker
 
Azure container instances
Azure container instancesAzure container instances
Azure container instances
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)
 
Kubernetes From Scratch .pdf
Kubernetes From Scratch .pdfKubernetes From Scratch .pdf
Kubernetes From Scratch .pdf
 
.Net Core
.Net Core.Net Core
.Net Core
 
Everything as Code with Terraform
Everything as Code with TerraformEverything as Code with Terraform
Everything as Code with Terraform
 
How to write a Dockerfile
How to write a DockerfileHow to write a Dockerfile
How to write a Dockerfile
 
La magia de Flutter
La magia de FlutterLa magia de Flutter
La magia de Flutter
 
AKS backup with Velero and Workload Identities
AKS backup with Velero and Workload IdentitiesAKS backup with Velero and Workload Identities
AKS backup with Velero and Workload Identities
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
 

Andere mochten auch

Docker presentation
Docker presentationDocker presentation
Docker presentation
mhprogramr
 
Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...
People10 Technosoft Private Limited
 

Andere mochten auch (20)

Docker Continuous Delivery Workshop
Docker Continuous Delivery WorkshopDocker Continuous Delivery Workshop
Docker Continuous Delivery Workshop
 
Deployment Automation with Docker
Deployment Automation with DockerDeployment Automation with Docker
Deployment Automation with Docker
 
Docker Workshop Birthday #3
Docker Workshop Birthday #3Docker Workshop Birthday #3
Docker Workshop Birthday #3
 
Beyond OpenStack
Beyond OpenStackBeyond OpenStack
Beyond OpenStack
 
How to contribute to OpenStack
How to contribute to OpenStackHow to contribute to OpenStack
How to contribute to OpenStack
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
OpenStack Ansible for private cloud at Kaidee
OpenStack Ansible for private cloud at KaideeOpenStack Ansible for private cloud at Kaidee
OpenStack Ansible for private cloud at Kaidee
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
 
(Unit )-Testing for Joomla
(Unit )-Testing for Joomla(Unit )-Testing for Joomla
(Unit )-Testing for Joomla
 
Lights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFeverLights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFever
 
JMeter, Docker sitting in a tree
JMeter, Docker sitting in a treeJMeter, Docker sitting in a tree
JMeter, Docker sitting in a tree
 
Orchestrate Continuous Delivery with Jenkins and Docker
Orchestrate Continuous Delivery with Jenkins and DockerOrchestrate Continuous Delivery with Jenkins and Docker
Orchestrate Continuous Delivery with Jenkins and Docker
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Docker
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
 
Ymens - Cloud Identity Crisis - Dev Talks 2015
Ymens - Cloud Identity Crisis - Dev Talks 2015Ymens - Cloud Identity Crisis - Dev Talks 2015
Ymens - Cloud Identity Crisis - Dev Talks 2015
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
 
Docker Swarm & Machine
Docker Swarm & MachineDocker Swarm & Machine
Docker Swarm & Machine
 
Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...
 
Learn docker in 90 minutes
Learn docker in 90 minutesLearn docker in 90 minutes
Learn docker in 90 minutes
 
Continuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscaleContinuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscale
 

Ähnlich wie Joomla Continuous Delivery with Docker

Application Deployment on Openstack
Application Deployment on OpenstackApplication Deployment on Openstack
Application Deployment on Openstack
Docker, Inc.
 

Ähnlich wie Joomla Continuous Delivery with Docker (20)

JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with Codefresh
 
Docker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetupDocker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetup
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelines
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small business
 
12 FACTOR APP WITH DOCKER
12 FACTOR APP WITH DOCKER12 FACTOR APP WITH DOCKER
12 FACTOR APP WITH DOCKER
 
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
 
Docker for dummies
Docker for dummiesDocker for dummies
Docker for dummies
 
DevAssistant, Docker and You
DevAssistant, Docker and YouDevAssistant, Docker and You
DevAssistant, Docker and You
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tips
 
Docker in everyday development
Docker in everyday developmentDocker in everyday development
Docker in everyday development
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Docker+java
Docker+javaDocker+java
Docker+java
 
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
 
Application Deployment on Openstack
Application Deployment on OpenstackApplication Deployment on Openstack
Application Deployment on Openstack
 
Using Docker to boost your development experience with Drupal
Using Docker to boost your development experience with DrupalUsing Docker to boost your development experience with Drupal
Using Docker to boost your development experience with Drupal
 
Continuous Integration with Docker on AWS
Continuous Integration with Docker on AWSContinuous Integration with Docker on AWS
Continuous Integration with Docker on AWS
 
Docker - 15 great Tutorials
Docker - 15 great TutorialsDocker - 15 great Tutorials
Docker - 15 great Tutorials
 

Mehr von Jirayut Nimsaeng

Mehr von Jirayut Nimsaeng (8)

Build cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack AnsibleBuild cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack Ansible
 
Docker Workshop for beginner
Docker Workshop for beginnerDocker Workshop for beginner
Docker Workshop for beginner
 
Docker in Production
Docker in ProductionDocker in Production
Docker in Production
 
Better delivery with DevOps Driven Development
Better delivery with DevOps Driven DevelopmentBetter delivery with DevOps Driven Development
Better delivery with DevOps Driven Development
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)
 
Molome infrastructure
Molome infrastructureMolome infrastructure
Molome infrastructure
 
A Study Of Cloud Computing
A Study Of Cloud ComputingA Study Of Cloud Computing
A Study Of Cloud Computing
 
Web standards: Who cares?
Web standards: Who cares?Web standards: Who cares?
Web standards: Who cares?
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Kürzlich hochgeladen (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

Joomla Continuous Delivery with Docker

  • 1. Joomla Continuous Delivery with Docker Jirayut Nimsaeng (Dear) Joomla Day Bangkok, Thailand 2014 December 14, 2014 @ C.P. Tower Release Build Deploy Test
  • 2. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower #whoami ● Jirayut Nimsaeng (Dear) ● Infrastructure Team Lead at Proteus Technologies ● ScrumMaster ● Interested in Cloud and Open Source Technology ● Working with Docker since version 0.6
  • 3. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Experienced? ● Develop and test on AppServ or XAMPP ● Deploy with FileZilla ● Git ● Vagrant ● Docker ● Testing ● Automated test ● Automated deploy
  • 4. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Why Continuous Delivery?
  • 5. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Classic Release Requirement Design Implementation Testing Release Waterfall
  • 6. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Risk
  • 7. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Release Frequently Split your product Optimize business value $$$ $ Split time January April
  • 8. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Why Docker?
  • 9. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Developer Problems Developer Local Test QA Production
  • 10. What Developer needs Production-like Quick Repeatable Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower
  • 11. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Docker can ● Deploy reliably & consistently ● Everything will be exactly the same – Distros – Software versions – Library dependencies ● If it works locally, it will work everywhere
  • 12. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Docker can ● Deploy efficiently – Laptop can run 10-100 containers easily – Server can run 10-1000 containers ● Containers can run at native speeds – http://www.slideshare.net/BodenRussell/kvm-and-docker- lxc-benchmarking-with-openstack
  • 13. Docker CPU benchmark Docker / KVM: Compute Node Steady-State CPU (Segment Overlay) Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower 14 12 10 8 6 4 2 0 docker-usr docker-sys kvm-usr kvm-sys Time: KVM(95s - 307s) Docker(31s – 243s) CPU Usage In Percent Docker Averages – 0.2 – 0.03 KVM Averages – 1.91 – 0.36
  • 14. Docker Memory benchmark Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower 7.00E+09 6.00E+09 5.00E+09 4.00E+09 3.00E+09 2.00E+09 1.00E+09 0.00E+00 Docker / KVM: Compute Node Used Memory (Overlay) kvm docker Axis Title Memory Used
  • 15. Docker Memory benchmark Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower MEMCPY DUMB MCBLOCK 14000 12000 10000 8000 6000 4000 2000 0 3823.3 4393.3 12881.61 3813.38 4395.92 12905.68 3428.95 3461.59 7223.23 Memory Benchmark Performance Bare Metal (MiB/s) docker (MiB/s) KVM (MiB/s) Memory Test MiB/s
  • 16. Docker I/O benchmark Sysbench Synchronous File I/O Random Read/Write @ R/W Ratio of 1.50 1 2 4 8 16 32 64 Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower 1600 1400 1200 1000 800 600 400 200 0 docker KVM Threads Total Transferred In Kb/sec
  • 17. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower What is Docker? ● Platform to help code, test and deploy applications ● Combine with – Lightweight container virtualization – Work flows – Tooling
  • 18. App B1 Jirayut Nimsaeng Containers are isolated, but share OS and, where appropriate, bins/libraries Bins/Libs Bins/Libs Host OS Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Containers vs. VMs App A2 Hypervisor Host OS Server App A1 Guest OS Guest OS Guest OS Bins/ Libs Bins/ Libs Bins/ Libs VM Server App A1 App A2 App B1 App B2 App B3 Docker daemon Container
  • 19. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Dockerfile ● Dockerfile is instructions to build Docker image – How to run commands – Add files or directories – Create environment variables – What process to run when launching container
  • 20. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Sample Dockerfile FROM ubuntu:14.04 MAINTAINER Jirayut Nimsaeng <w [at] winginfotech.net> ADD build-files /build-files RUN apt-get update RUN apt-get install -y openssh-server vim tmux rsync byobu RUN mkdir /var/run/sshd RUN sed -i 's/required pam_loginuid.so/optional pam_loginuid.so/g' /etc/pam.d/sshd CMD /start.sh EXPOSE 22
  • 21. Commit Change Jirayut Nimsaeng App A2 Container App A App A Image Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Docker life cycle App A Docker Container Docker Registry Commit Push Host App A1 Container Pull Docker Engine Ubuntu Base Docker Apache Docker Container Apache Bins/Libs Apache + PHP Docker Image Bins/Libs Apache App A ΔΔ Change App A Apache Bins/Libs App A Docker image
  • 22. App A Image App A Docker Engine Jirayut Nimsaeng Image App A Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Docker workflows Dockerfile For App A Host 1 (Dev/Build Server) Docker Registry Host 2 (Container Server) 1.Build 2.Push 3.Pull 4.Run Docker Engine Container App A Production
  • 23. 2022 2035 2035 Jirayut Nimsaeng 80 Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Docker Use Cases ● Docker as Development Environment Host Virtualbox VM 22 SSH Docker Daemon Web Server boot2docker-vm 80 1024+ Docker Containers Database Host-only 80
  • 24. Jirayut Nimsaeng Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower Docker Use Cases ● Docker for Continuous Delivery
  • 25. Continuous Delivery with Docker Jirayut Nimsaeng Docker Registry Docker Engine Joomla Continuous Delivery with Docker December 14, 2014 @ C.P. Tower DB Backup Server Gitlab Server Gitlab CI Server Docker Engine Gitlab CI Runner Test/Prod Server MySQL Dockerfile Joomla Dockerfile Image MySQL Image Joomla Image Joomla Image Joomla Container MySQL Container 1. Push Code 2. Trigger 3. Trigger 4. Get 5. Build 5.1. Get 6. Push Joomla Docker Image 7. Build 7.1. Import 8. Push MySQL Docker Image 9. Trigger 10. Pull Docker Image 12. Acceptance Test 3.5. Unit Test 11. Deploy