クラウド・ネイティブはIT人材や組織をどう変えていくか
及川卓也氏(以下、及川):こんばんは。及川と申します。今から1時間ほどモデレーターを務めさせていただければと思います。
本日は、クラウド・ネイティブ自体がIT人材や組織をどう変えていくかというテーマで、このお三方を迎えて1時間半ほど、お話したいと思います。
私は今日モデレーターを務めさせていただく、Tablyの及川と申します。100人中99人が「タブリー」と読んでしまうのですが「Tably(テーブリー)」という会社名だけは覚えて帰っていただければと思います。
IT業界に30年ほどおりまして、基本的にずっと外資系におりました。ただ、そのあとスタートアップ企業を経て、今はスタートアップや大企業のいわゆるDX(デジタルトランスフォーメーション)のお手伝いをしております。
2019の10月に『ソフトウェア・ファースト』という本を出させていただきました。結局、DX的な、ITで事業をきちっと作っていくところの本質となるのは、組織であり人であるということを中心に書かせていただきまして、そういったところについても、もし必要でしたら多少触れながらお話を進めていければと思っています。よろしくお願いします。
(会場拍手)
続きまして、広木さん、自己紹介お願いします。
広木大地氏(以下、広木):広木です。どうもよろしくお願いします。僕は2008年にミクシィという会社に入って、そこからソフトウェアエンジニア、アーキテクトとして活躍させていただいたあと、技術と経営がクロスするところに入っていきました。
その後に退職しまして、こういったノウハウを世の中に届けていくためにレクターという会社を作りました。CTO的なノウハウ、技術と経営をつないでいくところのノウハウをまとめて『エンジニアリング組織論への招待』という本を書かせていただきました。
最近は一般社団法人日本CTO協会も作らせていただいて、こういったノウハウを松本さんと一緒にシェアできたらなと思って活動しております。よろしくお願いします。
(会場拍手)
及川:続きまして、羽山さん、よろしくお願いします。
羽山祥樹氏(以下、羽山):羽山です。よろしくお願いします。僕は今日はIBM Championという肩書きで登壇させていただきます。MicrosoftにはMVPというものがありますが、あれのIBM版のようなものでIBM Championをいただいています。僕はふだんはUXデザイナーをやっています。
モノづくりにおいては2つ軸があると思っていまして、1つは技術です。同時に、誰の課題を解決するのか、誰のために作るのか、ユーザーを深く知るための専門家をしています。今日はそういった視点でお話しできればと思っています。よろしくお願いします。
及川:羽山さんも本書かれてますね。
(会場拍手)
及川:では、松本さん、よろしくお願いします。
松本勇気氏(以下、松本):こんばんは、松本です。よろしくお願いします。
僕は大学ぐらいからずっと会社を作ったり売ったりを繰り返していて、実はエンジニアを始めたのは大学3年生ぐらいです。大学在学中に3社起業し、4社目に起業したのがGunosyという会社です。
Gunosyの立ち上げ直後ぐらいから、アプリの開発を担当しながら、だんだんCTOとか、ひたすら苦しみながら組織の立て直しや新規事業をいっぱい作ったりしてきました。そこから現在はDMMという会社のCTOに昨年の10月頃に就任しました。
本当に数人のスタートアップから、上場するくらいの会社、今は全体で4,000人弱いる会社のマネジメントまで、比較的いろいろなステージの会社をやってきました。
今はいわゆる「テックカンパニー化してくれ」とか、組織でちゃんとテクノロジーを使えるというのはどんなことなのかという話をしながら、実際に社内で実践しています。
今日は事業にもう少し近い側の人間というか、事業を回す側の人間としての立場でお話しできたらなと思っております。みなさん、本日はよろしくお願いします。
(会場拍手)
及川:立ち位置的に、松本さんは技術もしっかりおわかりになるところで、事業会社の立場からお話しいただければと思います。羽山さんはやはりUXやサービスデザインなど、そういった体験というところからできるだけお話をいただきたいと思います。広木さんには組織系のところを中心にお話しいただければと思います。
ただ、3人それぞれがいろいろな知見をお持ちですので、この立ち位置に限らずいろいろなお話を引き出せればと考えています。
クラウドにいつごろから触れだしたか
及川:では、さっそく「クラウド・ネイティブ」という今日のテーマについてお話ししたいと思います。まず、お三方に聞きたいのですが、いわゆるクラウド、AWSやAzure、IBM Cloud、GCPといったものにいつから触れるようになったのでしょうか? 広木さんはミクシィの時にはまだクラウドはなかったですよね?
広木:そうですね。一番最初はなくて、どんどん出てきた時期です。それこそ32ビットOSが64ビットOSになって、SSDがあって、クラウドの時代という流れの時期で、リアルタイムにいいものをどんどん取り入れていかなければいけないタイミングでした。ただ、最後の『モンスト』のスケールのときは、AWSとオンプレのハイブリッドな感じでやったりしたので、そのくらいからクラウドに触るようになりました。
及川:では、ちょうど移行を体験している世代になるんですね。
広木:そうですね。
及川:羽山さんは、いつ頃からクラウドに触るようになりましたか? もちろん最初からじゃないですよね。
羽山:気がついたら身の回りに溢れていた感覚があります。
及川:なるほど。UXの立場として、最初はいわゆるオンプレだったのがふと気がつくとクラウドのほうが中心になっているという経験をされている立場なんですかね?
羽山:はい。インターネット界隈のユーザー体験として、ASPという言葉で最初は似たようなものというか近い概念のものがあって、それが気がついたらクラウドというかたちでみんなの身の周りにあるようになったんんじゃないかと思います。
及川:松本さんはもしかしたら最初からクラウドだったんじゃないかと思います。
松本:そうなんですよ。最初に触れたのは、実はGoogle App Engineです。2010年くらい。最初に触ったのがGoogle App EngineとPythonでいわゆるコンテナライズドされたサービスだったわけですね。
松本:そこから最初にスタートしていって、ああいったものだとコンテナが最初からマネージされているので、そこから逆にもうちょっと素のVMをいじり始めました。でも、それも最初はEC2でしたね。なので、データセンターに入ったのは、実は今の会社に来てから初めてなんですよ。
なので、逆体験ですね。今はむしろオンプレからクラウドに持っていく取り組みをやっている最中で、時代を逆に遡り始めているような感じです。
及川:そういったところから、もしかしたらオンプレ側のいいところも見えたりするところもあるかもしれませんね。
松本:そうですね。
及川:もしかしたら松本さんはクラウド・ネイティブ世代なのかなと思って聞いてました。
松本:ある意味、クラウド・ネイティブ世代ですね。
クラウド・ネイティブをどう定義するか
及川:では、今回はクラウド・ネイティブをどう定義するのか。CNCF(Cloud Native Computing Foundation)という団体の定義がこちらに書かれている通りです。
おなじみになってきていますが、コンテナ、サービスメッシュ、マイクロサービス、イミュータブル・インフラストラクチャー、宣言型APIという言葉があったり、このほかにオーケストレーションといった要素も出てくるかもしれません。
これは本当にコアの部分で、もう少し広く考えたとしたら、お三方はどういった世界をクラウド・ネイティブと考えていらっしゃいますか?
広木:ちょっと前はIaaSがありました。今はプラットフォームになって管理されたデータベースがあって、管理されたPub/Subで、Kubernetesみたいなコンテナベースにどんどん世代が移り変わってきました。要するに徐々に運用側にいた人と開発とか、より事業側に近い開発とプラットフォーム開発といった領域がどんどんなくなっていってる。
そこが自動的だったり自律的という時代になってきて、今はたまたまインフラから近い領域で見たときに自律的に見えているだけで、次のステップはさらに事業側にとか、コモディティ化していった領域が自分たちの競争からは外れていって、本当にやっていくとソフトウェアやアプリケーションやUXデザインに、どんどん事業側に近いところに溶けていく流れなんだろうなと思っています。
そのなかで、今までは当たり前だったものが当たり前じゃなくなっていく体験をしているので、この瞬間はクラウド・ネイティブはこのように定義されているけど、広義の意味で言えば、僕はどんどん溶けていくことだと思っています。
及川:なるほど。「溶ける」というのは、今まで重要だった部分がコモディティ化していく、ということですかね。
広木:そうですね。今、OSから作ってなにかするという人はいないじゃないですか。それと同じように、今の若い子は、「なんでOSから……実際のVMからやんなきゃいけないの? コンテナでいいでしょ」「えっ、データベースを自前で管理?」となってきているわけで、その「当たり前でしょ」がどんどんアップデートされています。今の観点の違いはけっこう重要で、どんどん前に進んでいってることに合わせていかなければいけないと僕は思っています。
及川:わかりました。羽山さん、いかがですか?
広義のクラウド・ネイティブは実験主義的な環境を支える一連のプロセス
羽山:いま広木さんもおっしゃってくださいましたが、事業側に近づいていると思います。事業側に近づいて何をしたいのかというと、最終的にはユーザーに価値を届けたいということだと思います。
先ほど会場にも『ソフトウェア・ファースト』を読まれた方がたくさんいらっしゃって、本の中でも及川さんが提示されていましたが、ただものを作るだけではダメで、ユーザーにきちんと価値を届けるためにはいろいろな方法論やプロセスがあります。そこまで含めてDXをやっていかないといけないよねという議論があると思っています。
及川:なるほど。松本さんいかがですか?
松本:僕がよく社内で話すのは、そもそも事業の考え方がけっこう変わってきていると思っています。これまでは、時代を経るにつれて、完璧な何かよりも実験主義的な何かに変わってきている印象があります。
実験主義的な何かというと、事業を何か立ち上げるときに、市場環境の変化も激しいわけなので、基本的にはなにか実験をしながら、AとBを比べながらどちらがいいか実験していく過程が、事業の強みそのものになってきている時代になってきていると思います。
だから、その過程で実験をするためのアジリティを獲得するための一連のプロセスのことが広義のクラウド・ネイティブだと思います。
そのために、例えば組織がレジリエントであること。失敗しても死なないことや、2つを比べられることなどです。すぐにオーケストレーションできてすぐにスケールできる。実験すること以外のところに関してどんどんマネージドになっていくのは、さきほど広木さんがお話ししていた「溶けていく」という話とかぶってくるのかなと思います。
最終的に目指すところの実験主義的な事業の進め方は……よく社内でも言いますが、アジリティの根源、一番大事なところは、いろいろなものを比べる活動のなかでそれぞれが自律分散的に意思決定ができる。それを支えるために狭義のクラウド・ネイティブ的なものがあって、広義なクラウド・ネイティブはそういった実験主義的な環境を支える一連のプロセスなのかなと思います。
及川:非常に特徴的だと思うのが、要素技術みたいな言葉があまり出てきませんでした。とくに広木さんのおっしゃっていた「たまたま今この技術かもしれないけれど」というのが重要なところかなと思いました。
ですから、「クラウド・ネイティブといえばコンテナでマイクロサービスでしょ?」と言われてはいますが、本質はおそらくそこではなく、コンテナじゃなくVMを使うことも十分あり得るわけです。
一番大事なのは、今言ったようにマネージドを使うようになり、事業にアジリティを持たせるという部分が、クラウド・ネイティブと言われているところの背景なのかなとお三方の話を聞いていて思いました。
組織が新たな挑戦をできるように
及川:実は今回このイベントは2回目で、1回目はクラウド・ネイティブそのもののについてお話ししました。その時の登壇者にIBMの安田(智有)さんがいらっしゃったのですが、そこではクラウド・ネイティブはどのように定義されたか、短くご紹介いただいてもよろしいでしょうか?
日本IBM 安田 智有氏:登壇者じゃないのにすみません。第1回パネリストで参加しました安田といいます。第1回も今回の登壇者のようにそれぞれ専門性を持った方にご登壇いただきました。
ツール側やテクノロジーに寄って、それが使えることになるのが広義のクラウド・ネイティブだという表現をされた方もいれば、新たな挑戦を組織ができるようにする、例えばITインフラを変えようとか、当然変えるニーズは事業側からの「コストを下げろ」「もっといろいろなことができるようにしなさい」というプレッシャーに堪えられるようにIT側を変えていく動きが、クラウド・ネイティブのアプローチの1つなんじゃないかという話をしました。
なので、第1回もお三方が今おっしゃったように、新しく変革しやすいような動きにしていきましょうということを表現されていましたが、表現されている部分はかなり広範囲でした。
及川:どうもありがとうございます。
広義のクラウド・ネイティブを頭に置いた上で、少しずつ本質のところに入っていきたいと思います。
ITにパラダイムシフトが起きている
及川:次に、なぜこういったクラウド・ネイティブが必要になっているかを考えてみたいのですが、とくにビジネス側、事業側の観点でいったときに、なぜオンプレではダメだったのでしょうか?
今でもオンプレを選ぶ人たちもいると思いますが、多くはクラウド的な要素を使うことになると思います。それはなぜなのかを改めてお三方に聞きたいと思います。
松本:先ほどの実験主義の話でもありますが、情報がこれだけ回るようになってくると、市場環境がものすごい勢いで変化していると思います。一方で、情報がたくさん流れてくるなかで計測できるようになってきていて、計測して改善できるようになってきました。
そうすると、計測して考えるところは速く回るけれど、例えばオンプレミスで巨大な基盤を抱えてしまうと、そこから移行するとしても「減価償却が……」と現実的に考えたりするわけです。そういう動きができなくなってくると、スタートアップがたくさん登場してきて、その隙間を縫いながらものすごい速度で成長してきます。
その根源にあったのが、技術的なところのスピード感や実験ができることなのではないかと思います。それをより体系化して「失敗できる環境にしなきゃいけないよね」というところを技術面で固めていったのがクラウド・ネイティブの話なのではないかと思います。
及川:今のお話はスケールについてだったと思いますが、オンプレだったらスケールも大変だし、スケールダウンも大変だし……。
松本:ダウンが大変というところのほうが大きいと思います。
及川:そうですね。昔はなかなかやはり壊すこと前提にはできなかったですが、今はいつでも壊すことを前提に作れるようになりました。それが実験において重要になってきたんですね。
松本:そうですね。あとは、実験するときに毎度同じものを作らないということも、マネージドという意味では大事だと思っています。
イメージでいうと、マニュアル車からスタートしてきたわけです。マニュアル車からオートマになったらギアチェンジのことはそんなに考えなくなりましたよね。今は、自動運転みたいな世界になってきている。そうすると、クルマをどうするかは考えていなくて、どこからどこに移動するかしか考えなくなる。そんなパラダイムシフトが起きていることもあるのかなと思います。
OSやAPI群、POSIXの延長線上にあるものと捉える
広木:オンプレのときからたくさんのアクセスを捌いてて、そこからクラウドで急速に伸びていくようになっている。僕はもともと分散OSの研究室にいて、その時やってたようなことがコンテナ含めて徐々に出てきて、「ああ、時代になったな」という感じなんですが、分散システムを作るのは非常に難しいですし、スケールするのが難しいです。
スケールには2つあると思っています。事業として、お客さんのアクセスのスケールと、組織としてのスケールがあって、この2つを実現するアーキテクチャ設計を自前でやるのはとんでもなくしんどいんですよね。データベースもちゃんと複数に分けつつスケールするというのは、すごく難しいです。
かつ、人間の認知能力には限界があるので、組織もスケールして、ちゃんと「君の目的はこれね」「これを叶えてね」という感じで事業のケイパビリティに分割するのはすごく難しい。そのための要素が揃っていないと、大きな会社や大きな技術組織がコアチームを抱えなければできなかったようなことはたくさんあります。
それが順番にコモディティ化していて、それを経験した会社さんのノウハウとしてクラウド・ネイティブ的なものがどんどん提供されていることで、「あっ、これは作らなくてよくなるんだ!」というものがたくさん生まれています。
そうすると今度は、とくにDMMさんみたいにたくさん事業をやっていてスケールしていくと、「この課題を解決したいんだよな」というのがどこかから提供されたり、コントリビュートして現れて、どんどん楽になっていく。
やろうと思ったらお客さんのスケール、従業員というか開発者のスケールという、この2つを実現できるというのが必要になってきた理由というか、もともと必要だったんだけど、ダウンサイズされたという感覚のほうが強いかもしれないですね。
及川:なるほど。言うならば、単体のアプリケーションのときにデザインパターンが出てきたことと、普通に使うようなものはライブラリでもたくさん提供されていて、それを組み上げるだけで基本はできます。
本当に本質の部分のコードを書けばよくなっていることが、頭のいいIDEだとできるじゃないですか。そういったことができるようになったのは、クラウド・ネイティブな環境ができてきたからですね。
広木:そうですね。なので、アプリケーションの実行環境として考えると、OSやAPI群やPOSIXの延長線上にあるものとしてクラウドを捉えなければいけないだろうと考えています。
それまではシステムをたくさん並べられるインフラ領域として理解されていたかもしれませんが、そうじゃなくて実行環境そのものだと僕は思っています。そう捉えないと、ちょっとずつズレていくんだろうなと感じています。
UXの立場から見るクラウドの必要性
及川:わかりました。羽山さんから、UXの立場から見たときになぜ今クラウドが必要になってきていると思われますか?
羽山:お二人のお話にもあったとおり、とくに先ほど松本さんが「実験的」とおっしゃってくださいました。ものを作るときに実験する、試行錯誤するプロセスは昔からありますが、その速度がすごく速くなっている感覚があります。
とくに、2010年ぐらいに『リーン・スタートアップ』が世の中に出て、それをみんなが学びました。それからは、ものを作ってユーザビリティテストをして改善するというサイクルが本当に短期間になりました。
僕自身の経験をお話しすると、今やっている仕事ではミーティングが午前中にあって、前日に作ったプロトタイプをレビューして、午後に2時間ぐらいで直します。社内システムなのですぐ近くにユーザーが座っているので、そのユーザーにライトなユーザビリティテストをしてもらいに行くんですね。そして夕方にもう1回直して、翌日のミーティングでそれをレビューする。そして次のサイクル入るというのが1日で回っています。
そんなとき、やはり実験的なものが許される土台・環境が必要であると思っています。そんなところですごく理にかなっているのではないかと思っています。
及川:なるほど。確かに実験しやすいというところは、UX的なところではすごく大きなメリットですね。
松本:UXだともう1個あって、インフォメーション・アーキテクチャや情報構造など、サービス全体を設計するのがデザインじゃないですか。それをそのまま組織に反映するというところが、先ほど広木さんが言ったOSとしての組織とシステム、ソフトウェアにうまくデザインを投影できるようになってきた、やりたいというのも、クラウド・ネイティブが出てきた背景なのかなと思っています。
情報ドメインというか、「このサービスってこういう構成でそれぞれが設計されていて、ここがとくに強みだよね」ということを見抜いていくのがデザインの作業です。だから、それを組織に反映するのも1つのクラウド・ネイティブの領域なのかなと思いました。
及川:確かにお客さんへのアジリティすなわち提供スピード、実験のサイクルが早くなったというのはありますよね。松本さんが今おっしゃったように、お客さんが使っている状況がすぐにわかるようになる、いわゆる解析というところが、Webサービスやスマホアプリの肝ですが、昔より迅速にわかるようになってきた。
それによって作っている人たちのマインドセットが変わる。それがクラウド・ネイティブになるとよりやりやすくなるところがあるかなと思いますが、それはいかがですか?
羽山:まさにそういった面もあると思っています。また『ソフトウェア・ファースト』から引用させていただくと……。
及川:どんどん宣伝してください(笑)。
羽山:あの本の中ですごくいい事例が紹介されていて、サイボウズさんの事例が紹介されているんですね。
サイボウズさんって、みなさんご存じのとおり、もともとはオンプレのグループウェアを売っていました。間にSIerさんが入ってしまってサイボウズがどう使われるのか結局よくわからない状態だったのですが、クラウドに移行してユーザーに直でつながるようになったので、ユーザーがグループウェア上で何を便利に思っていて、何を不便に思っているのか、ログからリアルにわかるようになった。
それによって開発の人たちのマインドセットも変わっていった事例を紹介されていて、すごくいい話だなと思いました。
及川:そのとおりですね。このあと組織のところでまた触れますが、クラウド・ネイティブになることにより迅速に提供できるようになるとともに、実際のユーザーの行動履歴等から迅速にビビッドに状況がわかるところがモチベーションにも大きく関わってくるのではないかと思います。