SlideShare a Scribd company logo
Tech Dojo
コンテナ今昔物語
~コンテナ技術開発のモチベーションに迫る~
日本アイ・ビー・エム株式会社
テクノロジー事業本部 カスタマーサクセス
カスタマーサクセスマネージャー
黒沢 勇
2021/12/22
Who Are you?
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 2
自己紹介
氏名:黒沢 勇
出身:神奈川県川崎市
前職: VMware SE (2017年入社)
現職: IBM CSM (2021/11月入社)
趣味: 自宅ラボ、ゲーム、積みプラモ
前職の登壇: vForum 2019-20, Cloud Operator Days Tokyo 2021
得意技術:仮想化、k8s、クラウド管理自動化可視化
Twitter: https://twitter.com/Torlek96
Linkedin: https://www.linkedin.com/in/kurosaway-b7486714b/
現在の自宅ラボ
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 3
現在はIntel NUC4台をVMware ESXiとして使用
Corei7, 64GB DDR4を4台なので大抵のことはできる
しかしk8sを満足に動かすためには若干力不足.
現在yahoo オークションで
1Uのラックサーバに張り付いて落札を狙ってます。
(ちなみに明日21:00が落札期限)
Skylake以上の世代、
かつ24コア以上のサーバをお持ちの方はぜひご連絡を
Twitter: https://twitter.com/Torlek96
Linkedin: https://www.linkedin.com/in/kurosaway-b7486714b/
Agenda
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
1. コンテナ技術が台頭する前の時代のお話
2. PaaS出現
3. コンテナの出現
コンテナ技術が
台頭する前の時代
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
昔々のそのまた昔、仮想化ができる前から話は始まります
人類がアプリケーションの起動を祈っていた時代です
(ちなみに私は今でもちゃんと祈りを捧げます)
プロセス技術の開発
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 6
chroot
1980年代に開発、ユーザが使用できるディレクトリを
制限する機能としてUnixに追加
セキュリティ技術を向上させ、
ユーザが使えるリソースを制限することが可能
コンテナと仮想マシン技術の肝は
リソースの制限と隔離。
そのため、本技術は仮想化技術の大祖先にあたる
FreeBSD Jail
chrootを発展させ仮想のFreeBSD環境を実行できる環境
を用意できる機能
usr
home
etc
bin
usr
home
etc
bin
dirB
dirA
chroot
root
Jail
仮想マシン技術の開発
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 7
2000年代に時は移動、元祖仮想マシンはVMwareからスタート
仮想マシン (VM) 技術が
コンテナ技術の開発に先立ち、開発が進む.
必要なリソースをファイルとしてパッケージングし、
内部的にはプロセスとしてVMを動かす技術は大ヒット
この技術により全く違うOSも、バージョンが違うOSも
同じホストで動かすことができるようになった。
ハイパーバイザ型の仮想化よりも
ホスト型仮想化の方が先に開発されている
1999〜
2007〜
2010〜
2008〜
※あえて古いロゴを使用
仮想マシン技術のサーバへの適用
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 8
サーバを1つずつ管理していくことが困難になってくる
ハイパーバイザー型の仮想技術が発達することで、
仮想マシンを本番環境で運用できるようになる
次第にホスト数が増えていき
単一コンソールでは管理がしきれなくなったため、
VMwareではvCenter Server、
KVMではHorizonと呼ばれる管理ソフトウェアが開発された
2003年にvCenter Server 1.0をリリース
2012年にEssex versionからHorizonをリリース
パブリッククラウドの出現
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 9
大量のコンピュートリソースを間借りできるサービスがリリース
2006年リリース 2010年リリース 2008年リリース
2005年リリース
(SoftLayerからカウント)
2016年リリース 2011年リリース
Solaris Container と LXC
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 10
一方でコンテナの元となる技術出始める
2004年〜
Solaris Unix 上でコンテナ仮想化を実装する技術が
2004年にパブリックベータとして公開。
Solaris Zoneと呼ばれる技術を用いて
Zoneごとに独立したアプリケーションを稼働可能にした
従来の仮想マシンと比較して起動が早く、
仮想化によるオーバーヘッドも少ないという特徴も併せ持つ。
本格的な商用コンテナ初号機
2008年にLinuxでも本格的なコンテナ仮想化が使用可能に
2006年に開発されたProcess Containerがcgroupsと名前を変え、
Linux Namespaceと組み合わせて軽量なVMをデプロイする機能としてリリース
Dockerとは思想が異なるため使い分けが必要
蛇足: Sunのコンテナといえば
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 11
Project Blackboxと呼ばれるコンテナ型DCの発表も!
中にネットワーク機器も入っている小さなDC!
まさにコンテナなので
上に積んでスケールアップもできるし、
横に並べてスケールアウトもできるという
コンテナの考えを引き継いだDC!
※本当にその思想でできたかは知りません
仮想マシン技術について
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 12
ハイパーバイザー仮想化
仮想マシン(VM)
ゲストOS
アプリ
アプリ
仮想マシン(VM)
ゲストOS
アプリ
アプリ
ハードウェア
ホスト仮想化
アプリ
アプリ
仮想マシン(VM)
ゲストOS
アプリ
アプリ
bin/lib
vCPU vRAM vNIC vCPU vRAM vNIC vCPU vRAM vNIC
bin/lib bin/lib
ハイパーバイザー
(専用OS)
ホストOS
bin/lib
ホスト仮想化はオーバーヘッドが大きくゲストOSのパフォーマンスが低くなることもあるが、気軽に扱える。
ハイパーバイザ仮想化は専用OSを用いるため、オーバーヘッドが少なくなるが別途踏み台が必要になる。
また、Intel VT-x, AMD-SVMと呼ばれるCPU側でVMを高速化する技術も発達している。
ハードウェア
CPU RAM NIC
CPU RAM NIC
PaaSの出現
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
時は2010年台に移り、VMを使うのが当たり前の時代
VMでみんな大満足したはずなのに何でPaaSができたのでしょうか?
IaaS、SaaSだけでいいんじゃないか?と思いませんか?
閑話休題:要求と要件
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 14
コンテナは要求ではなく、要件であることに注意
要求定義の例 要件定義の例
• 開発スピードを早めるため、
フロントシステムとバックエンドシステムに
コンテナを採用
• 安定性を高めるため、DBはベアメタル、
もしくは大型の仮想マシンで構築
• 開発者のストレスを減らすためにPaaSを採用
• テスト/リリーススピードを早めるために
CI/CDシステムを構築
• 承認スピードを早めるためにCI/CDを使用
• ソフトウェアリリースを6ヶ月サイクルから
3ヶ月サイクルに短縮
• メンテナンス時間のオーダーを
DayからHourに削減
• 承認に関わる時間をDayからHourに削減
• 開発者の雇用満足度を2割向上
開発者の究極のモチベーション その1
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 15
俺はコードだけ書きたい!
仮想マシン技術で開発者の要求は満たせたか?
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
No.
仮想マシンは様々なOSをVMとして
気軽にデプロイすると言う要件を満たした。
しかし、VMの中で実行環境を構築したり、
パイプライン管理ツールなどでテスト管理した
りとやることは非常に煩雑なままであった。
=依然開発者はストレスフルなままであった。
設定
パイプライン処理
Compute Storage Network
クラウドリソース
VM VM VM
Application
開発者
コード
開発者の究極のモチベーション
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 17
開発者はコードを書いて、
素敵な機能を実装し、
ユーザや自社に貢献することがモチベーション
コードを書き終わったらコマンド1つで
さっさとリリースして欲しい
(インフラのことなんか気にしたくない)
Compute Storage Network
クラウドリソース
VM VM VM
Application
開発者 コードだけにしたい
開発者の究極のモチベーション
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 18
Compute Storage Network
クラウドリソース
VM VM VM
Application
開発者
1つのコードだと思いたい
=Infrastructure as a Code (IaC)でやりたい、
もしくは気にせずにプッシュしたらリリースしたい
Application
コードだけ
PaaSの台頭
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 19
Rubyの実行環境を提供する商用サービスとして2007年にリリース
様々なコードをアップロードするだけで
簡単にwebサービスを立ち上げることが可能。
無料プログラムがあるためスタートアップ、個人開発にも大人気
内部的にはDynoと呼ばれるコンテナが稼働している
Ruby/PHPの実行環境を提供する商用サービスとして2009年にリリース
Herokuと同じく簡単にWebサービスをリリースできる
プラットフォームとして人気
Javaコードをプッシュするだけでアプリケーションがリリースされる
PaaSのソフトウェアとして2011年リリース
(現在はPHP,Ruby,Goなどにも対応)
VMwareが開発を行っていたがPivotal Softwareに開発を移管
IBM Cloudを含めた様々なクラウドで実行されている
IaCに関わるツールの紹介(ごく一部)
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 20
インフラリソースをファイル形式で定義し、
あまねくクラウドへリソースをデプロイする機能を提供
仮想マシンをパッケージとしてデプロイすることが可能
コマンド1つでローカル環境にデフォルトでVirtualbox環境の仮想マシンをデプロイ
PHP, Pyton, Javaなどのコード開発環境をコマンド1つでデプロイ可能
Playbook単位でサーバの構成管理をYamlファイル形式で管理
サーバのあるべき姿を定義してインストールを実行
Ansible towerというGUI管理ソフトウェアを提供
他にもツールはまだまだある
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 21
時間はないので割愛しますが、他にも様々なソフトウェアがあります
コンテナの本格利用
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
PaaS環境が整ってきましたが、まだまだ技術の進化は止まりません
ごく一部で使っていたコンテナがあまねく環境に広がっていきます
開発者の究極のモチベーション その2
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 23
リクエストが尽きることはない
秒単位で起動してくれ!
仮想マシンの起動は少し遅い
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 24
仮想マシンはOSが稼働するCPU、メモリなどのHWをエミュレーションしている
そのため起動時には当然OSが1から立ち上がってくる
そのため再起動するのに数分かかるし、
クローンをすると場合によっては数十分から数時間かかることもある
仮想マシン(VM)
ゲストOS
アプリ
仮想マシン(VM)
ゲストOS
アプリ
bin/lib bin/lib
vCPU vRAM Disk vCPU vRAM Disk
仮想マシン(VM)
ゲストOS
アプリ
bin/lib
vCPU vRAM Disk
再起動時はOSから再起動するため最低数分は必要 ディスクもクローンするため数十分、場合によっては数時間必要
仮想マシンの再起動イメージ 仮想マシンのクローンイメージ
ハードウェア
ハイパーバイザー
ハードウェア
ハイパーバイザー
コンテナとは
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 25
OSのレイヤで起動するので早いし、どこでも実行可能
ハードウェア
ホストOS
コンテナエンジン
コンテナ
bin/lib
アプリ
Kernel
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
Ø ホストOSのレイヤで
CPUやメモリ、プロセスなどの
リソースを隔離、独自のアプリも実行可能
例: PHPのバージョン違いを同時に稼働
Ø ポイントはKernelの共有
• カーネルを共有することでVMと比較して
早くデプロイ、起動が可能
Ø Linux Kernelとイメージさえあれば、
どんな環境でもアプリケーションが
動作する(冪等性)ということも魅力の1つ
Dockerの誕生 (2013〜)
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 26
コンテナエンジンのデファクトスタンダード
コンテナ技術の開発により、手元のローカル環境で素早く実行環境を用意
世に出回ったときのバージョンは0.xで、商用環境は非推奨だったが
Docker 1.0のリリース(2016〜)により、商用環境広まっていくことになった
Dockerfileなど Docker
イメージなど
DockerHub
など
マニフェストで
コンテナの詳細を記述
開発者
コンテナイメージ
作成
レジストリーへ
登録
アプリ実行
コンテナー
コンテナー
コンテナー
開発環境
テスト環境
本番環境
Dockerが受けた理由はいろいろあるが下記が代表例
• イメージが元からDocker Hubにあったため簡単に試せるということ
• コマンドで1発でどこでも動かせる実行環境を用意できること
しかし、Dockerの限界も見えてきた
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 27
わがままなのは開発者だけじゃなかった
• コンテナたくさんデプロイしたけど冗長性はどうやって担保?
• マイクロサービス、目指したはいいけれどLBは、まさか手動?
• システム毎にリソースの制限したいけどどうするの?
VM時代はできたよそれ!
• Dockerって基本NATで外に出ていくけど、
どうやって他のホストのコンテナと通信するの?
• このコンテナ絶対にこのホストで動かしたいんだけど?
• コンテナってデータ消えるじゃん!
Googleの衝撃的なプレゼン(2014年)
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 28
https://speakerdeck.com/jbeda/containers-at-scale
Googleは全アプリケーションを
コンテナ上で稼働
• 毎週20億コンテナを起動
• リソースの隔離、QoSを実現
• Google App Engineの内部も
コンテナ化をアナウンス
• GoogleはDockerではなく、
lmctfyを使用
オーケスレーションシステムの代表例
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 29
Dockerの限界を越えるためにコンテナを自動的にうまく管理する仕組みを導入
事実上この2つが争っているだけだったが現状はKubernetesの勝利
Kubernetesリリース (2014〜)
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 30
デプロイしたコンテナをいい感じに管理してくれるスーパーソフトウェア
Googleが内部用に開発していたBorgと呼ばれるソフトウェアを
Kubernetesとしてオープンソース化
簡単に商用コンテナ環境をスケーリングできるし、障害時には自動復旧可能
おまけにネットワーク周りの問題もよしなにしてくれます
リソース要求と可用性を保ち、また、制約に基づき、自動的にコンテナの配置を決定。
リソースの有効利用を実現。
障害コンテナの再起動、ノード障害時には、コンテナの再配置の実施。
また、ユーザー定義のヘルス・チェックに応答しないコンテナの削除も実施可能。
コマンドやUIから簡単にアプリケーションのスケール・アップ / ダウンが可能。
また、CPU使用率などに基づく、自動スケーリングも可能。
複雑なサービス・ディスカバリー・メカニズムのアプリケーションへの組み込みは不要。
Kubernetesは、コンテナの集合に単一のDNSネームを付与し、負荷分散を実現。
アプリケーションの変更を順番に適用。(ローリングアップデートなど)
何か不具合が発生した場合には、ロールバックも可能。
リソース管理
(スケジューリング)
自己修復(セルフ・ヒーリング)
水平スケーリング
負荷分散
(サービス・ディスカバリー)
ロールアウトとロールバック
構成管理 コンテナを実行・管理するために必要なメタデータが含まれる。
パスワードやOAuthトークン、SSHキーのような機密情報も管理が可能。
どういい感じにしてくれるのか?
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
31
3ページ前の悩みは全て解決してくれます
マニフェスト
(Yamlファイル)
開発者
フロントは2pod、
バックエンドは 3pod、
DB podは
この永続ストレージを使って、
port は この番号を開けて、
LBの分散方式はラウンドロビン
各コンテナのイメージは
docker hubの
このURLのやつを使って
Master Node
どういい感じにしてくれるのか?
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
32
3ページ前の悩みは全て解決してくれます
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
Software LB
(Ftont用)
Software LB
(Backend用)
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
マニフェスト
(Yamlファイル)
開発者
Master Node
マニフェストの
ルールに従って
Deploy
どういい感じにしてくれるのか?
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
33
3ページ前の悩みは全て解決してくれます
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
Software LB
(Ftont用)
Software LB
(Backend用)
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
マニフェスト
(Yamlファイル)
開発者
Master Node
ホストのダウンで
コンテナが落ちた
どういい感じにしてくれるのか?
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
34
3ページ前の悩みは全て解決してくれます
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
Software LB
(Ftont用)
Software LB
(Backend用)
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
マニフェスト
(Yamlファイル)
開発者
Master Node
Master nodeが
障害を検知して
別のホストに
Deploy
どういい感じにしてくれるのか?
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
35
3ページ前の悩みは全て解決してくれます
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
Software LB
(Ftont用)
Software LB
(Backend用)
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
コンテナ
bin/lib
アプリ
マニフェスト
(Yamlファイル)
開発者
Master Node
Master nodeが
障害を検知して
別のホストに
Deploy
時代は繰り返されているように見える
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 36
開発環境から商用環境へ適用
VMware Workstation
開発環境 商用環境
仮想マシン技術
コンテナ技術
各ベンダーのKubernetesへのコミット
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 37
https://k8s.devstats.cncf.io/d/9/companies-table?orgId=1
多くのITベンダーがk8sコミュニティに投資、
コミットを行っており開発が盛んな状況。
次世代のOSになるというコメントも出ているほど
VanillaなKubernetesの課題
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 38
機能が不十分
Dev Ready だが
IT Ops Ready
ではない
Supportが
Communityのみ
Enterpriseで使うには
可視化機能やLog機能が不十分
単体でCI/CDは実現できない
習得には学習コストがかかる
Enterpriseな
ユーザ企業が使うには不安
各ベンダーのKubernetes技術
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 39
Red Hatが開発したコンテナ技術を丸ごとパッケージとして提供
リソース管理、カタログ、デプロイ機能、CI/CD機能を提供
VMwareが開発したコンテナ技術をパーツとして提供
Build自動化やマルチクラウド管理機能なども提供
既存vCenterからKubernetesの管理をすることも可能
Rancher Labsが主導となって開発しているマルチクラウド向けの
KaaS(Kubernetes as a Service) ソリューション
KubernetesをGUI上で簡単に管理できるため、初心者にも易しい。
パブリッククラウド上のk8s
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 40
各クラウドベンダーのマネージドk8sを利用できるKaaSサービスを各社でリリース
まとめ
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 41
コンテナ技術が生まれ
たモチベーション
歴史は繰り返す 残った課題の対応
開発者の生産性向上から始まり、
本番環境での適用がスタート
コンテナ技術は開発者の生産性
を劇的に向上させるために生ま
れ、実際に向上
様々なベンダーがk8s技術に注力
次世代OSとして期待
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 42

