【IIJ GIOの裏側を語る#3】 自社開発に拘るクラウドオーケストレータ

カテゴリー: 裏側を語る   パーマリンク
このエントリーをはてなブックマークに追加

『IIJ GIOの裏側を語る』連載企画の第3回です。

前回に続き、IIJクラウド本部の田口が「自社開発に拘るクラウドオーケストレータ」をテーマに解説します。

keisuk-t_01_150

執筆者の紹介

株式会社インターネットイニシアティブ
クラウド本部 クラウドサービス1部 部長
田口 景介

「第3回:自社開発に拘るクラウドオーケストレータ」

サービスを構成するソフトウェアにオープンソースのプロダクトは欠かせません。OS、Webサーバ、アプリケーションサーバ、データベース、etc…。ご多分に漏れず、P2のシステムでもCentOS、MySQL、Railsなどが随所に利用されています。

一方で、サービスのコアとなるシステムは、当然ながらサービス固有のソフトウェアで構成されます。P2を構成する多数のマイクロサービス群は、ほとんどが自社開発のIIJ独自技術が満載されたものになっているのです。

今回はその辺りの自社開発に込められたこだわりの部分に触れたいと思います。

OpenStackと自社基盤

実は、3年前にIIJ GIOのIaaSを抜本的にリニューアルすることが決まった際、OpenStackの採用も検討しました。

OpenStackの品質にいささか不安はありましたが、プロビジョニングシステムとしては完成度を高めつつありました。さらに、オンプレでOpenStackの導入を検討されているお客様から、ハイブリッドクラウドを構成するにはパブリッククラウド側もOpenStackで構成されていると都合が良いとの声もいただいていました。
それに、サードパーティから提供されるさまざまなドライバ等、今後OpenStackをとりまく環境が充実していくであろうことに魅力を感じていたことも事実です。

ですが、やはり最終的には既存の自社基盤を大幅にアップデートすることで、サービス全体のエンハンスを進めていく方針に決定しました。その過程には紆余曲折がありました。

しかし今振り返ってみると、システムの可用性や運用の効率化を高いレベルで実現するには、やはり自社基盤に一日の長ありと判断したことは間違いではなかったと思います。

small_key

運用プロセスがサービスデザインに反映されたP2

サービスを成長させていくためには、魅力的な機能を提供していくことはもちろんのことですが、長期的に安定してサービス提供されることが同等以上に大事なことだと考えています。なんらかのメンテナンスの度に停止を伴うようでは、お客様に安心してシステムをお預けいただくことは難しいでしょう。

P2はこの点を重視して、サービスデザインの段階から運用プロセスを合わせて設計しています。障害にしろメンテナンスにしろ、極力止まらないクラウドを目指して開発が進められました。

これはIIJ GIOだけでなく、長年のあいだ自社サービス基盤を運用してきた実績から得られた知見に基づくものです。これだけの大規模なシステムで起こりうる課題を把握し、その対応策をシステム設計に反映するのは、そう簡単に真似できるものではありません。

実際にP2をサービスインしてから1年がたちましたが、機能停止をともなうメンテナンスは一度しか行っていません。その裏では数々のハードウェア障害や数百回に及ぶ大小さまざまなメンテナンスが実施されているのですが、それをお客様が意識することはほとんど無かったはずです。

お客様の仮想マシンが稼働するハイパーバイザに脆弱性が発覚したこともありましたが、それすらも大半のお客様には影響を及ぼすことなく対応を終えています。

運用に高度なノウハウが求められるOpenStack

一方、OpenStackを取り巻く環境は日々変わっているものの、少なくとも検討段階では可用性を考えるといくつか不安がありました。

まず、OpenStackは半年ごとのリリースサイクルが取られていますが、古いパッケージはセキュリティアップデートも比較的早い段階で終わり、EOL(End Of Life)を迎えます。つまり、セキュアな基盤を維持するためには毎年アップデートを続けなければならないということです。しかも、無停止でアップデートを成功させるには、かなりのノウハウが必要とされることは明白でした。

このことはOpenStackに独自の改修を行うのであれば、アップデートのたびに新パッケージへ改修箇所を追随させていかなければならないことも意味します。さらには、OpenStackのいくつかのコンポーネントは冗長構成を独自に検討しなければならず、これもまた大きな負担となることが想像できました。

OpenStackベースのクラウドサービスを提供されている事業者、独自拡張を加えたディストリビュータ、オンプレをOpenStackで管理されている方々、それぞれかなりのノウハウを蓄積しながら運用を行っているはずです。素のOpenStackで不足なく利用されているケースはおそらく少数派でしょう。

かつて開発と運用はそれぞれ役割分担してサービス開発、提供を行っていたものですが、いまや運用を知らずしてサービスを開発できる時代ではなくなりました。

可用性、スケーラビリティ、将来を見越したアップデート計画などを開発者自身が精通していないと、サービスリリースにこぎつけたとしても、その後の苦労は並々ならぬものが待っているはずです。

P2でとられている具体的な運用プロセスなど、その辺りのお話は次回のポストで触れたいと思います。

今後の連載予定

コメントは受け付けていません。