SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
DOCKER FOR POLYGLOTS
Nathan LeClaire, Open Source Engineer at Docker Inc.
WELCOME
• I appreciate your participation ! To speak at this
conference is an honor.
• Today we are going to talk about "Docker For
Polyglots".
• A "polyglot" is someone who speaks multiple
languages.
THANKYOU FOR
CONFERENCE
WHO AM I?
Nathan LeClaire (@upthecyberpunks)
Open Source Engineer, Docker Machine
I ❤ JAPAN
TOOLS OF MASSIVE
INNOVATION
TOOLS OF MASSIVE
INNOVATION
LET'S LOOK AT SOME FACTS
FACT:
VARIETY
• Developers want to use a variety of programming
languages
• "The right tool for the right job"
• This complicates the process of setting up
development environments and running operations
FACT:
TECHNOLOGY CHANGES RAPIDLY
• Front end web development alone has a huge
explosion of options including SASS, Grunt,
Yeoman, etc.
• Not every developer on your team is going to be
an expert in tooling for every language but they
still might want to contribute
• More friction == less productivity
FACT:
TOOLING IS DIFFICULT
• For instance, Maven might be intimidating to a Go
developer.
• Python programmers might want to use Ruby
sometimes but don't know how to use rbenv or
rvm
• Contributing to open source is very difficult for this
reason.
FACT:
"BUS FACTOR" RISK IS HIGH
• If "the person who sets up the environments" on
your team was hit by a bus tomorrow, would it be
easy or hard to keep going?
• Can any person on your team destroy their
development environment and re-build it from
scratch automatically?
FACT: DEPENDENCY HELL
Does this type of thing look familiar?
DOCKER CAN HELP
• Docker provides a way of distributing applications
• It also provides orchestration tools for developing
them
• End game is to reduce friction to the point where
transitioning between projects is seamless
MY DREAM:
SIMPLICITY
MY DREAM:
UNIFORMITY
MY DREAM:
PHOENIX DEVELOPMENT
WHAT IS A POLYGLOT?
"PROGRAMMING LANGUAGE"
WHAT IS A POLYGLOT?
"TOOLING LANGUAGE"
WHAT IS A POLYGLOT?
"DEVELOPER LANGUAGE"
"We need to add some migrations
to run for the database, a few
controllers, and also some jobs to
run in the background queue."
WHAT IS A POLYGLOT?
"OPERATOR LANGUAGE"
"Let's set up some automation
around our load balancers, store
these files in an S3 bucket and
consider moving to a cross-cloud
solution with overlay networking."
DOCKER LETS YOU DEFINE
AN ENVIRONMENT SIMPLY
EXAMPLE
I DON'T KNOW ANYTHING
ABOUT LUA...
...AND ONLY A LITTLE
ABOUT NGINX.
SETTING UP OPENRESTY
MANUALLY
$ sudo apt-get install -y make build-essential libreadline-dev libncurses5-dev
libpcre3-dev libssl-dev perl make build-essential
$ # Go to browser, click around on "Download Page"
$ wget https://openresty.org/download/ngx_openresty-1.9.3.1.tar.gz
$ tar xvf ngx_openresty-1.9.3.1.tar.gz
$ cd ngx_openresty-1.9.3.1
$ ./configure; make; make install
FORTUNATELYTHAT PROJECT
HAS GOOD DOCUMENTATION,
BUT WHAT IF IT DIDN'T?
WHAT IFYOU WANTTO INSTALL AUTOMATICALLY
ON ANOTHER COMPUTER?
OR EASILY SHAREYOUR APPLICATION WITH A
FRIEND OR COLLEAGUE?
REPLACE MANUAL METHOD
WITH ATINY BASH SCRIPT?
"YEAH, I KNOWYOU DEVELOP ON
DEBIAN, BUTTHIS NEEDSTO RUN ON
RHEL."
DEVELOPER
Installing software is
boring! I just want to
script nginx with Lua!
SOLUTION
WE CAN MAKE DOCKERFILE.
IT WILL RUN ON ANY OS WITH
COMPATIBLE KERNEL.
from debian:jessie
run apt-get update
run apt-get install -y 
libreadline-dev 
libncurses5-dev 
libpcre3-dev 
libssl-dev 
perl 
wget 
make 
build-essential
run mkdir -p /openresty
workdir /openresty
env OPENRESTY_VERSION 1.7.10.2
run wget http://openresty.org/download/ngx_openresty-${OPENRESTY_VERSION}.tar.gz
run tar xzvf ngx_openresty-${OPENRESTY_VERSION}.tar.gz
run cd ngx_openresty-${OPENRESTY_VERSION}/ && 
./configure && 
make && 
make install
env PATH /usr/local/openresty/nginx/sbin:$PATH
add https://get.docker.com/builds/Linux/x86_64/docker-latest /docker
run chmod +x /docker
add . /app
workdir /app
entrypoint ["./entrypoint.sh"]
BUILD, SHIP, & RUN
$ docker build -t nathanleclaire/openresty .
$ docker push nathanleclaire/openresty
$ # Now we can pull from anywhere!
$ # On another computer...
$ docker run -d -P nathanleclaire/openresty
YOU CAN USE AUTOMATED BUILDS ON
DOCKER HUBTO LEARN FROM OTHER
PEOPLE
LOTS OF CONTRIBUTION TO
DOCKER BECAUSE OF DOCKER
DOCKER MACHINE
DOCKER COMPOSE
DOCKER SWARM

