先日(2021年11月)、OutSystems は マイクロサービスアーキテクチャとクライドネイティブアーキテクチャをキーワードに、Project Neo を発表しました。本記事では、クラウドネイティブアーキテクチャについて、少し解説してみたいと思います。マイクロサービスアーキテクチャについては、別記事で触れる予定です。
私自身は OutSystems インサイダーですが、本記事は OutSystems の公式文書ではなく、私の個人的な意見が含まれています。執筆時点で GA (製品化)はまだ先で、変更になる可能性があります。
#クラウドネイティブアーキテクチャ
##技術スタックの考え方
クラウドネイティブアーキテクチャは、つまるところクラウドサービスを統合するアーキテクチャということになります。考え方を単純化してOutSystems 11 との違いを表現すると下記のような図になります。
OutSystems 11 はミドルウェアを統合するアーキテクチャでした。アプリケーションサーバやデータベースは、あくまでソフトウェアとして認識し、それをホストするオペレーティングシステムも含めて動作要件が出されていました。
Project Neo ではそのような思想とは、一線を画しています。動作要件は、原則クラウドサービスであり、オペレーティングシステムやデータベース製品ではありません。自前の物理サーバーにインストールすることは想定されていません(注:ユーザーが契約したクラウドサービスで実行するオプションは、計画の有無も含めて発表されていません)。
##なぜクラウドサービスアーキテクチャか
このアーキテクチャに肯定的な方は、このような課題感を持っている方だと想像しています。
- アプリケーションは、クラウドサービスを組み合わせて設計している。けれども、それぞれサービス仕様を理解して、比較して契約して、連携設計、運用設計するルーチンは、負担感が強まっている。
- アプリケーションは、ミドルウェアから設計し、インストールなどをやっている。しかし、クラウドサービスだと当たり前にできることが、自分のシステムではあきらめることが多い。やらないといけないときは、かなり工数を積まざるをえないが、ユーザー部門との交渉は負担感が強い。
OutSystems 自身、2番目のポイントに近い課題感を持っていたと思います。OutSystems ユーザーの "これはできて当たり前だろう" という感覚の事柄に、迅速に対応する基盤を備えるために、採用したと思います。
一方で、クラウドサービスに依存しないスタック構成を取りたいユーザーが存在することは想定されています。OutSystems Next Step 2021 においては、OutSystems 11 は継続されると発表されました。
ただ、クラウドサービスを開発基盤におく潮流は、力強いものがあります。個人的に、日本企業ではクラウド利用は抵抗があり、あまり進まないのではないかと予想していましたが、今では、マイノリティでは全くないと認識を改めています。OutSystems 11 は、オンプレミス / PaaS 利用の選択肢があるため、ご検討中のお客様に考え方を伺う機会が多くありますが、ここ数年の変化は目を見張るものがあります。クラウドネイティブでのシステム構築は、競争力のある構築方法と認知が広がっているいることを日々実感しています。