MesosCon 2015 現地レポート(その1) #Mesos
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
2015年8月20日ー21日にシアトルにて実施されたMesosCon 2015の現地レポートです。
http://events.linuxfoundation.org/events/mesoscon
8/21/15 - Keynote: Cloud Trends, DevOps and Microservices - Adrian Cockcroft - Technology Fellow, Battery Ventures
クラウドが市場に登場して世の中に広がって行くまでにはそれなりの年数がかかっている(少なくとも5年)。特に、クラウドはかなり成熟された、インフラの領域の事象なので初期的に導入したイノベーティブな企業(ここではNetflix)と、一般的なエンタプライズが導入するタイミングの差がかなり大きい。
一方、Dockerの広がり方はたったの1年で急激な広がりを見せている。それには幾つかの要因が考えられる:
Dockerはクラウドと違って、アプリに近い領域でのイノベーション故、直接的な効果が大きい
オープンソース、モバイル、クラウド、SNS、ビッグデータ、等、Dockerの導入効果大きい技術が折しも広がっている市場
現在のエンタープライズの抱えるITに関する悩みは次の3つの分野にまとめることができる。
エンタプライズ企業のIaaS:パブリッククラウドに対する要件
永続性のあるビジネスを行っていること
技術サポート
スケーラビリティ
データセンタのロケーション
現時点でこういったエンタプライズの要件に応えられているのはAWSとマイクロソフトがトップ
マイクロソフトが若干遅れをとっているのは、マイクロソフト自体がLinuxに向けて大きく変革を遂げているのに、企業のイメージは未だにクライアントサーバ時代のWindows企業、という所から離れていないから、と察する。
クラウド導入のコンセプト:もはや企業内に大きな、カスタマイズされたデータセンタを構築/運用するのはトレンドではなくなった
GCEのデータセンタロケーションは、運用コストの安い所(Iowa州、等)が中心:ネットワークレイテンシーがエンタプライズにとっては問題になる。(データセンタはいっぱいあるが、実際にGoogle Cloud Platformを動かしているところは少ない)
次の拠点として注目されているのはインド:今後パブリッククラウドのデータセンタはインドにかなり作られる、と想定されている。
AWS, GCP, Azureが台頭する中、これからIaaS事業に参入するためのコストは膨大になるはず、とみられているが、Digital Oceanのような会社が意外と伸びを見せている、という現実もある。
今や、Digital Ocean社はAWSについで、2つ目の大きなホスティングサービス事業者に成長している。
その要因はいろいろと議論されているが、開発者主体のサービスで、アジリティに最大のキーファクターを置いている戦略が成功している、とみられている。
これは、エンタプライズ志向の高まっているAWSにも対抗する魅力として評価されている。
最近のエンタプライズでの新しいStealth IT(日本ではシャドーITと呼ばれる)は、公式なクラウドプラットホームはAWSで、部門ごとの開発者はクレジットカードでこっそりDigital Oceanのアカウント作る、というモデル。
クラウド技術自体は、次の3つの要件にまとめられる。
アジリティ:如何に早くアプリケーションを開発できるか
如何に高度な機能を実装するか
合わせて、如何にコストを安く抑えるか
その一つの鍵になるのは、クラウド上のPaaSの選択である。
その動きで顕著なのは、以前から実績を伸ばしているCloud Foundryと、急激にその市場を奪い始めている、Dockerの登場である。
Dockerは開発者に広がっているが、Cloud Foundryは経営者/CIOに展開されている。その差はまだあるが、段々となくなりつつあるのが今後の動き。
Dockerの非常に興味深いのは、生成されるコンテナのほとんどは作られれてから1分以内に消される、という事実。
これは、現時点ではコンテナのほとんどがテスト/QA等の工程で使用されている、とうことを意味しているのか?
これは、VMの運用方法と全く違うものである。
クラウド運用での自動化の市場を抑えているVMWareに対抗しうる技術は登場していないのか。
VMWareがほぼ独占していたプライベートクラウド市場であるが、最近のオープンソースによるITコストの変化に伴い、VMWareの高額なライセンスコストを問題視するエンタープライズが増えてきている。
VMWareの市場を侵食しはじめているのは、Docker, OpenStack, Mesosphere等
OpenStack陣営は非常に広がっている。
大手がOpenStackの採用を進める中、その手段として、小さなOpenStackベンダーが買収される、という動きがここ数年の間で起きている。
ここまで成長すると、多くの大手企業の意見がOpenStackの仕様、戦略、方針でぶつかり合い、統一しにくくなる、という弊害が生まれてきている。VMWareに対抗する、という意思は共通しているが、その方法については各社異なる方針を持っている。
SaaSの市場は広く普及している。
Quid.com社の調査によると、SaaSに対する投資の状況を見ると、次のような傾向が表れている。
アプリケーションの性能測定、ライフサイクル管理のSaaSがトップで最も投資を受けている。
会計処理、BPM、ERPのSaaSがそれに次いで多い
3つ目は営業/マーケティングツールのSaaS
全体的には広い分野への投資が多く、分散されている
2015年は、クラウドとDevOpsが広くエンタプライズに導入された年として見ることができる。
クラウドとDevOpsの普及により、CIOが直面する課題は:
IT部門をビジネスとより密接にする
アプリケーションをより早く開発する
セキュリティを強化する(ハッカーからの侵入を防ぐ)
セキュリティを強化するためには、ファイアウォールを強化するのではなく、アプリケーション自体のセキュリティを強化すべきである。
アプリ内/間のデータ暗号化
プロセス/ポリシーの徹底
アプリに対する脆弱性テスト評価
開発者の責任は早く、安くアプリを開発するだけではなく、そのせいキュリティの保全性も設計段階で組み込むことが重要になってくる
システム運用者はこれからは、人間の力による運用作業ではなく、プログラム化された、自動化ツールの運用を行うチームに変遷する必要が有る。
マイクロサービスの環境でのソフトウェア開発
Continuous Deliveryのプロセスは4つのステップ:観察(Observe)、分析(Orient)、決断(Decide)、行動(Act)の組み合わせと循環
強豪より早く、確実にこれを実践することがビジネスにとっての重要な戦略になってくる
観察を通してビジネスのイノベーションを見出す
分析はビッグデータ技術を駆使してより深く、広く行う
企業文化を改善することにより、より早い決断を行う
クラウドのプラットホームの導入により、より早く、安く、そして自動化された業務実行ができる
DevOpsは単に開発/テスト/QAの方法を変えるだけではなく、企業内の組織を大きく改善することにもつながる。
組織が小さいうちは、分散ではなく、Monolithicなアプリケーション開発モデルの方が有利になる。
組織が大きいときは、マイクロサービスの導入の方が有利になる。
コンポーネント毎に、異なる言語、開発ツールを採用することができる。
Dockerがこの違いを統一し、ソースコード管理、テスト手法、デプロイ手法等を統合できる。
従って、マイクロサービスは、ソフトウェアのアーキテクチャではなく、開発/運用手法のことを指しており、DevOpsとの深い関係もそういう理由で説明される。
AWSの開発方針:エンジニアは、開発責任ももちろん、運用責任、保守責任も持つ、と言う考え方
マイクロサービスが保守のプロセスをも変えていく:
障害が起きたときでもMonolithicアプリと異なり、障害が起きているコンポーネントを開発している部門だけが対策をすれば対応が可能になり、全体組織への影響度は殆どなくなる。
近年のITの大きな特徴はスピードだけではなく、変化に対するコストが下がる一方、その変化に伴うイノベーションの規模が大きくなってきている。
イノベーションがインフラからアプリへの移行:ユーザにとってビジネス依存度の大きいところで起きている
オープンソースの登場:デファクトスタンダードを持つ大手ベンダのコントロールから離れ、安く、手軽に新しい技術を導入できるようになった
マイクロサービス:
個々に運用できるサービスの集合体(一つのサービスの変更が他のサービスに影響を及ぼしてはいけない)
サービス間の境界線が単純明快(周辺のサービスについてよく仕様や状況を把握しないと行けない状況はNG)
マイクロサービスに関する書籍はいっぱい発行されている
時代とともにアプリの運用プラットホームが進化している
カスタマイズされたデータセンタ:実装に数ヶ月, 何年も同じアプリを運用
仮想化/クラウド:数分で実装 - 同じアプリを数週間運用
Docker Container:数秒で実装 - 数分、数時間運用
AWS Lambda:数ミリ秒で実装 - 数秒の運用時間
このスピード感、一回味わってしまうと、二度と元には戻れなくなってしまう。
==>まだ未来にはイノベーションが待っている
マイクロサービスを実運用で導入している企業のリスト
マイクロサービスを構成するコンポーネント例
Netflix社では具体的になにを導入しているのか
企業の事業の中核である、グローバル展開、高度なスケーラビリティ要件と可用性を重視して選定
Twitter社では何を導入しているのか。
大規模なデータセンタ運用の効率向上が狙い
GILTでのマイクロサービスの導入
ScalaとDockerの組合せで開発スピードを大幅に向上
Hailoのマイクロサービス
Go言語ベースのアプリ開発のスピード/効率アップが狙い
アプリケーションのオーケストレーション ==> 次が必要
マイクロサービスベースのアプリのポータビリティを保証するメカニズム
新しいバージョンは自動的に、さらに頻繁にデプロイできる仕組み
オーケストレーションのプロセス自体もほぼ自動化
アーキテクチャ自体もマイクロサービスの組合せで構成
==> Dockerが狙う市場はここ
次世代のアプリケーションもこのアーキテクチャにうまくはまるものがどんどん登場してくる模様
Best Practiceを実現するコンポーネントを見出すのがオープンソース事業の要
開発者のテーマ:
アジャイルであること(スピード感のある開発)
安く開発できること(無駄な工程/コストの排除)
安定稼働を保証する開発
これらを実現するためにDevOpsのソリューションベンダーが日々開発を行っている。