いまどきの技術トレンド

松本直人氏(以下、松本):このへんからちょっとネジを巻いてきましょうかね(笑)。日本のクラウド事業者も含めたさまざまなサービスが普及したことにより、我々企業は現状で64.7パーセントもクラウドを使っていると総務省の情報通信白書の中で述べられています。

それが2024年には80パーセント、ほとんど過半近くまでくると私は予測しています。現状を支えるためのサーバーの出荷数に関しても、こういったかたちでギュッと伸びていますので。

なるほど、伸びているし、使われてもいるし、世の中ここのタイミングで変わったんだなっていうことが2015年から2016年ぐらいに見えています。その予測から考えると、先ほどの伸びがあるよという話、これもあながち間違っていないと思っています。

さらに今時のトレンドでお話しすると、マルチクラウド、ハイブリッドクラウド、さまざまな呼び名がありますが、もう一般的になっているんですね。現状では最多数を占めている複数クラウド、複数プライベートクラウド、データセンター連携も含んでいるとは思うのですが、それが5割を超えるところで使われているそうです。

(スライドを示し)日本だけではなく世界中である程度の規模の会社さんのアンケートを取ってグラフ化している会社さんがあるんですが、そこから取ってきた情報としてこうなっています。もう当たり前にクラウドも使うし、パブリッククラウド、プライベートクラウドの使い分けも普通になったというのもトレンドとしてあげられます。

クラウドとは何を指すか人によって違う

ここから少し見たことがあるキーワードが出てくると思います。プライベートクラウドで使われる要素技術が企業の中でこれだけのパーセンテージとして使われ、当然プライベートクラウドではなくパブリッククラウドでもその比率として使われています。

これが何を示しているかと言いますと、実際にもう使い分けの時代になっているということです。これからはクラウドだ。そのクラウドだ、の向こう側にある言葉は、人によって違うんですね。今日の話の大半で「あ~、初めて知った」ようなこともいくつかあったかと思います。

その裏側には、ちゃんとした定義で言葉を理解して、お互いが協調しなければいけないこともあるので、今日は難しめの話もいくつかもってきました。細かすぎて見えないよということがあれば、あとで質問していただいてもかまいません。

当然そういったクラウドのトレンドを理解していくと、今度はどういったものがそのクラウドの中で使われているかという話にもなってきます。最初に私がここで話し始めた時、何という言葉をお話ししたか。「クラウド化してなかなか中身が見えづらくなってきている世の中ですよね」と話をしたと思います。

実際そうなんですね。特にクラウドサービスと言われたとき、それは何を指しているか、人によって違います。さらに言ってしまうと、クラウドをどう使っているかもさまざまです。最近ではコンテナ化の話もあり、その比率を考えればここからどんなことが導き出されるかも少し見えると思います。

(スライド示し)これも先ほどアンケートベースでまとめられた世界中の企業におけるクラウドの利用動向からもってきたものです。コンテナだったらこれを使っています、パブリッククラウドで一番使われているのはこのあたりです、というものが全部まとめられています。

この中をざっと見ると、コンテナ化は普通になりました。データベースは自分たちで管理するよりはクラウドに任せてしまったほうがいいということもいくつかありました。

ただ一点考えなければいけないのが、ある程度の大きさもしくはある程度のニーズまでは満たせるけれども、すべてが満たせるかどうかということです。

ブラックボックス化の話

あまりいい話ではありませんが、ブラックボックス化の話ですね。私のような古い人間からすると、それこそ地面からアプリケーションまで見るケースがあります。地面て何? と言うと、クラウドを司っているデータセンターの地質のことです。

データセンターを建てる時に、地質はこうだからここだったら大丈夫だよ、非常用発電機を置くための燃料タンクを埋めるのに、ここだったら水で浮いてしまったりしませんよ、みたいなことも実は考えています。

なんでかという話はあとあと出てくるのですが、そういったことまですべて考えて、アプリケーション、場合によっては最終的な計算機リソースの割り当てまで考えて、ビジネス、サービス全体を見なければいけません。

ただ一点、これを全部できる人なんて当然もう存在しないんですね。そういった仕事をする人もたぶんほとんどいないと思います。それくらい、我々はさまざまなビジネス上での仕事を細分化して割り当てを受け、それをやっているんじゃないかと思います。

このブラックボックス化しているもの、気になりますよね。なにをもってブラックボックス化?という話になるのですが、ここをちょっとお話していきたいと思います。実際我々がブラックボックスをなしにして考えてきたときに、中でどうやって設計して、実際のシステムを組んでいくかを表したのがこれです。

(スライドを示し)「なんだろう、これ?」「見たことないな」「こんなことまで考えるの?」、もしくは「日常的にやっています。疲れました」という方もいらっしゃると思います(笑)。いろいろあるとは思うのですが、データ通信をモバイルの向こう側から考えたときでも、全部を見通すことっていうのはなかなかないと思います。

実際にクラウドの裏側、モバイル通信の内側で起こっていることがここに書かれています。細かくなってしまうので、ざっと見ていくだけになります。モバイル通信網からデータが流れてくる時に、それを受け止めるための前段でいくつか構成を組んで、負荷分散をかけて処理します。