Contenu connexe

Tendances

Tyrion Cannister Neural Styles by Dora Korpar and Siphan Bou
Tyrion Cannister Neural Styles by Dora Korpar and Siphan BouTyrion Cannister Neural Styles by Dora Korpar and Siphan Bou
Tyrion Cannister Neural Styles by Dora Korpar and Siphan BouDocker, Inc.
 
How to Successfully Build a Local (Docker) Community
How to Successfully Build a Local (Docker) CommunityHow to Successfully Build a Local (Docker) Community
How to Successfully Build a Local (Docker) CommunityMathias Renner
 
DevOps Cardiff - Puppet vs Chef vs Ansible
DevOps Cardiff - Puppet vs Chef vs AnsibleDevOps Cardiff - Puppet vs Chef vs Ansible
DevOps Cardiff - Puppet vs Chef vs AnsibleMark Phillips
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerJames Turnbull
 
Why is Open Source so Good: Thirty Years of Lessons Learned
Why is Open Source so Good: Thirty Years of Lessons LearnedWhy is Open Source so Good: Thirty Years of Lessons Learned
Why is Open Source so Good: Thirty Years of Lessons LearnedMark Atwood
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerJames Turnbull
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSRoss Kukulinski
 
Puppet - Configuration Management Tool
Puppet - Configuration Management ToolPuppet - Configuration Management Tool
Puppet - Configuration Management ToolAswin Barath
 
Orchestrating Docker - Making the Whale Dance
Orchestrating Docker - Making the Whale DanceOrchestrating Docker - Making the Whale Dance
Orchestrating Docker - Making the Whale DanceJames Turnbull
 
Portainer dublin 11_2017
Portainer dublin 11_2017Portainer dublin 11_2017
Portainer dublin 11_2017Anthony Lapenna
 
Hacking Docker the Easy way
Hacking Docker the Easy wayHacking Docker the Easy way
Hacking Docker the Easy wayBorg Han
 
DevRomagna / Golang Intro
DevRomagna / Golang IntroDevRomagna / Golang Intro
DevRomagna / Golang IntroSimone Gentili
 
