Should we use doker?

2017-02-25

fukuitech 7.5

株式会社spice life うなすけ

自己紹介

  • うなすけ
  • twitter : yu_suke1994
  • 株式会社spice life
  • インフラ部所属

自己紹介

  • うなすけ
  • twitter : yu_suke1994
  • 株式会社spice life
  • インフラ部所属

自己紹介

  • うなすけ
  • twitter : yu_suke1994
  • 株式会社spice life
  • インフラ部所属 ←NEW!

さて

Do you use docker?

But, wait.. What is docker?

ここでfukutech 06の資料を見に行く

https://unasuke.github.io/fukuitech-06/

Q. dockerとは?

  • A. 仮想マシンでしょ?
  • A. Vagrantみたいなやつ!
  • A. 流行ってるだけですぐなくなるよ

Q. dockerとは?

  • A. 仮想マシンでしょ?
  • A. Vagrantみたいなやつ!
  • A. 流行ってるだけですぐなくなるよ

dockerはコンテナ型仮想環境

https://ja.wikipedia.org/wiki/コンテナより

dockerはコンテナ型仮想環境

コンテナの利点

  • 企画化による運搬の簡易化
  • 中身を気にしなくてよい

……など

dockerはコンテナ型仮想環境

dockerの利点

  • どこに持っていっても動く
  • 依存関係をコンテナの中に閉じこめておける

……など

Vagrant(VirtualBox)との違いは?

Vagrant(VirtualBox)との違い

A. 仮想化に対するアプローチの違い

dockerとVagrant

dockerVagrant
ざっくりOSの核は共有OSの中に別のOS
速度比較速い遅い

dockerは一過性の技術なのか

dockerは一過性の技術なのか

No

ただし「コンテナ型仮想化」についての話

dockerは一過性の技術なのか

docker自体は競合するプロダクトが存在するので
なくなる可能性もある

しかしコンテナという考え方は廃れない

……と思う

さて

事例紹介

ほんまにdocker使われてるんか?

事例紹介

https://tmix.jp

事例紹介

TMIXのデザインエディタ

https://tmix.jp/designs/new

事例紹介

TMIXのデザインエディタ

エディタのViewとしてReact.jsを採用しており

SSRのためのNode.jsがdocker container内で動作

事例紹介

https://steers.jp

事例紹介

STEERSの画像加工・配信

事例紹介

STEERSの画像加工・配信

Tシャツ画像のリサイズ、キャッシュ等を行う

サーバーがdocker container内で動作

事例紹介

  • unasuke.com
  • blog.unasuke.com
  • n0h0.com

これらwebページのサーバーが

docker container内で動作

docker導入してどうだったか

  • TMIX
  • STEERS
  • unasuke.com

僕が関わっているdocker動作環境について

docker導入してどうだったか

開発に関して(Pros)

  • 開発環境構築の手間が無くなった
  • 本番環境との乖離が激減した

docker導入してどうだったか

開発に関して(Cons)

  • docker for macとにかくつらい問題
    • fs遅い
    • time drift
    • 大運動会

docker導入してどうだったか

運用に関して(Pros)

  • ECSによる管理コストの削減
    • TMIX・STEERS
  • 障害発生から1分で復旧
    • unasuke.com
    • sshでコマンド1つ実行するだけ

docker導入してどうだったか

運用に関して(Cons)

  • 既存の運用手法が一部使用不能
    • 1回だけ実行したいスクリプトどうする
    • 実行環境に入って調査したい

Should we use doker?

タイトル回収

Should we I use doker?

Should we I use doker?

あなたはwebアプリケーション開発をしますか?

dockerを使いましょう

Should we I use doker?

あなたはwebアプリケーション開発をしますか?

DB、cache、各種ライブラリ……
バージョンの差異で何が起こるか把握できますか?

Should we I use doker?

あなたはクロスプラットフォームな
ライブラリの開発をしますか?

dockerを使いましょう

Should we I use doker?

あなたはクロスプラットフォームな
ライブラリの開発をしますか?

Linuxだけでもdebian、fedora、Gentoo……
各環境を整えるのは手間がかかりますね

Should we I use doker?

あなたはモバイルアプリ開発をしますか?

dockerを使う必要はないでしょう

Should we I use doker?

あなたはモバイルアプリ開発をしますか?

何を仮想化するっていうんだ

Should we I use doker?

あなたはOSネイティブアプリ開発をしますか?

dockerを使う必要はないでしょう

Should we I use doker?

あなたはOSネイティブアプリ開発をしますか?

仮想化する部分はどこですか

Should we I use doker?

あなたは複数人によるチームで開発をしますか?

dockerを使いましょう

Should we I use doker?

あなたは複数人によるチームで開発をしますか?

開発者ごとで環境が異なると厄介です

Should we I use doker?

わかってきましたね?

Should we I use doker?

  • 複数OSが関わってくる
  • 複数のソフトウェアが関わってくる
  • 複数の開発者が関わってくる

Should we I use doker?

無理に導入する必要はありません
しかし触ってみるべきでしょう

「なぜ世間でこんなにdockerが流行っているのか?」

経験者からのアドバイス

Should we I use doker?

あなたはwebアプリケーション開発をしますか?

経験者からのアドバイス

あなたはwebアプリケーション開発をしますか?

経験者からのアドバイス

あなたはwebアプリケーション開発をしますか?

12-Factor Appに従いましょう

12-Factor-Appとは

https://12factor.net/ja/

12-Factor Appとdocker

12-Factor Appに従ったアプリケーションは
docker化も容易に行なえる

まとめ

dockerを導入すると……

  • 複数OSが関わってくる
  • 複数のソフトウェアが関わってくる
  • 複数の開発者が関わってくる

開発で力を発揮する

Enjoy your development!l