Docker Meetup Tokyo #24 参加レポート

# はじめに
「Docker Meetup Tokyo #24」に参加してきましたので、だいぶ荒いですが主要セッションのメモを共有します。

## イベント概要
日時：2018/07/19(木) 18:30 〜 21:00
場所：日本マイクロソフト品川本社
https://dockerjp.connpass.com/event/93140/
※こちらで一部発表資料も公開されています

# DockerCon参加報告 (docker buildが30倍以上速くなる話など)
NTT ソフトウェアイノベーションセンター 須田さん

## 内容
* BuildKit
	* [GitHub - moby/buildkit: concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit](https://github.com/moby/buildkit)
* Docker Application Packages
	* docker-compose.ymlをDockerHubで公開できるツール

## BuildKit
### **従来のDocker buildに対する不満**
* Dockerfileのキャッシュが効きにくい
* コンパイラやパッケージマネージャのキャッシュが保存されない（go buildとか）
* 並列実行できるはずの命令を並列実行してくれない
* プライベートなGitやs3などへのアクセスが困難
	* COPYで鍵を置くのは危険
	* 環境変数で設定した場合も、Dockerfileで最後に鍵ファイルをrmしてもイメージレイヤのtarには残ってる

### **BuildKit: 次世代のdocker build**
* DockerfileからLLBという中間言語にコンパイルする
	* Dockerfile以外からもコンパイルできる
* LLBはDAG構造を備える
	* キャッシュがよく効く
	* 命令を並列実行できる
* だいたい2倍くらい早くなる
* キャッシュを使う場合はもっと速くなる
* `—cache-from` でDockerHub（等）上のキャッシュを使う
* `RUN —mount=target=/path/to/cache,type=cache go build` のようにすると、コンパイラやパッケージマネージャのキャッシュの保存場所を指定できる、ビルドごとにgo buildとか動かなくて済む
* root権限なしで実行可能
	* user namespaceを使うので/etc/subuidの設定必要
	* k8sでは現状privilegedが必要だが今後必要なくなる予定
* 複数アーキテクチャに対応したイメージをビルドできる（amd64+arm 等）
* 将来的には分散実行もサポート
* v18.06から使える（実験的サポート）
* コマンドラインは従来のdocker buildと同じ
* クライアント側で `export DOCKER_BUILDKIT=1` すると使われるようになる

## Docker Application Packages
* docker-compose.ymlをDockerHubで共有できる
* Hemlパッケージの出力も可能
* コマンドライン: docker-app render, docker-app push, etc.


# DockerCon参加報告 (Keynote, Product Updates and Customer Case Studies)
クリエーションライン 鈴木さん

## 所感
* エンタープライズ色が強くなってきてる
	* CEOがSAP出身者になって1年
	* mobyに関する話もほとんどなし
	* Windowsサポートにかなり力入れてる
		* .NETアプリのコンテナ化
	* 参加者アンケートの結果、半分が新規参加者とのこと
		* 今までの参加者はゴリゴリエンジニアがほとんどだったけど、世代交代してる
* 選択の自由 → ロックインさせないアピールが強かった

## 運用管理者向けの発表
### **Federated Application Management in Docker EE**
* 異なるDockerクラスタ間でワークロードを移行
* 特定のクラウドベンダーにロックインされたくない
	* GKEとかEKSとかに矢を放ってる
* デプロイ方法や自動化ツール諸々がサービスごとにバラバラなのを解決
* 違うマネージドサービスを使っていても統合的にマネジメントできるように
* 移行もセキュアにできるように

### **Windowsサーバをk8sでサポート可能**
* .NET/WindowsサーバベースのアプリとLinuxを両方いっぺんにコンテナ化、統一したGUIで管理
* 現在β

## 開発者向けの発表
### **Docker Desktopでアプリ開発をテンプレを使って容易に**
* GUIでk8sクラスターを構築可能に
* 間口を広げてみんなに使ってもらいたいという類のものと思われる
* DockerfileとComposeファイルをDockerDesktop上で自動生成
* 主要なIDEとの連携も可能

### **Docker Application Packages**
* アプリコードをアプリの環境情報から分離
* ComposeコードをHelmChartに変換（k8sユーザからの強いニーズ）

## 導入事例
* 大企業も結構コンテナファーストな動きをし始めてきている
* McKesson: 米国の大手医療系ITベンダー
	* 創業185年目
	* フォーチュン500で第6位
	* 医療業界はITイノベーションが遅れているが、McKessonトップダウンでIT投資、コンテナ化も進めてる
	* 平均して15〜30年前に開発されてるアプリをモダナイズ
	* 各地の拠点の情報共有を促進
		* Dockerをノウハウとかの共有手段としても捉えてる
	

# DockerConの歩き方
さくらインターネット 前佛さん

## 海外カンファレンスに行ったことある方？
* 何人か

## 事前準備
* まずパスポート取得
	* お店によってはお酒飲みたい時にも必要
* ESTA（電子渡航認証システム）申請
	* 有効期限2年間
* 航空券・宿泊予約
	* 入国審査でどこに何日泊まるか聞かれる

## 心構え
* そこは安全か？ちゃんと調べてから行く
* サンフランシスコは怖いところがけっこうある
	* 夜1人では歩かないほうがいいかも
	* 「安全の手引き」在サンフランシスコ日本国総領事館
	* 現金はあまり持ち歩かない
		* 強盗にあったら変に争わず持ってる現金を全部出す

## 事前に入れておくべきアプリ
* **Google翻訳**
	* 写真とって翻訳できる、レストランのメニューとか
* **Uber/Lyft**
	* タクシーは基本つかまらないと思ったほうがいい
* **公式DockerConアプリ**

## 出入国・会場への移動
* **日本からの出国**
	* 「自動化ゲート」推奨
		* 指紋登録しておくと無人で通過できる
	* 機内Wifi
	* 時差対策
<br><br>
* **米国に着いたら**
	* 荷物を一度は必ず受け取る
		* 乗り継ぎの時も一度受け取る必要がある
		* 乗り換え時は再度荷物検査
	* Immigration（入国管理局）
<br><br>
* **入国審査の乗り切り方**
	* 何をしにきたのか？
	* どこに何日間宿泊するか？
	* ビジネスか遊びにきたのか？
	* SFOについたら
		* Uber/Lyft
		* BART

## DockerConの過ごし方
* 会場に着いたら
	* バッジをもらう（Registration）
	* Tシャツもらう
	* 展示ブースを巡回
	* 公式アプリと事前登録はほぼ必須
	* セッションの入退室は自由
	* 朝食、昼食、おやつあり
	* ハンズオンラボ、トレーニング、認定資格、ワークショップ

## 気づき
* ESTA Returnは楽
	* 一度申請したら2年間有効
* 当たって砕けろ
* 映像作品で耳を英語に慣らせておく
* 宿泊代はケチるな
* いのちだいじに

## 質問
* Q. 全部で大体いくらくらいかかりましたか？
* A. 25万くらい

# 感想
* BuildKitはとりあえず使ってみる
* Dockerのおかげでアプリケーションのポータビリティが向上 → クラウドベンダー各社がオーケストレーションサービスを提供 → ロックイン感が出てきたのでまたDockerがラップ（Federated Application Management）→ うまく言えないけどなんだかな？感がある
* 今アメリカに行くのは怖そう