SlideShare a Scribd company logo
1 of 84
Download to read offline
The cloud is my laboratory
Experimenting with Docker
Adam Friedman
Dimension Data (ITaaS R&D)
adam.friedman@itaas.dimensiondata.com
What this talk is about
»
What this talk is about
» Experimenting with Docker
What this talk is about
» Experimenting with Docker (der)
What this talk is about
» Experimenting with Docker
» Using virtualisation to reduce cycle time when
trying out ideas
What this talk is about
» Experimenting with Docker
» Using virtualisation to reduce cycle time when
trying out ideas
» Using the cloud to achieve scale
What this talk is about
» Experimenting with Docker
» Using virtualisation to reduce cycle time when
trying out ideas
» Using the cloud to achieve scale
» Without breaking the bank
What I'd like to leave you with
1.
What I'd like to leave you with
1. We learn more from our failures than our successes
What I'd like to leave you with
1. We learn more from our failures than our successes
2. Occam's razor
What I'd like to leave you with
1. We learn more from our failures than our successes
2. Occam's razor (prefer to minimise variables)
What I'd like to leave you with
1. We learn more from our failures than our successes
2. Occam's razor
» Aim for repeatability where possible
What I'd like to leave you with
1. We learn more from our failures than our successes
2. Occam's razor
3. Virtualisation + automation make it cheap to
experiment
What I'd like to leave you with
1. We learn more from our failures than our successes
2. Occam's razor
3. Virtualisation + automation make it cheap to
experiment
4. If experimentation is cheap enough, you can try out
almost any idea you can come up with
What I'd like to leave you with
1. We learn more from our failures than our successes
2. Occam's razor
3. Virtualisation + automation make it cheap to
experiment
4. If experimentation is cheap enough, you can try out
almost any idea you can come up with
» Think it's a silly idea? Prove it.
What I'd like to leave you with
1. We learn more from our failures than our successes
2. Occam's razor
3. Virtualisation + automation make it cheap to
experiment
4. If experimentation is cheap enough, you can try out
almost any idea you can come up with
» Don’t be afraid to experiment!
Why I love Virtualisation
Virtualisation is the bedrock on which most things cloud
are built.
Why I love Virtualisation
Virtualisation is the bedrock on which most things cloud
are built.
It is the key to:
»
Why I love Virtualisation
Virtualisation is the bedrock on which most things cloud
are built.
It is the key to:
» Economies of scale
Why I love Virtualisation
Virtualisation is the bedrock on which most things cloud
are built.
It is the key to:
» Economies of scale
» Speed of provisioning
Why I love Virtualisation
Virtualisation is the bedrock on which most things cloud
are built.
It is the key to:
» Economies of scale
» Speed of provisioning
» Repeatability
Why I love Virtualisation
Virtualisation is the bedrock on which most things cloud
are built.
It is the key to:
» Economies of scale
» Speed of provisioning
» Repeatability
» The ability to readily and reliably duplicate an
environment and its resources
Why I love the concept of Cloud
For all its potential downsides, the cloud has vastly
improved the process of experimentation:
Why I love the concept of Cloud
For all its potential downsides, the cloud has vastly
improved the process of experimentation:
» By selectively abstracting away levels of
infrastructure, it enables us to focus on what we're
trying to do
Why I love the concept of Cloud
For all its potential downsides, the cloud has vastly
improved the process of experimentation:
» By selectively abstracting away levels of
infrastructure, it enables us to focus on what we're
trying to do, rather than how to do it
Why I love the concept of Cloud
For all its potential downsides, the cloud has vastly
improved the process of experimentation:
» By selectively abstracting away levels of
infrastructure, it enables us to focus on what we're
trying to do, rather than how to do it
» Economies of scale also come into play:
Why I love the concept of Cloud
For all its potential downsides, the cloud has vastly
improved the process of experimentation:
» By selectively abstracting away levels of
infrastructure, it enables us to focus on what we're
trying to do, rather than how to do it
» Economies of scale also come into play:
» You can’t fit 20 servers under your desk
Why I love the concept of Cloud
For all its potential downsides, the cloud has vastly
improved the process of experimentation:
» By selectively abstracting away levels of
infrastructure, it enables us to focus on what we're
trying to do, rather than how to do it
» Economies of scale also come into play:
» You can’t fit 20 servers under your desk, but your
cloud provider has plenty to spare (for as long as
you need them)
Why I love the concept of Cloud
For all its potential downsides, the cloud has vastly
improved the process of experimentation:
» By selectively abstracting away levels of
infrastructure, it enables us to focus on what we're
trying to do, rather than how to do it
» Economies of scale also come into play:
» Most providers now charge only for what you
actually use
Why I love the concept of Cloud
For all its potential downsides, the cloud has vastly
improved the process of experimentation:
» By selectively abstracting away levels of
infrastructure, it enables us to focus on what we're
trying to do, rather than how to do it
» Economies of scale also come into play
» Lower costs make it easier to explore a problem
space, which helps to mitigate risk
Experimenting in the cloud
The trick to being productive when experimenting in the
cloud:
» Get set up
Experimenting in the cloud
The trick to being productive when experimenting in the
cloud:
» Get set up
» Do your experiment
Experimenting in the cloud
The trick to being productive when experimenting in the
cloud:
» Get set up
» Do your experiment
» Clean up the evidence
Without breaking the bank
The trick to being productive when experimenting in the
cloud:
» Get set up
» Do your experiment
» Clean up the evidence
» Before the mob arrives with pitchforks and flaming
torches
Docker is great
for experimenting
with new technologies
If you've heard of it, there's probably a Docker image of it.
If you've heard of it, there's probably a Docker image of it.
Example: What’s Neo4J?
If you've heard of it, there's probably a Docker image of it.
Example: What’s Neo4J?
docker run -p 7474:7474 neo4j
If you've heard of it, there's probably a Docker image of it.
Ok, how about RabbitMQ?
If you've heard of it, there's probably a Docker image of it.
Ok, how about RabbitMQ?
docker run -p 5672:5672 rabbitmq
If you've heard of it, there's probably a Docker image of it.
Ok, smartarse
If you've heard of it, there's probably a Docker image of it.
Ok, smartarse, but I bet there isn't one for cowsay
If you've heard of it, there's probably a Docker image of it.
Ok, smartarse, but I bet there isn't one for cowsay
docker run mwendler/cowsay "Sorry."
________
< Sorry. >
--------
 ^__^
 (oo)_______