More Related Content

What's hot

Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI) Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Hiroshi Matsumoto
 
20181027 ws meetup2_hybrid
20181027 ws meetup2_hybrid20181027 ws meetup2_hybrid
20181027 ws meetup2_hybrid
Osamu Takazoe
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018
Yoshio Terada
 
コンテナ導入概要資料2018
コンテナ導入概要資料2018コンテナ導入概要資料2018
コンテナ導入概要資料2018
Masahito Zembutsu
 
次世代の企業ITインフラを支えるエンジニアとは
次世代の企業ITインフラを支えるエンジニアとは次世代の企業ITインフラを支えるエンジニアとは
次世代の企業ITインフラを支えるエンジニアとは
Trainocate Japan, Ltd.
 
Interop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WAN
Interop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WANInterop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WAN
Interop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WAN
ShuheiUda
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
 
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
cloudconductor
 
仮想化技術の基本の基本
仮想化技術の基本の基本仮想化技術の基本の基本
仮想化技術の基本の基本
terada
 
LinAction Theme Docker
LinAction Theme DockerLinAction Theme Docker
LinAction Theme Docker
cyberblack28 Ichikawa
 
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
Takashi Kanai
 
Dell EMC の Azure Stack と GPU
Dell EMC の Azure Stack と GPUDell EMC の Azure Stack と GPU
Dell EMC の Azure Stack と GPU
Hiroshi Matsumoto
 
