SlideShare a Scribd company logo
1 of 46
Download to read offline
DOCKER AS A MULTITOOL
MARTIN SEREINIG
DOCKER AS A MULTITOOL
AGENDA
▸ What’s Usersnap?
▸ A short history of web application complexity
▸ Devops with Docker
▸ Devops with Docker
▸ Random Docker
▸ Lessons learned
WHAT’S USERSNAP
USERSNAP
▸ Very honored to be a sponsor today
▸ SaaS company
▸ Visual bug tracking & feedback: Usersnap
▸ Established 2013, located in Linz
▸ Over 1000+ customers from all over the world
▸ Currently 15+ employees
WE ARE HIRING!
A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
▸ Content Delivery Network
▸ Payments
▸ Sending Email
▸ Logging / Monitoring
▸ Storage
▸ Backups
A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
THAT’S NOT EVEN ALL!
DEVOPS WITH DOCKER
DEVOPS WITH DOCKER
DOCKER 101
▸ Docker
▸ Really lightweight VMs
▸ Images are classes, Containers are instances
▸ docker-compose
▸ Orchestrate multiple containers
▸ Configure through one file
DEVOPS WITH DOCKER
(DEVOPS) REALITY IN A STARTUP ENVIRONMENT
▸ not a lot of people
▸ everybody wears a lot of hats
▸ time is the most valuable resource
▸ there is no IT department
DEVOPS WITH DOCKER
OPS WITH DOCKER: GOALS
▸ Be able to run it all
▸ … reliably
▸ … and keep it running
▸ Fast and easy provisioning
▸ Easy scaling
▸ Save Time
DEVOPS WITH DOCKER
OPS WITH DOCKER: IMPLEMENTATION
▸ Nothing but the core competency
▸ Use what you know
▸ Docker host machines run on standard Linux
▸ Docker to build frontend application
▸ Deploy containers for the backend
▸ We’re on AWS, but it does not really matter!
DEVOPS WITH DOCKER
❌
❌ ❌
❌
DEVOPS WITH DOCKER
CONTINUOUS INTEGRATION
▸ Codeship connected to repository
▸ Every push triggers: linting, testing, …
▸ Push in master triggers staging build + deploy
▸ Push with release tag triggers release build
▸ Manual deploy
DEVOPS WITH DOCKER
SCALING
▸ Vertically
▸ Horizontally
▸ Provision new application servers with Ansible
▸ Deploy to new application server
▸ Add to load balancer
▸ Very quick. Could even be automated through API calls
DEVOPS WITH DOCKER
DEVOPS WITH DOCKER
DOCKER IN DEVELOPMENT: PROBLEM
▸ Remember the diagram from before?
▸ Dev environment as similar to production as possible
▸ Different versions of software, configuration locations, …
▸ People run different operating systems
DEVOPS WITH DOCKER
DOCKER IN DEVELOPMENT: SOLUTIONS
▸ Use a different environment than in production?
▸ Have a development server with everything installed?
▸ Run everything locally?
DEVOPS WITH DOCKER
DOCKER IN DEVELOPMENT
▸ Install Docker
▸ Install git
▸ git pull
▸ docker-compose up
▸ ☕
▸ Start working
RANDOM DOCKER
"I SUPPOSE IT IS TEMPTING, IF THE ONLY
TOOL YOU HAVE IS A HAMMER, TO TREAT
EVERYTHING AS IF IT WERE A NAIL."
Abraham H. Maslow
RANDOM DOCKER
RANDOM DOCKER
USERSNAP BLOG
▸ Wordpress, MySQL, Optimus Cache Prime, Backup
▸ Dockerized!
▸ Data stored through volume mount
RANDOM DOCKER
APPLICATION DEMO PROJECT
▸ Did I mention we are hiring?
▸ Applicants make a little demo project
▸ Can choose their tools
▸ Different people will look at the project
▸ Dockerized!
RANDOM DOCKER
ANALYTICS SCRIPTS
▸ People do reporting, etc.
▸ Not necessarily developers
▸ Dockerized!
RANDOM DOCKER
WORDPRESS PLUGIN
▸ Wordpress Plugin to integrate Usersnap
▸ Dockerized!
▸ MySQL, Wordpress stock images
▸ Plugin is linked into plugin folder
RANDOM DOCKER
BUILDING OUR HOMEPAGE
▸ Static page build with Hugo
▸ Again: Not only developers make changes
▸ Dockerized!
RANDOM DOCKER
RESISTANCE IS FUTILE!
LESSONS LEARNED
DEVELOPMENT ENVIRONMENT IS A VERY
GOOD START.
LESSONS LEARNED
ALWAYS USE DOCKER-COMPOSE!
LESSONS LEARNED
USE DOCKER VOLUMES TO LINK FILES
AND PERSIST DATA.
LESSONS LEARNED
BASH (OR WHATEVER INTERACTIVE
COMMAND) INTO A RUNNING CONTAINER
LESSONS LEARNED
USE A DOCKER-COMPOSE .ENV FILE TO
SET A COMPOSE PROJECT NAME
LESSONS LEARNED
MAC AND WINDOWS: MEH.
LESSONS LEARNED
(OR IS IT?)
THANKS!
MARTIN SEREINIG
TWITTER: @SRECNIG
EMAIL: MS@USERSNAP.COM
CREATIVE COMMONS IMAGE CREDITS
https://commons.wikimedia.org/wiki/File:NeXTcube.jpg
https://commons.wikimedia.org/wiki/File:Ic_cloud_queue_48px.svg
https://www.flickr.com/photos/peterscherub/27148813372
https://commons.wikimedia.org/wiki/File:Modern_Zamanlar_Filmi.jpg
https://commons.wikimedia.org/wiki/File:STS-110_Launch.jpg
https://commons.wikimedia.org/wiki/File:Container_ships_President_Truman_(IMO_8616283)_and_President_Kennedy_(IMO_8616295)_at_San_Francisco.jpg
https://commons.wikimedia.org/wiki/File:Puzzle_pieces_1.JPG
https://commons.wikimedia.org/wiki/File:Wikimedia_Foundation_Servers-8055_14.jpg
https://vimeo.com/107667129
https://www.flickr.com/photos/134416355@N07/31518965950
http://www.publicdomainpictures.net/view-image.php?large=1&image=20992
https://www.flickr.com/photos/daveseven/6138666188
https://commons.wikimedia.org/wiki/File:Cmglee_Container_City_2.jpg
https://commons.wikimedia.org/wiki/File:Heiwa_elementary_school_18.jpg
https://commons.wikimedia.org/wiki/File:Fast_Moving_Train_India.jpg
https://commons.wikimedia.org/wiki/File:Bell_X-1B_cockpit_2_USAF.jpg
https://commons.wikimedia.org/wiki/File:
2013-06-28_14_19_06_View_of_the_Jarbidge_Mountains_of_Nevada_from_the_end_of_pavement_on_Three_Creek_Road_near_Murphy%27s_Hot_Springs_in_I
daho.jpg
https://commons.wikimedia.org/wiki/File:Wenger_EvoGrip_S17.JPG

