みなさん、こんにちわ。帰国後バタバタとしており、うっかりと全く記事を更新できないまま時間が立ってしまいました。すいません、伏線を張りっぱなしで回収できていない状態です。
さて、伏線を張りっぱなしの記事は以下です。
今回の記事はDay 1の記事の中で残してきたCloud Native Appsについての記事です。
なぜ今Cloud Native Appsなのか?
「Ready for Any」、「One Cloud, Any Application, Any Device」が今回のVMworldのテーマですから、Any Applicationに対してReadyになるために、VMwareがこれまでに得意としてきた2nd Generationのアプリケーション(語弊を恐れずに言うとレガシーなアプリケーション)だけでなく、クラウドで動作する前提でコーディングされた3rd GenerationのアプリケーションへもReadyにならなくてはならない、ということになります。様々な記事で2ndと3rdの違いが表現されていますが、もっとも大きく異なっているのはその思想だと思います。
この思想の違いを最もよく表していると現地のセッションでもよく紹介されていたのがこちらです。
2nd Generation
- ペット(≒仮想マシン)に名前をつけてかわいがる
- 愛情を注ぐべき対象で、しっかりと面倒を見る(しっかりと運用管理する)
- 病気になったら治す(障害が起きたら復旧する)
3rd Generation
- 家畜は名前ではなく、個体識別番号をつける
- 家畜同士はほぼ同等として取り扱う(特別に特定のVMをかわいがるなどはしない、フレームワークで自動的に運用管理される)
- 病気になったら別の家畜を使う(復旧しないで捨て去る)
このように根本的な思想が異なっていますから、3rd Generationの思想には特定の家畜を長生き(データ保護)、大事(高可用性)にしようという考え方はありません。我々も複数のサーバを冗長的に構成し、サービスとしての可用性をあげようと考えるケースが有りますが、3rd Generationのアプリケーションは常にこの考え方を採用しています。
マイクロサービスアーキテクチャ
3rd Generationのアプリケーションはマイクロサービスアーキテクチャと呼ばれるアーキテクチャを採用しています。VMを守るのではなく、アプリケーションをファンクション単位でサービス(マイクロサービス)に分解し、それぞれのサービスで可用性を担保するのです。
マイクロサービス同士はAPIで連携しており、APIさえ互換性が担保されればアプリケーションが起動中にマイクロサービスを入れ替えてしまうことも可能です。つまり、クラウドネイティブなアプリケーションはマイクロサービスごとに完全に独立した開発体制を敷くことが可能なのです。日々アプリケーションのあちこちで新機能追加、修正を行うことができるため、従来のようにアプリケーションのリリースサイクルに従うことなく迅速にアプリケーション開発が行えるのです。すぐに本番環境からユーザーのフィードバックを受けることも出来るため、トライアンドエラーしながらどんどん優れたアプリケーションに昇華していくことも出来るのです。これが「家畜」をつかってアプリケーションを構成するメリットです。
なぜ仮想マシンでは不向きなのか?
逆に考えてみましょう。様々なマイクロサービスはその可用性を担保するために多くの冗長構成をとっています。単一のクラウド内でも負荷分散やデータ保全のために分散構成をとっていますが、近年はクラウドのリージョンをまたいでそれを行うことも多くなっています。非常に多くのワークロードが必要となります。仮想マシンをワークロードの受け皿に使う事もできますが、仮想マシンを利用するにあたって不便に感じるところが出てきます。
- ワークロードの起動が遅い
- ワークロードの統合率が良くない
- ワークロードの構成が不便
- 管理者が手軽にワークロードを作り出しにくい
などが挙げられます。この辺りについては昨年のVMworldの後の記事にも記載していますのでご参照ください。
昨年発表されたProject Fargo(インスタントクローン)によってワークロードの起動スピードについては十分に解消されました。また、統合率の問題についてはPhoton OSと呼ばれる軽量のLinuxを用いることで十分に解消されています。また、構成の不便さや管理者と開発者の権限の問題も新たなやり方で解消されてきています。
VMwareのCloud Native Apps 2つのプラットフォーム戦略
さて、ようやく本題にたどり着きました。VMware社はこの新たなアプリケーションに対して2つのプラットフォームで「Ready」になっていくことを発表しています。
VMとContainerを乗客と貨物に例えて、乗客も貨物も運べるプラットフォームとしてvSphere(vSphere Integrated Container)を、そして貨物専用のプラットフォームとしてPhoton Platformをリリースします。これらの詳細については次回の記事とさせてください。
記事担当者: マーケティング本部 三好哲生 (@pernixdata_netw)