Docker Meetup Tokyo 24
2018/7/19
https://gyazo.com/fc63a002215f90f9fcad2b2715b16dc1
2018DockerConのキーとなった発表
BuildKit:次世代 docker build
従来のdocker buildに対する不満
Dockerfileのキャッシュが効きにくい
コンパイラなどのキャッシュが保存されない
プライベートなGitやS3などへのアクセスが困難
COPY命令で鍵をおくのは危ない
環境変数を使うのも危ない
DAG構造を備える中間言語であるLLBを用いる
依存性を正確に表現できるので、キャッシュがよく効く
LLBは主にDocker fileからコンパイルされる
DAGはマルチステージDockerfileを用いて記述できる
ビルドの高速化
BulidKitを使うことで30倍高速化した
新しい構文
Dockerfileの最初の行に# syntax = ...
その他
root権限なしで実行可能
複数のアーキテクチャに対応したイメージをビルドできる
例:amd64+arm
将来的には分散実行もサポート
Docker Application Packages
docker-compose.ymlをDockerHubにpushしたりpullしたりできるようになった
docker-app render
docker-app push
傾向
by Ippei Suzukiさん, Creationline
Docker自体にエンタープライズ色が濃くなってる
今年(2018)は、セッションにオープンソースの話がほとんどなかった
Windowsの資産に着目をしている
オーディエンスの半分がDockerConに初めてきた人(初心者が多い?)
Dockerのテーマ
Choice(選択の自由):どんなプラットホームの上でも開発ができる
特定のベンダープラットホームへのロックインを防止できる(←特にDockerが強調していたところらしいllminatoll.icon)
Dockerエンタープライズ(商用)が複数のOS、複数のプラットフォーム、複数のオーケストレータをすべてつないでいる、という図
自由に行き来する
運用者向けの発表:
WindowsサーバをKubernetesでサポート可能
開発者向けの発表:
Docker Desktopでアプリ開発をテンプレートを使って容易に
Kubernetesコミュニティへの歩み寄り
Agility(スピード):開発のスピード
Security(セキュリティ)
調査の結果85%の会社はマルチクラウド
1社あたり、平均して3.7個のクラウドを使っている
問題なのは、各プラットフォーム上で
デプロイ手順が違う
自動化ツールが違う
etc・・・
それらの課題を解決しようとしているのがDocker EE Federated Application Management
Docker Trusted Registryはクラスタ間のアプリやデータの資産をセキュアに移動
Azureやgkeとの連携
Federated Application ManagementはGUI ?(ちょっと聞き取りづらかった、曖昧llminatoll.icon)
デモ
デモで使われたのは、ネットショップのような簡単なWebアプリ(petstoreという名前)
WebUI上でMigrateボタンを押すだけで、オンプレミスからクラウド上に移動することができた
サクサク!llminatoll.icon
Docker Application Designer
新規ユーザー(非エンジニア)向けの機能
GUI
テンプレートの組み合わせによってアプリを作ってしまおうというもの
作ったものをカスタマイズもできる
ちょっとしたブログとか小さなサービスならサクサク作って動かせる(とのこと)
老舗巨大医療企業 MeKessonの事例
塩漬けアプリの山
メインフレームの上で塩漬けしても意味ない(古いハードにCOBOL…😰)
そこでコンテナ化の意味が出てくる
バラバラの開発運用をしているアプリをなんとか統一する = Dockerに目をつけた
まずは自社ECサイトからDockerに載せたらしい〜llminatoll.icon
現在は社内の300人以上のエンジニアがDockerで開発している
DevOpsの手法としてDockerを選んだ
DockerConに行きたい人向け情報
by Masahito Zembutsuさん, SAKURA Internet, Inc.
規模は5000人ぐらい
アメリカに行くときはESTAというものに登録が必要
忘れずにWebで登録していく、30分ぐらいかかる
1度登録したら期限は2年間
ESTA Returnは楽
DockerConの公式アプリは必須、事前にダウンロードしていくこと
もくもく会会場や、ハンズオンできる場所もあるらしい
LT1: Run ChainerMN in Docker containers
by Daisuke Taniwakiさん, Preferred Networks
Chainer
深層学習のオープンソースライブラリ
HainerMN
分散深層学習に必要な機能を実装したChainerの追加パッケージ
ChainerをDocker Containerで動かす
Dockerイメージがあるらしく、それでやるらしいllminatoll.icon
LT2: Kubeflow
by Yuji Oshimaさん, NTT
Kubeflow is 何?
マシンラーニング用のコードを書くのをメインにしたいけど・・・
そのまわりのシステム側の問題が多くてそっちの方が比重が大きいよね問題
「マシンラーニングをクラウドネイティブにしたい!」というわけでKubeflowが始まった
なるほど〜llminatoll.icon
ロールアウト・・サービング・・ML界隈、初めて聞く用語が多い😳
ポータビリティー
Kubernetes前提
Kubernetesに対応さえしていればどこにでもデプロイ可能
スケーラビリティー
KubeflowがMLプラットフォームのデファクトスタンダードになっていけばいいんじゃないかな by Oshimaさん
LT3: 12 Factor Appsとかから見直してみるDocker, K8Sと周辺プロダクト
by Ryoma Fujiwaraさん, Recruit Technologies
そもそもこれらのツールは全部必要なんだっけ?と改めて整理しよう
ツールの特性を深く知って抜け漏れ・ダブりを減らそう
LT4: コンテナ基盤運用 on OpenShift
by Yoshihiro Kimuraさん, Open Stream
OpenShiftとは
Red Hatが主導で開発しているコンテナプラットフォーム
コンテナでCI/CD機能をサクッと作れる
Gitbookでmdドキュメントをデプロイできるようにしたり
GitBucketテンプレートを作ったり
プロジェクトごと、ユーザごとにリソース制限をかけられる
LT5: Rancher 2.0でKubernetesを始めよう
by Yosuke Shindoさん, Rancher Labs