日本のクラウドネイティブ事情とJavaの可能性
クラウドネイティブなアプリケーションはその注目度の高さから、世界的に開発者が急増しているという。須江氏は、Cloud Native Computing Foundationが2020年に発表した資料を挙げた。2019年2Q時点でのデベロッパー数は180万人だったのが、現在は650万人を超えたという。
では日本の状況はどうなのか。須江氏は、クラウドネイティブの優先度を企業に聞いたIDC提供のデータを挙げた。優先度を「非常に高い」と挙げた企業は、全体では11.4%となったが、売上成長率20%以上の企業に絞り込むと、36.8%となっている。
この資料を受け寺田氏は「ビジネスのニーズに対し、いかに速くサービスを届けるためのクラウドネイティブが有用であるかがわかります。日本ではクラウドネイティブに取り組む企業と、そうでない企業の二極化が進んでいると感じられます。旧来のシステムを守っていくことに主眼を置く組織では、対応しにくいのではないでしょうか」と、日本には保守的な組織が多い傾向も述べた。
クラウドネイティブはもともとWeb系のシステムが主だったが、最近ではエンタープライズでも利用が進んでいる。伊藤氏は、「トライ&エラーを繰り返し、市場への導入速度を高められるのが特長です。従来の、重厚長大なシステムとどう住み分けしていくか、大企業からも相談を受けています」と話した。
クラウドネイティブやサーバレスアプリケーションでは、開発言語の選択はPythonや、Node.jsが多い。須江氏は、Javaが選ばれるための課題についてふたりに投げかけた。
寺田氏は「私はJavaが好きです。Pythonや、Node.jsが選ばれるのはわかりますが、Javaには25年のVMの歴史があり、さまざまなライブラリが活用できます。エンタープライズのシステムを作るための豊富な資産・エコシステムがあるのです。クラウドネイティブの環境で活用できるネイティブイメージの登場によって、起動や実行速度に関する問題も解消できますので、どんどん使ってもらいたいです」とアピールした。
クラウドネイティブ環境でJavaが使われていない理由は、もともとWeb系から進化してきたJavaのプラットフォームに対する印象が、「重い」「軽快ではない」というものが多いからだろう。伊藤氏は「JavaにはJITコンパイラという、アプリケーションのワークロードを使ってコードを最適化する仕組みがあります。これがクラウドネイティブ環境では軽快に動かないという印象につながっています。しかし、事前コンパイルなど、実行速度のアップを図る要素技術も出てきました。なんといってもJavaのいいところは、さまざまな環境に対応できる点です。クラウドにも対応していますし、機能面以外でもいろいろなものが作られています。JVMを軸としたエコシステムの大きさやフレームワークの充実は重要なポイントです」と述べた。
続いて須江氏は、クラウドネイティブ環境でJavaを活用するために必要なことや、おすすめのフレームワークついての質問をした。これに対して寺田は、JavaによるWebアプリケーション開発を効率的に行える「Spring Boot」や、Kubernetes(コンテナ化したワークロードやサービスを管理するプラットフォーム)にてJavaマイクロサービスを開発できる「Quarkus」を使うと良いとアドバイスした。
伊藤氏は、ビジネス要件にあわせたフレームワークを採用するべきだとしたうえで、その意味では「Quarkus」を使うことで、これまでのJavaの知識を活かしながらビジネス要件を満たすサービスを迅速に作れると述べた。さらに、「迅速なサービス提供には、チューニング、デバッグ、モニタリングが必要になるので、それらを切り離せるシステムが重要です。部分的な問題を全体に波及させない考え方も重要である」と設計や実装における注意点も説明した。
