2019年振り返りと2020年予想
今年個人的に心に残ったテーマと来年盛り上がりそうなテーマをつらつら書きます。
「2019年予想」の振り返り
昨年「TechRepot 2018.12」での2019年予想をふりかえってみます。
GraphQLによるAPI設計手法の変化
一般的なウェブアプリにおいてフロント側の比重が高まっているのを受けて存在感がぐっと増えてきたGraphQLです。オライリーから「初めてのGraphQL」もでましたし、技術書典などでもGraphQLを扱う書籍が目に見えて増えた感じがあります。
非同期通信
WebSocketやGraphQL Subscriptionなどのサーバクライアント間の非同期イベントドリブン化は、あまり大きな波はまだ来ていないような感じです。システム間の「リアクティブ」ファーストにはもう少し時間が掛かりそうです。一方で、FirebaseとCloud Functionsの連携などは着実に普及の流れに乗っています。
ストリーム処理
個人的に最も注目している分野です。Spark StreamingやApache Beamなど元々ビッグデータ処理で普通に伸びてきた分野なので着実に普及を遂げていますが、ビッグデータ分野ではない「一般」への拡がりとしては、まだそれほど大きな動きはなかったように思います。一方で、Azure Durable Functionsの上でアクターモデルを実装したDurable Entitiesや、KnativeにAkka Clusterを組み合わせたCloudStateなど、FaaS側からの動きが具体的に見え始めてきました。
ワイヤレスIoT
LPWAも省電力セルラーも順調に盛り上がってきています。IoT自体が幻滅期に入ったこともあり、過度な期待ではなく地道なデジタル変革(デジタルトランスフォーメーション)の道具として冷静に評価されている感じがあります。
GDPRとプライバシー
今年は、リクルートキャリアの就活生データ取り扱いを中心に、データは誰のために誰が何をして良いのか、を問われる一年でした。
VRエコシステム
今年は間違いなく「V」の存在感がキャズムを超えた年になりましたが、各社からの新型VRヘッドセットの登場や、カメラを使ったハンドトラッキング、VR/AR技術を最大限に活用するMinecraft Earthなど、技術的には大きな動きがありました。一番注目すべきは、VTuber制作のためのエコシステムが拡大したことで、趣味だけのものから、観光や広報におけるビジネス利用に進んでいるようです。また技術分野として「空間コンピューティング」などのお堅い言葉が出てきたことも注目に値します。
新しいプログラミング言語の普及
とにかく躍進したのがPythonですが、この一年でやはりRustの存在感がさらに増したように思います。Windows 10の一部をRustで書き直して脆弱性を減らす、といったニュースもありました。さて来年はどんな言語が躍進を遂げるのやら。
技術系同人誌
今年は、技術書典の「3階問題」に代表されるように、市場の急激な拡大による無理が一気に顕在化してしまった年でした。その一方で技術書同人誌博覧会など異なる運営方針を持つ「別の機会」が増えたことで、サークルの方針に応じて選ぶことができるようになってきたのはとてもありがたいです。来年はオリンピックによる会場問題でなかなか難しいところがありますが、どうにか乗りきっていきたいところですね。
というわけで、来年来そうなキーワードを取り上げていきます。
デジタルツイン
これまで接続性や制御という軸からIoT(Internet of Things)やCPS(Cyber-Physical System)などの「デジタル化」に関するキーワードがありましたが、それらをデータモデルの観点から改めて整理したのがデジタルツインという考え方です。様々なセンサーからのデータと、既にクラウド上にあるデータを組み合わせることによって、リアル空間をデジタル空間にリアルタイムで複製(ツイン:双子の由来)します。そしてそこから得られる分析結果をもとにリアル空間もしくはデジタル空間へのフィードバックを行います。
言葉にしてしまえばこれまでも進めてきたデジタル化の流れですが、重要なポイントは「リアルタイム」と「再現」です。センサーデータはクラウドからポーリングするのではなくデバイスからプッシュされます。さらにリアル空間のセンサーだけでなく、たとえば従業員マスタや会議予定、生産計画や在庫状況などすでにデジタル化された情報も収集し、クラウド側はこれらをひたすらリアルタイムで分析してデジタル空間としてシミュレーションし、その状態変化をプログラムロジックや機械学習など(これらの分析基盤をインテリジェント・コアと呼ぶ向きもあるようです)によって発見し、アクションを起こすことが期待されます。
これまで一部のデータサイエンティスト向けの分野であったリアルタイムデータ分析が、IoTの文脈でも当然となり、それを象徴するのがこのデジタルツインというキーワードです。最近最大のバズワード「デジタルトランスフォーメーション」の中心的概念の一つでもあります。
似ている概念として、デバイスツインもしくはデバイスシャドウがあります。こちらはデバイスに対する設定をクラウドからプッシュするのでは無く、desired(期待する値)とreported(最後に報告された値)を使ってデバイス側からのポーリングで実現する設計パターンです。こちらも通信が非同期になりがちなIoTデバイスを使うシステムではよく使われます。AzureやAWSのIoT連携サービスでもこの概念が中心に据えられています。
IoTシステムのデザインパターン
IoTというキーワードの元に様々な試みがされてきたこの数年ですが、デバイス側もクラウド側も部品が揃ってきたことで、IoTシステムのデザインパターンがある程度固まってきたように見えます。
たとえばMicrosoftから、「Smart Store」リファレンスアーキテクチャーとしてキャッシュレスのスマホ決済やカメラ認識による自動精算などのシステム共通部分をGitHubで公開しています。またSORACOMなどもデザインパターンをドキュメント等で公開しています。
大量のセンサーデータを扱う場合、エッジ側とクラウド側でどのように分担するかという課題があります。データの意味付けと文脈付けに分けて、例えば温度センサーの生値を摂氏に変換したり、過去数回の計測値から計測誤差や環境誤差を省いた推測値を求めたりといった処理はエッジ側や、それこそセンサーに付随したマイコンでも可能です。その一方で、そのセンサーが設置された場所や、それが室内なのか屋外なのか、その温度がどうなったら何をすれば良いのかといった文脈に紐付くデータは、マスタデータを持つクラウド側で処理する必要があります。このような整理がIoTの普及によっていよいよ進んでいくことでしょう。
エッジコンピューティング
長いこと実態が定まらないバズワードだったエッジコンピューティングですが、確実のその一つの具体像である5GのエッジコンピューティングであるMEC(Mobile Edge Computing)です。
MECは5Gネットワークの中に設置され、インターネットに出ること無く「最寄り」のエッジサーバを低遅延で利用できるというモデルです。一番分かりやすいのが、現在ベータ版サービスを始めている「GeForce NOW Powered by SoftBank」です。PCゲームの要求スペック上昇を背景に、負荷の掛かる処理をエッジサーバ上で行い処理結果の画像のみをストリーミングするため、GPU性能の低いタブレット等でも重いゲームをプレイできます。
当然ながら遅延が重要となるため、基地局に近いほど反応は良くなります。基地局全てに高性能なサーバを置くことも現実的では無いため、電話局舎などある程度の単位で設置されると予想されていますが、NVIDIAからMEC入りの基地局用サーバが発表されるなど、具体的なデプロイの段階に進んでいます。
メガクラウドもMECの囲い込みを進めており、2019年2月にAzure Stack EdgeをベースにしたMECについてAT&Tと進めている発表があったのに続き、AWSもAWS WavelengthとしてVerizonやKDDIとの連携を発表しました。5G MECは新しい戦場となっていくでしょう。
Stateful FaaS
FaaS(Function-as-a-Service)はステートレスという制約によってスケーラビリティを手に入れました。技術のトレンドは次の段階に進みつつあります。
StatelessなFaaSとパーティショニングされたデータストアを組み合わせることで、状態を持つFaaS(Stateful FaaS)というプログラミングモデルを提供しようという試みが拡がっています。このあたり詳しくは「TechReport 2019.09」に書きました。
CNCF CloudEventsとEventBridge
サーバーレス開発で重要となるのがイベントドリブンの「イベント」データですが、このイベントの標準仕様としてCNCF CloudEventsの1.0が策定されました。メガクラウドではAzure EventGridが対応しているほか、GCPでは今のところKnative Eventingが対応しています。OSSとしてServerless, Inc.のEvent Gatewayが対応している(ただし執筆時点で0.1)ため、AWSなど直接CloudEventsに対応していないプラットフォームからも連携することができます。
一方、AWSからはEventBridgeとして外部のSaaSとイベント連携をするためのが登場しました。PagerDuty やZendeskなど標準で対応しているSaaSもありますし、Webhookを提供しているSaaSであればすぐに連携ができます。
様々なクラウドサービスの美味しいところつまみ食いを推進したい筆者としては歓迎したい流れです。
認証基盤のクラウドサービス化
今年はNTTドコモが自社サービスの認証基盤にAuth0を採用するというニュースがありました。昨今の使い回しパスワードへのリスト型攻撃への対応や、多要素認証の採用など、ID管理としてもログイン機能としても取り組まなくてはいけない要件が増えています。ドコモという大規模事例ができたことで、Auth0のほかAzure AD B2CなどのIDaaS(ID-as-a-Service)の利用が拡がっていくことでしょう。
ゼロトラストへの動きにも関係しますが、もはや認証基盤は自前で実装できるボリュームをとっくに超えていますし、そもそもシステム毎のIDではなく共通のID基盤からフェデレーションすべきという声も大きくなってきています。
パスワードの終焉、MFA 2.0
本格的に「パスワードレス」の流れが来ました。
昨年策定されたFIDO2への準拠システムが着々と増えているほか、FIDO2デバイスなどによる認証をウェブサイトで行う標準仕様WebAuthnも策定され、メジャーなウェブブラウザでは既に対応されています。ウェブサイト側の対応も急速に進んでいくことでしょう。
パスワード無し「でも」ログインできる仕組みが普及しつつある一方で、いよいよパスワード自体を廃止する段階が見えてきました。いくつか方法はありますが、FIDO2のような多要素認証デバイスを完全に信頼し、紛失時はリカバリーコード等(これも結局はパスワードの一種ですが……)で対応するパターンの他、パスワード等のクレデンシャルを使わず、メールアドレスの到達性に依存する方法もあります。
MFAデバイスも、Googleからセキュリティキー等で使われるセキュリティチップのオープンソース化「OpenTitan」を公開したほか、スマホアプリへの通知を使ってMFAを実現するMicrosoft Authenticatorなど、セキュアさを確保しつつユーザビリティを確保する方向にどんどん進化しています。
情報システムとゼロトラスト
今年の秋に出た「ゼロトラストネットワーク」を読んでください。
あとその監訳者の鈴木研吾さんのセキュリティ・キャンプ講義を見てください。
レガシーシステムと2025年の崖
2018年に経済産業省から発表された「DXレポート ~ITシステム「2025年の崖」克服とDXの本格的な展開~」によって、レガシーシステムによる「2025年の崖」という概念が提起されました。
これまでの「誤ったデジタル化」によるリスク・課題と、クラウドをベースとした「デジタルトランスフォーメーション」とのギャップは広がるばかりで、Windows 7とIEに依存した社内システムが無視できないほど存在するという話が昨今盛り上がっています。まじですか。
そのギャップを埋め、次に進むための道具がRPAなどの過渡期アプローチですが、レガシーシステムとそれに乗っかる業務プロセスの「延命」に使われてしまうことも多いようで、クラウドだDXだゼロトラストだと言う議論に入ることすらできていない現場も数多くあります。そういった状況をどうしていくか、これをうまくビジネスチャンスと捉えて歯車を回していきたいところです。
ARMとRISC-V
上にも述べたエッジコンピューティングなどを背景に、マイコン向けCPUアーキテクチャが盛り上がっています。Intel x86系が消費電力等の課題でARMに大きく溝を開けられていた一方、オープンアーキテクチャとして自由に設計・製造・販売ができるRISC-Vの勢いが増しています。
NVIDIAやWestern DigitalなどがSoCへのRISC-V採用を表明しています。NVIDIAのGPUにもRISC-Vアーキテクチャのコアが搭載されるため、普及前夜と入った感じです。
用途に応じた新しいプログラミング言語だけでなく、新しいCPUを自由に自作する時代が来るのかも知れません。