More Related Content

What's hot

Docker at Monoco.jp (LinkedIn)
Docker at Monoco.jp (LinkedIn)Docker at Monoco.jp (LinkedIn)
Docker at Monoco.jp (LinkedIn)
Akhmad Fathonih
 

What's hot (20)

Docker
DockerDocker
Docker
 
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena TapiaFrom Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
 
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter DanesUsing Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
 
Docker at Monoco.jp (LinkedIn)
Docker at Monoco.jp (LinkedIn)Docker at Monoco.jp (LinkedIn)
Docker at Monoco.jp (LinkedIn)
 
Using Minikube for Node.js development
Using Minikube for Node.js developmentUsing Minikube for Node.js development
Using Minikube for Node.js development
 
Learn docker in 90 minutes
Learn docker in 90 minutesLearn docker in 90 minutes
Learn docker in 90 minutes
 
Docker
DockerDocker
Docker
 
Using deploy in drupal 8
Using deploy in drupal 8Using deploy in drupal 8
Using deploy in drupal 8
 
Docker Non Technical Presentation
Docker Non Technical PresentationDocker Non Technical Presentation
Docker Non Technical Presentation
 
Docker with WordPress
Docker with WordPressDocker with WordPress
Docker with WordPress
 
Docker, developers take power
Docker, developers take powerDocker, developers take power
Docker, developers take power
 
