検索
連載

ITマネジャーよ、クラウドネイティブ思考でいこうDXに悩むITマネジャーにささげる! クラウドネイティブ講座(1)

「クラウドネイティブ」、やってみたいけど、手元の運用で手一杯。何がクラウドネイティブなのかも分からないし、難しそう……。そういうITマネジャーのためのクラウドネイティブ講座。第1回はクラウドネイティブの本質に迫ります。コンテナやKubernetesといった言葉は出てきませんよ。

Share
Tweet
LINE
Hatena

 デジタルトランスフォーメーション(以下、DX)が叫ばれて久しいですが、皆さんの会社でDXは進んでいますか? この記事の読者には、ITマネジャーのような立場の方がいらっしゃると思いますが、その立場から見て現状はいかがでしょうか?

 世の中を見回すと、「AIで〇〇」だとか「機械学習で××」だとかいうキラキラした話が飛び交っています。一方で自身の手元を見ると、一部はクラウド化を始めたものの、たくさんのレガシー資産が残っている。新しいことはやってみたいけど。既存の運用で手一杯。そもそもクラウドに移行した先にどういう未来が見えるのか、全く分からない。正直DXどころの話じゃない……。そんな方々も多いのではないでしょうか。

 残念ながら、そんな悩みを一発で解消できる都合の良い仕組みはありません。しかし、今後5年、10年、あるいはもっと先を見据えていく中で、ぜひとも覚えておいてほしい「クラウドネイティブ」という考え方を、ご紹介したいと思います。

 「ただでさえも新しい技術で手一杯なのに、さらに新しいものを覚えなきゃいけないのか! 」

 そう思われるかもしれませんが、ご安心ください。今回は第1回ですので、あまり技術に寄りすぎた話はしません。どちらかというと、今後に役立つ「心構え」を中心にお話ししていきます。

オンプレ⇒クラウド⇒クラウドネイティブ?

 申し遅れましたが、私、草間と申します。CloudNative Daysという、国内最大のクラウドネイティブカンファレンスの共同代表を務めております。クラウドネイティブ技術の普及に向けてさまざまな活動を行っていますが、その良さを伝えることの難しさを日々感じています。そういった試行錯誤の中で見いだした、クラウドネイティブの本質の話をさせてください。

 クラウドネイティブの話をする前に、まずはクラウドの話から始めましょう。クラウドに関しては、皆さんも取り組まれている、もしくは既に移行を終わらせたという方が多いのではないでしょうか。

 クラウドとは何でしょうか? 多くの方の認識をまとめると、「所有から利用へ」となるでしょう。これまで自社で所有していたIT資産を、クラウド事業者が運用しているものに切り替える。必要なときに必要なだけ利用し、使った分だけ必要を払う。これがクラウドの分かりやすいメリットであり、皆さんがクラウド化を進める一番の理由でもあるでしょう。

 ではクラウドネイティブとは何でしょうか? 「クラウド」に「ネイティブ」になるということは、全てをクラウドで動かすという話でしょうか? 実はそうではありません。クラウドネイティブ技術の根底に流れる考え方は、もっと本質的なところまで踏み込むものなのです。

