日々常々

ふつうのプログラマがあたりまえにしたいこと。

クラウド

最近流行っているクラウド、クラウドコンピューティングについて。
単純に言うと、資源が雲の向こう側にある状態を指します。利用者側からは資源は見えません。資源は利用者側からは見える必要が無く、見せる必要も無く、見せるべきでは有りません。サービス提供者は利用者に、資源が見えない状態でも不都合が無いインタフェースを提示します。提示されたインタフェースを介して、ユーザは雲の向こうの資源を利用し、望む結果を得ます。これがクラウドって言うサービスの概要にして、全てになります。

雲はインターネットを指します。ネットを介して、資源となるサーバの処理能力や格納しているデータを使用し、必要な情報を引き出します。乱暴な事を言うと、ネット上の掲示板もクラウドです。ネットを介してサーバ上の掲示板プログラムを動かし、サーバに格納されている掲示板のデータを引き出して画面に表示しています。サーバの機種だとか、プログラムの言語だとか、データベースの種類だとかは一切ユーザは気にしていませんし、通常は知りえない情報です。ほらクラウドっぽい。

結局のところ、クラウドなんてものは昔からありました。近年のインターネットの発達に伴い、利用が容易くなったというだけです。わざわざ新しい言葉を作らなくてもいいとは思いますが、聞き慣れなくて、覚えやすくて、イマイチ何かわからない言葉が出てきては流行し、あっという間に消え去ったと思ったら、一部で使われ続けるのが、この高度情報化社会とか言うものです。


なんとなく、クラウドサービスの提供側にとって意識すべき点は何があるかを書いてみます。
まず、開始時を考えます。資源を持つ必要があります。とりあえずサーバとサーバをネットに使う回線が必要です。次にサービスが必要ですので、色々考えてプログラムを作るなどします。そしてデータが必要です。しかし情報サービス(地図だとか時刻表だとか辞典だとか)でもなければ、データは無い状態でスタートします。データはユーザから頂く必要があります。となるとデータを預かる訳ですから、プライバシーの問題をクリアする必要があります。ユーザからデータを預かる為に、ユーザを安心させる必要があり、万一の場合に備えた諸々を用意しなければなりません。とりあえずこのくらいでしょうか。
次に、運用時を考えます。サーバや回線の快適な運用は勿論必要です。ユーザの要望をサービスに反映させる必要があるでしょう。幸いにして多くのユーザに恵まれた場合、それだけ多くの要望があり、それぞれ相反するかもしれません。それらを上手い事処理しないとユーザは離れていく事になります。万一のフォローも必要です。バグの無いシステムは存在しません。何かしら悪意を持った攻撃に遭うかも知れません。これらにしっかり対処しないと、情報漏洩などの問題でえらい事になってしまう可能性があります。運営上の問題はそのくらいかもしれませんが、大変な時はとても大変ですし、簡単に致命傷になります。
最後に、片付けを考えます。開始する前に終了する時の事を考えておかないといけません。いつまでも続けられ、いつまでも利益を生み続けるならば困りません。また、全く利用されなければ、それはそれで問題ですが、終了にあたって困る事は有りません。有る程度利用されたならば、問題なく終了させるのは非常に難しくなります。サービスの質によって、難易度から方法から色々変わります。でもやるからにはきちんと後片付けをしなければなりません。なまじユーザの資源を預かる上に、ネットを介してやり取りされるものなので、当然デジタルです。余裕で複製できますし、あっさりと流出します。しっかり気をつけてきっちり片付ける方法を最初から準備しておかないと無理だと思います。