Dockerized tests with dockerized jenkins
Dockerized tests with dockerized jenkinsDockerized tests with dockerized jenkins
Dockerized tests with dockerized jenkins
 
Docker for Dummies
Docker for DummiesDocker for Dummies
Docker for Dummies
 
Docker For Windows | Setting Up Docker On Windows | Edureka
Docker For Windows | Setting Up Docker On Windows | EdurekaDocker For Windows | Setting Up Docker On Windows | Edureka
Docker For Windows | Setting Up Docker On Windows | Edureka
 
The Automated Container Deployment Pipeline- JAXDevOps
The Automated Container Deployment Pipeline- JAXDevOpsThe Automated Container Deployment Pipeline- JAXDevOps
The Automated Container Deployment Pipeline- JAXDevOps
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Zalenium - SeleniumConf Austin 2017
Zalenium - SeleniumConf Austin 2017Zalenium - SeleniumConf Austin 2017
Zalenium - SeleniumConf Austin 2017
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
 
Docker for Integration Testing
Docker for Integration TestingDocker for Integration Testing
Docker for Integration Testing
 
DockerDay2015: Deploy Apps on IBM Bluemix
DockerDay2015: Deploy Apps on IBM BluemixDockerDay2015: Deploy Apps on IBM Bluemix
DockerDay2015: Deploy Apps on IBM Bluemix
 

Similar to Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017

Similar to Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017 (20)

Docker 101
Docker 101Docker 101
Docker 101
 
Testing AS A Container - Irfan Ahmad
Testing AS A Container - Irfan AhmadTesting AS A Container - Irfan Ahmad
Testing AS A Container - Irfan Ahmad
 
Docker Basic Presentation
Docker Basic PresentationDocker Basic Presentation
Docker Basic Presentation
 
Testing as a container
Testing as a containerTesting as a container
Testing as a container
 
Developing web apps
Developing web appsDeveloping web apps
Developing web apps
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker and the Container Revolution
Docker and the Container RevolutionDocker and the Container Revolution
Docker and the Container Revolution
 
Building and Deploying PHP Applications, PHPTour 2016
Building and Deploying PHP Applications, PHPTour 2016Building and Deploying PHP Applications, PHPTour 2016
Building and Deploying PHP Applications, PHPTour 2016
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small business
 
Docker: The Blue Whale of Awesomness
Docker: The Blue Whale of AwesomnessDocker: The Blue Whale of Awesomness
Docker: The Blue Whale of Awesomness
 
Тарас Кирилюк — Docker basics. How-to for Drupal developers
Тарас Кирилюк — Docker basics. How-to for Drupal developersТарас Кирилюк — Docker basics. How-to for Drupal developers
Тарас Кирилюк — Docker basics. How-to for Drupal developers
 
Let's dockerize
Let's dockerizeLet's dockerize
Let's dockerize
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker 101 - Getting started
Docker 101 - Getting startedDocker 101 - Getting started
Docker 101 - Getting started
 
Docker and Microservice
Docker and MicroserviceDocker and Microservice
Docker and Microservice
 
JDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
JDO 2019: Container orchestration with Docker Swarm - Jakub HajekJDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
JDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 
Dockerize WordPress on Mac/Windows
Dockerize WordPress on Mac/WindowsDockerize WordPress on Mac/Windows
Dockerize WordPress on Mac/Windows
 