OpenShift Origin Community Day (Boston) Welcome & Resources by Diane Mueller
OpenShift Origin Community Day (Boston) Welcome & Resources by Diane MuellerOpenShift Origin Community Day (Boston) Welcome & Resources by Diane Mueller
OpenShift Origin Community Day (Boston) Welcome & Resources by Diane MuellerDiane Mueller
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the Worlddamovsky
 
vBrownBag DevOps Series: Puppetinabox
vBrownBag DevOps Series: PuppetinaboxvBrownBag DevOps Series: Puppetinabox
vBrownBag DevOps Series: PuppetinaboxRobert Nelson
 
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java applicationOSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java applicationNicolas Fränkel
 
Untangling fall2017 week2
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2Derek Jacoby
 
D-DAY 2015 Continuous delivery GITHUB
D-DAY 2015 Continuous delivery  GITHUBD-DAY 2015 Continuous delivery  GITHUB
D-DAY 2015 Continuous delivery GITHUBDEVOPS D-DAY
 

Tendances (20)

Tyrion Cannister Neural Styles by Dora Korpar and Siphan Bou
Tyrion Cannister Neural Styles by Dora Korpar and Siphan BouTyrion Cannister Neural Styles by Dora Korpar and Siphan Bou
Tyrion Cannister Neural Styles by Dora Korpar and Siphan Bou
 
How to Successfully Build a Local (Docker) Community
How to Successfully Build a Local (Docker) CommunityHow to Successfully Build a Local (Docker) Community
How to Successfully Build a Local (Docker) Community
 
DevOps Cardiff - Puppet vs Chef vs Ansible
DevOps Cardiff - Puppet vs Chef vs AnsibleDevOps Cardiff - Puppet vs Chef vs Ansible
DevOps Cardiff - Puppet vs Chef vs Ansible
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Why is Open Source so Good: Thirty Years of Lessons Learned
Why is Open Source so Good: Thirty Years of Lessons LearnedWhy is Open Source so Good: Thirty Years of Lessons Learned
Why is Open Source so Good: Thirty Years of Lessons Learned
 
Docker management
Docker managementDocker management
Docker management
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
 
Puppet - Configuration Management Tool
Puppet - Configuration Management ToolPuppet - Configuration Management Tool
Puppet - Configuration Management Tool
 
Orchestrating Docker - Making the Whale Dance
Orchestrating Docker - Making the Whale DanceOrchestrating Docker - Making the Whale Dance
Orchestrating Docker - Making the Whale Dance
 
Portainer dublin 11_2017
Portainer dublin 11_2017Portainer dublin 11_2017
Portainer dublin 11_2017
 
Running AWS Locally
Running AWS LocallyRunning AWS Locally
Running AWS Locally
 
Hacking Docker the Easy way
Hacking Docker the Easy wayHacking Docker the Easy way
Hacking Docker the Easy way
 
DevRomagna / Golang Intro
DevRomagna / Golang IntroDevRomagna / Golang Intro
DevRomagna / Golang Intro
 
OpenShift Origin Community Day (Boston) Welcome & Resources by Diane Mueller
OpenShift Origin Community Day (Boston) Welcome & Resources by Diane MuellerOpenShift Origin Community Day (Boston) Welcome & Resources by Diane Mueller
OpenShift Origin Community Day (Boston) Welcome & Resources by Diane Mueller
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
 
vBrownBag DevOps Series: Puppetinabox
vBrownBag DevOps Series: PuppetinaboxvBrownBag DevOps Series: Puppetinabox
vBrownBag DevOps Series: Puppetinabox
 
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java applicationOSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
OSCONF Jaipur - A Hitchhiker's Tour to Containerizing a Java application
 
Untangling fall2017 week2
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2
 
D-DAY 2015 Continuous delivery GITHUB
D-DAY 2015 Continuous delivery  GITHUBD-DAY 2015 Continuous delivery  GITHUB
D-DAY 2015 Continuous delivery GITHUB
 

Similaire à "Docker For Polyglots" - Nathan LeClaire - YAPC::Asia 2015

