Blogs
7

Thought Machine

August 5, 2020

クラウドネイティブとは何か?CNCFのシェリル・ハン氏へのインタビュー

クラウドネイティブとは何か?CNCFのシェリル・ハン氏へのインタビュー

先月、当社がCloud Native Computing Foundation(CNCF)への加盟を発表したことを受け、業界で最も熱心なアンバサダーの一人であるシェリル・ハン氏にお話を伺う絶好の機会を設けました。当社のシニアチームの多くと同様にGoogleの元エンジニアであるハン氏は、現在CNCFのエコシステム担当副代表として、当社も加盟しているエンドユーザーコミュニティを率いています。また、同氏はロンドン最大かつ最も活発な開発者ミートアップコミュニティである Cloud Native Londonの創設者でもあります。私たちの情熱がどのように重なり合い、なぜコアバンキングにクラウド技術が必要なのか、その理由を以下にご紹介します。

KubeCon.PNG

クラウドネイティブがこれほど注目される理由は?

インターネットの黎明期以来、これほど多くの企業が一つのパラダイムのもとに結集した技術的なムーブメントは他にないと思います。インターネットが登場したとき、誰もがそれに対応せざるを得ませんでした。クラウドネイティブは、技術インフラに対してそれと同じような影響を及ぼしています。

個人的な話をすれば、10年前にGoogleでキャリアをスタートさせたときから、クラウドネイティブは私の身近にありました。Googleは何年も前からこの方法でソフトウェアを構築してきました。今や当たり前の、標準的な手法です。そのため、エンジニアの視点からクラウドネイティブを理解し、なぜそれがこれほど有効なのかを実感してきました。こうした考え方を他の組織にも広めていくことは、私にとって非常にエキサイティングなことです。

クラウドネイティブとは何を指すのでしょうか?

それは一つの「考え方」です。単一のサーバーやインフラ上で動作するように構築するのではなく、ハードウェアから抽象化し、どこでも動作するアプリケーションへと移行する考え方です。Azureで実行することも、AWSでスケールさせることも、オンプレミスで動かすことも可能です。人々はKubernetesやクラウドネイティブアプリケーションで使用されるツールに注目しがちですが、本質はこの考え方にあります。

では、単にソフトウェアをクラウドに移行するだけではないということですね?

その通りです!水平方向にスケールするようにソフトウェアを構築するには、根本的な考え方の転換が必要です。また、ハードウェアが故障しても問題なく適応できる、回復力のあるソフトウェアを構築することも可能になります。「クラウドネイティブとは、既存のものをクラウドに移してホスティングコストを少し節約することだ」というのは誤解です。全く違います。

クラウドネイティブアプリケーションではマイクロサービスが一般的ですが、なぜそれほど重要なのでしょうか?

マイクロサービスとは、アプリケーションを細分化する手法です。各マイクロサービスは自律的なユニットであり、APIを介して他のマイクロサービスと通信します。鍵となるのは独立したチームです。例えば、100人の開発者が同じソフトウェアに取り組む場合、膨大な調整が必要になります。そこでアプリケーションを細分化します。そうすれば、例えば7人のエンジニアが1つのチームとして単一のマイクロサービスを担当することができます。他のチームの作業を待つことなく、独立して開発を進めることができるのです。

また、マイクロサービスは回復力ももたらします。モノリシックなアプリケーションの問題は、すべてが密接に統合されすぎていることです。銀行の場合、投資部門がダウンすると、商業銀行業務全体が停止してしまう可能性があります。だからこそ銀行は境界線を設け、互いに関係のない部門を分離するのです。マイクロサービスは、これをより細かく粒度の高いレベルで行います。ATMが故障しても、オンラインバンキングへのログイン機能まで停止してはいけません。マイクロサービスは、本来依存すべきではないものを切り離すのです。

CI/CDもクラウドネイティブの重要な概念の一つであり、銀行にとっては非常に大きな意味を持ちます。なぜでしょうか?

継続的インテグレーションおよび継続的デリバリー(CI/CD)とは、半年ごとの大規模なアップグレードを待つのではなく、毎日、あるいは1日に何度もコードを更新できる仕組みのことです。これには自動テストや、以前のバージョンへの容易なロールバック、そして何よりもダウンタイムなしで更新を行う能力が含まれます。

基本的な考え方は、年に2回まとめて変更を行うよりも、1日1回や週に数回といった単位で段階的に変更を行う方が安全だということです。それぞれの変更はテストと監視が可能であり、うまくいかなければロールバックできます。対照的に、銀行が伝統的に採用してきた「ビッグバン」方式はリスクが非常に高いものです。一度に1,000もの変更を適用して問題が発生した場合、原因を特定するのは極めて困難です。CI/CDが登場する前、銀行は失敗のリスクを恐れてソフトウェアのアップグレードに非常に慎重でした。