Azure vm の可用性を見直そう
Azure vm の可用性を見直そうAzure vm の可用性を見直そう
Azure vm の可用性を見直そう
ShuheiUda
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDK
ShuheiUda
 
B 8スポンサー講演資料 osnexus steven umbehocker (アファーム・ビジネスパートナーズ株)
B 8スポンサー講演資料 osnexus steven umbehocker (アファーム・ビジネスパートナーズ株)B 8スポンサー講演資料 osnexus steven umbehocker (アファーム・ビジネスパートナーズ株)
B 8スポンサー講演資料 osnexus steven umbehocker (アファーム・ビジネスパートナーズ株)chenree3
 
[G-Tech2014講演資料] Microsoft Azureで負荷分散された仮想マシンを作ってみよう ~Amazon Web Servicesと比べな...
[G-Tech2014講演資料] Microsoft Azureで負荷分散された仮想マシンを作ってみよう ~Amazon Web Servicesと比べな...[G-Tech2014講演資料] Microsoft Azureで負荷分散された仮想マシンを作ってみよう ~Amazon Web Servicesと比べな...
[G-Tech2014講演資料] Microsoft Azureで負荷分散された仮想マシンを作ってみよう ~Amazon Web Servicesと比べな...
Trainocate Japan, Ltd.
 
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Takashi Kanai
 