How to build an HA container orchestrator infrastructure for production – Giu...
How to build an HA container orchestrator infrastructure for production – Giu...How to build an HA container orchestrator infrastructure for production – Giu...
How to build an HA container orchestrator infrastructure for production – Giu...Codemotion
 
RubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on RailsRubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on Railselliando dias
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOpsRicard Clau
 
Going Production with Docker and Swarm
Going Production with Docker and SwarmGoing Production with Docker and Swarm
Going Production with Docker and SwarmC4Media
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1Docker, Inc.
 
Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016Robert 'Bob' Reyes
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
 
The Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHThe Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHLaszlo Fogas
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes vty
 
8 good reasons to learn docker
8 good reasons to learn docker8 good reasons to learn docker
8 good reasons to learn dockerprabhasathya
 
DevOps The Cultural revolution
DevOps The Cultural revolutionDevOps The Cultural revolution
DevOps The Cultural revolutionSomenath Ghosh
 
FEI Bratislava 2017 - Docker
FEI Bratislava 2017 - DockerFEI Bratislava 2017 - Docker
FEI Bratislava 2017 - DockerAdam Štipák
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAdam Štipák
 

Similaire à "Docker For Polyglots" - Nathan LeClaire - YAPC::Asia 2015 (20)

Stackato v5
Stackato v5Stackato v5
Stackato v5
 
Docker for dev
Docker for devDocker for dev
Docker for dev
 
How to build an HA container orchestrator infrastructure for production – Giu...
How to build an HA container orchestrator infrastructure for production – Giu...How to build an HA container orchestrator infrastructure for production – Giu...
How to build an HA container orchestrator infrastructure for production – Giu...
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
Stackato
StackatoStackato
Stackato
 
DevOps tools for winning agility
DevOps tools for winning agilityDevOps tools for winning agility
DevOps tools for winning agility
 
RubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on RailsRubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on Rails
 
What is octohost?
What is octohost?What is octohost?
What is octohost?
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOps
 
Going Production with Docker and Swarm
Going Production with Docker and SwarmGoing Production with Docker and Swarm
Going Production with Docker and Swarm
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1
 
Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016
 
Stackato v3
Stackato v3Stackato v3
Stackato v3
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
The Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHThe Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPH
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes
 
8 good reasons to learn docker
8 good reasons to learn docker8 good reasons to learn docker
8 good reasons to learn docker
 
DevOps The Cultural revolution
DevOps The Cultural revolutionDevOps The Cultural revolution
DevOps The Cultural revolution
 
FEI Bratislava 2017 - Docker
FEI Bratislava 2017 - DockerFEI Bratislava 2017 - Docker
FEI Bratislava 2017 - Docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 

Dernier

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

