まる見え!クラウドネイティブ(2):クラウドネイティブ実現の難しさ

2024.05.07
マルチクラウド 基礎 クラウド活用 クラウドネイティブ パフォーマンス改善
まる見え!クラウドネイティブ(2):クラウドネイティブ実現の難しさ

はじめに

日鉄ソリューションズ株式会社のシステム研究開発センター(シス研)に所属する原です。近年日本においても注目度があがっているクラウドネイティブについて複数回にわたり発信しています。第1回目は「歴史と定義」編として、それぞれを簡単に紹介しつつ、クラウドネイティブは信頼性とアジリティを両立する革命的なシステム構築手法であることを解説しました。まだ読まれていない方は、ぜひご覧ください。

さて、第二回目はクラウドネイティブシステムの構築って難しいの?ということをテーマに解説していきます。

クラウドネイティブがなぜ今、重要なのか?

まずは、なぜアプリケーション開発においてクラウドネイティブが近年注目されているのか、というところから見ていきましょう。前回の「歴史と定義」編では、2015年のCNCFの誕生とともにクラウドネイティブというワードが登場したという話をしましたが、それ以前に遡ると、2001年頃にアジャイル開発※1、2006年頃には前回のブログ内でご紹介した通りクラウド、2009年頃にはDevOps※2、2014年頃のマイクロサービス※3といったように、近年のトレンドを象徴する概念が注目されるようになります。これらの概念はそれぞれ登場してきた視点や状況こそ異なるものの、すべて「変化への素早い対応」という共通のニーズが根底に存在しています。そして2019年前後には日本にもデジタルトランスフォーメーション(DX)の波が訪れます。2020年に経済産業省がデジタルガバナンス・コード2.0の中で定義したDXの定義※4を見てみましょう。

企業がビジネス環境の激しい変化に対応し、データとデジタル技術を活用して、顧客や社会のニーズを基に、製品やサービス、ビジネスモデルを変革するとともに、業務そのものや、組織、プロセス、企業文化・風土を変革し、競争上の優位性を確立すること。

この定義でも言及されている通り、DXの実現には、素早く変化する市場の要請に対応する力を各企業が身に着けることが競争力につながる重要なポイントと言えます。こうしたDXの波を後押しにして、クラウドネイティブは各企業の競争優位性を支えるデジタル技術のひとつとして注目されているのです。

クラウドネイティブの難しさ

ではクラウドネイティブの難しさはどこにあるのでしょうか?前回の「歴史と定義」編で紹介したクラウドネイティブの定義にあったように、クラウドの持つ特性を最大限活用しスケーラブルなアプリケーションを構築する手法を追求すること自体に、その難しさがあります。難しいとされる理由を下記の通り、順に三つほど紹介します。

  • システム構成の複雑化
  • 技術的選択肢が非常に多い
  • 組織や人材の役割分担の変化

1. システム構成の複雑化(アプリケーション数の増加×インフラの多階層化)

クラウドネイティブはマイクロサービスアーキテクチャと組み合わせて構築されることが多いです。そうなると、アプリケーションはより小さく作られ、それらのアプリケーションを疎結合で構成することになり、アプリケーションの数が増加します。またアプリケーションを支えるインフラの構成要素としても、従来のOS層の上にコンテナ層が追加され、さらにクラウドを使う場合には様々な機能をサービスと組み合わせることを検討するなど、従来に比べて多階層になります。
アプリケーション数の増加(マイクロサービス化)とインフラレイヤの多階層化(図1参照)によって、従来のシステム構成に比べて、大幅に複雑化することになり、それを設計・運用できる高度なIT人材が必要になってきます。

図1:複雑化するシステム構成

2. 技術的選択肢の多さ

二つ目は、技術的選択肢が非常に多いという点です。クラウドネイティブを構築するときは、一般的にパブリッククラウドを選択することが多いです。各クラウドベンダは次々に新サービスや機能アップデートを発表し、CNCFがホストするオープンソースを中心としたプロダクト、プロジェクトは現時点で1,000を超える数があります※5。こうした多種多様な技術トレンドの変化や組み合わせ・実績・運用性などを考慮して、ベストな手段を選択するのは、非常に骨の折れる作業です。めまぐるしくアップデートされる情報の中から、必要な情報を的確に収集し業務に活かしていくためにも、市場トレンドの把握を生業にしているシステム構築に長けたパートナーと付き合っていくことも有効でしょう。

3. 組織や人材の役割分担の変化

三つ目は、組織や人の役割分担が変化している点です。例えば、クラウドを活用すればするほど、自由度が高いIaaSではなく高度にマネージドされたPaaSやSaaSを組み合わせてアプリケーションを実装していきます。そうなると、それらの特性を踏まえた上で、足りない信頼性をアプリケーション内で作りこむ責務がアプリケーションを開発する開発者に求められます。アプリケーションとインフラを分業して担当していた従来の開発体制ではその責務をこなすことが難しいため、従来の組織設計の見直しやエンジニアの多能工化が必要になってきます。ここはアプリケーション、インフラまでカバーしたフルスタック型の組織づくりや地道な人材育成施策を実行することが大事です。

図2:クラウドネイティブ推進に求められる組織の在り方

クラウドネイティブの実現は、技術だけではなく組織など複数の要因が重なった上に成り立つものであるため、従来の分業型のシステム開発体制のままでは対応できないことが多く、内製開発が進んでいる一部の企業を除いては、まだまだその普及はこれからの段階です。

おわりに

今回はクラウドネイティブの難しさについて解説しました。クラウドネイティブを実現するためには、様々な取り組みを推進する必要があると理解できたのではないでしょうか。また、昨今では、クラウドネイティブを推進できる高度IT人材の確保が思うようにいかず、プロジェクトが進まない、なんてこともあるのではないでしょうか?そうしたお客様の課題に対して、当社ではITシステム構築の上流工程ノウハウ提供からSI実務の細かなご相談に至るまで、お客様とともに考えご支援する、伴走型のプロフェッショナルサービス「xSource(クロスソース)」をご提供しておりますので、ぜひあわせて詳細をご覧になってみてください!
さて、まる見え!シリーズの次回からは、先述したクラウドネイティブを実現する三つの難しさのうち、複雑性に対応するために知っておくべきオブザバビリティという考え方に焦点を当てて、解説していきたいと思います。日本ではまだ馴染みのない概念だと思いますので、ぜひ引き続き一緒に学んでいきましょう。

関連ページ

おすすめブログ

まる見え!クラウドネイティブ(1):歴史と定義
まる見え!クラウドネイティブ(1):歴史と定義
今回から複数回にわたり、クラウドネイティブの基礎や、クラウドネイティブを推進する上で重要な機能であるオブザーバビリティという概念について幅広く発信していきます。第1回目はクラウドネイティブが生まれた背景およびクラウドネイティブとは何か?についてです。