VIOPS03: VMware参考資料
VIOPS03: VMware参考資料VIOPS03: VMware参考資料
G tech2016 Azureを使った災害復旧の基礎
G tech2016 Azureを使った災害復旧の基礎G tech2016 Azureを使った災害復旧の基礎
G tech2016 Azureを使った災害復旧の基礎
Trainocate Japan, Ltd.
 
VMwareの歩き方 ~SDDCに向けた最強アンダーレイとは?
VMwareの歩き方 ~SDDCに向けた最強アンダーレイとは?VMwareの歩き方 ~SDDCに向けた最強アンダーレイとは?
VMwareの歩き方 ~SDDCに向けた最強アンダーレイとは?
Brocade
 

What's hot (20)

Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI) Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
 
20181027 ws meetup2_hybrid
20181027 ws meetup2_hybrid20181027 ws meetup2_hybrid
20181027 ws meetup2_hybrid
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018
 
コンテナ導入概要資料2018
コンテナ導入概要資料2018コンテナ導入概要資料2018
コンテナ導入概要資料2018
 
次世代の企業ITインフラを支えるエンジニアとは
次世代の企業ITインフラを支えるエンジニアとは次世代の企業ITインフラを支えるエンジニアとは
次世代の企業ITインフラを支えるエンジニアとは
 
Interop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WAN
Interop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WANInterop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WAN
Interop Tokyo 2021 - ShowNet を陰で支えた Azure Virtual WAN
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
 
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
 
仮想化技術の基本の基本
仮想化技術の基本の基本仮想化技術の基本の基本
仮想化技術の基本の基本
 
LinAction Theme Docker
LinAction Theme DockerLinAction Theme Docker
LinAction Theme Docker
 
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
 
Dell EMC の Azure Stack と GPU
Dell EMC の Azure Stack と GPUDell EMC の Azure Stack と GPU
Dell EMC の Azure Stack と GPU
 
Azure vm の可用性を見直そう
Azure vm の可用性を見直そうAzure vm の可用性を見直そう
Azure vm の可用性を見直そう
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDK
 
B 8スポンサー講演資料 osnexus steven umbehocker (アファーム・ビジネスパートナーズ株)
B 8スポンサー講演資料 osnexus steven umbehocker (アファーム・ビジネスパートナーズ株)B 8スポンサー講演資料 osnexus steven umbehocker (アファーム・ビジネスパートナーズ株)
B 8スポンサー講演資料 osnexus steven umbehocker (アファーム・ビジネスパートナーズ株)
 
[G-Tech2014講演資料] Microsoft Azureで負荷分散された仮想マシンを作ってみよう ~Amazon Web Servicesと比べな...
[G-Tech2014講演資料] Microsoft Azureで負荷分散された仮想マシンを作ってみよう ~Amazon Web Servicesと比べな...[G-Tech2014講演資料] Microsoft Azureで負荷分散された仮想マシンを作ってみよう ~Amazon Web Servicesと比べな...
[G-Tech2014講演資料] Microsoft Azureで負荷分散された仮想マシンを作ってみよう ~Amazon Web Servicesと比べな...
 
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
 
VIOPS03: VMware参考資料
VIOPS03: VMware参考資料VIOPS03: VMware参考資料
VIOPS03: VMware参考資料
 
G tech2016 Azureを使った災害復旧の基礎
G tech2016 Azureを使った災害復旧の基礎G tech2016 Azureを使った災害復旧の基礎
G tech2016 Azureを使った災害復旧の基礎
 
