次世代クラウド端末の統合を実現するには

次世代のクラウド端末の統合を実現する方法をご紹介します。

著者：アリババ Sun Qi (Kongmeng)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/ecc65dce-689d-307f-c2c6-1500ed1401c9.png)

現在、モバイルインターネット分野の企業で採用されている研究開発や運用保守のモデルの多くは、ハイブリッドクラウドシステムに含まれるさまざまなクラウドサービスが、モバイル端末側から分離されているように見えます。また、フルスタックのソリューションはあっても、実際に機能しているケースは少なく、業界全体として、クラウドと端末を統合するための革新的なソリューションが不足しているのが現状です。

このような状況の中で、私たちはいくつかの疑問を抱いています。クラウドとAndroidやiOSを搭載したモバイル端末との間での迅速なビジネス展開をサポートするために、いかにして1つの迅速な研究開発プロジェクトを実施するのか、また、プログラマーがプログラミングに専念できるような、新しい研究開発や運用・保守のモデルはないのでしょうか。

私たちの答えは簡単です。「Code it once, run it everywhere（一度コード化すれば、どこでも実行できる）」です。すでに、中古品売買アプリ「[Xianyu](https://pandaily.com/weiye-chen-xianyu-third-trillion-worth-platform-alibaba/?spm=a2c65.11461447.0.0.30e73a17bxoiOS)」では、このアプローチが有効であることを示しています。この方法を使うと、ある開発プロジェクトに必要な時間が60日から40日に短縮され、効率が33％向上したのです。

この記事では、アリババのシニアテクニカルエキスパートであるSun Qiが、この手法がアリババでどのように役立ったのか、そしてあなたのビジネスでもどのように変化させることができるのかを分析しています。

#ビジネスR&Dモデルの進化
効率化は、ビジネスの研究開発や運用・保守モデルの進化の中核をなすものです。

PCインターネット時代には、個々のアプリケーションのフロントエンドとバックエンドが、現代のITの初期の研究開発モデルの一部でした。例えば、[タオバオ](https://www.wsj.com/video/what-is-taobao/69BD4B54-0417-4075-A54D-5FC895B5B3F3.html?spm=a2c65.11461447.0.0.30e73a17bxoiOS)のデスクトップ版の初期には、開発者はVelocityテンプレートを書き、その前にはJSPやASPページを書いていました。これらは基本的に列車のような研究開発モデルでした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/45877ef7-5047-8b4b-6011-4a788fde2b05.png)




しかし、事業展開の複雑さが急速に増していく中で、列車のようなデリバリーモデルは事業展開を大きく制限していました。そこで、これを改善するために、サービス指向の分割を導入しました。そして、2009年、淘宝網のプロジェクトは、このアプローチに基づいていました。このとき、マイクロサービスがソフトウェアアーキテクチャとして登場したのです。これを可能にしたのは、研究開発モデルが中央集権型から分散型に変わったためでした。


そして、企業がこれらのよりアップデートされた分散型の研究開発モデルにシステムをアップグレードする一方で、フロントエンドとバックエンドの分離型の研究開発モデルも地平線上に現れ始めていました。[Ajax](https://www.w3schools.com/xml/ajax_intro.asp?spm=a2c65.11461447.0.0.30e73a17bxoiOS&file=ajax_intro.asp)から専用フロントエンドまで、閉じたビジネスループが独立して完結することで、全体の分業化が進み、同時に効率化が図られていたのです。しかし、フロントエンドの担当者にとって、サーバー側の運用・保守は技術的に難しいハードルとなっていました。そしてこの問題は、アリババのJavaベースのミドルウェアエコシステムでも、まだあまり満足のいく解決策を得られていませんでした。

さて、モバイルインターネットの時代になって、インターネットクライアントも同じように進化しています。例えば、アリババグループはAtlasを使って端末分散型の研究開発モデルを実現しています。しかし、PC時代のフロントエンドとバックエンドの分離に比べ、モバイル時代はAjaxモデルを再採用しています。そのため、端末担当者はクローズドなビジネスループを実現するのではなく、端末に対してのみ責任を負うことになります。同時に、モバイルインターネットは、AndroidとiOSのプラットフォームをまたいだ運用の問題など、独自の課題をもたらしました。このような背景から、[React Native](https://facebook.github.io/react-native/?spm=a2c65.11461447.0.0.30e73a17bxoiOS)や[Weex](https://weex.apache.org/?spm=a2c65.11461447.0.0.30e73a17bxoiOS)などが生まれたのです。

#クラウド端末統合型軽量R&Dモデルのコア・チャレンジ
BFF（Backend for Frontend）層が、研究開発、運用保守、クロスランゲージ作業において、クライアント担当者にグループのJava技術ミドルウェアを突きつけないようにしながら、クライアント担当者に一歩踏み込んだクローズドループの業務遂行をしてもらうためには、次のようなことが必要になります。

- ビジネスの研究開発をコードの実行環境からシールドする。
- クラウドや端末、プラットフォームを超えて通用する機能を開発する。
私の考えでは、[Java](https://www.java.com/en/?spm=a2c65.11461447.0.0.30e73a17bxoiOS)言語の成功は、Java仮想マシン（JVM）レベルでいくつかのランタイム環境をシールドする「一度コンパイルすればどこでも実行できる」という特徴によるものだと思います。核となる課題は、言語に依存しない透過的なコードのランタイム環境を研究開発に提供し、ビジネスコード以外のすべてを技術プラットフォームで管理する方法を見つけることです。

長い間、モバイルインターネットの研究開発モデルでは、クラウドと端末は別々に扱われていました。業界全体でフルスタックソリューションを模索していますが、これまでに成功した事例はありません。問題は、技術的な障壁が高すぎることです。そのため、開発者が大変な思いをしなければならず、ビジネスの実装の複雑さに本質的な変化はありません。本来は3人でやらなければならないことが、今では1人でできるようになっていますが、特にクラウドと端末のプラットフォームを交差させるような効果的なクロスプラットフォーム機能がまだ不足しています。

つまり、研究開発モデルの進化は、技術的な障壁を低くし、クロスプラットフォーム機能を向上させたと言えるでしょう。しかし、まだまだ成長の余地はあります。



###一度コード化すれば、どこでも実行できる
開発者がビジネスロジックのコーディングのみに集中できるようになることは、研究開発モデルの進化における次のステージです。この段階では、クラウドネイティブなどの技術が大きな助けとなりました。コンテナ技術によってインフラを切り離すことで、コンテナベースのオーケストレーションは、運用・保守の複雑さを軽減します。また、アプリケーションをミドルウェアシステムから切り離すために、サービスメッシュを使用しています。これにより、一貫性と信頼性が向上し、複雑さが軽減された不変のインフラが提供されます。サーバーレスの考え方を実践することで、技術の進化は研究開発モデルをアップグレードする新たな機会を提供します。

#GAIAの研究開発・O&Mモデルの軽量化の模索と実践
上記のような背景から生まれたGAIAは、Xianyuやtaobaoエコシステムのインタラクティブプラットフォームであるapplatformと密接に統合されています。GAIAのクラウドターミナルであるFaaS（function-as-a-service）の技術力は、研究開発の責任と境界を再定義しました。これにより、プログラマーは本来のプログラムに集中することができ、クロスプラットフォームのターミナル機能と組み合わせて、軽量のクラウド・ターミナル統合ビジネス研究開発および運用・保守モデルを実装することができます。

Xianyu社の新しい研究開発モデルを以下に示しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/2d251dd0-6ddf-995e-cfaa-603e74739f01.png)


###結果：
- Xianyu社のビジネス導入では、クラウドターミナル統合研究開発モデルにより、当初60日かかっていたプロジェクト期間が40日に短縮され、効率が33%向上しました。
- 88VIPインタラクティブキャンペーンに対応したプラットフォームでは、毎秒数十万件の問い合わせがあるビジネストラフィックをスムーズかつ確実に処理することができました。これはアリババにとって、軽量複合マルチコンテナ設計モデルの初めての大規模な検証でした。


#GAIAデザインコンセプト
コンテナ型デザインモデルは、インフラの没入とビジネスを切り離し、コードの実行環境をビジネスに透過させます。

###軽量複合型マルチコンテナのデザインモデル

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/3288d082-25bc-e0b0-e834-bc2dc603c4ff.png)


現在、私たちのアプリケーションはまだリッチなコンテナモデルを使用しています。しかし、コンテナの責任が偏っているため、ビジネスとインフラの間が孤立し、密接に結合しています。

コンテナはGAIAの鍵です。そのデザインモデルは革命的で、アリババがこの新しいアプローチを初めて大規模にテストしたことを象徴しています。

- Kubernetesのポッドをベースにした軽量で複合的なマルチコンテナ機能は、サイドカーの形でインフラを提供することで、ビジネスとインフラの境界を再定義しました。
- コンテナのオーケストレーションとスケジューリングを利用して、リソース、トラフィック、コンテナのライフサイクルを統一し、オンデマンド利用の基盤を構築します。
- コンフィグマップに基づき、コンフィグを環境から切り離し、コンテナイメージを変更できないようにし、ルーチン、プレリリース、プロダクションイメージを統一することで複雑さを軽減しています。
- Init Container技術をベースに、機能をインフラから完全に切り離し、機能とインフラを組み合わせて、コンテナライフサイクルの初期化メカニズムによって実行状態を構築します。これにより、ビジネス機能とインフラの独立した運用・保守をサポートします。
- APIサービスの登録や発見などのインフラ機能は、Kubernetesの技術体系の中に沈められています。

このコンテナの設計能力を活用することで、ビジネスの研究開発者は、ビジネスロジックのコードを書き、宣言型のAPIでそれを提示するだけで済みます。このようにして、ミニプログラムのようなコンテナが分離されたビジネスの実行環境をカプセル化しながら、クラウドターミナルのビジネス実装機能をモバイル端末に素早く展開することができます。これは[Flutter](https://flutter.dev/?spm=a2c65.11461447.0.0.30e73a17bxoiOS)にも言えることです。開発者は、コンテナ指向のプログラミングに取り組み、コンテナを使ってインフラを分離し、実行環境プラットフォームの違いを覆い隠すことができます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/a3c1d6a9-dc62-87f7-6ccc-3e368a25ef68.png)


GAIAはオープンなプラットフォームです。Xianyu社は、そのコンテナ設計仕様に基づき、Dart言語仕様に沿った関数コンテナを実装しています。一方、aplatformエンジンは、GAIAのJavaコンテナとの接続に成功しています。これにより、グループ全体で10,000以上のアプリケーションが存在するプラットフォームベースのアプリケーションの問題が解決され、どのようなアプリケーションでもGAIAをベースにしたサーバーレスソリューションを実装できる道筋ができました。

#まとめと今後の展望
現時点では、GAIA、Xianyu、aplatformのインタラクティブプラットフォームを淘宝網のエコシステムのために統合することは、大きな意義のある探究です。一度コードを書けば、どこでも実行できる」という機能により、プログラマーはプログラミングに集中することができます。現在、技術レベルでのクラウドターミナルの統合は、まだ初期段階にあります。将来的には、より踏み込んだシステムの探求と構築を期待しています。

###ビジネスのR&DとO&Mモデルの軽量化
5GやInternet of Everythingの登場により、さまざまな端末機器は、研究開発や運用・保守モデルの軽量化に対応する必要があります。研究開発モデルを進化させるためには、技術的な障壁の低さやクロスプラットフォーム性を追求することはもちろん、効率的なビジネス展開能力が求められます。現在のような端末の分割やコラボレーションモデルのクラウド化、iOSやAndroidのモバイル端末は必然的に淘汰されていきます。

###コンテナ化と統一されたAPIサービスプログラミング
クラウドや端末のランタイム環境のコンテナ化は、ビジネスとインフラを切り離すために必要な手段です。コンテナ化によって、孤立した実行環境がカプセル化され、サービスのインタラクションはコンテナが提供する統一されたAPIによって実現されることになります。クラウドと端末のコンテナ技術は収束し、両端のコンテナの密接な相互作用を可能にします。クラウドと端末は、技術システムの中で深く統合され、クローズドループのクラウド-端末技術システムを実現します。

###統一されたエンジニアリングシステム、クライアントとサーバーの一貫したバージョンリリースとアップグレード
現在、分離された研究開発モデルは、通常、各端末の異なるコードブランチとして現れます。クラウドターミナル統合ビジネス研究開発モデルの軽量化により、クラウドとターミナルのビジネスエンジニアリングシステムが統一されます。一つのプロジェクトの中で、クラウドコンテナでサービスを公開し、クライアントコンテナでサービスを呼び出すためのサービス・インターフェースを定義することができます。同時に、クラウドと端末は、統一されたバージョンリリースと運用保守システムを採用します。そのためには、研究開発モデルのシステムを全面的に再構築する必要があります。

###技術部門の再編成
人々のニーズの変化に応じて、ビジネスを支える組織・生産関係も変化させていく必要があります。

#ミッション
研究開発モデルを変革し、研究開発のエコシステムを再構築したいと考えています。

開発者が 「coding it once, run it everywhere(一度コンパイルすればどこでも実行できる) 」のシステムを実現できるように、クラウドと端末を統合した軽量なビジネス研究開発と運用保守モデルを一緒に構築したいと願っています。


*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/code-it-once-run-it-everywhere-next-generation-in-cloud-terminal-integration_595815)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*


*アリババクラウドは日本に２つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
[アリババクラウドジャパン公式ページ](https://www.alibabacloud.com/ja)*