SlideShare a Scribd company logo
Docksal: Better than VMs
by Leonid Makarov, Chief Architect @ FFW
04/25/2017
Drupal.org: @inqui
Github: @lmakarov
Twitter: @LeonidMakarov
Project onboarding
Reality - it takes an unreasonable amount of time…
• Missing/incomplete/outdated instructions
• Tedious manual setup
• VM and Vagrant boxes take forever/fail to build
• Developers deal with sysadmin stuff instead of coding
• Everyone’s setup is a snowflake
• “It works on my loca!”
Project onboarding
Here’s how we do project onboarding at FFW:
$ git clone <project-repo> <folder>
$ cd <folder>
$ fin init
Using Docker containers
Containers vs VMs
Fundamental Differences
• VMs
• Hardware virtualization
• Any host + any guest
• Containers
• OS virtualization
• Linux host + Linux guest
Containers vs VMs
Image credit: http://solidfire.wpengine.com/wp-content/uploads/2016/03/Screen_Shot_2016-03-11_at_9.14.20_PM1.png
Containers vs VMs
Image credit: http://blog.jelastic.com/wp-content/uploads/2016/10/Virtual-Machines-to-Containers-Jelastic.png
Containers vs VMs
Image credit: http://blog.jelastic.com/wp-content/uploads/2016/10/decomposition.png
Containers Pros
• Efficiency - speed, resource use efficiency and density
• Flexibility - add/remove services without provisioning
• Consistency - pre-built service images
• Portability - can run anywhere (local, CI, prod)
Docksal:  Better than VMs
Docksal Setup
Automated cross-platform one-line installer
$ curl get.docksal.io | sh
Linux
• Native, no VM
macOS and Windows
• Single thin VM
Project initialization
Project init script that you write once and run anywhere
$ cat .docksal/commands/init
...
fin exec drush sql-sync @stage @local
fin exec drush <rr, updb, fra -y, cc, etc.>
…
$ fin init
Console tools in CLI
$ fin exec <command>
$ fin exec composer install
$ fin exec drush uli
$ fin exec drupal cr
$ fin bash
docker@cli:/var/www$
docker@cli:/var/www$ composer install
Zero Configuration
$ cd my-project
$ mkdir .docksal
$ fin up
Open http://myproject.docksal
Default microservices
• web - Apache
• db - MySQL
• cli - php-fpm, misc. console tools (composer, drush, dc, node, ruby...)
Simple and powerful
Easy to customize stacks. More services available from:
• Docksal library
• Any image from Docker Hub
$ cat .docksal/docksal.yml
...
memcached:
image: memcached
environment:
- MEMCACHED_MEMORY_LIMIT=128
...
Notable Features
• fin share - share your local environment on the internet
• fin @project <cmd> - project aliases (similar to Drush remote
aliases)
• fin sqlc, sqli, sqld - MySQL console, import, dump
• fin <custom-command> - script your own extensions
• Offline installation mode (from a USB drive)
• Good for conferences/trainings/etc. with limited connectivity
Recap: Path to success
• Standardize
• Same experience and tools anywhere, any platform
• Use containers / Docker
• No virtualization overhead (Linux)
• No on-the-go provisioning
• Flexible micro-service architecture
• Automate, automate, automate
• Minimize the number of steps needed to initialize a project
More information
• Web site: http://docksal.io
• Docs: http://docs.docksal.io
• Github: https://github.com/docksal/docksal
• Chat: https://gitter.im/docksal
BoF for QnA and follow-up discussions:
Room 311 @ 3:45PM
THANK YOU!
WHAT DID
YOU THINK?
Locate this session at the
DrupalCon Baltimore website:
http://baltimore2017.drupal.org/schedule
Take the survey!
https://www.surveymonkey.com/r/drupalc
onbaltimore
Thank You!

More Related Content

PPTX
Docker presentation
PDF
Sandbox CI/CD Environments for Everyone [BADCamp 2018]
PDF
Experts Live Switzerland 2018 - DOCKER - WARUM DIE ZUKUNFT IM CONTAINER STATT...
PPTX
Vagrant vs Docker
PPTX
Gdg using docker to streamline development
PPTX
Continous Delivery to Kubernetes using Helm
PPTX
London Community Summit - Habitat 2016
PDF
Docker Clustering - Batteries Included
Docker presentation
Sandbox CI/CD Environments for Everyone [BADCamp 2018]
Experts Live Switzerland 2018 - DOCKER - WARUM DIE ZUKUNFT IM CONTAINER STATT...
Vagrant vs Docker
Gdg using docker to streamline development
Continous Delivery to Kubernetes using Helm
London Community Summit - Habitat 2016
Docker Clustering - Batteries Included

