SlideShare a Scribd company logo
1 of 27
Download to read offline
1
Shuji	Yamada	
@uzyexeJan	19,	2016
「コンテナのユースケース考察」
https://www.flickr.com/photos/yukop/11941236015/
2
コンテナ is 何?
https://www.flickr.com/photos/antitezo/213678923/
新しいパッケージ管理の仕組み?
3
https://www.vagrantup.com/
Vagrant の代わり?
4
仮想サーバの代わり?
5
6
7
コンテナ = パッケージ管理機能 + プロセス + リソース分離
https://www.flickr.com/photos/gerrydincher/5200171922/
コンテナは10年以上前から存在している
8
• Facebook, Google, Heroku, etc...
• LXC, warden, AIX WPAR, HP-UX Container, Solaris Container,
OpenVZ, Jail, Parallels...
https://www.flickr.com/photos/grwitters/3267433142/
なぜ今になって話題になっているのか?
9
• 誰でもどこでも動かせる時代になった。(Mobility and Portability)
• 誰でも実用的なスケールで動かせる時代になった。(Scalability)
• どこでも安定して動かせる時代になった。(Robust and Availability)
https://www.flickr.com/photos/fullcex/5981716620/
Dockerコミュニティの規模
10
• 1,000,000,000+ Docker Container download
• 240,000+ Repositories on DockerHub
• 200+ Meetup Groups in 50+ countries
• 1600+ Contributors
• 50,000+ Third-party projects on GitHub
https://www.flickr.com/photos/yiie/8102458704/
Docker にまつわるエコシステム達
• Config Management Tools * 10+
• Container OS * 10+
• Scheduler/Orchestration/Management * 40+
• Database/BigData * 10+
• Networking * 15+
• Security * 3+
• Monitoring * 5+
11
• Image Registry * 4+
• Hosting/Service Providers * 20+
• Developer Tools * 25+
• Deplopment Platform * 20+
https://www.flickr.com/photos/ryantron/4453018910/
Docker コンテナの特徴
• イメージをコードで構築管理できる。(パッケージ管理が楽。)
• どこでも動かせる。(移設作業や検証作業が簡単。)
• コンテナ内は開発側、サーバ側は運用側という作業分担が楽。
• アプリ1つに対して、仮想サーバを一台作って運用するよりも楽。
12
https://www.flickr.com/photos/traftery/4773457853/
インフラ的なメリット
• 1サーバ上で数千台以上のコンテナを動かすことが可能になる。
• 高密度・高集約な都市型データセンター向けアーキテクチャ。
• 1 Server : 1 App から 1 Container : 1 App の時代へ。
• 物理サーバを数百コンテナにすることでサーバの価値を最大化しやすい。
• 数百台の物理サーバをデータセンターに設置して運用するよりも楽。
13
https://www.flickr.com/photos/christopherbrown/15002659050/
コンテナの課題
• リソース制御機能が充分ではない。
• ネットワークやストレージやアプライアンスとの親和性。
• コンテナならではのクセがある。
• いざ本番で利用しようと思うと決して小さくはない学習コストが必要。
14
https://www.flickr.com/photos/34316967@N04/5025820818/
運用コスト vs. サービス提供価格
• お金で問題を解決することができる組織なら、現時点の段階でサーバー
のノウハウを捨ててコンテナに挑戦するメリットはほとんどない。
• 他社よりもコストパフォーマンスの高いサービスづくりを目指す組織に
とっては、コンテナ技術は戦略的に重要なテクノロジーになる。
• コンテナが仮想サーバに代わって普及していく流れは避けられない。
15
https://www.flickr.com/photos/camknows/7987520895/
コストパフォーマンスを重視しない限りは
サーバ本体を自前で運用する必要性はない
• サーバのコスパ重視なら(自社運用 >)専用サーバ > VPS > クラウド
• でも、世の中ではクラウドが積極的に採用され始めている。
• 運用をクラウドにアウトソーシングしたほうがコストを下げられる。
• 運用にかかる人件費がサーバ代より高く付くことのほうが多い。
16
https://www.flickr.com/photos/danicuki/8229673441/
気を付けなければいけないポイント
• 複雑にしてはいけない、複雑になってはいけない。
• 学習コストの増大はコンテナの利点を大きく損う。
• シンプルで安価で必要最小限のステップで利用できるほど良い。
• コンテナ運用の負担を軽減するには各種外部サービスとの連携は必須。
17
https://www.flickr.com/photos/77108378@N06/17784119510/
コンテナでの運用に向いているユースケース
• Ephemeral Tasks
• Learning / Demo - Linuxやスクリプトの学習、デモ用途
• CRON / Batch job - スケジュールジョブ / バッチジョブ
• CI/CD (Continuous Integration/Continuous Delivery)
• Elastic Services
• Distributed Applications - 分散型アプリケーション
• Application Deployment / Application Provisioning - デプロイ、プロビジョニング
18
https://www.flickr.com/photos/rachelpasch/4578248070/
特に Elastic Service で必要とされる機能
• 動的なサービス登録
• バックエンドサーバの動的追跡
• 構成ファイルの自動更新
19
https://www.flickr.com/photos/jted/5449095780/
代表的なユースケースとソリューション
• ローカルPC内にコンテナ環境を構築したい。(ローカル環境+コンテナ)
• Docker CLI, Kitematic など
• 手持ちのサーバ上にコンテナ環境を構築したい。(サーバ+コントローラー+コンテナ)
• Kubernates、Mesos/Marathon, Docker Swarm, Tectonic, OpenShift, Tutum など
• コンテナホスティングを利用したい。(クラウド+コンテナ)
• Amazon ECS, GoogleCloud, Triton, Giant Swarm, Carina など
• コンテナ対応PaaSを利用したい。(Public PaaS + コンテナ)
• Azure, Bluemix, OpenShift など
• Elastic Service(分散型アプリケーション環境など)を構築したい。
• 上述のいずれかのソリューション+アプリケーション層での実装が必要。
20
https://www.flickr.com/photos/psd/13109673843/
PaaS vs. Container
• PaaS = Simple Application Platform (heroku, OpenShift,
CloudFoundry)
• Container = Microservice, WebApps, BigData, Stream Processing,
Legacy, Monolithtic, etc...
21
https://www.flickr.com/photos/22056213@N04/5454487268/
ありがちなユースケース(その1)
• 検証にモノリシックなLAMP環境やMEANスタックを立ち上げるとか。
• GentooやArch Linuxをいじるとか。
• RedmineとかWordPressを立ち上げるとか。
• これらのケースに確実に対応するには、「ワンクリックデプロイ」や
「HTTPS対応」や「カスタムドメイン対応」のような機能が必要。
22
https://www.flickr.com/photos/atosorigin/9240927854/
ありがちなユースケース(その2)
• 中規模(50-500 container)なアプリケーションコンテナ連携
• 分散型アプリケーション
• これらのケースに確実に対応するには、「YAMLファイルの取り込み」や
「外部サービス連携」や「VPC対応」や「VPN機能」が必要。
23
https://www.flickr.com/photos/glynlowe/10921733615/
ありがちなユースケース(その3)
• 大規模(500+ container)なアプリケーションコンテナ連携
• BigData、PaaS、SaaS 用途
• このケースに確実に対応するには、専用の「仮想インスタンスプラン」や
「ベアメタルプラン」や、専用の「コンテナイメージ」などが必要。
24
https://www.flickr.com/photos/ridwan326/6993601982/
まとめ
• コンテナがメインラインになるには以下のベストプラクティスが必要
• 無償試用が可能なDocker対応サービスの充実
• 日本語での具体的なユースケース事例紹介
• Appサーバと永続的なストレージやデータベースとの接続方法
• 分散型アプリケーションのデプロイとプロビジョニング
• 要求性能に応じた各種サービス連携
25
https://www.flickr.com/photos/ridwan326/6993601982/
まとめ
• コンテナは潜在的には万能。
• 既存のサーバで実現できることのほとんどはコンテナでもできる。
• ホスティング屋さんの視点とアプリ屋さんの視点でも使い方の見方は異なる。
• 有用なテクノロジーを取り入れていくことは組織にとって欠かせない。
• コンテナを使う組織と使わない組織とでは技能水準に明確な差が生まれる。
• 新しいものを取り入れてプロセスや文化を改善できる組織であるほど成熟しやすい。
26
https://www.flickr.com/photos/mdpettitt/8671901426/
Any Questions?
27

