Cloud Native Computing Foundationの公式な日本チャプターとして活動するCloud Native Community Japan。そのキックオフミートアップで語られたクラウドネイティブの現在と日本の貢献とは。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
日本におけるクラウドネイティブの普及促進を図り、日本からのコントリビューションを促進していくことを目的に、2023年11月8日に設立されたCloud Native Community Japan(CNCJ)のキックオフミートアップが2023年12月に開催された。
CNCJは、クラウドネイティブにおける技術革新の場になっているCloud Native Computing Foundation(CNCF)の公式な日本チャプターとして活動していく。オープンソースソフトウェア(OSS)に興味を持つエンジニア同士をつなぎ、CNCFの認知度を高め、クラウドネイティブの分野において日本からのイノベーションを生み出していきたいという。
CNCJ発起人の一人、中村雄一氏(日立製作所)はミートアップ冒頭のあいさつに立ち、あらためて設立の背景を説明した。
CNCFの活動は活発化し、グローバルの主要ベンダーだけでなくユーザー企業がこぞってさまざまなコントリビューションに携わっている。成果発表の場「KubeCon」にも万単位の参加者、さまざまな発表がある。
一方で、日本におけるCNCFの活動はあまり活発ではないという。「これまで公認コミュニティーがなかっただけでなく、コントリビューションも盛んではありませんでした。DevStatを見ても、日本企業は上位100社中3社という状況で、日本はクラウドネイティブの分野では技術面で付加価値を十分に出せていない」(中村氏)
CNCJはこうした状況に一石を投じ、CNCFと日本の企業や団体、コミュニティーをつなぎ、日本におけるクラウドネイティブの普及と、日本からのコントリビューションの促進を図るために設立された。「ひいてはそこから、クラウドネイティブの技術革新を促すのが目的だ」(中村氏)
具体的な活動としては、今回のようなミートアップの開催に始まり、日本語化プロジェクトの推進、コントリビューター向けのメンターシップなどを計画している。中村氏は「CNCFへのアップストリームを重視して活動したい。コントリビューションに興味を持つエンジニアの出会いの場にしていきたい」とし、さまざまな側面から日本からの活動が発信されることに期待を寄せた。
本家CNCFは、2015年12月の設立から8年目を迎えた。CNCFのCTO(最高技術責任者)、Chris Aniszczyk氏は基調講演の中でその歩みを振り返り、「クラウドネイティブは信じられないほどの広がりを見せている」と述べた。
今やCNCFには世界で190カ国以上、22万人以上のコントリビューターが寄与しており、会員数は24社の日本企業も含めて800社を超えている。ローカルなコミュニティーの活動を支援し、継続的に成長していく観点から、「CNCFの正式なチャプターとしてCNCJが発足したことは非常に喜ばしいことだ」(Aniszczyk氏)とした。
Aniszczyk氏によると、クラウドネイティブの普及に伴って2つのトレンドが起きているという。
1つ目は、イノベーションの源泉がいわゆる伝統的なベンダーから、より小規模なベンダーやコミュニティーに移ってきていることだ。
2つ目は、パブリッククラウドやクラウドネイティブの浸透や投資がまだまだ不均等で、特に日本ではまだ遅れている傾向にあることだ。ただ「調査によれば、今後数年で日本のクラウドネイティブは加速し、拡大すると予想されており、伸びしろは大きい」とAniszczyk氏。現にCNCFで進んでいる174のプロジェクトの中には、後述する「Keycloak」をはじめ、「fluentd」「PipeCD」など日本のコミュニティーが大きく貢献しているものが多々存在する。
かつて、非常にシンプルで、趣味のOSのように思われていたLinuxが、今やさまざまなITシステムはもちろん、店舗のPOS(Point of Sale)システムや人工衛星システムなどあらゆる環境で活用されている。「もともとはデータセンターでの動作を念頭に置いて生まれたKubernetesも同じように、ソフトウェアのオーケストレータとして新しい環境で活用されるだろう」とAniszczyk氏は期待している。
近年の取り組みにはどんなものがあるのだろうか。
まず2019年以降、クラウドネイティブやマイクロサービスの領域では、オブザーバビリティの標準化に向けた動きが進んでいる。また2021年ごろからeBPF(extended Berkeley Packet Filter)への注目が高まり、既存のセキュリティを、eBPFを用いて再設計しようとする動きも始まっている。そして2022年になるとWebAssembly(WASM)やWASI(WebAssembly System Interface)が話題を集め、成熟に向かおうとしている。
Aniszczyk氏はこうした“いきさつ”を振り返った上で、「次の進化は何かとしばしば尋ねられるが、答えるのはなかなか困難だ」とした。ただ、かつては「クレイジーなアイデア」とされたサービスメッシュを推進して普及させ、今となっては至るところで使われるようになったのと同じように、「新たなニーズを満たしながら、eBPFやWASMといったテクノロジーを普及させ、標準的なものにしていくイノベーションのサイクルを推進したい」とした。
そして最後に、ニューヨークの小さなオフィスから始まったCNCFがグローバルに広がったことを踏まえ、「ぜひより多くの人に参加し、さまざまな方法でコントリビューションしてほしい」と呼び掛けた。
続けてCNCFのJeffrey Sica氏が、これまで日本で活動してきたメンバーに感謝の意を示すと同時に、より多くのコントリビューションを呼び掛けた。
コミュニティー活動に興味はあっても「コードを書く自信はない」と感じる人もいるかもしれないが、実はコントリビューションの方法はさまざまだ。Sica氏は一例として「翻訳」、中でも「CNCF用語集」日本語版への参加を挙げた。「翻訳もコミュニティーにコントリビューションする簡単な方法の一つ。他の人々の助けにもなるはずだ」(Sica氏)
ちなみに、LINEヤフーの北村壮大氏によると、CNCFの関連ドキュメント1465点のうち日本語に翻訳されているのは365点で、全体の約4分の1にすぎないという。中国語の翻訳などが充実している一方で、日本語訳はまだまだという状況だ。「翻訳プロジェクトに参加すると、普段の業務ではまず読まない全てのドキュメントを読み込むことになるので、非常に詳しくなれる。トラブルシューティングの際に『あ、これだ』と思い当たることもできる」(北村氏)
「いきなりKubernetesのような大きなプロジェクトに飛び込むのではなく、Sandboxといった初期段階の小さなプロジェクトに参加し、手慣らしをするのもいい方法だ。自分が見つけたときよりも良いものを残すことこそ、オープンソースの本質。問題の指摘やフィードバック、あるいはミートアップへの参加や発表も立派な貢献だ。ぜひ積極的に取り組んでほしい」(Sica氏)
CNCJの設立が発表されたのは、2023年11月にシカゴで開催された「KubeCon + CloudNativeCon North America 2023」(以下、KubeCon NA 2023)でのことだった。CNCJのオーガナイザーの一人、青山真也氏(サイバーエージェント)が、KubeCon NA 2023の概要と主なトピックを紹介した。
KubeCon North America 2023には、世界から約9000人が参加した。参加者数はコロナ禍の時期こそ落ち込んだものの、今は回復傾向にある。2022年の7400人から大きく増え、会場は人でいっぱいだったそうだ。日本からもおそらく60人以上が参加したとみられており、現地では日本人同士の交流会も催された。
KubeConでは、本編となるカンファレンスだけでなく、特定のトピックに特化した「Co-located Events」が前日に行われている。「2023年は、アプリケーション開発者向けの『AppDeveloperCon』『Cloud Native Startup Fest』など、Co-located Eventsのレパートリーが増えていた」(青山氏)。2024年3月にパリで開催予定の「KubeCon + CloudNativeCon Europe 2024」ではさらに増え、「OpenTofu Day」「ThanosCon」なども加わる予定だ。
なお「KubeCon India」の開催もゲリラ的に発表されており、青山氏は「Japanも負けていられない。いずれは『KubeCon Japan』を開催できれば」と意欲を見せた。
さて、KubeCon NA 2023のキーノートで中心になったのは、やはりAI(人工知能)関連の話題だった。「OpenAIやNVIDIA、Hugging FaceのアプリケーションがKubernetes上で動いており、特に『ChatGPT』では7500ノードという大規模なKubernetes上で稼働しているという事例が紹介された」(青山氏)
そうした話題の裏返しとして、大量のコンピューティング資源を使っていく中で、「どう電力を削減し、カーボンニュートラルを推進するか」といった活動に関するメッセージもあった。
CNCJの活動の後押しにもなりそうなトピックとしては、NTTの須田瑛大氏がTop Committer Awardを受賞したことが挙げられる。日本はもちろん東アジア地域でも初の受賞であり、ミートアップ会場に参加していた須田氏には盛大な拍手が送られた。さらに「Kubernetes Contributors Summit」でも、3人の日本人がKubernetes Contributor Awardsを受賞していた。
こうした全体的な概要に加え、青山氏は、自身のアンテナに引っ掛かったトピックとして、「オブザーバビリティに関するホワイトペーパーのリリース」「オブザーバビリティのQuery言語の標準化」「Kubernetes自体のロードテストツール『Kube-burner』のSandbox申請」などを挙げた。
中でも興味深かったのが、Gateway APIに関するセッションだったという。Gateway APIは、外部からのKubernetesクラスタ内へのアクセスを制御する「Ingress」が抱えるさまざまな課題を解決するために開発されたもので、2023年10月31日に一般公開となった。
Ingressを置き換えるものではないという位置付けだが、「リソースを幾つかに分割し、例えばインフラ担当者とアプリケーション開発者それぞれの責務に沿ってリソースを区切り、おのおので設定を可能にする方針で設計されている」と青山氏。Gateway APIによってインフラ担当者はTLD(Top-Level Domain)やバーチャルホスト周りの設定に専念し、一方アプリケーション開発者はパスの設定を担当するといった具合に、すっきりと役割を分担できる。
OSSプロジェクトによくあることだが、Gateway APIの開発もさまざまな試行錯誤を重ねながら進められていった。セッションではそうした紆余(うよ)曲折が紹介された他、サービスメッシュに対するゲートウェイ操作をGAMMA(Gateway API for Mesh Management and Administration)で定義する動きについても言及があった。
またGateway APIの機能追加は、Gateway Enhancement Proposals(GEPs)というフローで管理されている。
「こういったところを見ていくと、今後どういった機能が追加されるかが見える上に、コメントやレビューをすることでプロダクトを良い方向に導けることもある」(青山氏)
関連して、「Ingress-NGINX Controller」が2024年にGateway APIに対応していく計画もある。ただその前段階としてIngress-NGINX Controller自体の肥大化したアーキテクチャを整理し、リファクタリングする必要があり、興味のあるエンジニアにはぜひコントリビューションを推奨したいという。
別のライトニングトークでは、Kubernetesの共同創設者で、現在もコアメンテナーを務めているTim Hockin氏が、機能が複雑化している「Service」リソースの一部の機能をGateway APIに統合し、Service自体をシンプルにしていくアイデアを披露していた。
「ServiceはPodを抽象化し、グルーピングする機能のみに絞り、接続点を持たせる部分はGateway APIに任せるという形で分離しましょう、というアイデアだ」(青山氏)
このように、KubeConは幅広いトピックに関して最新動向が得られる場であり、自身のアンテナ次第でさまざまな掘り下げができる上に、登録すればセッション動画も参照可能だ。「パリで開かれる次回のKubeCon Europe 2024には、日本からより多くの人が参加してほしい」(青山氏)
基調講演で触れられた通り、CNCFでは170を超えるさまざまなプロジェクトが進められており、成熟度に応じて、初期段階に当たる「Sandbox」から、「Incubating」「Graduated」と分けられている。ID&アクセス管理のOSS「Keycloak」は、2023年4月にIncubatingになったプロジェクトだ。
このKeycloakや、API管理を実現する「3scale」にコントリビューションしている田畑義之氏(日立製作所)が、Keycloackについて紹介した。
今や、どんなシステムやサービスを利用するにも認証、認可が不可欠。Keycloakはその部分を担うOSSだ。特徴は、OAuth 2.0やOpenID Connect、SAML(Security Assertion Markup Language)といった標準仕様に準拠し、シングルサインオンでセキュリティと利便性を両立できること。LDAPサーバやActive Directoryといったオンプレミス環境でのID管理システムとの連携や、GitHubやX(Twitter)などと連携してのソーシャルログインも可能だ。
「KeycloakのGitHubのスター数は約1万8000個に上っている。2022年のOpensource Projects with Highest Contributor Growthで7位にランクインし、CNCFプロジェクトのベロシティ(成長速度)ランキングで7位に入るなど、近年、目覚ましく成長している」(田畑氏)
日本からのコントリビューションも積極的だ。日立製作所の乗松隆志氏が9人目のメンテナーに就任した他、田畑氏がコミット数を独自にカウントしたところ、上位100人中6人が日本人によるものだった。さらに企業単位で見ると、コントリビューター数、コミット数、共に日立製作所がRed Hatに次いで2位の貢献を示している。
Keycloakはどんなユースケースで活用できるのだろうか。
まずは、アプリケーションへのログイン時の認証処理を担うケースだ。「セキュリティのベストプラクティスは年々進化しており、スクラッチでユーザー認証処理を作るとセキュリティホールを作り込む可能性がある。このため、ユーザー認証処理を外部に委譲するのは一般的な手法だ」(田畑氏)
その点でKeycloakは一般的なWebアプリはもちろん、モバイルアプリ、PCアプリなどに幅広く対応し、前述の通り、標準的な認証プロトコルもサポートしている。認証方法についても、オーソドックスなパスワード認証をはじめ、ワンタイムパスワード認証、外部のIdP(Identity Provider)を用いた認証、さらに生体認証を組み合わせてパスワードレス認証を実現するFIDO2の重要な構成要素であるWebAuthnなどに対応している。「さらに、必要に応じて独自の認証を組み込む仕組みも用意されており、幅広いユースケースに対応できる」(田畑氏)
別のユースケースは、API経由でユーザーのリソースにアクセスする際の認証、認可だ。「APIは攻撃者に非常に狙われやすいポイントだ。このため、API認可のデファクトスタンダード、OAuth 2.0にセキュアに準拠することが必要だ。Keycloakはそうしたニーズにも適している」(田畑氏)
さらに、スマートTVなどのデバイスにおける認可の拡張仕様RFC 8628もサポートしている。このため、Webブラウザが直接動かない環境でもQRコードを読み取ることで認可処理を行い、ユーザーの属性に応じたサービスを提供できる。
田畑氏は「ユーザー以外の第三者が、アプリケーションに対し、自身のリソースへのアクセスに対する同意を与えるやや特殊なユースケースにも対応できる」と説明した。具体的には、医師が患者の診断情報を取得したり、レジでキャッシュレス決済を行ったりといった場面だが、Keycloakはこれも、OpenID Client Initiated Backchannel Authentication(CIBA)に対応することで実現できる。
このように「数多くのシチュエーションにおいて、Keycloakが認証、認可の機能を担える」と田畑氏は述べる。とはいえ、Keycloackの開発はまだまだ継続中だ。2023年11月24日にはKeycloak 23が、2024年3月4日には最新版の24がリリースされたばかりとなっている。
なおKeycloak 23には、「The Financial-grade API(FAPI)2.0」や「OAuth 2.0 Demonstrating Proof of Possession(DPOP)」のサポート、パスワードレス認証を実現する「Passkeys」、プライバシーやパフォーマンスの観点から格納する情報を減らし、アクセストークンを軽量化する「Lightweight Access Token」といった機能が加わった。
攻撃と防御はいたちごっこと言われるが、攻撃者はアクセストークンを入手するためにあの手この手を考えてくる。認可リクエスト改ざん攻撃や認可コードインジェクション攻撃、アクセストークン横取り攻撃などがその一例だ。FAPI 2.0はそうした攻撃に対応するための仕様で、金融業界に限らず、より高いセキュリティ保護が求められるAPI全般に適用できる。DPOPも同様に、非対称鍵ペアを用いて検証することで、アクセストークン横取り攻撃を検知する仕組みだ。
このように、日本からのコントリビューションも含め、まだまだ機能追加が続くKeycloak。田畑氏は「今日のイベントを機に、CNCFの活動を日本でも盛り上げていきたい。Keycloakはその最初の一歩としてお薦めのプロジェクトなので、ぜひ触れてみてほしい」と呼び掛け、セッションを終えた。
Copyright © ITmedia, Inc. All Rights Reserved.