「30年前の技術に固執している銀行は、取り残されていくでしょう。」

では、CI/CDは銀行のイノベーション能力を向上させるのでしょうか?

CI/CDがなければ、銀行は問題を抱えることになります。半年ごとのアップグレードスケジュールで動くチームと、それよりも速く動くチームが存在し、両者の間に大きな隔たりが生まれるからです。これは銀行内でよく見かける光景です。CI/CDはこの隔たりを解消します。銀行は準備が整った時点でアップデートをデプロイできるようになります。小さな変更を適用し、必要に応じてロールバックできるという心理的な安心感が得られるため、CI/CDはイノベーションを促進するのです。

クラウドネイティブなツールはコミュニティ全体で共有されています。この標準化は参加者にどのようなメリットをもたらすのでしょうか?

私自身の経験でお話ししましょう。Googleにいた頃、私たちはコンテナ管理にKubernetesではなくBorgを使っていました。BorgはGoogle独自のものです。問題は、Googleを離れたときに私の知識やスキルがすべて時代遅れになってしまったことです。Google以外でBorgを使っているところはどこにもなかったからです。

クラウドネイティブの世界は、オープンソースの標準ツールで構成されています。エンジニアは転職しても同じツールを使い続けることができます。これにより、企業は即戦力となる人材を採用しやすくなり、教育期間を短縮できます。新しい従業員は、すべてがどのように機能するかを理解した状態で業務を開始できるのです。

コミュニティはクラウドネイティブの成功にどのように貢献しているのでしょうか?

コミュニティの存在は非常に重要です。クラウドネイティブツールを活用するということは、世界中の人々からなるコミュニティのイノベーションを享受できるということです。彼らはそれぞれ異なる課題を抱えていますが、全員が解決策を共有リソースとして還元しています。Cloud Native Computing Foundation(CNCF)には、Apple、eBay、Mastercard、Morgan Stanley、Ant Financialなど550以上のメンバーが参加しており、CNCFプロジェクトには9万人以上の貢献者がいます。クラウドネイティブツールを使うことは、そうした共有された専門知識の恩恵を受けることなのです。

CNCFはどのような役割を担っているのでしょうか?

CNCFはLinux Foundation傘下の組織で、ブロックチェーンやAIなどの他の財団と並んで活動しています。CNCFはKubernetesの拠点として設立されました。中立的な立場を保つことで、特定の企業がクラウドネイティブツールに対して不当な影響力を行使できないようにしています。オープンなガバナンスを採用しているため、意思決定のプロセスは誰にでも透明です。また、イベントの運営も行っています。

銀行も参加できるのでしょうか?

もちろんです。もっと多くの銀行に参加してほしいと願っています。現在、Adidasのような企業が貢献しています。彼らはKubernetesを商業上の機密とは見なしていません。Adidasの靴が売れるのは、同社がKubernetesで動いているからではないからです。そのため、彼らは喜んでコミュニティと経験を共有しています。銀行はこれに消極的ですが、今後は自ら関与し、アイデアや解決策を共有し、エンジニアがコミュニティと交流しやすい環境を整える段階に進むべきです。

あなたは個人的に「Cloud Native London」と「CNCF Financial Services Group」も運営されていますね。どのような活動を行っているのですか?

Cloud Native Londonはミートアップグループで、クラウドネイティブ関連では世界最大級の規模です。2017年に私が立ち上げました。月に一度、人々が集まって交流し、経験を共有する場です。現在はオンラインで開催しています。CNCF Financial Services Groupは、企業が集まって月に一度オンラインで課題を議論するグループです。メンバーがどのように社内でオープンソースを活用し、SlackやGitHubを導入するかといった組織的な課題から、技術的な課題まで幅広く扱っています。現在はCNCFメンバー以外にも門戸を開いています。

最後に、クラウドネイティブは銀行にとってどれほど劇的な変化をもたらすのでしょうか?

レガシーシステムを抱える銀行は不安を抱えています。システムの更新に不安を感じ、チャレンジャーバンクとの競争に不安を感じています。そして、その不安はもっともです。30年前の技術に固執している銀行は、取り残されていくでしょう。

クラウドネイティブソフトウェアを採用することは、新しい考え方を受け入れることを意味します。小さく段階的な変更が可能になるため、迅速にイノベーションを起こし、顧客が求める製品を提供できるようになります。すでにクラウドネイティブシステムの恩恵を受けているチャレンジャーバンクと競うことも可能になるのです。

これは選択の問題です。古い技術に固執して取り残されるか、それともクラウドネイティブを取り入れて競争の先頭に立ち続けるか。

Thought Machineは、Cloud Native Computing Foundationのメンバーです。

詳細はこちらをご覧ください: CNCF.io