VMwareの歩き方 ~SDDCに向けた最強アンダーレイとは?
VMwareの歩き方 ~SDDCに向けた最強アンダーレイとは?VMwareの歩き方 ~SDDCに向けた最強アンダーレイとは?
VMwareの歩き方 ~SDDCに向けた最強アンダーレイとは?
 

Similar to コンテナ今昔物語_2021_12_22

Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会
axsh co., LTD.
 
第3回「マイクロソフトの仮想化と、クラウドの今後」(2011/06/16 on しすなま!) ②IBM資料
第3回「マイクロソフトの仮想化と、クラウドの今後」(2011/06/16 on しすなま!) ②IBM資料第3回「マイクロソフトの仮想化と、クラウドの今後」(2011/06/16 on しすなま!) ②IBM資料
第3回「マイクロソフトの仮想化と、クラウドの今後」(2011/06/16 on しすなま!) ②IBM資料
System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
 
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
yaegashi
 
2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」
2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」
2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」
Takahiro Shinagawa
 
第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)
第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)
第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)
System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
 
20120822_dstn技術交流会_仮想化について
20120822_dstn技術交流会_仮想化について20120822_dstn技術交流会_仮想化について
20120822_dstn技術交流会_仮想化についてdstn
 
VM 基盤運用チームの DevOps
VM 基盤運用チームの DevOpsVM 基盤運用チームの DevOps
VM 基盤運用チームの DevOps
富士通クラウドテクノロジーズ株式会社
 
BitVisor Summit 2 「BitVisorの現状と今後」
BitVisor Summit 2 「BitVisorの現状と今後」BitVisor Summit 2 「BitVisorの現状と今後」
BitVisor Summit 2 「BitVisorの現状と今後」
Takahiro Shinagawa
 
IBM Cloud 最新アップデート (2020年10月)
IBM Cloud 最新アップデート (2020年10月)IBM Cloud 最新アップデート (2020年10月)
IBM Cloud 最新アップデート (2020年10月)
Hayama Kyouhei
 
クラウド概略(ノート)
クラウド概略(ノート)クラウド概略(ノート)
クラウド概略(ノート)真乙 九龍
 
IBM SoftLayer @ Osc tokyo-2014-fall
IBM SoftLayer @ Osc tokyo-2014-fallIBM SoftLayer @ Osc tokyo-2014-fall
IBM SoftLayer @ Osc tokyo-2014-fall
Yasushi Osonoi
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
Kouji Matsui
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118
Atomu Hidaka
 
BHyVeってなんや
BHyVeってなんやBHyVeってなんや
BHyVeってなんやTakuya ASADA
 
20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要
Airi Furukawa
 
Serverless Framework "Disptach" の紹介
Serverless Framework "Disptach" の紹介Serverless Framework "Disptach" の紹介
Serverless Framework "Disptach" の紹介
Motonori Shindo
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?
Daichi Isami
 
Windows Serverを活用する on Windows Azure セミナー
Windows Serverを活用する on Windows Azure セミナーWindows Serverを活用する on Windows Azure セミナー
Windows Serverを活用する on Windows Azure セミナー
Daisuke Masubuchi
 
Bhyve code reading
Bhyve code readingBhyve code reading
Bhyve code readingTakuya ASADA
 

Similar to コンテナ今昔物語_2021_12_22 (20)

Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会
 
第3回「マイクロソフトの仮想化と、クラウドの今後」(2011/06/16 on しすなま!) ②IBM資料
第3回「マイクロソフトの仮想化と、クラウドの今後」(2011/06/16 on しすなま!) ②IBM資料第3回「マイクロソフトの仮想化と、クラウドの今後」(2011/06/16 on しすなま!) ②IBM資料
第3回「マイクロソフトの仮想化と、クラウドの今後」(2011/06/16 on しすなま!) ②IBM資料
 
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
 
2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」
2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」
2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」
 
第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)
第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)
第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)
 
Bhyve Internals
Bhyve InternalsBhyve Internals
Bhyve Internals
 
20120822_dstn技術交流会_仮想化について
20120822_dstn技術交流会_仮想化について20120822_dstn技術交流会_仮想化について
20120822_dstn技術交流会_仮想化について
 
VM 基盤運用チームの DevOps
VM 基盤運用チームの DevOpsVM 基盤運用チームの DevOps
VM 基盤運用チームの DevOps
 
BitVisor Summit 2 「BitVisorの現状と今後」
BitVisor Summit 2 「BitVisorの現状と今後」BitVisor Summit 2 「BitVisorの現状と今後」
BitVisor Summit 2 「BitVisorの現状と今後」
 
IBM Cloud 最新アップデート (2020年10月)
IBM Cloud 最新アップデート (2020年10月)IBM Cloud 最新アップデート (2020年10月)
IBM Cloud 最新アップデート (2020年10月)
 
クラウド概略(ノート)
クラウド概略(ノート)クラウド概略(ノート)
クラウド概略(ノート)
 
IBM SoftLayer @ Osc tokyo-2014-fall
IBM SoftLayer @ Osc tokyo-2014-fallIBM SoftLayer @ Osc tokyo-2014-fall
IBM SoftLayer @ Osc tokyo-2014-fall
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118
 
BHyVeってなんや
BHyVeってなんやBHyVeってなんや
BHyVeってなんや
 
20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要
 
Serverless Framework "Disptach" の紹介
Serverless Framework "Disptach" の紹介Serverless Framework "Disptach" の紹介
Serverless Framework "Disptach" の紹介
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?
 
Windows Serverを活用する on Windows Azure セミナー
Windows Serverを活用する on Windows Azure セミナーWindows Serverを活用する on Windows Azure セミナー
Windows Serverを活用する on Windows Azure セミナー
 
Bhyve code reading
Bhyve code readingBhyve code reading
Bhyve code reading
 