クラウドネイティブの定義はいったん忘れよう

 クラウドネイティブとは何かを語る際によく取り上げられる情報として、クラウドネイティブ関連技術の開発・普及推進団体であるCNCF(Cloud Native Computing Foundation)が公開している定義があります。

 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。(https://github.com/cncf/toc/blob/main/DEFINITION.mdより引用)

 これはいったん忘れてください。この定義自体は決して誤っていないのですが、どちらかというと既にクラウドネイティブの考え方を実践できている人向けの説明になっています。初めてクラウドネイティブに触れる人がいきなりこの定義を読んでも、必要性が分からず理解の足かせになりかねません。この定義を読んだ人が、「自分には関係なさそうだ」と調べるのを止めてしまうのを見ると、とてももったいないなと感じます。

 また、他のクラウドネイティブの解説を読むと、「コンテナ」「マイクロサービス」「サービスメッシュ」「Kubernetes(クーバネテス)」といった単語が紹介されていると思います。これもいったん忘れてください。この辺りの技術も、根底を理解した後に調べていただければ良いと思います。

そもそもクラウドネイティブとは何だ?

人類はレバレッジを効かせることで発展してきた

 クラウドネイティブの本質を理解するために、まずはテクノロジー史を振り返ってみましょう。話は数百万年前にさかのぼります。

 人類が登場したのは、およそ500万年前のアフリカと言われています。二足歩行が可能になった人類は石器を生み出し、効率よく狩りや加工ができるようになりました。

 1万5000年前には動物を家畜化し、食料の調達や農耕の補佐に使うようになりました。6000年前には車輪が発明され、3000年前には鉄器が発明されています。新しいテクノロジーが発明されるたびに人類のポテンシャルは高まり、次の発展へとつながっていきました。

 18世紀には蒸気機関が登場し、19世紀にはそれを活用したさまざまな機械が生まれ、数百人が束になってもかなわないほどの動力を得られるようになりました。

 そう、人類は道具や他者の力を発明し、活用することで、自身の能力にレバレッジを効かせて発展してきたのです。1人の人間が行使できる力には限りがあります。しかし、石器を使うことで素手ではできない加工ができ、家畜を使うことで人間の力に頼らない動力を確保し、蒸気機関によって生物では発揮できない強力な動力を手に入れたのです。

 そして20世紀。ついにコンピュータが登場します。これにより、ついに人類は自身の脳で行っていた思考や計算能力にまで、レバレッジを効かせられるようになりました。

 ムーアの法則をなぞるように、コンピュータの速度は向上していきました。人類を月に運んだアポロ計画のコンピュータと比較すると、現代のスマートフォンですら10桁倍以上の計算能力を持っているわけですから、とてつもない速度で人類が扱える能力が拡大していると言えるわけです。

 コンピュータの進化は、計算能力のみならずネットワークという形でも発展し、人々のコミュニケーション手段としても欠かせない存在となりました。

 ここまでのテクノロジー史で、石器時代から変わらない共通点を挙げるとすると何でしょうか。それは、人間が中心となって、技術を行使する点です。「人間が石器を使って狩りをする」「人間が家畜を使って農耕する」「人間が機械を使って機織りする」「人間がコンピュータを使って計算をする」などなど。あくまでも人間 ”が” 何か ”を” 行使するのが、これまでのテクノロジーだと言えるでしょう。

もはや人間だけではコンピュータを使い切れない

 急速に発達するコンピュータの力を使って、企業のビジネス、官公庁の業務、教育のあり方など、組織の活動を変えていこうという取り組みがDXです。「AIを使った○○」「機械学習を使った××」「ビッグデータを活用した△△」みたいなものですね。

 こういった改革をやること自体に異論はないのですが、この考え方は、高まっていくコンピュータの力を余すことなく活用できることを前提にしています。

 しかし、実際手を動かす側の立場では、こう考えているのではないでしょうか。

 「そもそも既存資産のお守りで手一杯だし、クラウド移行もしなきゃいけないし、そこからさらにDX向けの環境増やすの? でも人は増えないんでしょ? 時間はどこから捻出するの?」

 これがDXを巡る理想と現実のギャップであり、日本中どこでも見られる光景だと思います。コンピューターの能力は向上し、やりたいこともたくさん生まれているけれど、それを活用していくための人間の能力が、もはや限界なのです。

  ここで悲報なのですが、今後も管理しなければいけないコンピューティングリソースは増え続けます。数年後には、もしかすると今の数倍の環境を運用・管理する必要があるかもしれません。

 そして朗報ですが、増え続けるコンピューティングリソースをうまく管理していくための技術やベストプラクティスも生まれています。その中の一つが、クラウドネイティブ技術なのです。

クラウドネイティブの本質=「コンピュータでコンピュータを使う」

 コンピュータの管理がもはや限界となったとき、人類が取り得る次の手段は何か。それは、コンピュータの力でコンピュータを管理することです。

 「Latency Numbers Every Programmer Should Know」という、遅延時間をまとめたページがあります。それによると、CPUのL1キャッシュを参照するのに0.5ns、SSDから4KBを読み込むのに150μs、カリフォルニアとオランダをパケットが往復するのに150msかかるといいます。コンピュータというものは、このくらいの時間のオーダーで動いているのです。

 一方、人間はどうでしょうか。例えば、急なトラフィック増やシステム障害があった場合、それを認識してアクションを取るまで、早くて数分、場合によっては数時間かかるかもしれません。さらに、誰かに相談した上でアクションを取る場合、コミュニケーション含めて数日かかることもあります。人間とコンピューターでは、時間のオーダーが文字通り桁違いなわけです。

 生産管理の基本的な考え方に、「制約条件理論(TOC:Theory of Constraints)」というものがあります。製造業に携わる方にはおなじみの理論ですが、「工場の生産性は、ボトルネックの工程以上にはならない」という原理を元に、ボトルネックを改善することで全体のパフォーマンスを上げていこうという考え方です。

 これをITシステムに置き換えて考えてみましょう。

 「設計⇒企画⇒開発⇒構築⇒運用」といった形で工程がありますね、DXを見据えたシステムの場合、一度作って終わりではなく、継続的に発展させていく必要がありますので、この工程はループ状になります。

 構築作業の幾らかはクラウドの活用によって効率化することができます。その他の工程についても同様に効率化は可能なのですが、いくら一部の効率化を図ろうとも、マイクロ秒からミリ秒オーダーで動くコンピュータの中に、分・時間単位で動く人間が入ってしまうと、そこがボトルネックになってしまうわけです。ボトルネックがある以上、スループットは上がりません。結果として、増え続けるコンピューティングリソースを管理できず、破綻してしまいます。


利用状況をチェックし、不足してきたらリソースを増強するというワークフローの例。人間の部分が必要な時間の多くを占めている=ボトルネックとなっている

 全体のスループットを上げるには、全ての工程から人の関与をなくしていく必要があります。コンピュータを使ってコンピュータを動かすことによって、全ての工程がコンピュータのタイムスケールで動くようにすることが大事になってくるわけです。

 全てのクラウドネイティブ技術は、この考え方を実現するために存在すると考えてください。そうすることで、今後説明していく技術の価値が理解しやすくなります。

 なぜこの考え方の実践にクラウドが必要かというと、クラウドはオンデマンド・セルフサービスを実現するためにAPIを用意しているからです。APIがあるということは、コンピュータでコンピュータを動かすのに適した仕組みが存在するということになります。この考えに基づくと、クラウドネイティブを実践するのに必要な環境は、必ずしもパブリッククラウドである必要はありません。冒頭で紹介した「所有から利用へ」という要素は必要要件ではないのです。

 必要条件は「APIで操作可能であること」であり、これを満たすのであれば自社で所有する形のプライベートクラウドでもかまいません。CNCFのクラウドネイティブの定義が「パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において」と前置きしているのは、これを意味しているのですね。

クラウドネイティブ思考で行こう

 技術的な知識も大事ですが、今後DXを進めるに当たって必要なのは、この「コンピュータでコンピュータを動かし、人の関与を減らす」という根本の考え方を、全員が理解しておくことです。これを、「クラウドネイティブ思考」、もしくは「クラウドネイティブ・マインドセット」と呼んでいくことにしましょう。

 この思考ができないと新しい技術に対する理解が進まないだけでなく、一部にだけ新技術を導入して満足してしまう、つまり、TOCでいう部分最適にとどまってしまう可能性があります。場合によっては、せっかく新技術を導入したのにもかかわらず、人間の関与までも増やしてしまい、結果として全体のスループットが悪化してしまうというケースすらあり得ます。

 もしかすると、あなたが失敗した過去の○○プロジェクトは、このクラウドネイティブ思考の欠如が原因だったのかもしれませんよ?

 次回以降、クラウドネイティブ思考に基づきながら、クラウドネイティブ技術についての解説をしていきたいと思います。

 それではまた!

特集:マネージャーこそ知りたい「クラウドネイティブ」大注目のワケ

人々とビジネスをつなげる「アプリケーション」は企業価値の源泉といっても過言ではない。ITを通じたビジネス提供が常識となる中で、 なぜ「クラウドネイティブ」は注目されているのか。本特集は“マネージャーこそ知りたい”と題し、クラウドネイティブの基本と本質に立ち返る。



Copyright © ITmedia, Inc. All Rights Reserved.

[an error occurred while processing this directive]
ページトップに戻る