どうもあけましておめでとうございます、分散システム界の負け犬こと李徴・ザ・グレートタイガーです。どちらかというといきなり吠えつくよりも山に篭ってこじらせていくタイプです。新春からAWS,サーバレス,コンテナ,マシンラーニング …2017年のクラウドを占う:新春特別企画|gihyo.jp … 技術評論社という記事を目にし、「ウソはいけません」とコメントしたところ何が本当で何がウソか分からなくなってきたので、わたしも2017年のクラウドを占いつつ、件の記事の批評をしてささやかながら新年の書き初めとしたいと思います。
🔥🔥🔥🔥🔥
件の記事ではまず、
そしてこのデジタライゼーションの基盤にあるもっとも重要なテクノロジがクラウドコンピューティングです。
という言葉から理解できないのだが、デジタル化とは何を指すのか?一昔前には「OA化」という言葉が一斉を風靡した。どの企業でも小売なら会計はPOSだし、クレジットカードはどこでも使えるのは、20世紀の時点で達成されている。ビジネスにコンピューターを使うという意味であれば、今更ということではない。…が、クラウドコンピューティングという言葉が出てきているし、この記事がクラウドを主題としているので、おそらくクラウド化のことを指しているのだろうと思われる。
それではクラウドとは何か? ここではとりあえずNISTがいうクラウドの定義を採用するとして、その直後に「レガシーを多く抱える企業にとっては,クラウドへの基幹業務の移行がビジネス再編の大きなカギになるとも言われています」とある言葉はどういう意味だろうか。レガシーというとスバルの車種が最初におもいつくが、レガシーシステムのことだろうか。一般的にはこれは自社がオンプレミスまたはホスティングで抱えている、NISTの定義に当てはまらないコンピューターシステムのことだろう。レガシーな基幹システムをクラウドへ移行することが、自社ビジネスを再編するために必須という主張だろう。
次に分からないのは
S3のデータに標準的なSQLで直接アクセスできるAmazon AthenaはフロントにPrestoをバックエンドにLambdaを使って構成されている
という写真のキャプションだ。PrestoDBを知っている人間なら分かると思うが、PrestoDBは各種DBやファイルフォーマットに対してSQLでクエリをかけられるという便利なもので、ParquetやORCなどを直接読み書きすることができる。S3のクライアントもかなり前に入っている。なので、その間のどこにLambdaが入る要素があるのか自明ではない。
Amazon Athena User Guide — User Guideを簡単にナナメ読みもしてみたが、独自のAPIを持っているということでもなく、管理コンソールとPrestoDBのJDBCドライバーがあるだけのようだ。うーん、どこにLambdaを使うのだろうか…使うところないんじゃないかな…
Evernoteについては当初「サービスローンチ以来,すべて自社データセンターでサービスを提供しており,パブリッククラウドはいっさい使わない」と書かれてる。これを読んですぐに私が違和感を持ったのは、元社員らに聞く「エバーノートはなぜ深刻な状況に陥ったのか」(前編)(原文 "Evernote is in Deep Trouble")を以前見ていたからだ。同社は自前でAS番号をとるほどオンプレミス、自前のシステムに力を入れていたが、実際にはやる気やコダワリがあったのではなく単に迷走していただけなのだと思う。Evernoteというウェブサービスの全体像を考えると、GoogleやFacebookのように高度なシステムは必要ないことが分かったが収穫で、役割はもう終わったのだろう。
記事が出た直後、山口さんの指摘を受けて「しかし2016年9月にこれまでの方針を変更し,Google Cloud Platformへの移行を新たに発表している」という記述が追加された。これはEvernote社の『「どうしてもパブリッククラウドには載せられないワークロードがある」という主張』が変わったことを意味するので、このリストに掲載し続けるのは不適切だろう。
Appleについては「プライベートクラウド上でコンピュートサービスやエナジーサービスを運用する」とある。プライベートクラウドを実現するソフトウェアはCloudStack, OpenStack, Eucalyptus, VMware などが代表的であるがそのどれも利用しているという話を聞いたことはない。本当なら興味があるが、どこかに一次資料はあるだろうか?
問題のきっかけとなったNetflixについては「AWSのほかにGoogle Cloud Platformも併用」とある。GCPの併用については Netflix Backing Could Pump Up Google Cloud Vs. Amazon | Stock News & Stock Market Analysis - IBD くらいしか裏をとれる資料がなかったのだが、Spinnakerで協業したよという話しかないように見える。写真のスライドはNetflixの社員のものではないようだしよく分からない。
続く文章に「一方でDVDビジネスやストリーミングCDNといったワークロードはプライベートクラウド環境を別に構築して稼働中」とあるのだが、わたしはこれは誤りだと思う。スライドを丁寧にみると "Private" としか書かれていないので、これは普通に英語を読んだらオンプレミスシステムのことだろう。DVDレンタルはNetflixからみるといわゆるレガシーシステムでレガシーサービスなので、わざわざそれだけのためにOpenStackなどのプライベートクラウドシステムを構築するとは思えない。実際、元Netflixの人が Episode 216: Adrian Cockcroft on the Modern Cloud-based Platform : Software Engineering Radio で「ちょっと分散システムの実験したいときに200台のサーバーを10分くらいで立ちあげれるのはすごいアドバンテージだよね」と語っているように、彼らがクラウドという言葉を使うときはElasticityが最も重要なのである。だから、DVDレンタルのためだけに(例えば)OpenStackを構築して移行するなんてあり得ない。
CDNについては北米のインターネットトラフィックの37%をNetflixが使っているとかインターネットの形が変わっているという事実を知っていれば、『「どうしてもパブリッククラウドには載せられないワークロードがある」という主張をする企業もあります』というよそよそしい表現にはならないはずだが…AWSがハイパージャイアントになる日が来るのと、日本中の男性がExileになるのと、人類がAWS上に仮想化されてしまうのと *1、どれが一番早いかなあ。
それでも、それでもNetflixならやってくれると俺たちは信じていた。そう信じさせてくれるプレスリリースもあった。だから、CDNはともかくDVDレンタルももうAWSで動いていると思っていた。だから指摘を貰ったときは非常に驚いた。
@kuenishi DVD配送ビジネスはクラウド移行しないと報道されています。たしかにプレスリリースには一言も書いてないのでもにょるんですけど… https://t.co/NwzlKzcsUc
— Hiroaki Yutani (@yutannihilation) January 1, 2017
リンク先の記事を読んでみるとたしかに "exception" という言葉につづいてザックリ書かれていたので、移行完了という簡単な言葉で割り切れるものでもなかったようだ。
この企業紹介、私ならまっさきに楽天とファーストリテイリングを挙げて対照性を論じるけど、そっちの方が面白いって思う人は少数派かな?
次のコンテナという言葉についても疑問がいくつか。
2016年はコンテナの活用が進み,米国ではテスト環境だけでなく本番環境でのアダプションも劇的に増えつつあります
どうして「採用」と書かずに「アダプション」となっているのだろうか。何か特別な意味でもあるのかな? また、続く文章で「AWSやAzureといったパブリッククラウド上で使われることがメイン」と書かれているが、GCPでも当然ながら各種コンテナがサポートされているので、併記されないのはどうしてだろうか? さらにContainer-optimized VM imagesというものが出ているし、Borgの論文にもあるとおり、Googleは全てのOSをLinuxカーネル上の自前コンテナ上で動かしている。その独自実装の上に普及している各種コンテナのアダプタを乗せる方が、XenベースのAWSよりもかなり効率がよいはずで、どうしてここでは言及されないのか分からない。採用事例のデータがあるということだろうか? 2017年はOCIが決まってDocker側が歩み寄ってコンテナ業界はより平和になるだろう。
OpenStackについては私は未来はないと思う。多くのベンダの思惑が入って複雑になっているという印象が強く、完全仮想化ベースのシステムでは効率があまりよくない。それで仮想ネットワークまでサポートして、要件がコンパクトにまとまらない、グローバルにみてユーザーが少なく、中〜小規模のパブリッククラウド事業者か、Walmartのような巨大企業くらいしかない。前者はこれから順に淘汰されていくだろうし、後者は将来的にMesosやYARNのように、より効率のよいデータセンタースケジューラにワークロードを移していくだろう*2。
DevOpsについては、SoEとSoRを分けない限り議論することに意味はない。SoRなシステムでそういうナウいものが採用されることは今後世界中のどこでもあり得ないだろうし、SoEなシステムについては、DevOps的な改善手法を採用しないところは早晩淘汰されるだろう。あとは個別論になるので、新春の概論記事としては必要ない。そこまで注目するほどのことだろうか? わたしはSREという職種がどのように普及していくかの方が興味がある。
そして、最後のまとめの「AI/マシンラーニングやFinTechなど,2016年に話題になったテクノロジはいずれもクラウドを前提にしています」という一文が私にはどうしても理解ができない。どうしても理解ができない。
まず、なぜ「マシンラーニング」であって機械学習ではないのか。先程のアダプションといい、特別な意味があるのだろうか? MapReduceやSparkといった分散処理のミドルウェアが発達し、学習データの量が劇的に増えたことが急激な発展を助けたことは事実だ。しかし、機械学習の理論と実践は分散処理とは本質的には関係ない。2010年頃から分散処理と密結合した機械学習システムはいくつか登場してきたが *3、基本的にはBSPに変形できれば分散処理はできるので、理論的に何かが前提になっているということがあるだろうか? 反例として Retty流『2200万ユーザを支える機械学習基盤』の作り方 - Qiita を挙げておきたい。
次にFinTechだ。フィンテックといわれる領域は大きくマイクロ会計サービス(Moneyforward, Freee, 古くはZaimなど)と、Bitcoinを始めとするブロックチェーン技術に二分される(追記あり)。前者はいわゆる典型的なウェブサービスなので、クラウドを前提としているということはないと思う。トラフィックが急激に増減するようなケースがあるか?というと、ソーシャルゲームと違ってむしろ流行り廃りがなく継続的に使われる類のものであるから、クラウドサービスの根本的な価値であるマシンリソースのプール化とはあまり関係がない。ウェブサービスのスタートアップが物理サーバーをいちいち買っていられないのでクラウド使っています以上の意味はないとすると、何が「前提」なのだろうか?
後者のブロックチェーンについては、おそらくPoWの実現に膨大なマシンリソースが必要なことを指して「クラウドが前提」だと仮定しても、たとえば現在のBitcoinのマイニングはほとんどASICで計算されていて、AWSのEC2を使ったとしても報酬以上のコストがかかる(誰もやってないでしょ…)ことが分かっている。ので、ブロックチェーンのシステムで本質的にクラウドでなければならないことはない。というか、ブロックチェーンの技術については世間で言われているほどの可能性はないので、2017年か2018年にはなかったことになっているのではないかというのが私の予想だ。破壊的イノベーションの一例に持ち出すのは適切ではないと思う。
🔥🔥🔥🔥🔥
記事は全体を通じて、「クラウドに行くか行かないかが問題ではない、いつ行くかが問題だ」「アメリカはこんなに進歩している、日本も乗り遅れないと滅んでしまう」といった論調で占められている。わたしの意見はもっと否定的で、2017年に日本人がクラウドへ昇っていくことはまあそんなにないし、世界がそんなに変わるかというとそうでもないだろう。クラウドへの移行が進むとかそういう話ではなく、いわゆるクラウド事業者にシステムを移せない人は、今年それが変わることが何かあるかというと疑問符がつく。
それには2通りの理由がある。まず技術的な問題だ。端的にいうと、記事中でメガクラウドと言及されている事業者はいずれも、自分たちの基幹ソフトウェアをひとつもオープンソースソフトウェアとして公開していない。じゃあOSSにしたら信用できるかというとそうではなくて、彼らのクラウドサービスが大量のソフトウェアが密結合していて、適切な粒度で公開できないからだ。また、適切な粒度で切れないので、各種仕様もおそらくかなり流動的で、何か障害があったときに根本的な原因を説明できない。おそらく障害時に社内では詳細なレポートが共有されているだろうが、社内の独自システム、独自ソフトウェア、独自ハードウェアのコンテキストが多すぎて対外的には読めたものにはならないだろう。そして、そういう障害は社内の多くのシステムが関わっているために、おそらく全体での再現は不可能だ。だから、最終的には「いろいろあったけど直りました」とレポートすることしかできない。分散システムの実装、運用は本当に地獄ですよ。
次は規制面での問題だ。AWSはSOCレポートの提供やFISCの「金融機関等コンピュータシステムの安全対策基準」への対応をたしかにやっていると表明している。しかしSOCレポートを作成した第三者機関はアメリカのErnst & Young LLPというところが作成していて、それをそのまま日本で関係省庁に提出するだけでよいのか、また、リスクに対する詳細な説明になっているのか心配だ。一度クラウド事業者の提供するSOCレポートを全部読んでみた方がよいのだろう(読めるのか?)
FISCの安全対策基準、本冊子は有料なのですぐには手に入らないからまだ読んでいない。しかし、これへのAWSの対応は、レポートが公開されており、ういった規制への対応は評価したい。しかしながら、残念ながら安全対策基準がオンプレミスのシステムを前提に書かれたものが多く、基準とそれに対する回答が全然合っていない。オンプレミスシステムでの回答であれば前提が共有されているので対応策を一行書くだけでも回答になりうるが、仮想化されたマシン、ネットワークが複雑に絡み合った全く異なるアーキテクチャでは簡単に回答できないはずなのに、こんな感じである。
List of Measures are Copyright © 2012 The Center for Financial Industry Information Systems. AWS Responses are Copyright © 2012 Amazon, Inc.
ぇそれでいいの…?!みたいなのがずーーーっと続く。これで準拠してるって言っていいものなのだろうか。わたしはこちら方面は素人なので是非だれか専門家に解説してほしい。素人意見だが、もしわたしが銀行の情シスで、これしか資料が来なかったら「ナメんな」って怒る。
FISCでもクラウド利用についてはある程度議論がされていて、これ自体はああそうだよねと納得できるものである。ここでも、クラウド利用のリスクとして「インシデント対応の不十分性」(P37)が指摘されており、その対策として金融機関主導の監査が必要(P41)と言われている。メガクラウドといわれている事業者のどこかでも、これ本当にどこまでできんの?!って思う。時代が変われば規制も変わるかもしれないけど、世代が入れ替わるまで待つしかない類のものだ。
じゃあ、ホワイトハウスがプライベートクラウドを大人買いしたように、日本がそのようにIT投資が進んでクラウドにどんどん移行して欧米に追いついていくことがあるだろうか?またそうするべきだろうか?というと私は否定的だ。日本の人口はこれから減って1億人を切ると言われていて、一方で北米、欧州、インドなど英語および欧米圏の人口は合計すると20億人程度だ。市場のサイズに20倍の差があるのだから、まあちょっと考えれば否定的な結論しか出ないだろう。日本で0から出発してコンピュータに投資し続けたウェブサービスがGoogleやFacebookのようには成功しにくいのが現実だ。
それでも希望を持って何か言うとすれば、コンピュータ技術やITサービスではなく、トヨタや楽天、ファーストリテイリング、ニコンのようにコンピュータ以外で世界的に競争力を持っている会社が人的資源、物的資源をコンピュータ技術に集中的に投資して世界的に成功し「コンピュータに投資しない限りチャンスはない」という理解が経営層に広がることが、イノベーションとかディスラプションとか各種バズワード以前に重要なことではないだろうか。そして私も、微力ながらそれに携わるコンピュータ技術者であり続けたいと思うし、2017年に何かきっかけでもないかなと期待しているところだ。
(追記)
「フィンテックといわれる領域は大きくマイクロ会計サービス(Moneyforward, Freee, 古くはZaimなど)と、Bitcoinを始めとするブロックチェーン技術に二分される」と本文で書いたが、実際のフィンテックには、銀行のAPI解放をもとにした各種サービスの結合、APIの共有化、各種リスク計算の高度化などさまざまな分野があるようだ。読者諸賢においては FinTechセンター : 日本銀行 Bank of Japan などを始めとして広大な分野があることを知っていただければと思う。
(追記2)
わたしビューの経過をここにまとめておきます。まずわたしが「ウソはいけません」とブコメしたのち、事実と異なるいい加減なことを書くジャーナリストは有害だと感想を述べたところお返事を頂きました。その後わたしの指摘に対する反例のニュースソースを別の方に提示いただいたので、わたしの指摘は誤っていたことが判明したので謝罪しました。件の記事には誤りやウソがなく、五味さんは誤ったことは書いていないので当然、先の私の感想「適当なこと書いてるとその人の評判落とすどころか、世間には有害」は当てはまらないことになります。私としてはこれでできることは済んだと思ったのですが、やはり件の記事には気になるところが多く、それを改めてここでまとめることにしました。もとの記事は、2016年のまとめとしてはある程度内容が網羅されておりますが、2017年のクラウドまわりの展開を予想するに相応しい内容かというと私には分からないことが多かったです。是非それをオンラインで議論できればと思いましたが、うーむ、因果応報ですかね。