Jérôme Petazzoni describes how Docker helps with various roles including as a tech support engineer, technical writer, developer, and sysadmin. Docker helps reproduce issues for support, allows documentation to be rendered consistently, simplifies setting up development environments, and improves processes like deployment, scaling, and orchestration. The Docker Engine and Registry are open source with commercial support options available.
This presentation starts with an introduction to the rationale behind automated deployments in Continuous Delivery and DevOps. Then, I compare agent-based architectures, such as Chef and Puppet with the agentless architecture of the server orchestration engine Ansible. The presentation concludes with an automated deployment of Dynatrace into a simulated production environment.
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinAlessandro Nadalin
A look at how we try to make our architecture robust, resilient and fun to work with: Namshi is not github or spotify but... ...imitation is the sincerest form of flattery!
This presentation starts with an introduction to the rationale behind automated deployments in Continuous Delivery and DevOps. Then, I compare agent-based architectures, such as Chef and Puppet with the agentless architecture of the server orchestration engine Ansible. The presentation concludes with an automated deployment of Dynatrace into a simulated production environment.
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinAlessandro Nadalin
A look at how we try to make our architecture robust, resilient and fun to work with: Namshi is not github or spotify but... ...imitation is the sincerest form of flattery!
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Carlos Sanchez
Extend Continuous Integration to automatically test your infrastructure.
Continuous Integration can be extended to test deployments and production environments, in a Continuous Delivery cycle, using infrastructure-as-code tools like Puppet, allowing to manage multiple servers and their configurations, and test the infrastructure the same way continuous integration tools do with developers’ code.
Puppet is an infrastructure-as-code tool that allows easy and automated provisioning of servers, defining the packages, configuration, services, … in code. Enabling DevOps culture, tools like Puppet help drive Agile development all the way to operations and systems administration, and along with continuous integration tools like Jenkins, it is a key piece to accomplish repeatability and continuous delivery, automating the operations side during development, QA or production, and enabling testing of systems configuration.
Using Vagrant, a command line automation layer for VirtualBox, we can easily spin off virtual machines with the same configuration as production servers, run our test suite, and tear them down afterwards.
We will show how to set up automated testing of an application and associated infrastructure and configurations, creating on demand virtual machines for testing, as part of your continuous integration process.
Docker is a groundbreaking technology that will heavily influence how we will write software in the years to come: let's then have a look at:
* where it comes from (Linux Containers)
* how it works
* how to dockerize simple apps to easily deploy them on production
* how you can use Docker in local environments to simplify your development workflow
Do you like Vagrant, auto-scaling or 12-factor apps? Then get ready to be mindblown.
Choosing the Right Framework for Running Docker Containers in ProdJosh Padnick
In this talk, I cover the key elements of running multiple Docker containers per VM, the major frameworks available to assist with this, and when to choose each.
Vagrant is a well-known tool for creating development environments in a simple and consistent way. Since we adopted in our organization we experienced several benefits: lower project setup times, better shared knowledge among team members, less wtf moments ;-)
In this session I'd like to share our experience, including but not limited to:
- advanced vagrantfile configuration
- vm configuration tips for dev environment: performance, debug, tuning
- our wtf moments
- puphet/phansilbe: hot or not?
- tips for sharing a box
Achieving Continuous Delivery: An Automation Storyjimi-c
Continuos Deployment is the act of deploying software constantly. The idea is if "release early, release often" is good, releasing very often is better. It's not trivial. Automation is part of the battle, and testing is another. Learn to use tools like Jenkins and Ansible to move from deploying software once a month to 15 times every hour, and why you'll want to.
Presented at PyCon 2015 in Montreal
Covers a broad overview of how to use AWS for building a scalable web app. Covers some of the AWS services in depth, and also gives recommendations on many services.
Deploying an application with Chef and DockerDaniel Ku
Docker 캐주얼 토크 #1 (2014-10-15)에서 발표하기 위해 만든 자료.
원래 'Docker 실서비스 도입기'를 발표하려고 했으나, 아직 도입이 마무리되지 못한 관계로 그 과정에서 의미 있는 부분을 찾아보았다.
그래서 Chef와 Docker가 도입되면 StudyGPS에서 어플리케이션을 업데이트하는 기존의 방식이 어떻게 변화하는지에 대해 설명하고, 그 변화의 의미에 대해서 생각해보고 정리하였다.
My talk from DevOpsCon Berlin 2016.
Ansible is a radically simple and lightweight provisioning framework which makes your servers and applications easier to provision and deploy. By orchestrating your application deployments you gain benefits such as documentation as code, testability, continuous integration, version control, refactoring, automation and autonomy of your deployment routines, server and application configuration. Ansible uses a language that approaches plain English, uses SSH and has no agents to install on remote systems. It is the simplest way to automate and orchestrate application deployment, configuration management and continuous delivery.
In this tutorial you will be given an introduction to Ansible and learn how to provision Linux servers with a web-proxy, a database and some other packages. Furthermore we will automate zero downtime deployment of a Java application to a load balanced environment.
Deploying On-Prem as SaaS: Why we go with AnsibleMartin Etmajer
How do you deploy a traditional on-premise solution as Software as a Service? Here, I am presenting architectural decisions and challenges faced in building and maturing an orchestration service for automating and managing deployments of Dynatrace, an application monitoring solution at enterprise scale, into Amazon's AWS cloud.
The focus of this presentation is on our experiences with Ansible, a radically simple, yet powerful, IT automation tool, whose agentless architecture and extensive modules library greatly simplified cloud service orchestration and integration of our solution with customer applications. Besides, automated testing of our deployment scripts with Test Kitchen and serverspec is discussed.
Docker and Puppet for Continuous IntegrationGiacomo Vacca
Today developers want to change the code, build and deploy often, even several times per day.
New versions of software may need to be tested on different distributions, and with different configurations.
Achieving this with Virtual Machines it’s possible, but it’s very resource and time consuming. Docker provides an incredibly good solution for this, in particular if combined with Continuous Integration tools like Jenkins and Configuration Management tools like Puppet.
This presentation focuses on the opportunities to configure automatically Docker images, use Docker containers as disposable workers during your tests, and even running your Continuous Integration system inside Docker.
Vagrant is a well-known tool for creating development environments in a simple and consistent way. Since we adopted in our organization we experienced several benefits: lower project setup times, better shared knowledge among team members, less wtf moments ;-)
In this session I'd like to share our experience, including but not limited to:
- advanced vagrantfile configuration
- vm configuration tips for dev environment: performance, debug, tuning
- our wtf moments
- puphet/phansilbe: hot or not?
- tips for sharing a box
An on-going presentation for the Docker workshop on how to integrate docker into Vagrant as a provider. In order to remove the requirement of having a VM, and speedup development environments. It also features Puppet as the configuration management system.
The code can be found in: https://github.com/npoggi/vagrant-docker
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Carlos Sanchez
Extend Continuous Integration to automatically test your infrastructure.
Continuous Integration can be extended to test deployments and production environments, in a Continuous Delivery cycle, using infrastructure-as-code tools like Puppet, allowing to manage multiple servers and their configurations, and test the infrastructure the same way continuous integration tools do with developers’ code.
Puppet is an infrastructure-as-code tool that allows easy and automated provisioning of servers, defining the packages, configuration, services, … in code. Enabling DevOps culture, tools like Puppet help drive Agile development all the way to operations and systems administration, and along with continuous integration tools like Jenkins, it is a key piece to accomplish repeatability and continuous delivery, automating the operations side during development, QA or production, and enabling testing of systems configuration.
Using Vagrant, a command line automation layer for VirtualBox, we can easily spin off virtual machines with the same configuration as production servers, run our test suite, and tear them down afterwards.
We will show how to set up automated testing of an application and associated infrastructure and configurations, creating on demand virtual machines for testing, as part of your continuous integration process.
Docker is a groundbreaking technology that will heavily influence how we will write software in the years to come: let's then have a look at:
* where it comes from (Linux Containers)
* how it works
* how to dockerize simple apps to easily deploy them on production
* how you can use Docker in local environments to simplify your development workflow
Do you like Vagrant, auto-scaling or 12-factor apps? Then get ready to be mindblown.
Choosing the Right Framework for Running Docker Containers in ProdJosh Padnick
In this talk, I cover the key elements of running multiple Docker containers per VM, the major frameworks available to assist with this, and when to choose each.
Vagrant is a well-known tool for creating development environments in a simple and consistent way. Since we adopted in our organization we experienced several benefits: lower project setup times, better shared knowledge among team members, less wtf moments ;-)
In this session I'd like to share our experience, including but not limited to:
- advanced vagrantfile configuration
- vm configuration tips for dev environment: performance, debug, tuning
- our wtf moments
- puphet/phansilbe: hot or not?
- tips for sharing a box
Achieving Continuous Delivery: An Automation Storyjimi-c
Continuos Deployment is the act of deploying software constantly. The idea is if "release early, release often" is good, releasing very often is better. It's not trivial. Automation is part of the battle, and testing is another. Learn to use tools like Jenkins and Ansible to move from deploying software once a month to 15 times every hour, and why you'll want to.
Presented at PyCon 2015 in Montreal
Covers a broad overview of how to use AWS for building a scalable web app. Covers some of the AWS services in depth, and also gives recommendations on many services.
Deploying an application with Chef and DockerDaniel Ku
Docker 캐주얼 토크 #1 (2014-10-15)에서 발표하기 위해 만든 자료.
원래 'Docker 실서비스 도입기'를 발표하려고 했으나, 아직 도입이 마무리되지 못한 관계로 그 과정에서 의미 있는 부분을 찾아보았다.
그래서 Chef와 Docker가 도입되면 StudyGPS에서 어플리케이션을 업데이트하는 기존의 방식이 어떻게 변화하는지에 대해 설명하고, 그 변화의 의미에 대해서 생각해보고 정리하였다.
My talk from DevOpsCon Berlin 2016.
Ansible is a radically simple and lightweight provisioning framework which makes your servers and applications easier to provision and deploy. By orchestrating your application deployments you gain benefits such as documentation as code, testability, continuous integration, version control, refactoring, automation and autonomy of your deployment routines, server and application configuration. Ansible uses a language that approaches plain English, uses SSH and has no agents to install on remote systems. It is the simplest way to automate and orchestrate application deployment, configuration management and continuous delivery.
In this tutorial you will be given an introduction to Ansible and learn how to provision Linux servers with a web-proxy, a database and some other packages. Furthermore we will automate zero downtime deployment of a Java application to a load balanced environment.
Deploying On-Prem as SaaS: Why we go with AnsibleMartin Etmajer
How do you deploy a traditional on-premise solution as Software as a Service? Here, I am presenting architectural decisions and challenges faced in building and maturing an orchestration service for automating and managing deployments of Dynatrace, an application monitoring solution at enterprise scale, into Amazon's AWS cloud.
The focus of this presentation is on our experiences with Ansible, a radically simple, yet powerful, IT automation tool, whose agentless architecture and extensive modules library greatly simplified cloud service orchestration and integration of our solution with customer applications. Besides, automated testing of our deployment scripts with Test Kitchen and serverspec is discussed.
Docker and Puppet for Continuous IntegrationGiacomo Vacca
Today developers want to change the code, build and deploy often, even several times per day.
New versions of software may need to be tested on different distributions, and with different configurations.
Achieving this with Virtual Machines it’s possible, but it’s very resource and time consuming. Docker provides an incredibly good solution for this, in particular if combined with Continuous Integration tools like Jenkins and Configuration Management tools like Puppet.
This presentation focuses on the opportunities to configure automatically Docker images, use Docker containers as disposable workers during your tests, and even running your Continuous Integration system inside Docker.
Vagrant is a well-known tool for creating development environments in a simple and consistent way. Since we adopted in our organization we experienced several benefits: lower project setup times, better shared knowledge among team members, less wtf moments ;-)
In this session I'd like to share our experience, including but not limited to:
- advanced vagrantfile configuration
- vm configuration tips for dev environment: performance, debug, tuning
- our wtf moments
- puphet/phansilbe: hot or not?
- tips for sharing a box
An on-going presentation for the Docker workshop on how to integrate docker into Vagrant as a provider. In order to remove the requirement of having a VM, and speedup development environments. It also features Puppet as the configuration management system.
The code can be found in: https://github.com/npoggi/vagrant-docker
Docker and Maestro for fun, development and profitMaxime Petazzoni
Presentation on MaestroNG, an orchestration and management tool for multi-host container deployments with Docker.
#lspe meetup, February 20th, 2014 at Yahoo!'s URL café.
Scott Guthrie - Executive Vice President of Microsoft's Cloud + Enterprise division talks about the Cloud for Modern Business, Microsoft Cloud – Enterprise Strategy and the Roadmap
Learn how to be build repeatable Windows environments using hand tailored build factory based on packer Terraform Chocolatey and Boxstarter. Learn how to become predictable and environment agnostic. Build services on Google Cloud Platform, AWS & Azure using the same deployment methodology.
Many inventions over the past 70 years lead up to the modern datacenter. This infographic features some of the milestones that changed datacenter history.
A mi hackathonunk: Egy kihívásokkal teli IoT projekt tapasztalataiGyörgy Balássy
El lehet-e készíteni egy teljes IoT megoldást 4 nap alatt 4 fővel, saját fejlesztésű hardverrel és teljesen egyedi szoftverrel? A “biztonság kedvéért” legyen benne minden, ami kellhet a sikerhez: Arduino, Raspberry, Bluetooth, RFID, hangfelismerés, Node.js és persze cloud. Mi megterveztük, nekiálltunk, az eredményt pedig megmutatjuk.
Az előadás az IoT Workshop Budapest meetupon hangzott el 2016.03.24-én.
Docker landed almost two years ago, making it possible to build, ship, and run
any Linux application, on any platform, it was quickly adopted by developers
and ops, like no other tool before. The CI/CD industry even took it to
production long before it was stamped "production-ready."
Why does everyone (or almost!) love Docker? Because it puts powerful
automation abilities within the hands of normal developers. Automation
almost always involves building distribution packages, virtual machine
images, or writing configuration management manifests. With Docker,
those tasks are radically transformed: sometimes they're far easier than before,
other times they're no longer needed at all. Either way, the intervention
of a seasoned sysadmin guru is no longer required.
Orchestration, resource scheduling…What does that mean? Is this only relevant for data centers with thousands of nodes? Should I care about Mesos, Kubernetes, Swarm, when all I have is a handful of virtual machines? The motto of public cloud IAAS is "pay for what you use," so in theory, if I deploy my apps there, I'm already getting the best "resource utilization" aka "bang for my buck," right? In this talk, we will answer those questions, and a few more. We will define orchestration, scheduling, and others, and show what it's like to use a scheduler to run containerized applications there.
Docker networking basics & coupling with Software Defined NetworksAdrien Blind
This presentation reminds Docker networking, exposes Software Defined Network basic paradigms, and then proposes a mixed-up implementation taking benefits of a coupled use of these two technologies. Implementation model proposed could be a good starting point to create multi-tenant PaaS platforms.
As a bonus, OpenStack Neutron internal design is presented.
You can also have a look on our previous presentation related to enterprise patterns for Docker:
http://fr.slideshare.net/ArnaudMAZIN/docker-meetup-paris-enterprise-docker
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...OpenStack Korea Community
OpenStack Day in Korea 2015 - Keynote 2
Leveraging OpenStack to Realize the SKT Software-Defined Data Center
Jinsung Choi, Ph.D - CTO, Corporate R&D Center, SK Telecom
This was a talk given internally at BloomReach as well as a guest lecture to a grad level Data Structures and Algorithms class at the University of Texas at Arlington.
A Deep dive on the history of containers, and how they work under the cover utilizing Linux Kernel features such as Process Namespaces and Control Groups.
I also go over a bit of the history of Container technology, going from Chroot and Jails and Zones, to LXC and Docker
How docker change organization of development and ops teams
What is the point for developers when it comes to interactions with underlying system and application dependencies
Lessons learnt by @EnaleanTeam on mytuleap.com experience
MIT Licensed - Reuse freely, but attribute "Hamilton Turner"
An introduction to the Docker container engine. Focuses on how to use Docker and implications of Docker for Cloud-based services. Shows multiple examples of rapidly starting complex environments using Docker. Very minor discussion on how Docker works technically.
Presentation source is available at https://github.com/hamiltont/intro-to-docker
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
In less than two years Docker went from first line of code to major Open Source project with contributions from all the big names in IT. Everyone is excited, but what's in for me - as a Dev or Ops? In short, Docker makes creating Development, Test and even Production environments an order of magnitude simpler, faster and completely portable across both local and cloud infrastructure. We will start from Docker main concepts: how to create a Linux Container from base images, run your application in it, and version your runtimes as you would with source code, and finish with a concrete example.
Development environments are a necessary part of every developer's workflow. They can also be a great source of friction. What may begin as simply running python my_app.py eventually bloats as you add more apps, more databases, more testing frameworks, and more developers. We'll talk about the evolution of a typical development environment, how it lets us down, and how we try to make it better. We'll end with an introduction to Dusty, a new tool which uses Docker containers to take our development environments to the next level.
Originally presented at PyGotham 2015.
Recent changes in one desktop product generated many doubts in developer communities regarding containers. Can we still use or create them? Do we have alternatives to docker? We have some answers! Join us in this session to learn more about some popular docker alternatives. You can create containers without docker, and you can also run and publish them. There's life after docker, and containers are here to stay.
Immutable infrastructure with Docker and containers (GlueCon 2015)Jérôme Petazzoni
"Never upgrade a server again. Never update your code. Instead, create new servers, and throw away the old ones!"
That's the idea of immutable servers, or immutable infrastructure. This makes many things easier: rollbacks (you can always bring back the old servers), A/B testing (put old and new servers side by side), security (use the latest and safest base system at each deploy), and more.
However, throwing in a bunch of new servers at each one-line CSS change is going to be complicated, not to mention costly.
Containers to the rescue! Creating container "golden images" is easy, fast, dare I say painless. Replacing your old containers with new ones is also easy to do; much easier than virtual machines, let alone physical ones.
In this talk, we'll quickly recap the pros (and cons) of immutable servers; then explain how to implement that pattern with containers. We will use Docker as an example, but the technique can easily be adapted to Rocket or even plain LXC containers.
Docker containers & the Future of Drupal testing Ricardo Amaro
Story of an investigation to improve cloud
The sad VirtualMachine story
Containers and non-containers
DEMO - Drupal Docker
Drupal Testbots story in a Glance
Docker as a testing automation factor
DEMO - Docker Tesbot
Integration path
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017Codemotion
L’ecosistema degli orchestratori di container è in rapido movimento, una galassia di piattaforme e framework. Come si fa a scegliere quello giusto per le vostre esigenze? Vediamo tutti gli orchestratori in commercio, con i loro pro e contro: DC/OS, Kubernetes, Docker e anche quelli meno famosi ma saranno promesse, e anche le dinamiche e le scelte fatte.
Easier, Better, Faster, Safer Deployment with Docker and Immutable ContainersC4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1W22OMy.
Jerome Petazzoni explains in detail the advantages of immutable servers, then how to implement them with containers in general, and Docker in particular. Filmed at qconnewyork.com.
Jerome Petazzoni is a senior engineer at Docker, where he helps others to containerize all the things. In another life he built and operated Xen clouds when EC2 was just the name of a plane, developed a GIS to deploy fiber interconnects through the French subway, managed commando deployments of large-scale video streaming systems in bandwidth-constrained environments such as conference centers.
Docker Inside/Out: The 'Real' Real- World World of Stacking Containers in pro...Sonatype
Daniël van Gils, Cloud 66
So you’ve already containerized the shit out of your code, broken down monoliths, microserviced the hell out of your app and have run some awesome workloads in your local, dev and test environments. It’s all looking good, but now what?
Running Docker commands is one thing, but maintaining containers in production is a whole other ballgame. So during this talk I’ll show you the REAL wild world of Docker in production. With the added benefit of talking to and observing how over 900 of our customers have been using Docker in production, I’ll be presenting some of these data points and sharing our observations on how to get it right.
My aim? I want to turn the conversation on its head and dispel some of the ‘silver bullet’ assumptions flying around by taking an inside-out approach to building with Docker. The idea is to provide you with a framework for how to get your code into containers, streamline the Docker build flow and avoid common pitfalls when moving from dev to live environments.
Because remember, Docker will NOT, and I repeat, will not solve your bad dev and ops behaviours. So don’t end up with a ‘hot mess’ (more on that later), and attend my talk to get container smart
Pilot Tech Talk #10 — Practical automation by Kamil CholewińskiPilot
See how Kamil Cholewiński talks about Practical automation in Tech Talk episode 10
Visit pilot.co — World’s best engineering and design talent on demand.
YouTube: https://youtu.be/x0eQ7x7xN8o
DockerCon EU 2015 in Barcelona
Practical tips for using Docker to run tests during development, CI/CD, and different strategies for speeding up the run of your test suite by using parallel pipelines in containers.
The jet tool used to demonstrate parallel testing is available here: https://codeship.com/documentation/docker/installation/
Docker helped to bring container technologies to the masses. Already, giants joined the movement, either claiming long time usage (like Google) or trying to catch up momentum (like Microsoft). This talk was about discovering docker and its ecosystem, from a devops and practical point of view. My slides presented at Anchor Coworking on December 27th, 2014.
Adrian Otto from Rackspace will present "Docker 102", This includes a summary of Docker 101 as a refresher from the August session, and builds upon that by discussing who should use a registry, and what options are available for keeping them private. We will discuss best practices for keeping your production environments evergreen with updated operating system environments, library dependencies, and maintaining an immutable infrastructure.
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...Docker, Inc.
The ModCloth Platform team has been building a Docker-based continuous delivery pipeline. This presentation discusses that project and how we build containers at ModCloth. The topics include what goes into our containers; how to optimize builds to use the Docker build cache effectively; useful development workflows (including using fig); and the key decision to treat containers as processes instead of mini-vms. This presentation will also discuss (and demo!) the workflow we’ve adopted for building containers and how we’ve integrated container builds with our CI.
Similar to Tiad - Docker: Automation for the rest of us (20)
Have you ever wondered how search works while visiting an e-commerce site, internal website, or searching through other types of online resources? Look no further than this informative session on the ways that taxonomies help end-users navigate the internet! Hear from taxonomists and other information professionals who have first-hand experience creating and working with taxonomies that aid in navigation, search, and discovery across a range of disciplines.
Acorn Recovery: Restore IT infra within minutesIP ServerOne
Introducing Acorn Recovery as a Service, a simple, fast, and secure managed disaster recovery (DRaaS) by IP ServerOne. A DR solution that helps restore your IT infra within minutes.
This presentation, created by Syed Faiz ul Hassan, explores the profound influence of media on public perception and behavior. It delves into the evolution of media from oral traditions to modern digital and social media platforms. Key topics include the role of media in information propagation, socialization, crisis awareness, globalization, and education. The presentation also examines media influence through agenda setting, propaganda, and manipulative techniques used by advertisers and marketers. Furthermore, it highlights the impact of surveillance enabled by media technologies on personal behavior and preferences. Through this comprehensive overview, the presentation aims to shed light on how media shapes collective consciousness and public opinion.
This presentation by Morris Kleiner (University of Minnesota), was made during the discussion “Competition and Regulation in Professions and Occupations” held at the Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found out at oe.cd/crps.
This presentation was uploaded with the author’s consent.
Sharpen existing tools or get a new toolbox? Contemporary cluster initiatives...Orkestra
UIIN Conference, Madrid, 27-29 May 2024
James Wilson, Orkestra and Deusto Business School
Emily Wise, Lund University
Madeline Smith, The Glasgow School of Art
0x01 - Newton's Third Law: Static vs. Dynamic AbusersOWASP Beja
f you offer a service on the web, odds are that someone will abuse it. Be it an API, a SaaS, a PaaS, or even a static website, someone somewhere will try to figure out a way to use it to their own needs. In this talk we'll compare measures that are effective against static attackers and how to battle a dynamic attacker who adapts to your counter-measures.
About the Speaker
===============
Diogo Sousa, Engineering Manager @ Canonical
An opinionated individual with an interest in cryptography and its intersection with secure software development.
5. Jérôme Petazzoni
@jpetazzo
Tamer of Unicorns and Tinkerer Extraordinaire*
Grumpy French DevOps
Dislikes: repetitive tasks
Likes: shell scripts
"Go Away Or I Will Replace You Wiz Le Very Small Shell Script!"
* At least one of those is actually on my business card
5 / 61
9. I am tech support ... for a PaaS!
Every day a new kind of fun!
Monday: Node.js
Tuesday: Python
Wednesday: Ruby
Thursday: Java
Friday: PHP
9 / 61
10. Lessons learned
Lots of support requests are:
"How do I do X with your product?"
Good documentation → fewer tech support requests
"Give a man a fish and you feed him for a day;
teach a man to fish and you feed him for a lifetime."
"Give someone good support and you help them today;
write some docs and you help everybody forever."
Unless your business model relies on a product that you
can't install unless you have a PhD or a support contract
10 / 61
11. I am a technical writer
Wrote 60-80% of dotCloud documentation
Wrote 30-40% of Docker training materials
I ♥ to explain things
11 / 61
12. I am a technical writer
Wrote 60-80% of dotCloud documentation
Wrote 30-40% of Docker training materials
I ♥ to explain things
Documentation is part of your product
It's NOT the least important part
We're talking about technical products here. Don't brag because you
were able to place a phone call without reading the user manual.
12 / 61
19. Public Service Advisory
Never, ever be proud of being on-call
Never, ever be on-call for free
You're harming yourself
19 / 61
20. Public Service Advisory
Never, ever be proud of being on-call
Never, ever be on-call for free
You're harming yourself
You're harming all of us
20 / 61
21. Public Service Advisory
Never, ever be proud of being on-call
Never, ever be on-call for free
You're harming yourself
You're harming all of us
Make sure people are aware of the issues
21 / 61
22. I am an Impostor
Impostor syndrome, anyone?
Am I really qualified to do this?
What the F am I doing here?
Affects women more than men
This can lead to burn-out and sleep deprivation
This is more important than you think
22 / 61
26. Some challenges with tech support
"Works For Me"
"Can't reproduce"
"I would appreciate if you could test between 3 and 4am"
"So to trigger the bug you have to install X and Y then
configure A, B, and C, then download the extra file, put it in
this directory (which doesn't exists?!?) and then if you
restart three times in approximatively 5 minutes but
sometimes it takes longer you will see that the images are
shifted by a few pixels but if it doesn't work try to upgrade
Y to version Z and try all over again..."
26 / 61
27. Docker for tech support
Get a well-defined, reproducible environment
Define this environment in a Dockerfile
Build this Dockerfileinto a container image
Run this container image anywhere
Same behavior, guaranteed
(or your Open Source money back)
27 / 61
29. Some challenges for tech writers
We use sphinx, showoff, LaTeX...
"To see what the final documentation will look like,
you need Ruby, 45 libraries, a custom fork of this project,
and a philosopher's stone."
Insert scary anecdote about API documentations
Result:
tech writers can't see what they're doing
other team members won't/can't contribute to the docs
29 / 61
31. Docker for tech writers
With this Dockerfile, anyone can run our "doc pipelines"
Results are consistent, no more:
"you forgot to install 字形 so the output is different!"
Less wasted time for onboarding, upgrades, reinstalls...
Automate those repetitive, difficult tasks yourself
31 / 61
32. Some challenges for developers
Set up this Ruby + Postgres + Mongo + Cassandra stack
Make sure that all team members have the same env
Have consistent library versions between dev and prod
Basically, the same challenges as before, but worse
32 / 61
33. Docker for developers
Write Dockerfiles for each component
Put components together with Fig/Compose
Profit!
33 / 61
35. Onboarding
Hire developer*
Give them a computer
Install Docker
gitclone...
docker-composeup...
Your stack is up and running
*Actually the most difficult part.
35 / 61
36. Cold, hard data
How long does it take for a developer to join a new project?
Before Docker: 2 days
After Docker: 2 hours
(Source: Worldline)
36 / 61
39. Docker vs Configuration Management
Quick poll:
who is a dev?
who uses Chef/Puppet/Salt/Ansible/...?
39 / 61
40. Docker vs Configuration Management
Quick poll:
who is a dev?
who uses Chef/Puppet/Salt/Ansible/...?
who is happy with it and found it easy to learn?
40 / 61
41. Docker vs Configuration Management
Quick poll:
who is a dev?
who uses Chef/Puppet/Salt/Ansible/...?
who is happy with it and found it easy to learn?
CM is good, but learning curve is steep
Docker lets you automate deployment yourself
41 / 61
42. Production
People keep asking all the time:
Is Docker ready for production?
Can I run Docker in production?
Who runs Docker in production?
42 / 61
43. Production
People keep asking all the time:
Is Docker ready for production?
Can I run Docker in production?
Who runs Docker in production?
Why don't you ask the same questions for:
Eclipse
SublimeText
Vagrant
43 / 61
44. Repeat after me:
It is OK to use
Docker in dev,
even without
going to prod.
44 / 61
46. Some challenges for ops
How do I reduce the pain of deployment?
How do I scale up and down?
How do I move apps from colo to cloud and vice versa?
How do I use my resources efficiently?
(i.e. without wasting CPU, RAM, disk)
46 / 61
47. Deployment pain
Developers send a tarball* Friday evening
Deployment deadline is Monday morning
Installation instructions are not up to date
Dependencies are incompletely specified
External services are hard-coded all over the place
They use Debian, we use CentOS
* Or a git hash, in more sophisticated places.
47 / 61
48. Deployment with Docker
Developers ship a container image
(or a repo with a Dockerfile)
Configuration is done through environment variables*
External dependencies are expressed with ambassadors
(e.g. the redis server address is redis, and Docker takes
care of setting up a proper DNS entry in the container)
The dev-to-prod pipeline was already tested by the devs,
when they did the dev-to-test deployment
* See also: twelve-factor app principles.
48 / 61
49. Scaling up
www7needs to be exactly like www[1-6]
Possible solutions:
Configuration Management
(steep learning curve, not a silver bullet)
Golden Images (AMI...)
(slow, especially for small changes)
Server Cloning
(can affect existing server; requires manual touch-ups)
Docker
49 / 61
50. Scaling up with Docker
Create new Docker host
(with e.g. docker-machine)
Deploy application
(SSH + dockerrun, or with remote API)
Done!
(You still need to update load balancers etc., but you have to
do that even without Docker anyway.)
50 / 61
51. From colo to cloud to colo
Must make sure that servers are absolutely identical
Possible solutions:
Configuration Management
Tedious, manual work
It would be nice if we had a self-contained meta-package
holding our application and all its dependencies, all the
way down to the OS!
51 / 61
52. From colo to cloud to colo
Must make sure that servers are absolutely identical
Possible solutions:
Configuration Management
Tedious, manual work
It would be nice if we had a self-contained meta-package
holding our application and all its dependencies, all the
way down to the OS!
Guess what, that's exactly what Docker does. Cool!
(You can see Docker images as "super-debs" or "super-rpms".)
52 / 61
53. Optimize resource usage (problem 1)
You have:
5 hypervisors (physical machines)
Each server has:
16 GB RAM, 8 cores, 1 TB disk
Each week, your team asks:
one VM with X RAM, Y CPU, Z disk
Difficulty: easy
53 / 61
54. Optimize resource usage (problem 2)
You have:
1000+ hypervisors (and counting!)
Each server has different resources:
8-500 GB of RAM, 4-64 cores, 1-100 TB disk
Multiple times a day, a different team asks for:
up to 50 VMs with different characteristics
Difficulty: ???
54 / 61
55. Mesos
Generic solution to resource usage problem
Open Source project (Apache Foundation)
In production use at Twitter, AirBNB, eBay, ...
Runs your code but doesn't deploy or distribute it
How can we distribute our code on our nodes?
55 / 61
56. Mesos + Docker
Prepare your workload in a container image
Test it locally or on a smaller cluster
Submit it to Mesos
Mesos picks the right nodes to run your workload
Docker downloads the container images and runs them
56 / 61
57. Mesos + Docker + Swarm
Mesos is complicated-ish to deploy
Mesos is complicated-ish to manage
Mesos is complicated-ish to use
Docker Swarm can expose a cluster* with the Docker API
Swarm lets you use a cluster without learning a new tool
(Deployment and management are still a challenge)
(Damn! Where is my free lunch!)
* Currently a vanilla Docker cluster, soon a Mesos cluster
57 / 61
58. Summary
I am a tech support engineer:
Docker helps me to reproduce issues
I am a technical writer:
Docker helps me to render my docs
I am a developer:
Docker helps me to abstract environments, express
dependencies, be operational faster
I am a sysadmin:
Docker helps me to deploy, scale, orchestrate
58 / 61
60. How much does it cost?
The Docker Engine is Open Source
The Docker Registry is Open Source
I'm not here to sell anything
(But if you insist, we have commercial products, support, and all that stuff!)
60 / 61