More Related Content

What's hot

What's hot (20)

Keycloakの最近のトピック
Keycloakの最近のトピックKeycloakの最近のトピック
Keycloakの最近のトピック
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
 
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container ServiceAWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
クラウドでも非機能要求グレードは必要だよね
クラウドでも非機能要求グレードは必要だよねクラウドでも非機能要求グレードは必要だよね
クラウドでも非機能要求グレードは必要だよね
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
SREチームとしてSREしてみた話
SREチームとしてSREしてみた話SREチームとしてSREしてみた話
SREチームとしてSREしてみた話
 
デプロイメントパイプラインって何?
デプロイメントパイプラインって何?デプロイメントパイプラインって何?
デプロイメントパイプラインって何?
 
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
 
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 

More from Shuji Yamada

Kanban 301「プロセスマネジメント(成長エンジン)」
Kanban 301「プロセスマネジメント(成長エンジン)」Kanban 301「プロセスマネジメント(成長エンジン)」
Kanban 301「プロセスマネジメント(成長エンジン)」
Shuji Yamada
 

More from Shuji Yamada (17)

GitHub Enterpriseの導入事例と実践GitHub Actions
GitHub Enterpriseの導入事例と実践GitHub ActionsGitHub Enterpriseの導入事例と実践GitHub Actions
GitHub Enterpriseの導入事例と実践GitHub Actions
 
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
 
