Japan 公式ブログ
Google の企業向けソリューションに関する公式な情報やユーザーの事例などを、いち早く皆さんにお届けします。
[GCP] コンテナ、Kubernetes、最新のクラウド コンピューティングの動向
2015年1月29日木曜日
* この投稿は、米国時間 1月 9 日、Google Cloud Platform’s Global Head of Solutions,
Miles Ward によって投稿さ
れたものの抄訳です。
これからの数週間はコンテナ技術に関する私たちの見解についてお伝えし、 10 年以上にわたって Google のサービスをコンテナで運用していく中で得た経験を共有する記事をお届けしていく予定です。 Google のプロダクト マネージャー、エンジニア、オペレーター、アーキテクトからなるチームとしての私たちのゴールは「コンテナ レボリューション」が、効率的に目的を達成するアプリケーションを構築し、それを実行する上でどう役立つのかを皆さんに理解していただくことです。そこで、まずは Google Cloud Platform の Global Head of Solutions を務める Miles Ward を招きました。それでは始めましょう!
- 編集部
皆さん、こんにちは。そして、新しい連載へようこそ。この連載では、現代コンピューティングの最も重要なイノベーションの 1 つであるコンテナリゼーション(Containerization)についてお伝えしていきます。
ところで、コンテナについてこんな疑問を持ってませんか?
コンテナとは何で、どう機能するの?
Docker、Kubernetes、Google Container Engine、Managed VM’s とはそれぞれ何なの?
これらはどう関連しているの?
コンテナを使って強力なアプリケーションを構築して、プラダクションスケールで展開するにはどうしたらいいの?。
この変化から、どうやってビジネス価値を見いだせるの?
と、質問はもういいですね。このポストは、コンテナ テクノロジーを使うことにどんな意味があるのか、ということの入門編と考えてください。
コンピューティング モデルが進化する中で、あきらかにアプローチが変わる瞬間、その後の軸が変わるような瞬間を、これまで何度か目にしてきました。この 10 年は、まるで過去を無視するかのように、仮想化という変化が起こりました。仮想化のムーブメントによって、広範囲でリソース利用が爆発的に拡大し、価値を生むまでの時間、そしてサービスを提供するまで続けられる繰り返し作業の削減にもなったのです。そして、マルチテナンシー、API を使ったシステム管理、パブリック クラウドの到来により、その利点はさらに拡大していきます。そして最も大きなブレイクスルーは、コンピューターの CPU の 1 つのコアほどのリソースが、オンデマンドで数分のうちに利用可能になったということです。しかし、考えてもみてください、マシン全体のごく一部しか必要としないときに、マシン全体を仮想化する必要があるでしょうか?
Google は早い段階で、この問題に直面することになります。ソフトウェアを短い時間で、安価に開発し、これまでにない規模でオペレーションする必要に迫られ、もっと細かいレベルでの制御を可能にする、より高い次元で抽象化できる仕組みにが必要になったのです。そこで Linux カーネルの追加機能として作成されたのが、
cgroups
です。cgroups は、隔離した実行コンテキストを作ることができるもので、その実行コンテキストがコンテナです。コンテナは、一種の仮想化であり、全ての Google のアプリケーションを動かすために使われる単純化された OS でもあるのです。それから数年が経った今、Docker の優れたスタッフが、このテクノロジーを活用し、コンテナ化されたアプリケーションの相互運用可能なフォーマットの開発を続けています。
なぜコンテナなのか?
VM にはない、コンテナの特徴とは何でしょう?
デプロイが簡単:独立して識別可能な値を使いレジストリに保存し、コマンド 1 行でデプロイ可能なコンポーネントとしてパッケージ化することで、アプリケーションのデプロイ先を考慮することもなくなり、デプロイは劇的に簡単になります。
すぐに使える:ハードの仮想化ではなく OS だけ仮想化することで、最新の VM ではブートに 1 分程かかるのに対し、上記のパッケージのブートは 20 分の 1 秒以下です。
マイクロサービスの活用:コンテナを使うことで、開発やオペレーションを行うにあたり、コンピューティング リソースをさらに細分化できます。マイクロ VM のインスタンスでもリソースが余るようなアプリケーション、あるいは、VM 全体を一気に大きくスケーリングするようなときは、コンテナはシステムにとって大きなプラス要因となります。
では、こういった特徴によって、何がもたらされるのでしょう?
明らかなことは、ラップトップの処理能力であっても、開発者が複数のコンテナを動かすには十分で、簡単迅速に開発を進められます。もちろんラップトップで複数の仮想マシンを実行することはできますよ。でも、速くもなければ、簡単でも、軽量でもないですよね。
同じように、リリース管理も簡単。新しいバージョンのコンテナをパブリッシュするには、1 回コマンドを叩く、それだけです。低料金でテストもできます。パブリック クラウドでは、VM が最低 10 分単位の処理時間(はっ!まさか 1 時間?!)で課金されるので、1 度テストするだけなら、たいしたコストはかかりません。でも、日毎に数千回のテストを自動化しているとしたら、当然コストは増えていきます。コンテナなら、コストはそのままで何千回ものテストを実施できるわけです。アプリケーションがプロダクションになるころには、かなりのコストが削減できるでしょう。
もうひとつ影響があるのは、このモデルを使ったアプリケーション システムの構成力です。オープンソース ソフトウェアを利用しているアプリケーションであるなら特にそうです。例えば、環境構築のために MySQL、memcached、MongoDB、Hadoop、GlusterFS、RabbitMQ、node.js、nginx… これらをインストールして設定するという、面倒なシステム構築作業を考えてみてください。それが、小さなスクリプトを使って、こういったアプリケーションをコンテナに格納しておけば、はるかに簡単で、リスクも大きく軽減されるわけです。ミスしやすい特殊な作業を、このモデルによってどれほど避けられるか想像できるでしょう。こうした基盤となるビルディング ブロックの標準構成をパブリックに登録していくと、質の高いコンポーネントによるリアルなエコシステムが始まるのです。
長期的な視点で、この技術の最も重要な価値は、多くのホスト環境でアプリケーションを実行できる、ポータブルで統一したフォーマットだということです。今アプリケーションを作るとしたら、ベア メタルから、オンプレミスの仮想化インフラ、パブリックやプライベートのクラウド、種々の PaaS も選択肢です。つまりソフトウェアをパッケージしデプロイするには、6 つの異なるやり方があるということです!コンテナのフォーマットが標準化されれば、プロバイダーの差がなくなり、1 つのプラットフォームにロックインすることを避けて、ワークロードをもっとも安価で、もっとも速い環境へと簡単に移していけるようになります。
Docker
コンテナや
Docker
コンテナの実装についての詳しい紹介、特に
ここ
とか
ここ
や、
ここ
だとかあるので、ここではこのアプローチが「Good アイデア」である、と言っておけば十分でしょう。と言いつつも、課題がないわけではありません。コンテナによって細分化が進んできたことで、驚くほどのメリットがもたらされたものの、実行するワークロードの効率が大幅に向上するわけではなく、アプリケーションの実行に数千台のコンピューターが必要なワークロードもあるわけです。今のところ Docker は 1 つのコンピューターで動かせるように設計されています。では、どうすればコンテナとそこで動くワークロードを、インフラのリソース消費にあわせて連動させ、分散させ、それを管理していけるのでしょうか?どうしたらマルチテナントのネットワーク環境で運用できるのでしょうか?安全性は確保されるのでしょうか?
この論点で話をしてもいいのか?と、システム デザインの観点からの問いとしては、あまりに基本的なところなのですが、私が話をする大半の開発者やそのスポンサーは、ここにあるコンピューター上のこのコンテナということには関心がないのです。求めてるのは彼らのサービス、つまり、アプリケーションが起動して、動いて、価値を生み出し、それを監視して運用していくことだけなのです。どのコンピューターでどのコンテナが何をしているかといった取るに足らない(希望的観測、というやつです)細かいことは気にしません。
Kubernetes
Google はこの問題に対しイテレーティブに取り組み続け、Google 規模でコンテナ技術の運用を可能にするためのクラスタ管理、ネットワーキング、命名システムを構築してきました。その最初のバージョンを Borg、そしてその後継が Omega と呼ばれています。今現在 1 秒あたりおよそ 7,000、週間では 20 億個以上の新しいコンテナが起動しています。そして、これまでの Google のコンテナに関する運用経験と技術的な知見から、
Kubernetes
(パブリック フォーラムでは「K8s」と短縮されることもあります)を構築し、世界に向けて公開しました。
Kubernetes は、個々のコンポーネントやコンテナ、あるいはインフラのリソースといったことよりも、開発者と管理者とが、サービスの挙動の改善やパフォーマンスの改善に向けて連携して取り組める、抽象的なレイヤーを作り出します。
Kubernetes のクラスターは、1 つのコンテナでは実現できない何を提供してくれるのか? Kubernetes は、コンテナというレベルではなく、サービスというレベルでコントロールする、そこににもう一度着目することで、サービス全体に対して知能的、自発的マネージメントを可能にします。サービスがスケールし、自己回復し、さらに更新も容易になるとしたら、それは「Good アイデア」の 1 つです。たとえば Google では、機械学習のテクノロジーを応用し、所定のサービスが最大効率で運用されるようにしています。
コンテナを使うことが、デプロイの面倒な作業を減らし、開発者の能力をもっと有益なことに使えるのだとすれば、Kubernetes はコーディネーションの混沌を最小化し、チームの能力を高めるものだと言えるでしょう。 Kubernetes を使うことで、多数のコンテナからなるサービスを構成し、そのコンテナが適切にオペレーションされるようにデプロイのルールに従わせられます。サービスの一部が、他の部分を台無しにしてしまうことなんて、ザラですからね! Kubernetes なら、こういったコンフリクトが系統的に回避されます。Google では、コーディネーションの改善によって、開発者の生産性とサービスのアベイラビリティが向上し、大規模環境でのアジリティを実現しています。
まだ初期段階ですが、 Kubernetes はすでに多くのお客様や多様な企業のチームに採用されています。企業には、Red Hat、VMware、CoreOS、Mesosphere も含まれ、お客様が、Kubernetes で大規模に利用されるコンテナ テクノロジーからビジネス的にも利益を生み出せるように積極的に支援しています。
Container Engine
Google Container Engine
は、 Google Cloud Platform 上の Containers as a service です。 Kubernetes を利用している GKE では 、開発者がコンテナを使って、アプリケーションをすばやく起動させて実行できる手段、そして、デプロイして管理し、必要なときは指定された範囲までスケールできる手段を提供しています。GKE については、今後の連載でさらに詳しい情報をお届けします。
デプロイのオプション
私たちは、コンテナリゼーションをコンピューティング モデルの次の大きなシフトの始まりであると捉え、この革命の中で中心的な役割を担っていきます。コンテナについてわかったら、以下にリストしたデプロイの選択肢から、皆さんの要件に最も適合するものを探してください。
大量のコンテナを動作させるために、マネージドのクラスターを使いたいですか?それなら
Google Container Engine
でとりあえず動かしてみましょう。
パブリックなインフラ、または自社システムで、独自のクラスタを構築したいですか?
Kubernetes
を試してみましょう。
完全にマネージドである パブリック インフラでコンテナを動かしたいですか?
Google App Engine
と
Managed VM’s
を使いましょう。
何にもまして、このイノベーションの中で、皆さんが何をしたか、どんなニーズがあるのか、そしてアイデア(
プル リクエスト
も待ってます!)にとても関心があります。気軽に私まで連絡ください。また、出来る限りたくさんのカンファレンスやミートアップにも参加する予定です。皆さんの 2015 年から先の目標や抱負に、コンテナ技術がどうしたら大きな影響を与えられるか、お話しできることを楽しみにしています!
-Posted by Miles Ward, Global Head of Solutions, Google Cloud Platform
0 件のコメント :
コメントを投稿
Labels
#GoogleCloudSummit
#GoogleNext18
#GoogleNext19
77 min Lunch
add on
admin
Advanced Solutions Lab
AI
AI Hub
AI Platform
Android
Anthos
API
App Engine
App Maker
apps
Apps script
ASL
atmosphere
Atmosphere Tokyo
AutoML
AutoML Natural Language
AutoML Translation
bigquery
Box
Calendar
Case Study
Chorme OS
Chrome
Chrome Enterprise
Chrome Enterprise 導入事例
Chrome for Work
Chrome ウェブストア
chromebook
chromebooks
Chromebooks for Education
Chromebooks for meeting
Chromebooks for Work
Chromebox
Chromebox for digital signage
Chromebox for meetings
Chronicle
Cisco
Cloud
Cloud Armor
Cloud AutoML
Cloud AutoML Natural Language
Cloud AutoML Translation
Cloud AutoML Vision
cloud connect
Cloud Dataflow
Cloud Identity
Cloud IoT Core
Cloud Load Balancing
Cloud Memorystore for Redis
Cloud monitoring
Cloud OnAir
Cloud Pub/Sub
Cloud Ranking
Cloud Services Platform
Cloud Storage
Cloud TPU
compliance
compute engine
Contact Center AI
Container Engine
Coursera
Deloitte
developers
Dialogflow Enterprise Edition
Drive for Work
Dropbox
earth api
Education
enterprise
Enterprise Japan
event
Evernote
Expo
Firebase
FISC
Forrester
G Suite
G Suite Business
G Suite for Education
G Suite 事例
G Suite 導入事例
G+
gadget
GAE
GCE
GCP
GCP 導入事例
GCP 認定資格チャレンジ
GDPR
GEO
GEP
GfWtips
GKE
gmail
Gmail、新機能
Gone Google
GoneGoogle
Google App Engine
Google Apps
Google Apps Blog
Google Apps for Education
Google Apps for Work
Google Apps Script
Google Apps ユーザー事例
Google Apps 導入事例
Google atmosphere
Google calendar
Google calender
Google classroom
Google Cloud
Google Cloud Certification
Google Cloud Next '18 in Tokyo
Google Cloud Next '19 in Tokyo
google cloud platform
Google Cloud Search
Google Cloud Summit '18
Google Cloud 認定資格チャレンジ
Google Commerce Search
Google Derive
Google Docs
Google Docs API
google drive
Google Drive for Work
Google Earth
google enterprise
Google Enterprise Day
Google for Education
Google for Work
Google form
Google hang-out
Google hung-out
google map
Google maps
google maps api
google maps api premier
Google Maps APIs
Google Maps for Work
Google Maps Platform
Google Message Continuity
google search appliance
Google Shopping
Google Sites
Google Springboard
Google Storage for Developers
Google Video
Google Wave
Google スライド
Google ドキュメント
Google ドライブ
Google フォーム
Google マップ
Google+
GoogleApps
GoogleApps、新機能、spreadsheets
groups
gsa
Hangouts Meet
healthcare
Hybrid Cloud Platform for Google Cloud
Inbox
INSIDE
iOS
iphone
ISAE 3402 Type II
ISO 27018
IT
Jamboard
japan
Kubeflow Pipelines
Looker
Lotus Notes
Machine learning
map
maps api
Maps 導入事例
Maps-sensei
Mapsコーナー
media
microsoft office
migration
mobile
new features
Next
Next Tokyo
OAuth
Office 365
Office of the CTO
Osaka
partner
Partner Interconnect
partner program
Partner Summit
postini
pricing
Qwiklabs
region
research
RSA
SAP
SAS70
search
Security
Security Key
seminar
Shizuoka
Signage
Sites
SMB
SSAE 16 Type II
startup
Status Dashboard
TensorFlow
Trial
Upload any files
vault
Veolia
Viacom
Virtual Conference
VMware
あっぷす先生
あっぷす先生 誤解をとく!
あっぷす先生会社訪問
イベント
インフラストラクチャ
おしえて!あっぷす先生
おしえて!くらうど先生
オフライン
クラウド
くらうど先生
サイネージ
サポート
セキュリティ
チームドライブ
チェンジマネジメント
デジタル トランスフォーメーション
テレワーク
パートナー
ハングアウト
プライバシー
まっぷす先生
ランキング
リージョン
ワークインサイト
円周率
海底ケーブル
企業検索
機械学習
互換性
事例
小売
新機能
働き方
認定資格
Archive
2019
8月
7月
6月
5月
4月
3月
2月
1月
2018
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2017
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2016
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2015
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2014
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2013
12月
11月
10月
9月
7月
6月
5月
4月
3月
1月
2012
12月
11月
10月
9月
8月
7月
6月
5月
4月
2月
2011
12月
10月
9月
8月
7月
5月
4月
2月
2010
12月
11月
10月
9月
7月
6月
5月
3月
2月
1月
2009
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2008
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
2007
12月
Feed
Follow @googlecloud_jp
Useful Links
G Suite
Google Cloud Platform
Google 検索アプライアンス
Google Maps
G Suite 公式アップデート情報
0 件のコメント :
コメントを投稿