Open Cloud – オープンクラウド基盤とは

今クラウド関連で話題になっているのが「オープンクラウド」です。こういった言い方は10年前からありますが、なぜ今ふたたび取り上げられるようになったのでしょうか?

以前はクラウドそのものが何なのか確立されておらず、各社が都合が良いように解釈し発信してきましたが、その後大手のクラウド・ベンダーがいくつか誕生し広まったためそのような言われ方はされなくなりました。しかしここにきて、複数のクラウドを活用するマルチクラウドなどの広がりにより、多くの人がオープンにクラウドを活用する事に注目するようになりました。そのオープンとは、主に以下の4つの要素になります。

逆に言いますと、これらの要素を意識せずクラウド上のアプリを構築した場合、後から自分が開発したものがそのクラウド上でしか動かず、他のクラウドや別の環境に移行するのが難しいことに気が付くことになります。現在、以前構築した企業内のオンプレミスのシステムがクラウドになかなか移行できない 2025年の壁が問題になっていますが、クラウドに移行してもオープンに作らなければさらに次のクラウドに移行したくてもできない、2030年の壁にあたってしまいます。

これらの4つのオープンの要素を満たすことができる、オープンなクラウドを実現するための基盤が、オープンクラウド基盤です。コンテナやKubernetes、APIやDevOpsといったポイントにおいて、オープンなテクノロジーを活用することでオープンクラウド基盤を構築する事が可能になります。

例えば、オープン基盤の中でコンテナのオープンなテクノロジーを活用することで、その上で構築したコンテナのイメージを他のクラウドに容易に移行する事ができます。これは現在ではコンテナが広く活用されるようになり、AWSやAzure、Google Cloud、IBM Cloudなどどのクラウドでも活用にできるようになり、かつ Red Hat OpenShift Container Platform などにより企業内のオンプレミス環境であっても稼働できるようになったためです。現在ではUNIXマシンやメインフレームでもコンテナが稼働できるようになっているため、ハードウェアやプラットフォームを選ばないオープンなシステム構築が可能になりました。

これは逆に言うと、コンテナなどのオープンなテクノロジーを活用しないとクラウド間でのアプリの移行などが難しくなる場合があることを意味しています。クラウドではオープンソースなどのオープンなテクノロジーが活用されていますが、オープンソースをクラウドベンダーが独自拡張し、他のプラットフォームでは動かないようにしている場合が多いためです。そのため、あるクラウドで構築したアプリが、ソースコードはある程度移行できたとしても実際の稼働や運用をしようとしても思うように動かないといった事態が起きています。

以下はその4つのオープンを実現する、オープンクラウド基盤で実現するシステムのイメージです。先述のオープンな可搬性 1) が実現できれば、例えばある自治体で動いている防災システムをコンテナで構築しておけば、他の自治体などで稼働させやすいという事があげられます。個別クラウドの独自ソフトウェアの上で構築してしまうと、自治体ごとに防災システムを構築しなおさなくてはいけない可能性があります。それでは市民の税金を無駄にする可能性があると問題視されています。

また、コンテナの実行・運用環境として多く使われているオープンソース Kubernetesを活用することで、2) オープンな運用性も実現できます。クラウドや企業内のオンプレミスでKubernetesでコンテナを管理することで、さらにその複数のKubernetesを管理するマルチクラウド管理が容易になります。例えば県や市のコンテナの利用状況を一元的に管理し、災害などで何かが起こった場合に他でカバーするようなことが可能になります。

また、様々な企業や自治体などをつないで何かを実行したい場合には、3) オープンな接続性が必要になります。例えば自治体同士をつないで災害の際に連携をとったり、企業と自治体のシステムをつなぎ社会保障のための情報をリアルタイムで連携したりすることが可能になります。オープンな接続性には、既にオープンなAPIと呼ばれる方式が多くの企業間で採用されています。オープンなテクノロジーとしては、RESTやJSONという技術が内部的に使われます。有名なところでは、既に様々な銀行や金融業と、ベンチャーも多いFinTech企業をオープンに接続する際にAPIの技術が使われています。

4つ目の要素は、4) オープンな開発の環境です。以下がそのイメージです。

最近では、オープンなオープンソースの開発ツールを活用してDevOpsによる開発を実施する事が増えています。GITやJenkins、JIRAなどオープンソースでも優れた開発ツールが登場し、多くの開発者が使うようになったためです。既に多くの開発者が使っているため、こういった主要なオープンソースを使って開発環境を実現していく事で、新しく参加した開発者もすぐに開発環境に馴染めるという利点があります。また、これらオープンソースの開発環境は、コンテナやKubernetes、APIといった実行環境と相性が良く、既に連携がサポートされている場合が多いため、一緒に活用することでいわゆる開発(Dev)と運用(Ops)をスムーズに連携されるDevOpsが実現しやすくなります。またこれらのツールは自動化の要素も取り込んであるものが多いため、CI/CD (Continuous Integration/Continuous Delivery)でコードの変更を自動テストして迅速にリリースするような対応も可能になります。デジタル・トランスフォーメーション (DX)によりデジタル系のアプリが増えていますが、そのようなアプリは開発・リリースを迅速に実施したかったり、より頻繁にアプリを追加・変更してリリースしたい場合が多いので、このような環境は必須になりますね。

これらの4つのオープンを兼ね備えたオープンクラウドを、オープン・クラウド基盤で実現することで、複数のクラウドを活用するマルチクラウドと、それを包含し企業内オンプレミスのシステムも活用するハイブリッド・クラウドにおいて、コンテナ・API・開発環境等により、特定のベンダーに依存しないオープンなクラウド環境が実現できます。

これからよりオープンなクラウドを目指す企業や団体にとっては、このオープンクラウドが一つの基準になるでしょう。