コンテナ今昔物語_2021_12_22

  • 2. Who Are you? Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 2 自己紹介 氏名:黒沢 勇 出身:神奈川県川崎市 前職: VMware SE (2017年入社) 現職: IBM CSM (2021/11月入社) 趣味: 自宅ラボ、ゲーム、積みプラモ 前職の登壇: vForum 2019-20, Cloud Operator Days Tokyo 2021 得意技術:仮想化、k8s、クラウド管理自動化可視化 Twitter: https://twitter.com/Torlek96 Linkedin: https://www.linkedin.com/in/kurosaway-b7486714b/
  • 3. 現在の自宅ラボ Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 3 現在はIntel NUC4台をVMware ESXiとして使用 Corei7, 64GB DDR4を4台なので大抵のことはできる しかしk8sを満足に動かすためには若干力不足. 現在yahoo オークションで 1Uのラックサーバに張り付いて落札を狙ってます。 (ちなみに明日21:00が落札期限) Skylake以上の世代、 かつ24コア以上のサーバをお持ちの方はぜひご連絡を Twitter: https://twitter.com/Torlek96 Linkedin: https://www.linkedin.com/in/kurosaway-b7486714b/
  • 4. Agenda Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 1. コンテナ技術が台頭する前の時代のお話 2. PaaS出現 3. コンテナの出現
  • 5. コンテナ技術が 台頭する前の時代 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 昔々のそのまた昔、仮想化ができる前から話は始まります 人類がアプリケーションの起動を祈っていた時代です (ちなみに私は今でもちゃんと祈りを捧げます)
  • 6. プロセス技術の開発 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 6 chroot 1980年代に開発、ユーザが使用できるディレクトリを 制限する機能としてUnixに追加 セキュリティ技術を向上させ、 ユーザが使えるリソースを制限することが可能 コンテナと仮想マシン技術の肝は リソースの制限と隔離。 そのため、本技術は仮想化技術の大祖先にあたる FreeBSD Jail chrootを発展させ仮想のFreeBSD環境を実行できる環境 を用意できる機能 usr home etc bin usr home etc bin dirB dirA chroot root Jail
  • 7. 仮想マシン技術の開発 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 7 2000年代に時は移動、元祖仮想マシンはVMwareからスタート 仮想マシン (VM) 技術が コンテナ技術の開発に先立ち、開発が進む. 必要なリソースをファイルとしてパッケージングし、 内部的にはプロセスとしてVMを動かす技術は大ヒット この技術により全く違うOSも、バージョンが違うOSも 同じホストで動かすことができるようになった。 ハイパーバイザ型の仮想化よりも ホスト型仮想化の方が先に開発されている 1999〜 2007〜 2010〜 2008〜 ※あえて古いロゴを使用
  • 8. 仮想マシン技術のサーバへの適用 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 8 サーバを1つずつ管理していくことが困難になってくる ハイパーバイザー型の仮想技術が発達することで、 仮想マシンを本番環境で運用できるようになる 次第にホスト数が増えていき 単一コンソールでは管理がしきれなくなったため、 VMwareではvCenter Server、 KVMではHorizonと呼ばれる管理ソフトウェアが開発された 2003年にvCenter Server 1.0をリリース 2012年にEssex versionからHorizonをリリース
  • 9. パブリッククラウドの出現 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 9 大量のコンピュートリソースを間借りできるサービスがリリース 2006年リリース 2010年リリース 2008年リリース 2005年リリース (SoftLayerからカウント) 2016年リリース 2011年リリース
  • 10. Solaris Container と LXC Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 10 一方でコンテナの元となる技術出始める 2004年〜 Solaris Unix 上でコンテナ仮想化を実装する技術が 2004年にパブリックベータとして公開。 Solaris Zoneと呼ばれる技術を用いて Zoneごとに独立したアプリケーションを稼働可能にした 従来の仮想マシンと比較して起動が早く、 仮想化によるオーバーヘッドも少ないという特徴も併せ持つ。 本格的な商用コンテナ初号機 2008年にLinuxでも本格的なコンテナ仮想化が使用可能に 2006年に開発されたProcess Containerがcgroupsと名前を変え、 Linux Namespaceと組み合わせて軽量なVMをデプロイする機能としてリリース Dockerとは思想が異なるため使い分けが必要
  • 11. 蛇足: Sunのコンテナといえば Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 11 Project Blackboxと呼ばれるコンテナ型DCの発表も! 中にネットワーク機器も入っている小さなDC! まさにコンテナなので 上に積んでスケールアップもできるし、 横に並べてスケールアウトもできるという コンテナの考えを引き継いだDC! ※本当にその思想でできたかは知りません
  • 12. 仮想マシン技術について Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 12 ハイパーバイザー仮想化 仮想マシン(VM) ゲストOS アプリ アプリ 仮想マシン(VM) ゲストOS アプリ アプリ ハードウェア ホスト仮想化 アプリ アプリ 仮想マシン(VM) ゲストOS アプリ アプリ bin/lib vCPU vRAM vNIC vCPU vRAM vNIC vCPU vRAM vNIC bin/lib bin/lib ハイパーバイザー (専用OS) ホストOS bin/lib ホスト仮想化はオーバーヘッドが大きくゲストOSのパフォーマンスが低くなることもあるが、気軽に扱える。 ハイパーバイザ仮想化は専用OSを用いるため、オーバーヘッドが少なくなるが別途踏み台が必要になる。 また、Intel VT-x, AMD-SVMと呼ばれるCPU側でVMを高速化する技術も発達している。 ハードウェア CPU RAM NIC CPU RAM NIC
  • 13. PaaSの出現 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 時は2010年台に移り、VMを使うのが当たり前の時代 VMでみんな大満足したはずなのに何でPaaSができたのでしょうか? IaaS、SaaSだけでいいんじゃないか?と思いませんか?
  • 14. 閑話休題:要求と要件 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 14 コンテナは要求ではなく、要件であることに注意 要求定義の例 要件定義の例 • 開発スピードを早めるため、 フロントシステムとバックエンドシステムに コンテナを採用 • 安定性を高めるため、DBはベアメタル、 もしくは大型の仮想マシンで構築 • 開発者のストレスを減らすためにPaaSを採用 • テスト/リリーススピードを早めるために CI/CDシステムを構築 • 承認スピードを早めるためにCI/CDを使用 • ソフトウェアリリースを6ヶ月サイクルから 3ヶ月サイクルに短縮 • メンテナンス時間のオーダーを DayからHourに削減 • 承認に関わる時間をDayからHourに削減 • 開発者の雇用満足度を2割向上
  • 15. 開発者の究極のモチベーション その1 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 15 俺はコードだけ書きたい!
  • 16. 仮想マシン技術で開発者の要求は満たせたか? Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation No. 仮想マシンは様々なOSをVMとして 気軽にデプロイすると言う要件を満たした。 しかし、VMの中で実行環境を構築したり、 パイプライン管理ツールなどでテスト管理した りとやることは非常に煩雑なままであった。 =依然開発者はストレスフルなままであった。 設定 パイプライン処理 Compute Storage Network クラウドリソース VM VM VM Application 開発者 コード
  • 17. 開発者の究極のモチベーション Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 17 開発者はコードを書いて、 素敵な機能を実装し、 ユーザや自社に貢献することがモチベーション コードを書き終わったらコマンド1つで さっさとリリースして欲しい (インフラのことなんか気にしたくない) Compute Storage Network クラウドリソース VM VM VM Application 開発者 コードだけにしたい
  • 18. 開発者の究極のモチベーション Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 18 Compute Storage Network クラウドリソース VM VM VM Application 開発者 1つのコードだと思いたい =Infrastructure as a Code (IaC)でやりたい、 もしくは気にせずにプッシュしたらリリースしたい Application コードだけ
  • 19. PaaSの台頭 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 19 Rubyの実行環境を提供する商用サービスとして2007年にリリース 様々なコードをアップロードするだけで 簡単にwebサービスを立ち上げることが可能。 無料プログラムがあるためスタートアップ、個人開発にも大人気 内部的にはDynoと呼ばれるコンテナが稼働している Ruby/PHPの実行環境を提供する商用サービスとして2009年にリリース Herokuと同じく簡単にWebサービスをリリースできる プラットフォームとして人気 Javaコードをプッシュするだけでアプリケーションがリリースされる PaaSのソフトウェアとして2011年リリース (現在はPHP,Ruby,Goなどにも対応) VMwareが開発を行っていたがPivotal Softwareに開発を移管 IBM Cloudを含めた様々なクラウドで実行されている
  • 20. IaCに関わるツールの紹介(ごく一部) Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 20 インフラリソースをファイル形式で定義し、 あまねくクラウドへリソースをデプロイする機能を提供 仮想マシンをパッケージとしてデプロイすることが可能 コマンド1つでローカル環境にデフォルトでVirtualbox環境の仮想マシンをデプロイ PHP, Pyton, Javaなどのコード開発環境をコマンド1つでデプロイ可能 Playbook単位でサーバの構成管理をYamlファイル形式で管理 サーバのあるべき姿を定義してインストールを実行 Ansible towerというGUI管理ソフトウェアを提供
  • 21. 他にもツールはまだまだある Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 21 時間はないので割愛しますが、他にも様々なソフトウェアがあります
  • 22. コンテナの本格利用 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation PaaS環境が整ってきましたが、まだまだ技術の進化は止まりません ごく一部で使っていたコンテナがあまねく環境に広がっていきます
  • 23. 開発者の究極のモチベーション その2 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 23 リクエストが尽きることはない 秒単位で起動してくれ!
  • 24. 仮想マシンの起動は少し遅い Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 24 仮想マシンはOSが稼働するCPU、メモリなどのHWをエミュレーションしている そのため起動時には当然OSが1から立ち上がってくる そのため再起動するのに数分かかるし、 クローンをすると場合によっては数十分から数時間かかることもある 仮想マシン(VM) ゲストOS アプリ 仮想マシン(VM) ゲストOS アプリ bin/lib bin/lib vCPU vRAM Disk vCPU vRAM Disk 仮想マシン(VM) ゲストOS アプリ bin/lib vCPU vRAM Disk 再起動時はOSから再起動するため最低数分は必要 ディスクもクローンするため数十分、場合によっては数時間必要 仮想マシンの再起動イメージ 仮想マシンのクローンイメージ ハードウェア ハイパーバイザー ハードウェア ハイパーバイザー
  • 25. コンテナとは Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 25 OSのレイヤで起動するので早いし、どこでも実行可能 ハードウェア ホストOS コンテナエンジン コンテナ bin/lib アプリ Kernel コンテナ bin/lib アプリ コンテナ bin/lib アプリ Ø ホストOSのレイヤで CPUやメモリ、プロセスなどの リソースを隔離、独自のアプリも実行可能 例: PHPのバージョン違いを同時に稼働 Ø ポイントはKernelの共有 • カーネルを共有することでVMと比較して 早くデプロイ、起動が可能 Ø Linux Kernelとイメージさえあれば、 どんな環境でもアプリケーションが 動作する(冪等性)ということも魅力の1つ
  • 26. Dockerの誕生 (2013〜) Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 26 コンテナエンジンのデファクトスタンダード コンテナ技術の開発により、手元のローカル環境で素早く実行環境を用意 世に出回ったときのバージョンは0.xで、商用環境は非推奨だったが Docker 1.0のリリース(2016〜)により、商用環境広まっていくことになった Dockerfileなど Docker イメージなど DockerHub など マニフェストで コンテナの詳細を記述 開発者 コンテナイメージ 作成 レジストリーへ 登録 アプリ実行 コンテナー コンテナー コンテナー 開発環境 テスト環境 本番環境 Dockerが受けた理由はいろいろあるが下記が代表例 • イメージが元からDocker Hubにあったため簡単に試せるということ • コマンドで1発でどこでも動かせる実行環境を用意できること
  • 27. しかし、Dockerの限界も見えてきた Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 27 わがままなのは開発者だけじゃなかった • コンテナたくさんデプロイしたけど冗長性はどうやって担保? • マイクロサービス、目指したはいいけれどLBは、まさか手動? • システム毎にリソースの制限したいけどどうするの? VM時代はできたよそれ! • Dockerって基本NATで外に出ていくけど、 どうやって他のホストのコンテナと通信するの? • このコンテナ絶対にこのホストで動かしたいんだけど? • コンテナってデータ消えるじゃん!
  • 28. Googleの衝撃的なプレゼン(2014年) Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 28 https://speakerdeck.com/jbeda/containers-at-scale Googleは全アプリケーションを コンテナ上で稼働 • 毎週20億コンテナを起動 • リソースの隔離、QoSを実現 • Google App Engineの内部も コンテナ化をアナウンス • GoogleはDockerではなく、 lmctfyを使用
  • 29. オーケスレーションシステムの代表例 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 29 Dockerの限界を越えるためにコンテナを自動的にうまく管理する仕組みを導入 事実上この2つが争っているだけだったが現状はKubernetesの勝利
  • 30. Kubernetesリリース (2014〜) Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 30 デプロイしたコンテナをいい感じに管理してくれるスーパーソフトウェア Googleが内部用に開発していたBorgと呼ばれるソフトウェアを Kubernetesとしてオープンソース化 簡単に商用コンテナ環境をスケーリングできるし、障害時には自動復旧可能 おまけにネットワーク周りの問題もよしなにしてくれます リソース要求と可用性を保ち、また、制約に基づき、自動的にコンテナの配置を決定。 リソースの有効利用を実現。 障害コンテナの再起動、ノード障害時には、コンテナの再配置の実施。 また、ユーザー定義のヘルス・チェックに応答しないコンテナの削除も実施可能。 コマンドやUIから簡単にアプリケーションのスケール・アップ / ダウンが可能。 また、CPU使用率などに基づく、自動スケーリングも可能。 複雑なサービス・ディスカバリー・メカニズムのアプリケーションへの組み込みは不要。 Kubernetesは、コンテナの集合に単一のDNSネームを付与し、負荷分散を実現。 アプリケーションの変更を順番に適用。(ローリングアップデートなど) 何か不具合が発生した場合には、ロールバックも可能。 リソース管理 (スケジューリング) 自己修復(セルフ・ヒーリング) 水平スケーリング 負荷分散 (サービス・ディスカバリー) ロールアウトとロールバック 構成管理 コンテナを実行・管理するために必要なメタデータが含まれる。 パスワードやOAuthトークン、SSHキーのような機密情報も管理が可能。
  • 31. どういい感じにしてくれるのか? Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 31 3ページ前の悩みは全て解決してくれます マニフェスト (Yamlファイル) 開発者 フロントは2pod、 バックエンドは 3pod、 DB podは この永続ストレージを使って、 port は この番号を開けて、 LBの分散方式はラウンドロビン 各コンテナのイメージは docker hubの このURLのやつを使って Master Node
  • 32. どういい感じにしてくれるのか? Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 32 3ページ前の悩みは全て解決してくれます コンテナ bin/lib アプリ コンテナ bin/lib アプリ Software LB (Ftont用) Software LB (Backend用) コンテナ bin/lib アプリ コンテナ bin/lib アプリ コンテナ bin/lib アプリ マニフェスト (Yamlファイル) 開発者 Master Node マニフェストの ルールに従って Deploy
  • 33. どういい感じにしてくれるのか? Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 33 3ページ前の悩みは全て解決してくれます コンテナ bin/lib アプリ コンテナ bin/lib アプリ Software LB (Ftont用) Software LB (Backend用) コンテナ bin/lib アプリ コンテナ bin/lib アプリ コンテナ bin/lib アプリ マニフェスト (Yamlファイル) 開発者 Master Node ホストのダウンで コンテナが落ちた
  • 34. どういい感じにしてくれるのか? Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 34 3ページ前の悩みは全て解決してくれます コンテナ bin/lib アプリ コンテナ bin/lib アプリ Software LB (Ftont用) Software LB (Backend用) コンテナ bin/lib アプリ コンテナ bin/lib アプリ コンテナ bin/lib アプリ マニフェスト (Yamlファイル) 開発者 Master Node Master nodeが 障害を検知して 別のホストに Deploy
  • 35. どういい感じにしてくれるのか? Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 35 3ページ前の悩みは全て解決してくれます コンテナ bin/lib アプリ コンテナ bin/lib アプリ コンテナ bin/lib アプリ Software LB (Ftont用) Software LB (Backend用) コンテナ bin/lib アプリ コンテナ bin/lib アプリ コンテナ bin/lib アプリ マニフェスト (Yamlファイル) 開発者 Master Node Master nodeが 障害を検知して 別のホストに Deploy
  • 36. 時代は繰り返されているように見える Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 36 開発環境から商用環境へ適用 VMware Workstation 開発環境 商用環境 仮想マシン技術 コンテナ技術
  • 37. 各ベンダーのKubernetesへのコミット Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 37 https://k8s.devstats.cncf.io/d/9/companies-table?orgId=1 多くのITベンダーがk8sコミュニティに投資、 コミットを行っており開発が盛んな状況。 次世代のOSになるというコメントも出ているほど
  • 38. VanillaなKubernetesの課題 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 38 機能が不十分 Dev Ready だが IT Ops Ready ではない Supportが Communityのみ Enterpriseで使うには 可視化機能やLog機能が不十分 単体でCI/CDは実現できない 習得には学習コストがかかる Enterpriseな ユーザ企業が使うには不安
  • 39. 各ベンダーのKubernetes技術 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 39 Red Hatが開発したコンテナ技術を丸ごとパッケージとして提供 リソース管理、カタログ、デプロイ機能、CI/CD機能を提供 VMwareが開発したコンテナ技術をパーツとして提供 Build自動化やマルチクラウド管理機能なども提供 既存vCenterからKubernetesの管理をすることも可能 Rancher Labsが主導となって開発しているマルチクラウド向けの KaaS(Kubernetes as a Service) ソリューション KubernetesをGUI上で簡単に管理できるため、初心者にも易しい。
  • 40. パブリッククラウド上のk8s Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 40 各クラウドベンダーのマネージドk8sを利用できるKaaSサービスを各社でリリース
  • 41. まとめ Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 41 コンテナ技術が生まれ たモチベーション 歴史は繰り返す 残った課題の対応 開発者の生産性向上から始まり、 本番環境での適用がスタート コンテナ技術は開発者の生産性 を劇的に向上させるために生ま れ、実際に向上 様々なベンダーがk8s技術に注力 次世代OSとして期待
  • 42. Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 42