Docker for the Brave
Docker for the BraveDocker for the Brave
Docker for the Brave
 
Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016
 

More from Usersnap

Bug Reporting Time Machine for AngularJS
Bug Reporting Time Machine for AngularJSBug Reporting Time Machine for AngularJS
Bug Reporting Time Machine for AngularJS
Usersnap
 
141104 usersnap angular js_jt
141104 usersnap angular js_jt141104 usersnap angular js_jt
141104 usersnap angular js_jt
Usersnap
 
What is Usersnap
What is UsersnapWhat is Usersnap
What is Usersnap
Usersnap
 

More from Usersnap (17)

Why your voice of customer program should guide your product development
Why your voice of customer program should guide your product developmentWhy your voice of customer program should guide your product development
Why your voice of customer program should guide your product development
 
What is Usersnap? An Introduction to bug tracking.
What is Usersnap? An Introduction to bug tracking.What is Usersnap? An Introduction to bug tracking.
What is Usersnap? An Introduction to bug tracking.
 
Tools Berlin Power Workshop: Wie visuelle Kommunikation Kundenservice & Bug T...
Tools Berlin Power Workshop: Wie visuelle Kommunikation Kundenservice & Bug T...Tools Berlin Power Workshop: Wie visuelle Kommunikation Kundenservice & Bug T...
Tools Berlin Power Workshop: Wie visuelle Kommunikation Kundenservice & Bug T...
 
Kundenservice 1x1 für Start-ups - Convo Coworking - Tag der offenen Türe
Kundenservice 1x1 für Start-ups - Convo Coworking - Tag der offenen TüreKundenservice 1x1 für Start-ups - Convo Coworking - Tag der offenen Türe
Kundenservice 1x1 für Start-ups - Convo Coworking - Tag der offenen Türe
 
Wie effizientes Bug Tracking Ihre Conversion-Rates verbessert
Wie effizientes Bug Tracking Ihre Conversion-Rates verbessertWie effizientes Bug Tracking Ihre Conversion-Rates verbessert
Wie effizientes Bug Tracking Ihre Conversion-Rates verbessert
 
5 Types of USER ACCEPTANCE TESTING (UAT)
5 Types of USER ACCEPTANCE TESTING (UAT)5 Types of USER ACCEPTANCE TESTING (UAT)
5 Types of USER ACCEPTANCE TESTING (UAT)
 
Fundamentals On Building A Reliable Cloud Infrastructure For Your SaaS Business
Fundamentals On Building A Reliable Cloud Infrastructure For Your SaaS BusinessFundamentals On Building A Reliable Cloud Infrastructure For Your SaaS Business
Fundamentals On Building A Reliable Cloud Infrastructure For Your SaaS Business
 
Mobile First: How To Approach Mobile Testing!
Mobile First: How To Approach Mobile Testing!Mobile First: How To Approach Mobile Testing!
Mobile First: How To Approach Mobile Testing!
 
5 Essential Tips For Improving Your Website Mockups & Prototypes!
5 Essential Tips For Improving Your Website Mockups & Prototypes!5 Essential Tips For Improving Your Website Mockups & Prototypes!
5 Essential Tips For Improving Your Website Mockups & Prototypes!
 
A Best Of 100+ Marketing Experiments at Usersnap - Startup Marketing Get-Toge...
A Best Of 100+ Marketing Experiments at Usersnap - Startup Marketing Get-Toge...A Best Of 100+ Marketing Experiments at Usersnap - Startup Marketing Get-Toge...
A Best Of 100+ Marketing Experiments at Usersnap - Startup Marketing Get-Toge...
 
20+ fantastic web development newsletters for developers & designers
20+ fantastic web development newsletters for developers & designers20+ fantastic web development newsletters for developers & designers
20+ fantastic web development newsletters for developers & designers
 
23 Amazing Lessons Learned From Interviewing The World's Top Developers!
23 Amazing Lessons Learned From Interviewing The World's Top Developers!23 Amazing Lessons Learned From Interviewing The World's Top Developers!
23 Amazing Lessons Learned From Interviewing The World's Top Developers!
 