"Docker For Polyglots" - Nathan LeClaire - YAPC::Asia 2015

  • 1. DOCKER FOR POLYGLOTS Nathan LeClaire, Open Source Engineer at Docker Inc.
  • 2. WELCOME • I appreciate your participation ! To speak at this conference is an honor. • Today we are going to talk about "Docker For Polyglots". • A "polyglot" is someone who speaks multiple languages.
  • 4. WHO AM I? Nathan LeClaire (@upthecyberpunks) Open Source Engineer, Docker Machine
  • 8. LET'S LOOK AT SOME FACTS
  • 9. FACT: VARIETY • Developers want to use a variety of programming languages • "The right tool for the right job" • This complicates the process of setting up development environments and running operations
  • 10. FACT: TECHNOLOGY CHANGES RAPIDLY • Front end web development alone has a huge explosion of options including SASS, Grunt, Yeoman, etc. • Not every developer on your team is going to be an expert in tooling for every language but they still might want to contribute • More friction == less productivity
  • 11. FACT: TOOLING IS DIFFICULT • For instance, Maven might be intimidating to a Go developer. • Python programmers might want to use Ruby sometimes but don't know how to use rbenv or rvm • Contributing to open source is very difficult for this reason.
  • 12. FACT: "BUS FACTOR" RISK IS HIGH • If "the person who sets up the environments" on your team was hit by a bus tomorrow, would it be easy or hard to keep going? • Can any person on your team destroy their development environment and re-build it from scratch automatically?
  • 13. FACT: DEPENDENCY HELL Does this type of thing look familiar?
  • 14. DOCKER CAN HELP • Docker provides a way of distributing applications • It also provides orchestration tools for developing them • End game is to reduce friction to the point where transitioning between projects is seamless
  • 15.
  • 16.
  • 17.
  • 21. WHAT IS A POLYGLOT? "PROGRAMMING LANGUAGE"
  • 22. WHAT IS A POLYGLOT? "TOOLING LANGUAGE"
  • 23. WHAT IS A POLYGLOT? "DEVELOPER LANGUAGE" "We need to add some migrations to run for the database, a few controllers, and also some jobs to run in the background queue."
  • 24. WHAT IS A POLYGLOT? "OPERATOR LANGUAGE" "Let's set up some automation around our load balancers, store these files in an S3 bucket and consider moving to a cross-cloud solution with overlay networking."
  • 25. DOCKER LETS YOU DEFINE AN ENVIRONMENT SIMPLY
  • 27. I DON'T KNOW ANYTHING ABOUT LUA... ...AND ONLY A LITTLE ABOUT NGINX.
  • 28. SETTING UP OPENRESTY MANUALLY $ sudo apt-get install -y make build-essential libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential $ # Go to browser, click around on "Download Page" $ wget https://openresty.org/download/ngx_openresty-1.9.3.1.tar.gz $ tar xvf ngx_openresty-1.9.3.1.tar.gz $ cd ngx_openresty-1.9.3.1 $ ./configure; make; make install
  • 29. FORTUNATELYTHAT PROJECT HAS GOOD DOCUMENTATION, BUT WHAT IF IT DIDN'T?
  • 30. WHAT IFYOU WANTTO INSTALL AUTOMATICALLY ON ANOTHER COMPUTER? OR EASILY SHAREYOUR APPLICATION WITH A FRIEND OR COLLEAGUE?
  • 31. REPLACE MANUAL METHOD WITH ATINY BASH SCRIPT?
  • 32. "YEAH, I KNOWYOU DEVELOP ON DEBIAN, BUTTHIS NEEDSTO RUN ON RHEL."
  • 33. DEVELOPER Installing software is boring! I just want to script nginx with Lua!
  • 35. WE CAN MAKE DOCKERFILE. IT WILL RUN ON ANY OS WITH COMPATIBLE KERNEL. from debian:jessie run apt-get update run apt-get install -y libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl wget make build-essential run mkdir -p /openresty workdir /openresty env OPENRESTY_VERSION 1.7.10.2 run wget http://openresty.org/download/ngx_openresty-${OPENRESTY_VERSION}.tar.gz run tar xzvf ngx_openresty-${OPENRESTY_VERSION}.tar.gz run cd ngx_openresty-${OPENRESTY_VERSION}/ && ./configure && make && make install env PATH /usr/local/openresty/nginx/sbin:$PATH add https://get.docker.com/builds/Linux/x86_64/docker-latest /docker run chmod +x /docker add . /app workdir /app entrypoint ["./entrypoint.sh"]
  • 36. BUILD, SHIP, & RUN $ docker build -t nathanleclaire/openresty . $ docker push nathanleclaire/openresty $ # Now we can pull from anywhere! $ # On another computer... $ docker run -d -P nathanleclaire/openresty
  • 37. YOU CAN USE AUTOMATED BUILDS ON DOCKER HUBTO LEARN FROM OTHER PEOPLE
  • 38. LOTS OF CONTRIBUTION TO DOCKER BECAUSE OF DOCKER