コンテナ技術概要
HOMEコンテナ技術概要
コンテナを知る3つのステップ
1st STEPコンテナが使われるのはなぜなのか?
多くの企業で利用が進むコンテナ
半数を超える企業でコンテナが使用され、約1/3はKubernetes(コンテナ基盤ソフトウェア)を使用しています。
あなたの企業(もしくは支援先企業)ではKubernetesを利用していますか?
- Kubernetesの本番利用を行っている
 - Kubernetesの検証、導入構築を行っている
 - Kubernetesの利用を計画/検討している
 - Kubernetesに関する情報収集は行っている
 - コンテナ(Dockerなど)は使用/検討中だがKubernetesはこれから
 - Kubernetes/コンテナに関してはよく知らない
 - 現時点で使うことは考えていない
 
コンテナに期待するビジネスメリット
コンテナを使うことによって様々なビジネスメリットが期待できます。
既存システムと比べ、コンテナ(Kubernetes)導入に期待する一番のビジネスメリットはなんですか?
- アプリケーション開発の生産性向上、アジリティ向上
 - アプリケーション運用の効率化、コスト削減
 - アプリケーションリリースサイクルのスピード向上
 - アプリケーションのポータビリティ(可搬性)
 - インフラリソースの集約率向上、コスト削減
 - インフラリソース管理の運用自動化、プロセス改善
 - SoE(IoTやAI、機械学習など)の促進
 - SoRのアプリケーションモダナイゼーション
 - SoRのデータ利活用/マイグレーション
 - まだよくわからない
 
コンテナはアプリケーションの開発・運用を改善する
コンテナを使うことのメリットは、インフラよりもアプリケーションへのメリットが大きいと言えます。
アプリケーションのメリット
- 開発の生産性向上
	
- 自動的なテスト実施〜成果物納品
 - 単一基盤での複数環境の準備
 
 - 運用の効率化
	
- トラブル時の自動対応
 - 属人的作業の削減
 
 - リリースサイクルの短縮
	
- 修正・アップデートを頻繁にリリース
 
 - ポータビリティ
	
- 実行基盤を問わないアプリケーション
 
 
インフラのメリット
- 集約率の向上
	
- インフラリソース使用率の改善、コスト削減
 
 - 運用の効率化
	
- インフラリソース提供の自動化
 - 属人的作業の排除
 
 
コンテナはアプリケーションの新しい姿である
コンテナはアプリケーションの視点でとらえるのがよいでしょう。
- コンテナを仮想マシンの延長と考えると、インフラ面でのメリットに注目してしまい、アプリケーション面でのメリットを置き去りにしがちです。
 - コンテナをアプリケーションの新しい姿ととらえて、より大きなメリットを感じましょう。
 
- アプリケーションの新しい姿
 - 仮想マシンの延長上の姿
 
コンテナとは一言で言えば何か?
アプリケーション本体と、アプリケーションの実行に必要なライブラリ・依存関係など、必要最小限の要素をひとつにパッケージした姿
コンテナと仮想マシンの違い
コンテナはOSを持ちません。
仮想マシン
コンテナ
仮想マシン
コンテナ
コンテナの特徴
コンテナにはいくつもの特徴があります。
Linuxで稼働
- Linuxカーネルが持つ機能を利用する。
 - 1つのLinuxホストの上で複数のコンテナを同時に稼働できる。
 
隔離性
- Linuxホストのカーネルを共有するが、コンテナ同士は隔離され互いに競合しない。
	
- コンテナ同士で通信可能にはできる。
 
 
可搬性 (Portable)
- どの環境でも同じように稼働する。
	
- 環境に依存する構成情報はコンテナとは別で持つ。
 
 
軽量
- OSが無く、必要最小限の要素のみ持つ。
 
起動が高速
- OS起動時間を省略できる。
 
| 仮想マシン | コンテナ | |
| 容量 | 1桁~2桁GB | 2桁MB~1桁GB | 
| 起動時間 | 数分 | 数秒 | 
イメージから生成
- コンテナイメージから複製して作られる。
 
不変性 (Immutable)
- 同じコンテナイメージから起動したコンテナは、毎回必ず同じものとなる。
 
揮発性 (Ephemeral)
- コンテナに加えた変更は、コンテナが停止すると失われる。
	
- コンテナ自身に永続性は無い。
 
 - コンテナに変更を加えたい場合は、コンテナイメージを変更して新しくコンテナを起動する。
	
- 古いコンテナは破棄する。