OutSystemsの調査(Cloud-Native Development: Ready or Not?で、ダウンロードできる)で、開発者とITの意思決定者に対して、クラウドネイティブ対応についてのものが最近出ていた。
Project Neoが、まさにクラウドネイティブって感じの製品なので、そのリリースに合わせた調査と思われる。
Project Neoは現時点(2022/04/29)ではGAではないので、発表時に作ったメモを参照:2021 Next StepとOSDCにおけるProject Neo関連情報まとめ
Table of Contents
クラウドネイティブとは
システム構築をするときに、クラウド利用を優先にするクラウドファーストをさらに勧めた概念であるらしい。
「クラウドネイティブ」は「クラウドの利点を徹底的に活用するシステム」といった意味を持つ言葉です。オンプレミスのシステムをそのままクラウド上に移行しただけでは、クラウドネイティブとは呼べません。クラウドネイティブとは、単にプラットフォームにクラウドを採用したシステムのことではなく、最初からクラウド上で動くことを前提にクラウドならではの特性を活かせるよう設計されたシステムのことです。
(クラウドネイティブとは? クラウドファーストとの違いやポイントを解説より)
CNCF (Cloud Native Computing Foundation)の定義から
CNCFは、クラウドネイティブ分野のオープンソースをホストしていたり、各種イベントを開催したり、認定試験を行ったりしている団体。
Who we areのページに、各所でクラウドネイティブの定義として引用されているテキストがあり、そこで以下の要素がクラウドネイティブの技術の例として挙げられている。
各要素と現時点でわかっているProject Neoとの関係をまとめると
コンテナ
Project NeoのアプリケーションはLinuxコンテナ+Kubernetesで動作するので、対応を確認できる。
サービスメッシュ
内部システム内のマイクロサービス間の通信に関わる共通機能を提供するもの。
Project Neo発表時には特に言及がなかったが、現行のOutSystems11でCorrelation IDをもっていたり、マイクロサービス(Service Action) の制御を行っていたりすることを考えると、おそらく製品として同等機能を持っている。
マイクロサービス
Project Neoのアプリケーションは、アプリケーションごとに独立したデータベース(AWSのAurora)を持ち、アプリケーションごとにコンテナにまとめられ、さらにアプリケーション間の通信はREST APIとメッセージングとのことなので、マイクロサービスへの対応も確認できる。
Immutable Infrastructure
Project NeoではPublish時にアプリケーションを配備したコンテナの作成まで行い、それをリポジトリに保管。リリース時にはそのコンテナを配備するそうなので、対応していると見て良さそう。
Declarative APIs
これが、アプリケーション間のI/FとなるService Actionのことなのか、インフラ(例えば、起動するコンテナ数を宣言する)のことなのか、よくわからなかった。
アプリケーション間のI/Fのことであれば、これは開発者の作り方次第。インフラは、Project NeoがAWSとコンテナ利用であるから、できると期待してもいいはずだが、今のところ不明。
資料の内容で気になった点
この調査は、アメリカ・ブラジル・シンガポール・カナダ・イギリスで回答者の90%を超えるので、地域の偏りは割り引いて考える必要がある。
- すでにクラウドネイティブ技術を使っている人の半数が、アーキテクチャが複雑になってしまう、適切なツールの選択が難しいと考えている
- クラウドネイティブを進めていこうとしてる人は、10以上の技術的な役割(人)を満たす必要を感じている
- 必要なスキルセット(人)が広範囲に渡る
- ローコードを使っている回答者の28%が、今年の時点でアプリケーションの大部分がクラウドにある(意外と高い。回答者の47%がアメリカに所在らしいからそのせいかもしれない。日本を調査対象に含めていれば、多分もっと低いだろう)
- 回答者の72%は2023までに、アプリケーションの多くの部分をクラウドネイティブで作ることになると予想している
というわけで、クラウドネイティブを導入している組織は、すでに結構あり、今後も急激な拡大が予想されている。
それに対して、必要なスキルを確保するのが非常に大変。
そこで、1つのソフトウェアで必要な各要素を揃え、1つの開発スキルで足りるようになるOutSystemsのProject Neo、と言いたいのだろう。
前にもどこかで書いたが、OutSystemsを導入するということは、OutSystemsが技術的な動向にうまく追随していってくれることを期待しているということになる。
Mobileがでてきたとき、SPAが導入されたときはうまく対応したと思うが、今回はProject Neoで新たにクラウドネイティブに対応しようとしている。