Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The DShell Pattern (DevOpsDays London 2019)
Search
David McKay
September 27, 2019
Technology
0
170
The DShell Pattern (DevOpsDays London 2019)
David McKay
September 27, 2019
Tweet
Share
More Decks by David McKay
See All by David McKay
The Telegraf Toolbelt (InfluxDays SF, 2019)
rawkode
0
130
Cloud Native Telegraf - Cloud Native London (September 2019)
rawkode
0
39
Developing Your Own Flux Packages (InfluxDays London 2019)
rawkode
0
110
Introduction to Time Series (Software Circus, April 2019)
rawkode
0
130
Introduction to Time Series (Cloud Native Kraków, April 2019)
rawkode
0
82
Introduction to Time Series (Cloud Native Wales, April 2019)
rawkode
0
77
Introduction to InfluxDB 2.0 (Kubernetes London - February 2019)
rawkode
0
53
Kickass Development Environments with Docker (PHPBenelux 2019)
rawkode
0
81
LaraconEU 2018 - Kickass Development Environments with Docker
rawkode
2
280
Other Decks in Technology
See All in Technology
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
2.1k
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
3
570
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
260
リテール金融(キャッシュレス・ネット銀行・ネット証券)の競争環境と経済圏
8maki
0
1.2k
Janus
bkuhlmann
1
490
Building Dashboards as a Hobby
egmc
0
230
AOAI をきっかけに 社内の Azure 管理を見直した話
recruitengineers
PRO
1
300
IaCジェネレーターとBedrockで詳細設計書を生成してみた
tsukasa_ishimaru
1
280
データベース02: データベースの概念
trycycle
0
160
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
300
生産性向上チームの紹介
cybozuinsideout
PRO
1
870
DevOpsメトリクスとアウトカムの接続にトライ!開発プロセスを通して計測できるメトリクスの活用方法
ham0215
2
240
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
289
19k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
KATA
mclloyd
15
12k
Atom: Resistance is Futile
akmur
259
25k
The Cult of Friendly URLs
andyhume
74
5.7k
Designing Experiences People Love
moore
136
23k
Thoughts on Productivity
jonyablonski
58
3.8k
For a Future-Friendly Web
brad_frost
172
9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Clear Off the Table
cherdarchuk
84
310k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
It's Worth the Effort
3n
180
27k
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