現場!実物!実践!マルチクラスタを運用するときの課題とコツ
現場!実物!実践!マルチクラスタを運用するときの課題とコツ現場!実物!実践!マルチクラスタを運用するときの課題とコツ
現場!実物!実践!マルチクラスタを運用するときの課題とコツ
 
Arukas meet Mesos/Marathon
Arukas meet Mesos/MarathonArukas meet Mesos/Marathon
Arukas meet Mesos/Marathon
 
20分でわかるgVisor入門
20分でわかるgVisor入門20分でわかるgVisor入門
20分でわかるgVisor入門
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
 
会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話
 
10分でわかる marathon-lb
10分でわかる marathon-lb10分でわかる marathon-lb
10分でわかる marathon-lb
 
Kanban 301「プロセスマネジメント(成長エンジン)」
Kanban 301「プロセスマネジメント(成長エンジン)」Kanban 301「プロセスマネジメント(成長エンジン)」
Kanban 301「プロセスマネジメント(成長エンジン)」
 
Kanban 101「明日から使えるかもしれないカンバン」
Kanban 101「明日から使えるかもしれないカンバン」Kanban 101「明日から使えるかもしれないカンバン」
Kanban 101「明日から使えるかもしれないカンバン」
 
Velocity - Lean, Velocity and Anti-Fragile 「ボトルネックを飼い慣らせ!」
Velocity - Lean, Velocity and Anti-Fragile  「ボトルネックを飼い慣らせ!」Velocity - Lean, Velocity and Anti-Fragile  「ボトルネックを飼い慣らせ!」
Velocity - Lean, Velocity and Anti-Fragile 「ボトルネックを飼い慣らせ!」
 
自動テストによって生み出される価値
自動テストによって生み出される価値自動テストによって生み出される価値
自動テストによって生み出される価値
 
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
 
お手軽OpenFlow試験環境 Mininet
お手軽OpenFlow試験環境 Mininetお手軽OpenFlow試験環境 Mininet
お手軽OpenFlow試験環境 Mininet
 
Sensu -The Next Generateion Monitoring Framework-
Sensu -The Next Generateion Monitoring Framework-Sensu -The Next Generateion Monitoring Framework-
Sensu -The Next Generateion Monitoring Framework-
 
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
 
2015-01-27 Introduction to Docker
2015-01-27 Introduction to Docker2015-01-27 Introduction to Docker
2015-01-27 Introduction to Docker
 

Recently uploaded

Recently uploaded (7)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

コンテナのユースケース考察