(__) )/
||----w |
|| ||
That's super useful, but what if you're experimenting with
docker itself?
That's super useful, but what if you're experimenting with
docker itself?
docker-machine create docker1
eval $(docker-machine env docker1)
That's super useful, but what if you're experimenting with
docker itself?
docker-machine create docker1
eval $(docker-machine env docker1)
Ok, but not very cloudy.
That's super useful, but what if you're experimenting with
docker itself?
How about:
That's super useful, but what if you're experimenting with
docker itself?
How about:
docker-machine create --driver amazonec2 docker1
docker-machine create --driver amazonec2 docker2
That's super useful, but what if you're experimenting with
docker itself?
Or:
That's super useful, but what if you're experimenting with
docker itself?
Or:
docker-machine create --driver digitalocean docker1
docker-machine create --driver digitalocean docker2
Docker Machine is nice
Docker Machine is nice, but it's opaque
Docker Machine is nice, but it's opaque
Sometimes that’s what you want.
Docker Machine is nice, but it's opaque
Sometimes that’s what you want (again, the focus may be
on what you're trying to do).
Docker Machine is nice, but it's opaque
Sometimes that’s what you want (again, the focus may be
on what you're trying to do, not how).
Docker Machine is nice, but it's opaque
Sometimes that’s what you want (again, the focus may be
on what you're trying to do, not how).
Other times, not so much.
Docker Machine is nice, but it's opaque
Sometimes that’s what you want (again, the focus may be
on what you're trying to do, not how).
Other times, not so much.
So what other options are there?
Do it by hand
You could do this at least once - a useful learning
experience (especially for when things go wrong).
Automate it!
I'm probably preaching to the converted here :)
Infrastructure with Terraform
Declarative configuration for infrastructure
» Multi-cloud / multi-provider
» Repeatable
» Easy to consistently create / destroy / re-create
infrastructure
But Terraform is only half the story. Once the infrastructure
has been created, how do you get Docker itself deployed
and configured?
Software with Ansible
» Hardly the only option out there, but if you're
experimenting with throw-away systems then it's a good
choice because it's just SSH (no master / agents to deploy)
» Chef Solo (or Chef Zero) is an alternative, but may still
require more work to bootstrap each node
» Quick to get started (just run commands or modules on
target machines)
» Scales up to Roles + Playbooks for repeatability
» Not great for managing large numbers of machines
Software with Ansible
» Can be run from Terraform (via a plug-in provisioner) but
it's a lot easier to run it separately while you're
experimenting.
» There are Ansible inventory plugins that can read a
Terraform state file (so it knows server roles, host names,
IP addresses, etc).
» Ansible Galaxy has modules for everything, including
Docker (hint, hint)
» Beware if you are deploying an OS with only Python 3.x
(Ansible needs 2.x)
A quick detour:
Docker from simple to complex
» Stand-alone
» Docker
» Orchestrated
» Local
» Docker Compose
» Clustered
» Docker Swarm
» Clustered with GUI
» Cattle / Rancher
» Kubernetes
» Mesos / Marathon
» Kitchen Sink
» Mantl
Note that simple and easy-to-use are not the same thing :)
Cisco Mantl
» Mantl is a microservices platform based on Docker,
Mesos / Marathon, Consul, Traefik, Kubernetes, Calico,
Contiv, etc (pretty much everything but the kitchen sink).
» Because it already includes several popular systems that
extend / orchestrate Docker, it’s a useful starting point if
you’re stuck trying to work out how to deploy or
integrate a particular component
Cisco Mantl
» Mantl is deployed using Terraform with Ansible, and can
therefore be deployed on a variety of clouds by
swapping out Terraform modules as required.
» Their Ansible inventory plugin understands which cloud
provider was used to create the infrastructure and so
Ansible playbooks can adjust their behaviour to suit (if
required).
Build your own lab
Build your own (throw-away) lab
Build your own (throw-away) lab
» Digital Ocean is fast

Add Terraform and you can repeatedly create and
destroy environments in seconds, rather than minutes.
» Obviously you can use AWS / Azure, too (or
Dimension Data Cloud Control) but for quick-and-dirty
experiments I prefer the simplest thing that works).
» Create an Ansible playbook to install Docker
» Start small - put everything in a single playbook and
then move stuff out to separate reusable roles when
needed
Build your own lab
4 servers (1 master, 3 workers).
lab.tf:
resource "digitalocean_droplet" "master" {
count = 1
image = "ubuntu-14-04-x64"
name = "master-${count.index + 1}"
region = "nyc2"
size = "1024mb"
}
resource "digitalocean_droplet" "worker" {
count = 4
image = "ubuntu-14-04-x64"
name = "worker-${count.index + 1}"
region = "nyc2"
size = "1024mb"
}
Build your own lab
» terraform apply
Build your own lab
» terraform apply
» …
Build your own lab
» terraform apply
» …
» Profit!
Build your own lab
» terraform apply
» …
» Profit!
» terraform destroy
Build your own lab
» terraform apply
» …
» Profit!
» terraform destroy
» No pitchforks
Build your own lab
» terraform apply
» …
» Profit!
» terraform destroy
» No pitchforks (probably)
Why not use Rancher / Docker Cloud?
» If all you want to do is deploy containers then these
are a much better choice
Why not use Rancher / Docker Cloud?
» If all you want to do is deploy containers then these
are a much better choice
» Rancher uses docker-machine to create nodes for
you
Why not use Rancher / Docker Cloud?
» If all you want to do is deploy containers then these
are a much better choice
» Rancher uses docker-machine to create nodes for
you
» But this is a good choice if you want to learn about:
Why not use Rancher / Docker Cloud?
» If all you want to do is deploy containers then these
are a much better choice
» Rancher uses docker-machine to create nodes for
you
» But this is a good choice if you want to learn about:
» How to deploy docker
Why not use Rancher / Docker Cloud?
» If all you want to do is deploy containers then these
are a much better choice
» Rancher uses docker-machine to create nodes for
you
» But this is a good choice if you want to learn about:
» How to deploy docker
» Non-standard docker configurations
Why not use Rancher / Docker Cloud?
» If all you want to do is deploy containers then these
are a much better choice
» Rancher uses docker-machine to create nodes for
you
» But this is a good choice if you want to learn about:
» How to deploy docker
» Non-standard docker configurations
» It's useful to have a feeling for what's behind the UI
Links
» github.com/tintoy
» github.com/DimensionDataResearch
» mantl.io
» terraform.io
» ansible.com
» github.com/angstwad/docker.ubuntu
Questions?

More Related Content

Similar to The cloud is my laboratory, Adam Friedman

VMUG - Learning to Learn - Experiences and Tips for Certifications and Tech S...
VMUG - Learning to Learn - Experiences and Tips for Certifications and Tech S...VMUG - Learning to Learn - Experiences and Tips for Certifications and Tech S...
VMUG - Learning to Learn - Experiences and Tips for Certifications and Tech S...Chris Wahl
 
DevOne - How to not fail with Azure
DevOne - How to not fail with AzureDevOne - How to not fail with Azure
DevOne - How to not fail with AzureMartin Gutenbrunner
 
Discovering Volume Plugins with Applications using Docker Toolbox and VirtualBox
Discovering Volume Plugins with Applications using Docker Toolbox and VirtualBoxDiscovering Volume Plugins with Applications using Docker Toolbox and VirtualBox
Discovering Volume Plugins with Applications using Docker Toolbox and VirtualBoxClinton Kitson
 
Corwin on Containers
Corwin on ContainersCorwin on Containers
Corwin on ContainersCorwin Brown
 
Abusing the Cloud for Fun and Profit
Abusing the Cloud for Fun and ProfitAbusing the Cloud for Fun and Profit
Abusing the Cloud for Fun and ProfitAlan Pinstein
 
Reproducible datascience [with Terraform]
Reproducible datascience [with Terraform]Reproducible datascience [with Terraform]
Reproducible datascience [with Terraform]David Przybilla
 
Chaos Engineering - The Art of Breaking Things in Production
Chaos Engineering - The Art of Breaking Things in ProductionChaos Engineering - The Art of Breaking Things in Production
Chaos Engineering - The Art of Breaking Things in ProductionKeet Sugathadasa
 
Boyd Hemphill (Tsunami) Geekfest
Boyd Hemphill (Tsunami) GeekfestBoyd Hemphill (Tsunami) Geekfest
Boyd Hemphill (Tsunami) GeekfestW2O Group
 
Stop Worrying about Prodweb001 and Start Loving i-98fb9856 (ARC201) | AWS re:...
Stop Worrying about Prodweb001 and Start Loving i-98fb9856 (ARC201) | AWS re:...Stop Worrying about Prodweb001 and Start Loving i-98fb9856 (ARC201) | AWS re:...
Stop Worrying about Prodweb001 and Start Loving i-98fb9856 (ARC201) | AWS re:...Amazon Web Services
 
PUBLISHED: Cloud Computing Architecture
PUBLISHED: Cloud Computing ArchitecturePUBLISHED: Cloud Computing Architecture
PUBLISHED: Cloud Computing ArchitectureRichardBatka
 
Leveling Up at JavaScript
Leveling Up at JavaScriptLeveling Up at JavaScript
Leveling Up at JavaScriptRaymond Camden
 
Docker: automation for the rest of us
Docker: automation for the rest of usDocker: automation for the rest of us
Docker: automation for the rest of usJérôme Petazzoni
 
Chaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days AustinChaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days Austinmatthewbrahms
 
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...Alberto Brandolini
 
Project Skylab: Helping You Get Your Cloud On
Project Skylab: Helping You Get Your Cloud OnProject Skylab: Helping You Get Your Cloud On
Project Skylab: Helping You Get Your Cloud Oncraigbalding
 
Building your own personal cloud with Eucalyptus
Building your own personal cloud with EucalyptusBuilding your own personal cloud with Eucalyptus
Building your own personal cloud with EucalyptusOrlando_Ruby_Users_Group
 

Similar to The cloud is my laboratory, Adam Friedman (20)

VMUG - Learning to Learn - Experiences and Tips for Certifications and Tech S...
VMUG - Learning to Learn - Experiences and Tips for Certifications and Tech S...VMUG - Learning to Learn - Experiences and Tips for Certifications and Tech S...
VMUG - Learning to Learn - Experiences and Tips for Certifications and Tech S...
 
Cloud Security: Ten Things
Cloud Security: Ten ThingsCloud Security: Ten Things
Cloud Security: Ten Things
 
DevOne - How to not fail with Azure
DevOne - How to not fail with AzureDevOne - How to not fail with Azure
DevOne - How to not fail with Azure
 
Intro to Drush
Intro to DrushIntro to Drush
Intro to Drush
 
Discovering Volume Plugins with Applications using Docker Toolbox and VirtualBox
Discovering Volume Plugins with Applications using Docker Toolbox and VirtualBoxDiscovering Volume Plugins with Applications using Docker Toolbox and VirtualBox
Discovering Volume Plugins with Applications using Docker Toolbox and VirtualBox
 
Unleash The Monkeys
Unleash The MonkeysUnleash The Monkeys
Unleash The Monkeys
 
Corwin on Containers
Corwin on ContainersCorwin on Containers
Corwin on Containers
 
Abusing the Cloud for Fun and Profit
Abusing the Cloud for Fun and ProfitAbusing the Cloud for Fun and Profit
Abusing the Cloud for Fun and Profit
 
Reproducible datascience [with Terraform]
Reproducible datascience [with Terraform]Reproducible datascience [with Terraform]
Reproducible datascience [with Terraform]
 
Chaos Engineering - The Art of Breaking Things in Production
Chaos Engineering - The Art of Breaking Things in ProductionChaos Engineering - The Art of Breaking Things in Production
Chaos Engineering - The Art of Breaking Things in Production
 
Boyd Hemphill (Tsunami) Geekfest
Boyd Hemphill (Tsunami) GeekfestBoyd Hemphill (Tsunami) Geekfest
Boyd Hemphill (Tsunami) Geekfest
 
Stop Worrying about Prodweb001 and Start Loving i-98fb9856 (ARC201) | AWS re:...
Stop Worrying about Prodweb001 and Start Loving i-98fb9856 (ARC201) | AWS re:...Stop Worrying about Prodweb001 and Start Loving i-98fb9856 (ARC201) | AWS re:...
Stop Worrying about Prodweb001 and Start Loving i-98fb9856 (ARC201) | AWS re:...
 
PUBLISHED: Cloud Computing Architecture
PUBLISHED: Cloud Computing ArchitecturePUBLISHED: Cloud Computing Architecture
PUBLISHED: Cloud Computing Architecture
 
Leveling Up at JavaScript
Leveling Up at JavaScriptLeveling Up at JavaScript
Leveling Up at JavaScript
 
Docker: automation for the rest of us
Docker: automation for the rest of usDocker: automation for the rest of us
Docker: automation for the rest of us
 
Tiad - Docker: Automation for the rest of us
Tiad - Docker: Automation for the rest of usTiad - Docker: Automation for the rest of us
Tiad - Docker: Automation for the rest of us
 
Chaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days AustinChaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days Austin
 
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
 
Project Skylab: Helping You Get Your Cloud On
Project Skylab: Helping You Get Your Cloud OnProject Skylab: Helping You Get Your Cloud On
Project Skylab: Helping You Get Your Cloud On
 
Building your own personal cloud with Eucalyptus
Building your own personal cloud with EucalyptusBuilding your own personal cloud with Eucalyptus
Building your own personal cloud with Eucalyptus
 

Recently uploaded

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Recently uploaded (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

The cloud is my laboratory, Adam Friedman

  • 1. The cloud is my laboratory Experimenting with Docker Adam Friedman Dimension Data (ITaaS R&D) adam.friedman@itaas.dimensiondata.com
  • 2. What this talk is about »
  • 3. What this talk is about » Experimenting with Docker
  • 4. What this talk is about » Experimenting with Docker (der)
  • 5. What this talk is about » Experimenting with Docker » Using virtualisation to reduce cycle time when trying out ideas
  • 6. What this talk is about » Experimenting with Docker » Using virtualisation to reduce cycle time when trying out ideas » Using the cloud to achieve scale
  • 7. What this talk is about » Experimenting with Docker » Using virtualisation to reduce cycle time when trying out ideas » Using the cloud to achieve scale » Without breaking the bank
  • 8. What I'd like to leave you with 1.
  • 9. What I'd like to leave you with 1. We learn more from our failures than our successes
  • 10. What I'd like to leave you with 1. We learn more from our failures than our successes 2. Occam's razor
  • 11. What I'd like to leave you with 1. We learn more from our failures than our successes 2. Occam's razor (prefer to minimise variables)
  • 12. What I'd like to leave you with 1. We learn more from our failures than our successes 2. Occam's razor » Aim for repeatability where possible
  • 13. What I'd like to leave you with 1. We learn more from our failures than our successes 2. Occam's razor 3. Virtualisation + automation make it cheap to experiment
  • 14. What I'd like to leave you with 1. We learn more from our failures than our successes 2. Occam's razor 3. Virtualisation + automation make it cheap to experiment 4. If experimentation is cheap enough, you can try out almost any idea you can come up with
  • 15. What I'd like to leave you with 1. We learn more from our failures than our successes 2. Occam's razor 3. Virtualisation + automation make it cheap to experiment 4. If experimentation is cheap enough, you can try out almost any idea you can come up with » Think it's a silly idea? Prove it.
  • 16. What I'd like to leave you with 1. We learn more from our failures than our successes 2. Occam's razor 3. Virtualisation + automation make it cheap to experiment 4. If experimentation is cheap enough, you can try out almost any idea you can come up with » Don’t be afraid to experiment!
  • 17. Why I love Virtualisation Virtualisation is the bedrock on which most things cloud are built.
  • 18. Why I love Virtualisation Virtualisation is the bedrock on which most things cloud are built. It is the key to: »
  • 19. Why I love Virtualisation Virtualisation is the bedrock on which most things cloud are built. It is the key to: » Economies of scale
  • 20. Why I love Virtualisation Virtualisation is the bedrock on which most things cloud are built. It is the key to: » Economies of scale » Speed of provisioning
  • 21. Why I love Virtualisation Virtualisation is the bedrock on which most things cloud are built. It is the key to: » Economies of scale » Speed of provisioning » Repeatability
  • 22. Why I love Virtualisation Virtualisation is the bedrock on which most things cloud are built. It is the key to: » Economies of scale » Speed of provisioning » Repeatability » The ability to readily and reliably duplicate an environment and its resources
  • 23. Why I love the concept of Cloud For all its potential downsides, the cloud has vastly improved the process of experimentation:
  • 24. Why I love the concept of Cloud For all its potential downsides, the cloud has vastly improved the process of experimentation: » By selectively abstracting away levels of infrastructure, it enables us to focus on what we're trying to do
  • 25. Why I love the concept of Cloud For all its potential downsides, the cloud has vastly improved the process of experimentation: » By selectively abstracting away levels of infrastructure, it enables us to focus on what we're trying to do, rather than how to do it
  • 26. Why I love the concept of Cloud For all its potential downsides, the cloud has vastly improved the process of experimentation: » By selectively abstracting away levels of infrastructure, it enables us to focus on what we're trying to do, rather than how to do it » Economies of scale also come into play:
  • 27. Why I love the concept of Cloud For all its potential downsides, the cloud has vastly improved the process of experimentation: » By selectively abstracting away levels of infrastructure, it enables us to focus on what we're trying to do, rather than how to do it » Economies of scale also come into play: » You can’t fit 20 servers under your desk
  • 28. Why I love the concept of Cloud For all its potential downsides, the cloud has vastly improved the process of experimentation: » By selectively abstracting away levels of infrastructure, it enables us to focus on what we're trying to do, rather than how to do it » Economies of scale also come into play: » You can’t fit 20 servers under your desk, but your cloud provider has plenty to spare (for as long as you need them)
  • 29. Why I love the concept of Cloud For all its potential downsides, the cloud has vastly improved the process of experimentation: » By selectively abstracting away levels of infrastructure, it enables us to focus on what we're trying to do, rather than how to do it » Economies of scale also come into play: » Most providers now charge only for what you actually use
  • 30. Why I love the concept of Cloud For all its potential downsides, the cloud has vastly improved the process of experimentation: » By selectively abstracting away levels of infrastructure, it enables us to focus on what we're trying to do, rather than how to do it » Economies of scale also come into play » Lower costs make it easier to explore a problem space, which helps to mitigate risk
  • 31. Experimenting in the cloud The trick to being productive when experimenting in the cloud: » Get set up
  • 32. Experimenting in the cloud The trick to being productive when experimenting in the cloud: » Get set up » Do your experiment
  • 33. Experimenting in the cloud The trick to being productive when experimenting in the cloud: » Get set up » Do your experiment » Clean up the evidence
  • 34. Without breaking the bank The trick to being productive when experimenting in the cloud: » Get set up » Do your experiment » Clean up the evidence » Before the mob arrives with pitchforks and flaming torches
  • 35. Docker is great for experimenting with new technologies
  • 36. If you've heard of it, there's probably a Docker image of it.
  • 37. If you've heard of it, there's probably a Docker image of it. Example: What’s Neo4J?
  • 38. If you've heard of it, there's probably a Docker image of it. Example: What’s Neo4J? docker run -p 7474:7474 neo4j
  • 39. If you've heard of it, there's probably a Docker image of it. Ok, how about RabbitMQ?
  • 40. If you've heard of it, there's probably a Docker image of it. Ok, how about RabbitMQ? docker run -p 5672:5672 rabbitmq
  • 41. If you've heard of it, there's probably a Docker image of it. Ok, smartarse
  • 42. If you've heard of it, there's probably a Docker image of it. Ok, smartarse, but I bet there isn't one for cowsay
  • 43. If you've heard of it, there's probably a Docker image of it. Ok, smartarse, but I bet there isn't one for cowsay docker run mwendler/cowsay "Sorry."
  • 44. ________ < Sorry. > -------- ^__^ (oo)_______ (__) )/ ||----w | || ||
  • 45. That's super useful, but what if you're experimenting with docker itself?
  • 46. That's super useful, but what if you're experimenting with docker itself? docker-machine create docker1 eval $(docker-machine env docker1)
  • 47. That's super useful, but what if you're experimenting with docker itself? docker-machine create docker1 eval $(docker-machine env docker1) Ok, but not very cloudy.
  • 48. That's super useful, but what if you're experimenting with docker itself? How about:
  • 49. That's super useful, but what if you're experimenting with docker itself? How about: docker-machine create --driver amazonec2 docker1 docker-machine create --driver amazonec2 docker2
  • 50. That's super useful, but what if you're experimenting with docker itself? Or:
  • 51. That's super useful, but what if you're experimenting with docker itself? Or: docker-machine create --driver digitalocean docker1 docker-machine create --driver digitalocean docker2
  • 53. Docker Machine is nice, but it's opaque
  • 54. Docker Machine is nice, but it's opaque Sometimes that’s what you want.
  • 55. Docker Machine is nice, but it's opaque Sometimes that’s what you want (again, the focus may be on what you're trying to do).
  • 56. Docker Machine is nice, but it's opaque Sometimes that’s what you want (again, the focus may be on what you're trying to do, not how).
  • 57. Docker Machine is nice, but it's opaque Sometimes that’s what you want (again, the focus may be on what you're trying to do, not how). Other times, not so much.
  • 58. Docker Machine is nice, but it's opaque Sometimes that’s what you want (again, the focus may be on what you're trying to do, not how). Other times, not so much. So what other options are there?
  • 59. Do it by hand You could do this at least once - a useful learning experience (especially for when things go wrong).
  • 60. Automate it! I'm probably preaching to the converted here :)
  • 61. Infrastructure with Terraform Declarative configuration for infrastructure » Multi-cloud / multi-provider » Repeatable » Easy to consistently create / destroy / re-create infrastructure But Terraform is only half the story. Once the infrastructure has been created, how do you get Docker itself deployed and configured?
  • 62. Software with Ansible » Hardly the only option out there, but if you're experimenting with throw-away systems then it's a good choice because it's just SSH (no master / agents to deploy) » Chef Solo (or Chef Zero) is an alternative, but may still require more work to bootstrap each node » Quick to get started (just run commands or modules on target machines) » Scales up to Roles + Playbooks for repeatability » Not great for managing large numbers of machines
  • 63. Software with Ansible » Can be run from Terraform (via a plug-in provisioner) but it's a lot easier to run it separately while you're experimenting. » There are Ansible inventory plugins that can read a Terraform state file (so it knows server roles, host names, IP addresses, etc). » Ansible Galaxy has modules for everything, including Docker (hint, hint) » Beware if you are deploying an OS with only Python 3.x (Ansible needs 2.x)
  • 64. A quick detour: Docker from simple to complex » Stand-alone » Docker » Orchestrated » Local » Docker Compose » Clustered » Docker Swarm » Clustered with GUI » Cattle / Rancher » Kubernetes » Mesos / Marathon » Kitchen Sink » Mantl Note that simple and easy-to-use are not the same thing :)
  • 65. Cisco Mantl » Mantl is a microservices platform based on Docker, Mesos / Marathon, Consul, Traefik, Kubernetes, Calico, Contiv, etc (pretty much everything but the kitchen sink). » Because it already includes several popular systems that extend / orchestrate Docker, it’s a useful starting point if you’re stuck trying to work out how to deploy or integrate a particular component
  • 66. Cisco Mantl » Mantl is deployed using Terraform with Ansible, and can therefore be deployed on a variety of clouds by swapping out Terraform modules as required. » Their Ansible inventory plugin understands which cloud provider was used to create the infrastructure and so Ansible playbooks can adjust their behaviour to suit (if required).
  • 68. Build your own (throw-away) lab
  • 69. Build your own (throw-away) lab » Digital Ocean is fast
 Add Terraform and you can repeatedly create and destroy environments in seconds, rather than minutes. » Obviously you can use AWS / Azure, too (or Dimension Data Cloud Control) but for quick-and-dirty experiments I prefer the simplest thing that works). » Create an Ansible playbook to install Docker » Start small - put everything in a single playbook and then move stuff out to separate reusable roles when needed
  • 70. Build your own lab 4 servers (1 master, 3 workers). lab.tf: resource "digitalocean_droplet" "master" { count = 1 image = "ubuntu-14-04-x64" name = "master-${count.index + 1}" region = "nyc2" size = "1024mb" } resource "digitalocean_droplet" "worker" { count = 4 image = "ubuntu-14-04-x64" name = "worker-${count.index + 1}" region = "nyc2" size = "1024mb" }
  • 71. Build your own lab » terraform apply
  • 72. Build your own lab » terraform apply » …
  • 73. Build your own lab » terraform apply » … » Profit!
  • 74. Build your own lab » terraform apply » … » Profit! » terraform destroy
  • 75. Build your own lab » terraform apply » … » Profit! » terraform destroy » No pitchforks
  • 76. Build your own lab » terraform apply » … » Profit! » terraform destroy » No pitchforks (probably)
  • 77. Why not use Rancher / Docker Cloud? » If all you want to do is deploy containers then these are a much better choice
  • 78. Why not use Rancher / Docker Cloud? » If all you want to do is deploy containers then these are a much better choice » Rancher uses docker-machine to create nodes for you
  • 79. Why not use Rancher / Docker Cloud? » If all you want to do is deploy containers then these are a much better choice » Rancher uses docker-machine to create nodes for you » But this is a good choice if you want to learn about:
  • 80. Why not use Rancher / Docker Cloud? » If all you want to do is deploy containers then these are a much better choice » Rancher uses docker-machine to create nodes for you » But this is a good choice if you want to learn about: » How to deploy docker
  • 81. Why not use Rancher / Docker Cloud? » If all you want to do is deploy containers then these are a much better choice » Rancher uses docker-machine to create nodes for you » But this is a good choice if you want to learn about: » How to deploy docker » Non-standard docker configurations
  • 82. Why not use Rancher / Docker Cloud? » If all you want to do is deploy containers then these are a much better choice » Rancher uses docker-machine to create nodes for you » But this is a good choice if you want to learn about: » How to deploy docker » Non-standard docker configurations » It's useful to have a feeling for what's behind the UI
  • 83. Links » github.com/tintoy » github.com/DimensionDataResearch » mantl.io » terraform.io » ansible.com » github.com/angstwad/docker.ubuntu