What's hot (20)

PPTX
An HTML5 client to connect to the Hyper-V console
PPTX
Building a Docker v1.12 Swarm cluster on ARM
PPTX
Evotalks Docker Presentation
PDF
Vagrant + Ansible + Docker
PPTX
Cohesion Techsessie Docker - Daniel Palstra
PDF
OSDC 2014: Tobias Schwab - Continuous Delivery with Docker
PDF
SEP DevOps Ignite Talk - Packer
PDF
macos installation automation
PDF
Docker 101 for Developer
PPTX
Vagrant-Overview
PPTX
DevOps: Docker Workshop
PDF
Building a smarter application stack - service discovery and wiring for Docker
PDF
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
PDF
An Introduction to Vagrant and Docker
PDF
Docker slides
PDF
Webinar: Using Docker Multi-stage Build to Create Advanced Pipelines
PDF
Using Minikube for Node.js development
PPTX
Managing Stateful Docker Containers Using Cloud Foundry BOSH
PPTX
ABCing docker with environments - workshop
PPTX
Webinar: Development Swarm Cluster with Docker Compose V3
An HTML5 client to connect to the Hyper-V console
Building a Docker v1.12 Swarm cluster on ARM
Evotalks Docker Presentation
Vagrant + Ansible + Docker
Cohesion Techsessie Docker - Daniel Palstra
OSDC 2014: Tobias Schwab - Continuous Delivery with Docker
SEP DevOps Ignite Talk - Packer
macos installation automation
Docker 101 for Developer
Vagrant-Overview
DevOps: Docker Workshop
Building a smarter application stack - service discovery and wiring for Docker
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
An Introduction to Vagrant and Docker
Docker slides
Webinar: Using Docker Multi-stage Build to Create Advanced Pipelines
Using Minikube for Node.js development
Managing Stateful Docker Containers Using Cloud Foundry BOSH
ABCing docker with environments - workshop
Webinar: Development Swarm Cluster with Docker Compose V3
Ad

Similar to Docksal: Better than VMs (20)

PDF
Dockerize your Symfony application - Symfony Live NYC 2014
PDF
Managing development environments with Docksal
PPTX
Local Drupal development using docksal
PDF
Docker containers & the Future of Drupal testing
PDF
Introduction to Containers
PDF
Containerization Is More than the New Virtualization
PDF
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
PDF
Real-World Docker: 10 Things We've Learned
PDF
Drupal Development with Docker
PDF
Using Docker in the Real World
PPTX
Intro Docker october 2013
PDF
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
PDF
Containerization is more than the new Virtualization: enabling separation of ...
PDF
Docker Online Meetup #3: Docker in Production
PDF
Killer Docker Workflows for Development
PPTX
Docker for the new Era: Introducing Docker,its components and tools
PPTX
Тарас Кирилюк — Docker basics. How-to for Drupal developers
PPTX
Introduction to docker
PPTX
Intro to Docker October 2013
PDF
DockerPenang Meetup#1
Dockerize your Symfony application - Symfony Live NYC 2014
Managing development environments with Docksal
Local Drupal development using docksal
Docker containers & the Future of Drupal testing
Introduction to Containers
Containerization Is More than the New Virtualization
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Real-World Docker: 10 Things We've Learned
Drupal Development with Docker
Using Docker in the Real World
Intro Docker october 2013
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
Containerization is more than the new Virtualization: enabling separation of ...
Docker Online Meetup #3: Docker in Production
Killer Docker Workflows for Development
Docker for the new Era: Introducing Docker,its components and tools
Тарас Кирилюк — Docker basics. How-to for Drupal developers
Introduction to docker
Intro to Docker October 2013
DockerPenang Meetup#1
Ad

Recently uploaded (20)

PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
PPTX
1. Introduction to Computer Programming.pptx
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
project resource management chapter-09.pdf
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
DP Operators-handbook-extract for the Mautical Institute
WOOl fibre morphology and structure.pdf for textiles
Assigned Numbers - 2025 - Bluetooth® Document
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
cloud_computing_Infrastucture_as_cloud_p
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Hindi spoken digit analysis for native and non-native speakers
1 - Historical Antecedents, Social Consideration.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
Enhancing emotion recognition model for a student engagement use case through...
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
1. Introduction to Computer Programming.pptx
Module 1.ppt Iot fundamentals and Architecture
project resource management chapter-09.pdf
OMC Textile Division Presentation 2021.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Developing a website for English-speaking practice to English as a foreign la...
Getting started with AI Agents and Multi-Agent Systems
DP Operators-handbook-extract for the Mautical Institute

Docksal: Better than VMs

  • 1. Docksal: Better than VMs by Leonid Makarov, Chief Architect @ FFW 04/25/2017 Drupal.org: @inqui Github: @lmakarov Twitter: @LeonidMakarov
  • 2. Project onboarding Reality - it takes an unreasonable amount of time… • Missing/incomplete/outdated instructions • Tedious manual setup • VM and Vagrant boxes take forever/fail to build • Developers deal with sysadmin stuff instead of coding • Everyone’s setup is a snowflake • “It works on my loca!”
  • 3. Project onboarding Here’s how we do project onboarding at FFW: $ git clone <project-repo> <folder> $ cd <folder> $ fin init Using Docker containers
  • 4. Containers vs VMs Fundamental Differences • VMs • Hardware virtualization • Any host + any guest • Containers • OS virtualization • Linux host + Linux guest
  • 5. Containers vs VMs Image credit: http://solidfire.wpengine.com/wp-content/uploads/2016/03/Screen_Shot_2016-03-11_at_9.14.20_PM1.png
  • 6. Containers vs VMs Image credit: http://blog.jelastic.com/wp-content/uploads/2016/10/Virtual-Machines-to-Containers-Jelastic.png
  • 7. Containers vs VMs Image credit: http://blog.jelastic.com/wp-content/uploads/2016/10/decomposition.png
  • 8. Containers Pros • Efficiency - speed, resource use efficiency and density • Flexibility - add/remove services without provisioning • Consistency - pre-built service images • Portability - can run anywhere (local, CI, prod)
  • 10. Docksal Setup Automated cross-platform one-line installer $ curl get.docksal.io | sh Linux • Native, no VM macOS and Windows • Single thin VM
  • 11. Project initialization Project init script that you write once and run anywhere $ cat .docksal/commands/init ... fin exec drush sql-sync @stage @local fin exec drush <rr, updb, fra -y, cc, etc.> … $ fin init
  • 12. Console tools in CLI $ fin exec <command> $ fin exec composer install $ fin exec drush uli $ fin exec drupal cr $ fin bash docker@cli:/var/www$ docker@cli:/var/www$ composer install
  • 13. Zero Configuration $ cd my-project $ mkdir .docksal $ fin up Open http://myproject.docksal Default microservices • web - Apache • db - MySQL • cli - php-fpm, misc. console tools (composer, drush, dc, node, ruby...)
  • 14. Simple and powerful Easy to customize stacks. More services available from: • Docksal library • Any image from Docker Hub $ cat .docksal/docksal.yml ... memcached: image: memcached environment: - MEMCACHED_MEMORY_LIMIT=128 ...
  • 15. Notable Features • fin share - share your local environment on the internet • fin @project <cmd> - project aliases (similar to Drush remote aliases) • fin sqlc, sqli, sqld - MySQL console, import, dump • fin <custom-command> - script your own extensions • Offline installation mode (from a USB drive) • Good for conferences/trainings/etc. with limited connectivity
  • 16. Recap: Path to success • Standardize • Same experience and tools anywhere, any platform • Use containers / Docker • No virtualization overhead (Linux) • No on-the-go provisioning • Flexible micro-service architecture • Automate, automate, automate • Minimize the number of steps needed to initialize a project
  • 17. More information • Web site: http://docksal.io • Docs: http://docs.docksal.io • Github: https://github.com/docksal/docksal • Chat: https://gitter.im/docksal BoF for QnA and follow-up discussions: Room 311 @ 3:45PM
  • 18. THANK YOU! WHAT DID YOU THINK? Locate this session at the DrupalCon Baltimore website: http://baltimore2017.drupal.org/schedule Take the survey! https://www.surveymonkey.com/r/drupalc onbaltimore