An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)
 
Bug Reporting Time Machine for AngularJS
Bug Reporting Time Machine for AngularJSBug Reporting Time Machine for AngularJS
Bug Reporting Time Machine for AngularJS
 
141104 usersnap angular js_jt
141104 usersnap angular js_jt141104 usersnap angular js_jt
141104 usersnap angular js_jt
 
Usersnap and the javascript magic behind the scenes - ViennaJS
Usersnap and the javascript magic behind the scenes - ViennaJSUsersnap and the javascript magic behind the scenes - ViennaJS
Usersnap and the javascript magic behind the scenes - ViennaJS
 
What is Usersnap
What is UsersnapWhat is Usersnap
What is Usersnap
 

Recently uploaded

%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Recently uploaded (20)

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017

  • 1. DOCKER AS A MULTITOOL MARTIN SEREINIG
  • 2. DOCKER AS A MULTITOOL AGENDA ▸ What’s Usersnap? ▸ A short history of web application complexity ▸ Devops with Docker ▸ Devops with Docker ▸ Random Docker ▸ Lessons learned
  • 3.
  • 4. WHAT’S USERSNAP USERSNAP ▸ Very honored to be a sponsor today ▸ SaaS company ▸ Visual bug tracking & feedback: Usersnap ▸ Established 2013, located in Linz ▸ Over 1000+ customers from all over the world ▸ Currently 15+ employees
  • 5.
  • 6.
  • 8. A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
  • 9. A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
  • 10. A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
  • 11. A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
  • 12. A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
  • 13. A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
  • 14. A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
  • 15. A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
  • 16. A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
  • 17. ▸ Content Delivery Network ▸ Payments ▸ Sending Email ▸ Logging / Monitoring ▸ Storage ▸ Backups A SHORT HISTORY OF WEB APPLICATION COMPLEXITY THAT’S NOT EVEN ALL!
  • 19. DEVOPS WITH DOCKER DOCKER 101 ▸ Docker ▸ Really lightweight VMs ▸ Images are classes, Containers are instances ▸ docker-compose ▸ Orchestrate multiple containers ▸ Configure through one file
  • 20. DEVOPS WITH DOCKER (DEVOPS) REALITY IN A STARTUP ENVIRONMENT ▸ not a lot of people ▸ everybody wears a lot of hats ▸ time is the most valuable resource ▸ there is no IT department
  • 21. DEVOPS WITH DOCKER OPS WITH DOCKER: GOALS ▸ Be able to run it all ▸ … reliably ▸ … and keep it running ▸ Fast and easy provisioning ▸ Easy scaling ▸ Save Time
  • 22. DEVOPS WITH DOCKER OPS WITH DOCKER: IMPLEMENTATION ▸ Nothing but the core competency ▸ Use what you know ▸ Docker host machines run on standard Linux ▸ Docker to build frontend application ▸ Deploy containers for the backend ▸ We’re on AWS, but it does not really matter!
  • 24. DEVOPS WITH DOCKER CONTINUOUS INTEGRATION ▸ Codeship connected to repository ▸ Every push triggers: linting, testing, … ▸ Push in master triggers staging build + deploy ▸ Push with release tag triggers release build ▸ Manual deploy
  • 25. DEVOPS WITH DOCKER SCALING ▸ Vertically ▸ Horizontally ▸ Provision new application servers with Ansible ▸ Deploy to new application server ▸ Add to load balancer ▸ Very quick. Could even be automated through API calls
  • 27. DEVOPS WITH DOCKER DOCKER IN DEVELOPMENT: PROBLEM ▸ Remember the diagram from before? ▸ Dev environment as similar to production as possible ▸ Different versions of software, configuration locations, … ▸ People run different operating systems
  • 28. DEVOPS WITH DOCKER DOCKER IN DEVELOPMENT: SOLUTIONS ▸ Use a different environment than in production? ▸ Have a development server with everything installed? ▸ Run everything locally?
  • 29. DEVOPS WITH DOCKER DOCKER IN DEVELOPMENT ▸ Install Docker ▸ Install git ▸ git pull ▸ docker-compose up ▸ ☕ ▸ Start working
  • 31. "I SUPPOSE IT IS TEMPTING, IF THE ONLY TOOL YOU HAVE IS A HAMMER, TO TREAT EVERYTHING AS IF IT WERE A NAIL." Abraham H. Maslow RANDOM DOCKER
  • 32. RANDOM DOCKER USERSNAP BLOG ▸ Wordpress, MySQL, Optimus Cache Prime, Backup ▸ Dockerized! ▸ Data stored through volume mount
  • 33. RANDOM DOCKER APPLICATION DEMO PROJECT ▸ Did I mention we are hiring? ▸ Applicants make a little demo project ▸ Can choose their tools ▸ Different people will look at the project ▸ Dockerized!
  • 34. RANDOM DOCKER ANALYTICS SCRIPTS ▸ People do reporting, etc. ▸ Not necessarily developers ▸ Dockerized!
  • 35. RANDOM DOCKER WORDPRESS PLUGIN ▸ Wordpress Plugin to integrate Usersnap ▸ Dockerized! ▸ MySQL, Wordpress stock images ▸ Plugin is linked into plugin folder
  • 36. RANDOM DOCKER BUILDING OUR HOMEPAGE ▸ Static page build with Hugo ▸ Again: Not only developers make changes ▸ Dockerized!
  • 39. DEVELOPMENT ENVIRONMENT IS A VERY GOOD START. LESSONS LEARNED
  • 41. USE DOCKER VOLUMES TO LINK FILES AND PERSIST DATA. LESSONS LEARNED
  • 42. BASH (OR WHATEVER INTERACTIVE COMMAND) INTO A RUNNING CONTAINER LESSONS LEARNED
  • 43. USE A DOCKER-COMPOSE .ENV FILE TO SET A COMPOSE PROJECT NAME LESSONS LEARNED
  • 44. MAC AND WINDOWS: MEH. LESSONS LEARNED (OR IS IT?)
  • 46. CREATIVE COMMONS IMAGE CREDITS https://commons.wikimedia.org/wiki/File:NeXTcube.jpg https://commons.wikimedia.org/wiki/File:Ic_cloud_queue_48px.svg https://www.flickr.com/photos/peterscherub/27148813372 https://commons.wikimedia.org/wiki/File:Modern_Zamanlar_Filmi.jpg https://commons.wikimedia.org/wiki/File:STS-110_Launch.jpg https://commons.wikimedia.org/wiki/File:Container_ships_President_Truman_(IMO_8616283)_and_President_Kennedy_(IMO_8616295)_at_San_Francisco.jpg https://commons.wikimedia.org/wiki/File:Puzzle_pieces_1.JPG https://commons.wikimedia.org/wiki/File:Wikimedia_Foundation_Servers-8055_14.jpg https://vimeo.com/107667129 https://www.flickr.com/photos/134416355@N07/31518965950 http://www.publicdomainpictures.net/view-image.php?large=1&image=20992 https://www.flickr.com/photos/daveseven/6138666188 https://commons.wikimedia.org/wiki/File:Cmglee_Container_City_2.jpg https://commons.wikimedia.org/wiki/File:Heiwa_elementary_school_18.jpg https://commons.wikimedia.org/wiki/File:Fast_Moving_Train_India.jpg https://commons.wikimedia.org/wiki/File:Bell_X-1B_cockpit_2_USAF.jpg https://commons.wikimedia.org/wiki/File: 2013-06-28_14_19_06_View_of_the_Jarbidge_Mountains_of_Nevada_from_the_end_of_pavement_on_Three_Creek_Road_near_Murphy%27s_Hot_Springs_in_I daho.jpg https://commons.wikimedia.org/wiki/File:Wenger_EvoGrip_S17.JPG