最近は、コンテナ化とか仮想化はもう当たり前に使われるようになっているので、その中にドンドコドンドコ、要素がつながっていったりします。そういったものを連携することによって初めて動く、もしくは経済合理性を考えるとそういったシステムのほうがいいという傾向になり、実際のシステムを仮想化したりコンテナ化したり、場合によってはサーバーレスのランタイム環境を作って動かすこともあげられます。

それらが実はクラウドの向こう側で動いています。それを気にせず、もしくはあまり考えず使う。それぐらい楽なシステム環境ができあがるようになったのは、ある意味喜ばしいことだとも思います。

ただ1点、それはどうやって動いているのか、もしも知らないと、どこにボトルネックがあったのか、どこで問題になるのかがなかなか分からなかったりもします。我々の課題意識としても、システム全体を安定的に動かすためには、当然中身を全部知ったうえでプログラミングやサービス開発をすることが必要だという考え方をもっています。

当然すべてやれというわけではなくて、単に知っていて、それをなんらかのかたちで問題が起こった時にすぐ対処できるようにする。そのための糧として考えていただければと思います。

(スライドには)簡単に書いてありますけど、当然これ以上にもっと複雑なんですね。実際に運用するシステムであったり、実際にシステムを大きく何千万人、何億人に対してサービスをしようとすると。それらを支えなければいけないので、暗にこれだけステップがあると簡単に書いていますが、組合せ論からすると、もっと多くなります。

5年10年スパンでトレンドを見る

こういったシステムの現在から未来を考えると、我々は研究開発という意味では5年10年スパンでトレンドを見ています。実際、私も自分が生きていた時代の話でもあるんですが、過去1990年代から2030年ぐらいまでのトレンドを見ています。

それって何かというと、特にソフトウェアを触られている方はあんまり気にしないと思いますが、昔々は仮想化することはまかりならん時代もありました。金融系の方々が仮想化とかクラウドを使うなんてことは、2000年より前の時代では考えられなかった、もしくはまだ早いと言われていました。

それから20年も経つともう当たり前に使われていて、特に課題意識もすべてクリアされていると思いますが、それを支えているのがサーバーの仮想化の技術やコンテナ化の技術です。

それを過去から未来にかけて予測するために、ある程度どこまで大きくなりそうかを研究の中で見ています。これは何を示しているかと言いますと、増加傾向にあるサーバーの中でのコンテナの数、インスタンスやポートといったものだと思います。

それが如実に伸びていく傾向を示しているのを外部的要因……なんと言ったらいいかと悩ましいのですが、サーバーを構成するであろうコンポーネントの成長、そこから逆算しています。

それを類推レベルで共有するためここで書いています。1台のサーバーの中に数千もしくは下手をすると数万のコンテナ化されたインスタンスとか、場合によってはまた今とは全然違うコンテナ化以上のサービスを集約するための機能、もしくは新技術そういったものが存在すると、もっともっと1台の中でさまざまなサービス連携が行われていくと予測できます。

そういったものを見越したうえで、どこまでシステム間の連携、サービス間の連携、場合によっては API 間の連携を考えなければいけないか。スケールが大きくなればなるだけ将来を見越してインフラの設計をしなければいけないので、そこも見ています。ちょっと難しい話でしたね。

これから起こるかもしれない話

なんでこんな話をするのかというと、これから起こるかもしれない話を少ししたいと思います。実際に我々が今配信をこうやって、映像としてデータ通信が行われたうえでやっていると思います。でもこの配信サーバーはいったいどこにあるんでしょう? そしてこの配信のデータ経路はどうやって流れているんでしょう? 

通常秘匿化されている話もあるでしょうし、実はここからやっているんですよなんていう話が時々海外のニュースでも出たりもします。ですが、暗に言えることは、日本だったら日本からデータ配信されているんじゃないかなと思う場合もありますが、場合によっては、そしてとある経済的理由により、海外から配信、もしくは海外でデータ連携されていることも今は日常的に起こっています。

先ほどの沖縄から東京まで28ミリセックは、遅いかな? 速いかな? 1秒の1/100以下なのでぜんぜん速いですよね。ですが実際にはデータが膨大になればなるだけ、当然そのネットワークを経由する数も多くなってしまうわけですね。

場合によっては先ほど見ていただいた中で、データの通信上でのボトルネックが発生するというケースもあると思います。そういったものを改善するために、最近ではエッジコンピューティングや、昔であればフォグコンピューティングなど、いろいろな名前があったと思いますが。

なるべく端末の近くでデータを処理をするとか、なるべくネットワークを経由しないで処理しようとか、ネットワークの集めたところで統計的なデータを処理するとか。いろいろな考え方が出てきます。

実際に何テラバイト、何ペタバイトのデータを扱うとなったときには、当然先ほどのボトルネックの話と同じように、どこかに軋みのようなものが存在します。それらを改善するために、こういったアーキテクチャ、こういった仕組みであればある程度動くのではないかと我々は先行して考えています。

