Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The DShell Pattern (DevOpsDays London 2019)
Search
David McKay
September 27, 2019
Technology
260
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The DShell Pattern (DevOpsDays London 2019)
David McKay
September 27, 2019
More Decks by David McKay
See All by David McKay
The Telegraf Toolbelt (InfluxDays SF, 2019)
rawkode
0
220
Cloud Native Telegraf - Cloud Native London (September 2019)
rawkode
0
130
Developing Your Own Flux Packages (InfluxDays London 2019)
rawkode
0
170
Introduction to Time Series (Software Circus, April 2019)
rawkode
0
190
Introduction to Time Series (Cloud Native Kraków, April 2019)
rawkode
0
140
Introduction to Time Series (Cloud Native Wales, April 2019)
rawkode
0
150
Introduction to InfluxDB 2.0 (Kubernetes London - February 2019)
rawkode
0
130
Kickass Development Environments with Docker (PHPBenelux 2019)
rawkode
0
160
LaraconEU 2018 - Kickass Development Environments with Docker
rawkode
2
370
Other Decks in Technology
See All in Technology
Agent × Maestro で始める モバイル E2E 端末準備からテスト実行・結果確認まで
sansantech
PRO
0
230
Patterns in AI Driven Software Development
akosma
PRO
0
340
書き手が人でもAIでも正しくなる道、SREを埋め込んだDeveloper Platform / tech drivers day8
chmikata
4
820
契約で守るコンパウンドプロダクトのデザインシステム
yug1224
1
1.6k
AI時代の開発はウォーターフォールに回帰する? / development-with-ai-back-to-wf
okamototakuyasr2
0
140
"計画的無茶振り"を通してAIネイティブ世代の新人を育てる
subroh0508
1
130
新卒エンジニア、 介護士になる
ryu1013
1
370
[FECONF-2026] 신대륙을 향한 카카오페이증권 프론트엔드 항해기 (이주승)
l1ghthouse
0
260
Flutter Webを「SDK」として配る — 50以上のゲームを支える埋め込みアーキテクチャ
masayukisuda
0
150
Claude Code をローカルとサーバー上で利用した際の Bedrock 利用料をユーザー単位で一本化してみる
ohorig
0
180
AIエージェントに 権限と鍵をどこまで渡すか
nrinetcom
PRO
2
140
AIで選択肢が広がった組織設計の理想と現実
konifar
15
6.8k
Featured
See All Featured
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
490
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Become a Pro
speakerdeck
PRO
31
6.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
From π to Pie charts
rasagy
1
420
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Transcript
The DShell Pattern DevOps Days London, 2019
David McKay ➔ Developer Advocate for InfluxData ➔ Kubernetes Release
Team ➔ Tweets @rawkode ★ Scottish ★ Lover of esoteric programming languages ★ Likes symmetry
BREAKING NEWS Some* developers don’t want to use Docker *
No developer with macOS wants to use Docker
Docker is useful Encapsulated Dependencies Documented Build Process Deployable
3 Components Dockerfile Docker Compose Makefile
Dockerfile Make it work for all environments
Dockerfile FROM elixir:1.9-alpine AS base FROM base AS development RUN
apk add --update vim git make FROM base AS build RUN make compile FROM base AS production COPY --from=build … ...
Docker Compose Make it as (more) painful as possible (than
normal)
dshell dshell: @docker-compose run \ --rm \ --service-ports \ --user
$UID \ --use-aliases \ --entrypoint=ash \ myapp
Encourage DShell Block Up service: myapp: entrypoint: sh command: echo
Publish Service Ports --service-ports Override Entrypoint --entrypoint=ash
UNPOPULAR OPINION DO NOT use compose syntax v3 in dev
Best Practice Use Depends On depends_on: mongodb: condition: service_healthy 12-Factor
env_file: .env env_file: - .env - .env.secret
Makefile Unify Developers
The Sausage .PHONY: dshell dclean up up: deps @mix run
--no-halt compile: deps @mix compile
up up: @npm run develop @mix test @FLASK_APP=hello flask run
dclean! dclean: @docker-compose down --rmi=local -v
Final API ❏ make dshell [host] ❏ make up [container]
❏ make test | deps | whatever [container] ❏ make dclean [host]
Better Together We’re deploying Docker to production (I hope), so
encourage (not force) it’s usage for local development; make it easy for people to dip their toe in.
VSCode Remotes { "dockerComposeFile": [ "../docker-compose.yml", ], "service": "node", }
Thank You ➔ Follow me on Twitter (@rawkode) ➔ At
the InfluxData booth (I’ve got badges and stickers) ➔ Come speak to me about InfluxDB, Cloud Native, Monitoring, Docker, or Kubernetes