∑考=人

そして今日も考える。

クラウドはエンジニアの在り方を変える

最近、少しクラウドについて勉強しています。いわゆる、Dropboxとかが流行り出した頃から「クラウド」という言葉が一般的に使われるようになった記憶がありますが、これえはただのオンラインストレージサービスに過ぎません。つまり、自分が作った資料とかを自分のハードディスクではなく、どこの誰が保有しているかわからないサーバ常に保存できる、ただそれだけの機能だったんですね。

 

近年使われるクラウドとはもっとずっと広い概念であり、正確にはクラウドコンピューティングと言ったりします。代表的な形態は大きく三つあり、守備範囲が広い方から順にSaaS、PaaS、IaaS。それぞれ、サース、パース、イアースと読む。

 

それぞれの特徴を説明する前に、そもそも一般的なITサービスを提供するために何が必要になるかを理解しておく必要があります。ただ細かく説明すると、本が一冊書けてしまうので、すごくシンプルに二つの構成要素だけ。ソフトウェアとハードウェア。以上。

 

例えば、今ではご老人でさえ使っているLINEというサービス。あれを利用するためには、まずLINEアプリをインストールする必要がありますよね。このアプリというのがLINEを動かすためのソフトウェアのことだと思って貰えればいいです。じゃあアプリをどこにインストールするのか。スマホ、あるいはPC版使ってる人ならPCでしょう。これがハードウェア。

 

ハードウェアというのはソフトウェアを動かすために必要なもの、だと考えれば良いです。なので、Wi-Fiなどの通信回線などもハードウェアの分類に入ります。あるいは少し細かくなりますが、スマホやPCの中に入っているOSもハードウェアの分類となります。ハードウェアがないと、ソフトウェアを動作させることはできません。

 

上記を踏まえて、クラウドの各形態について説明していきます。

 

まず、SaaSというのは、遠隔地のソフトウェアを使えますよ、というものです。ソフトウェアを使うためにはハードウェアが必要ですから、ハードウェア+ソフトウェアをサービスとして貸し出しますよ、というものです。

 

例えば、このはてなブログ。これも実はSaaSなんですね。なぜなら、エントリした記事内容に関するデータや、ブログ投稿用画面を動かすためのソフトウェアも自分のPCやスマホには入ってませんから。当然それらのソフトウェアを動かしているサーバ(ハードウェア)も私たちのものではありません。まさにサービスとしてブログ用ソフトを使っているので、SaaSというわけです。

 

ただ、デメリットとしては自由にカスタマイズができないことです。ホーム画面の配置を変えたい、と思ってもWebページのソースコードを編集して書き換える、みたいなことはできないわけです。(もちろん、ソフトウェアとして提供されている機能の範囲なら、テーマを変えたり、カスタマイズすることはできますが。)

 

もっとカスタマイズしたい、カスタマイズしなければ十分に使えない、となった時に検討すべきなのが、PaaSです。

 

たまに一般的なブログサービスではなく、自分のオリジナルのホームページを作って、ブログを書いている人いますよね。彼らはWordPressなどのフレームワークを利用してブログサービス用プログラムを自前で作っています。そして、開発したプログラムをレンタルサーバ上に乗せることで、ブログサービスを利用しているのです。そして、このレンタルサーバサービス、がまさにPaaSの一つです。

 

要するに、自分で作ったソフトウェアを動かすための”実行環境”を提供してもらえるサービスのことをPaaSと言います。

 

提供してもらえる部分はほとんどハードウェアと同じです。しかしながら、自作のプログラム以外のパッケージ製品を提供されているハードウェアに対してインストールしたりできない、というデメリットがあります。あとは、ハードウェアのスペックもせいぜい容量何GBぐらいにするか、という程度のもので、細かく指定することができません。そのため、あくまで”実行環境”を提供してくれるサービス、という表現を使われる場合が多いです。

 

というわけで、登場するのがIaaSです。IaaSもPaaSと同様ハードウェアをサービスとして利用できますが、これはハードウェアのスペックや構成、どんなソフトを入れるかについてもかなり柔軟にカスタマイズすることができます。よって、企業でも利用しやすい「クラウド」です。ちなみに今「クラウド」と呼ばれるサービスはほとんどがこれに該当すると考えて結構です。

 

と、ここまでがクラウドについての説明です。非IT系でここまで把握していれば、まぁ多少はクラウドのことを知っている人、で通るでしょうし、十分かと思います。ただ、ITエンジニアの方には、もう少しこれの意味するところを理解していただきたいかな、と。特に私のようなインフラエンジニアには。

 

今までの時代は、Linuxスペシャリストとか、Oracleがバリバリ使える、そんな専門家が割と重宝されてきたと思うんですよ。サーバ構築スキルなどもきっと評価されていました。(スマホとかと違って、ソフトウェアをインストールするのもコマンド操作が基本なので、直感的にはできないので。)でも、こんな風に新しい技術が出てくると、もうそういった専門家は入らなくなります。ここでソフトウェアを指定してこのボタンを押せばインストール完了、みたいに。それこそ、スマホなんかはもうすでにそうなってますけどね。

 

エンジニア志望の人って、自分の専門領域にこだわりを持っている人が多いけど、これだけ時代の変化が激しい中専門領域にこだわりすぎることは逆に危険だな、と感じましたね。時代的にはフルスタックエンジニアへのシフトも推奨されていますし。逆に設計の考え方、みたいな方がずっと役に立つとゆうか、汎用的に使えるというか。

 

こんな風に考えると、エンジニアってよっぽど新しい技術好きじゃないと大変だなーと思う次第です。

 

新人IT担当者のための クラウド導入&運用がわかる本

新人IT担当者のための クラウド導入&運用がわかる本

 

 

イラスト図解式 この一冊で全部わかるクラウドの基本

イラスト図解式 この一冊で全部わかるクラウドの基本