それが経済合理性と現状のさまざま密接に関係すると思われる通信事業者さまの間の中、場合によっては自分たちも中に入って協調するかたちで仕組みを一緒に考えていくことも必要なのではないか、ということで研究の対象としています。

データ特性を理解する

ただ先ほど見ていただいたとおり、すぐさまこういったかたちにはならないんですね。さきほど、東京から大阪、下手をしたら東京から福岡までデータ通信が切れずに行われていたというのを少しお話ししたと思います。あの裏にあるのは、そのデータ通信が東京から福岡までずっとデータを飛ばしているんですね。

そう考えてしまうと無駄と思う場合と、これで安定しているなと思う場合といろいろあると思います。その仕組み、さらには使われ方の考え方、そういったものもちゃんと整理していかないと、こういう仕組みもうまくいかないんじゃないかなとも思います。

我々が使っているセンサー類はさまざまあると思いますが、うまく組み合わせていくといろいろなことがわかります。特にデータと考えたときに、rawのデータ、動画だったら動画、そういったものは前処理する前の状態って、やっぱり大きいんですね。

それを意味抽出するだけでも、データ通信に、もしくはデータフロー上のボトルネックを作り出さないことも改善点としてあげられますし、それが経済合理性として成り立つケースもあると思います。

そういったものを考えたうえで使っていかなければいけないので、この資料ももってきました。さらにですね、通常あまり考えたことはないと思いますが、使っているハードウェア、サーバー上でのCPU、それ自身も性能特性があります。

それをうまく使い分けることで、実際には単位時間での処理数を上げていくこともできるでしょうし。そういった単位時間で最適、もしくは最短で結果を出すために非常にピーキーな仕組みを作る、もしくは仕組みを使うこともどこかで必要になってきます。

それが先ほどのさまざまな場所でデータが処理されて、実際に全部のデータが連携していかなければいけないことの裏側に、もしかしたらなにかの一助になるんじゃないかということで、こういった研究もしています。

コンピューターは雲の向こう側にあるわけじゃない

さらに最後になってきましたが、ちょっと変わった話をしたいと思います。先ほどサーバーが、データが、インフラがという話をしたと思うんですが、それらは実在するんですよね。クラウドの向こう側には、雲があるわけじゃありません。データセンターがあり、ネットワークが光ファイバーでつながり、実際に計算する=消費電力がかかっています。

我々はコンピューターと共存することで、日常的にコンピューター、クラウドの向こう側で使っていると思います。これには非常に集約されている傾向があるというのを少しグラフで見たと思います。

これが示すものはどういうことかと言いますと、サーバー、ワークステーション、いろいろなところで動いていますが、その消費電力は8割以上がそのまま熱に変換されます。通常iPhoneやスマホを使っていて、熱いなって最近あまり思わないかもしれませんが、それが何万台とあったら当然熱いわけです。

それを冷やさなきゃいけないですし、集まっている場所=クラウドの向こう側のデータセンターを動かし続けなければいけないので、熱を処理するための室外機とか、場合によっては止めちゃいけないので非常用発電機も存在します。

これがですね、動いていること自体で悪影響というか、気になってしまうケースもあります。心身に影響を与えてしまうような音が、残念ながら出てしまうんですね。

通常こんなものまで考えて設計する方はほとんどいないと思いますが、なぜ北米だと人がいない場所に巨大なデータセンターが存在しているのかとか、たぶんあまり考えたことがないと思うんですね。ですが、それなりに理由はあります。

こういったものが理由としてあげられているんだなっていうのを、どこかで思い出していただければ。コンピューターって雲の向こう側にあるわけじゃないのも、どこかで覚えておいていただければなと思います。

データフローの未来

これが最後のスライドになります。我々はさまざまな課題意識をもって、特に巨大なデータ、もしくは大多数のなんらかのデバイスや新しいサービスをデータフローとして受け止めなければいけません。そういったときにどういう課題意識が、現状の我々が生活しているインフラストラクチャ上にあるかを少しお話しいたしました。

でも、これからも変わらないことというのが1つあります。ほとんどのデータ処理に関してはセオリーがあるわけですよね。Lambdaアーキテクチャなどいろいろな名前にはなっていますが、やることは変わりません。入力されるデータ、サービス連携をして、サービスのアウトプットを出すということです。

前処理してバッチに渡すか、リアルタイムに渡すか、最後データ連携してユーザーに提供するか、ここはほとんど変わりません。ですが、これをどこでやるか。どういったかたちでやるか。どう連携するか。時代によって変わってきます。

そういったことを考えたうえで、みなさんに「あぁ、そういえば松本がインフラストラクチャの話を少ししたな。あんなことを言っていたんだ。実はこういうことだったんだ」みたいなことを思い出していただければというので、今日のお話の最後にしたいと思います。

まとめになります。ソフトウェアエンジニアが支えるデータフローの未来について、少しでも気づきがみなさんにありましたら幸いです。今日はご視聴いただきありがとうございました。

(質疑応答につづく)