FAAS(サービスとしての機能)+バース(サービスとしてバックグラウンド)

著者|黄ツィイー(紫李)フロントエンド技術の専門家アリ

REVIEW:ブラウザでもコンピューティング環境のために支払うことなく、箱から出しているので、フロントエンドの開発者は、「サーバレス」コミュニティの恩恵を享受する最初のうちでした!サーバレスバックエンドへのフロントエンドの開発経験は、箱から出して使用FAASとバースは、バックエンドの開発環境のセットを作成します。著者はあなたに利益を伝えるために、正面からの視点と持参サーバレスに挑戦します。

入門

サーバレス「は、非サーバー・アーキテクチャー」で、ユーザーが環境を実行することができ、資源や長期エネルギー技術のビジネスロジックに集中などとして、数を気にしないでください。

現在、同社はDevOpsチームの技術を達成した、サーバレスに移動し、なぜ注意を払うのサーバレスのフロントエンドですか?

FEの学生の場合:

  1. フロントエンド・インターフェースは、定義された仕様が変更されます。
  2. さえノードのJava部を混合、フロントエンドサーバーは、ロジックの開発に参加することを可能にするフロント及びFBIの後端部を、変更されます。
  3. Nodejsサーバのメンテナンスを大幅にDevOpsチームの知識を学ぶことなく、限り、あなたはJSコードの保守ノードサービスを書くことができるように、閾値を減少させます。

無料のデベロッパーの場合:

  1. 将来のサーバーは、より弾力性、より多くのお金をデプロイメント。
  2. 展開より速く、より少ないエラーが発生しやすいです。

フロントフレームの後端部に常に思考で、サーバレスは、バックエンド・運用・保守へのフロントエンドの考え方です。
**
フロントエンドの開発者は、実際に「サーバレス」のメリット・グループを楽しむことが最初です。彼らは、各ユーザーのコンピュータで実行するロードバランシング、でもあなた自身のブラウザを必要としない、あなた自身のJSコードの均一性を作ることができ、自分のサービスを持っている必要はありません。

それが今最もファッショナブルであるとして、各ユーザのブラウザ、ほとんどがさえ、コールドスタートに顕著なリーダーである、リモートローディングJSコードを開始寒さから始まる、サーバレスクラスタ成熟:JITの使用を加速するためにミリ秒コールドスタートでコードを作ります。また、ブラウザは、最適な環境のバースサービスを実現することで、我々はユーザーのCookie、環境情報、ローカルデータベースサービス、どのようにネットワークに接続されているものを、コンピュータを使用するユーザーを気にせず、さらにはハードディスクを取得するために、任意の関数を呼び出すことができますサイズ。

これは、サーバレスの概念です。フロントエンドサーバーの開発者は、開発環境を慣れ製造するための試みで、FAAS(サービスとしての機能)とバース(サービスとしてバックグラウンド)することで、フロントエンドの開発者は、より良いサーバレスがもたらすメリットを理解しておく必要があります。

精読

FAAS(サービスとしての機能)+バース(サービスとしてバックグラウンド)は、サーバレスの完全な実現を呼び出すことができます。加えて、(サービスとしてのプラットフォーム)のPaaSの概念です。コンテナによる通常のインターネット技術環境、最終的にnoops(無人運転・保守)、またはを達成するために、少なくともDevOpsチーム(O&M開発)。

簡単に言えば、ハロの周りにいる人々を防ぐために、いくつかの用語を説明します。

  • FAAS  -サービスとしての機能

コンピューティングリソース、柔軟な拡張が、また、課金の量によって、およびサポートイベント・ドリブン:、各機能はサービス機能である任意のHeyun魏に加えて、任意の言語で書くことができるサービス機能は、次のような、細部を気にしません。業界大きな雲はそれぞれ、これらの機能を管理するためのテーブルのセット、または視覚的なワークフローを持っている、サポートFAASベンダー。

  • バース  -サービスとしてバックエンド

そして、バックエンドサービス、ミドルウェア技術の数の統合である、あなたは、このようなサービス(データベースサービス)などのデータ、キャッシュサービスなどの環境呼び出しサービスを、無視することができます。下記の多くがありますが  XAAS、しかし、組成サーバレスコンセプトのみFAAS +バースが。

  • PaaSの  -サービスとしてのプラットフォーム

サービスとしてのプラットフォームは、ユーザーがソースコードが自動的に速度が十分に高速であれば、それは同様のサーバレス考えることができ、継続的な統合と高可用性サービスを楽しむことができますアップロードすることができます。ドッカーへの上昇がPaaSの展開が徐々に主流になるコンテナサイズにコンテナ技術を代表してしかし、それは最も一般的なアプリケーションの導入です。例えば、ミドルウェア、データベース、オペレーティングシステム、等

  • DAAS  -サービスとしてのデータ

すなわち、データサービス、サービスを提供するために一緒にパッケージされ、データ収集、制御、重合、。DAASサービスは、サーバレスアーキテクチャを適用することができます。

  • IaaSの  -サービスとしてのインフラストラクチャ

このようなコンピュータ・ストレージ、ネットワーキング、サーバや提供サービスなどの他のインフラとしてのインフラサービス、。

  • SaaSの  -サービスとしてのソフトウェア

粒度を提供するために、そのようなERP、CRM、メールサービス、ソフトウェアサービスとしてサービスとしてのソフトウェア。

  • 容器

移行は、技術がより普及コンテナドッカーで、コンテナは、物理的環境の仮想実行環境を隔離することである、と環境を記述することができます。
容器の数の増加に伴い、コンテナクラスタの技術的な管理が行われている、より多くの有名な振り付けコンテナプラットフォームはKubernetesです。コンテナ技術は、オプションサーバレスアーキテクチャの実装実装のための基礎です。

  • NoOps

それはおそらく完全に無人運転・保守にAIの能力によって、より理想主義的な何も操作・保守、ではありません。

無人運転・保守は、平均サーバレスは、サーバレスの人々はまた、(今のところ少なくとも)運用・保守を必要とするかもしれませんが、開発者は、もはや必要では環境を気にします。

  • DevOpsチーム

私はそれがすべての後に、物事のうち、開発に責任になることです「運用、保守ある発展」として理解することができると思うが、DevOpsチームのシステムはより多くの開発者が責任OPまたはOPより緊密な協力を取ることができるようにすることができます成熟します。


戻るサーバレスは、将来の経験の開発は前に類似していてもよいバックエンドは:、負荷分散心配しないコードは、サーバ環境(ブラウザのバージョン)を気にすることなく、どのサーバ(ブラウザ)上で実行されている気にしないでください(フロントエンド心配はありません) 、いつでもコール(のlocalStorage、サービスのミドルウェアサービス労働者)

サーバレスの学生の前には、特に励起されなければなりません。私は個人的にそれを経験した例を見てみましょう。

ゲームをやってから言えば

私は非常に多くのゲームを開発取りつかれ、最も一般的には、収集、ビルドにゲーム資源を開発することである、またはコンピューティングリソースをオンフックカウントダウンルールゲームの開発で著者は、もともとクライアントコードとサーバーコードが完全に二組に実装されています。

// ... UI 部分,画出一个倒计时伐木场建造进度条
const currentTime = await requestBuildingProcess();
const leftTime = new Date().getTime() - currentTime; // ... 继续倒计时读条 // 读条完毕后,每小时木头产量 + 100,更新到客户端计时器 store.woodIncrement += 100;

ゲーム体験のために、ユーザは、製材所の建設の進捗状況をブラウザを更新し、参照することなく建設についての記事、および「強打」を読むことができます完了し、第二木材あたりの獲得100ポイント以上発見しました!製材時にでも、工事前には完了し、完了、ブラウザを更新が完了した後、任意の時点では、統一されたロジックを維持しなければならず、必要なデータは、オフバックエンドを計算します。 この時点で、バックエンドのコードを書く必要があります。

// 每次登陆时,校验当前登陆
const currentTime = new Date().getTime()
// 获取伐木场当前状态 if ( /* 建造中 */) { // 返回给客户端当前时间 const leftTime = building.startTime - currentTime res.body = leftTime } else { // 建造完毕 store.woodIncrement += 100 }

すぐに、より多くの構築のタイプは、異なる状態は異なる出力レベルを有する、別のメンテナンスコストの前端と後端が増加します、我々は、configure同期に行う必要があります。

設定の同期化

前端と後端を行うには、同期は、このような店舗のゲーム情報に設計された新しいプロファイルとして、共有まで個別に管理フロントエンドを構成することができる配置されました。

export const buildings = {
  wood: {
    name: "..", maxLevel: 100, increamentPerLevel: 50, initIncreament: 100 } /* .. and so on .. */ };

この多重化された構成が、前端と後端は、一般的なロジックのような、再利用することができる有する建設建築時の状態に応じて決定さ、生産の構成はN秒後ように決定されます。 サーバレスは、スペースのさらなる最適化をもたらしました。

サーバレス環境でのゲーム

あなたは、機能コードの実行にサイズのサーバをすることができ、想像し、私たちは、抽象的なゲームロジックすることができます:

// 根据建筑建造时间判断建筑状态
export const getBuildingStatusByTime = (instanceId: number, time: number) => { /**/ }; // 判断建筑生产量 export const getBuildingProduction = (instanceId: number, lastTime: number) => { const status = getBuildingStatusByTime(instanceId, new Date().getTime()); switch (status) { case "building": return 0; case "finished": // 根据 (当前时间 - 上次打开时间)* 每秒产量得到总产量 return; /**/ } }; // 前端 UI 层,每隔一秒调用一次 getBuildingProduction 函数,及时更新生产数据 // 前端入口函数 export const frontendMain = () => { /**/ }; // 后端 根据每次打开时间,调用一次 getBuildingProduction 函数并入库 // 后端入口函数 export const backendMain = () => { /**/ };

PaaSのサービス、フロントとリアのサイド・ロジックの使用がします、一緒に書くために  getBuildingProduction あなたが同時にフロントとバックエンド・ロジックを共有することができますので、FAASサービス機能にクリップをアップロードします!

フォルダビューでは、次の構造計画を行うことができます。

.
├── client    # 前端入口
├── server    # 后端入口
├── common    # 共享工具函数,可以包含 80% 的通用游戏逻辑

一部の人々が求めることができる:サーバレス以上が可能である前に、共有コードの終了後。

コードは抽象良いのに十分であれば実際に、成熟したエンジニアリング・プログラムのサポートがあり、それぞれ、ブラウザとサーバにエクスポートすることができますコードです。しかし、前後端の粒子サイズのサーバレス機能は、これは新しい発明ではなく、大きな変化と呼ばれるのに十分なものの、より広いフロントとリア側のコードの再利用を促進する可能性が表示され、また、コードの再利用のコンセプトに合わせています。

遠近前端と後端

  • フロントエンドの開発者のために、簡単なバックグラウンドサービスの変更があります。
  • バックエンドの開発者にとっては、サービスの発見は、チャレンジより、厚くします。

シンプルなバックグラウンドサービス

伝統的なリースでのECSサーバーは、環境とAliyunOSはCentOSのは迷惑で十分です選択します。個々の開発者は、我々は完全な継続的インテグレーションサービスを構築したいまぶしいが直面していることは非常に困難と多くの選択肢です。

  • はい、ローカルデータベースサーバの直接開発したデータベース・サーバーのインストールおよびその他のサービス。
  • ドッカーが局所的にローカル・データベース・サーバーに接続されたインストール、環境の鏡像が一体サーバに配備パッケージ化されるであろう。
  • フロントとリア側のコードの分離、局所、サーバ側コードの開発のフロントエンドにおけるサーバ・コード。

でも、サーバーの安定性や他のツールは、PM2を管理する必要がありました。場合は、再起動後に攻撃を受けて、サーバ、ディスク障害は、回復するには、シェルの操作で複雑な表や着陸を開きます。これは、人々がそれを行うに集中する集中方法ですか?

私達はちょうどスニペット、問題のサーバー環境に直面する不要になった、システム環境、資源、外部サービスもパッケージされているバースシステムのサポートをアップロードしたいので、サーバレスでは、この問題を解決します。

実際には、サーバレスアウトする前に、多くのバックエンドのチームがあり、開発プロセスを簡素化するためにFAASのアイデアを使用。

書き込みバックエンドのビジネス・ロジック、環境、干渉展開の問題に時間を短縮するために、多くのチームが対応するコードフラグメントに、または、ビジネス・ロジック・ブロック(ブロック)に抽象化されます  Blocklyに、これらのブロックは独立して、維持、公開、そして最後にすることができますコードは、メインプログラム、またはダイナミックローディングにスニペット。開発のこの方法に慣れている場合、サーバレスを受け入れることも簡単です。

より厚いバックグラウンドサービス

ビューの舞台裏ポイントを立ち、物事はより複雑になります。サーバーへの相対的でシンプルなコンテナを提供し、今のサービスが厚く、ユーザーの実行環境を遮蔽します。

私は次のように実装はまだいくつかの課題に直面している記事の数、サーバレスを通じて学習しました:

  • サーバレスのメーカーは、あなたが違いを滑らかに曇り、必要性を展開したいですビジネスの多くの異なる種類を達成します。
  • 熟女のPaaSサービスは、標準に従うことをどのように、実際に擬似サーバレスです。
  • FAASは、ウォームアップに加えて、スロースタート冷その結果、リロードコード、リソースの動的割り当てを開始するだけでなく、経済的な方法を最適化する必要があるコールド。
  • 高い同時実行のためのキャパシティ・アセスメントのない(例えば、デュアル11スパイクなど)のシーンは非常に危険なことですが、あなたが本当にそれを完全弾性技術を行うことができれば、キャパシティ・アセスメントを心配する必要がなくなります。
  • アプリケーションを移行する方法の証券取引。ほとんどの業界サーバレスサービスベンダーは、アプリケーションの株式の移行の問題を解決しません。
  • サーバレスは、鉛フリーの状態を備えており、複雑なインターネットアプリケーションは、ステートフルなので、開発の習慣を変えることなく、国の支援で挑戦。

幸いなことに、これらの問題は、積極的な治療にされている、と多くのソリューションは、すでに上陸してきました。

直面するよりもバックより持参のメリットサーバレスの挑戦:

  • フロントとリアエンドの統合を推進します。さらに、アプリケーションの操作を学習するコストをなくし、閾値ノード書き込みサーバ側のコードを下げます。私は自分のアプリケーションデータベースサービスは、アプリケーションサービスの中断につながった別の部屋に移行し、心配する必要はありません、バースサービスなどのデータベースは、展開する場所を心配する必要はありませんので、どうか部屋の向こう、そしてどのようにされて発生しています移行を行います。
  • 資源利用の効率を向上させます。資源の排他的使用に終止符を打つ、そして、平らCPUの水クラスターオンデマンドロードはリソースの無駄な消費を減らすことができなければならない、とサービスにも同様に各マシンのクラスタを共有することになると置き換えます。
  • クラウドプラットフォームを使用してのしきい値を下げます。運用・保守する必要はありませんが、柔軟な拡張は、サービス、高可用性、同時により多くの顧客を誘致する能力の値に応じて、完全にオンデマンド課金はウィンウィンを達成するために、ユーザーのコストを削減も備わっています。

オープンサービスを利用しようとするサーバーレス

著者は大BI分析プラットフォームを担当し、BI分析は、構造を視覚化するための基盤となるプラットフォームの能力の一つです。

それを開いてビルドする方法を視覚化する機能がそう?比較的容易になりまし行うには、比較的フロントエンドとバックエンドのデザインを切り離すことができ、すべての後に、AMDローディングシステムの使用は、より成熟している、オープンのアセンブリです。

今の課題は、カスタマイズされたアクセス機能の需要がある場合は、カスタム・ロジックのバックエンドのデータ処理を必要とする可能性があるため、バックエンド機能の出会いを開くことです。現時点では行うことができます使用maven3、ローカル開発環境、テストアップJDK7、あなたがオンラインしたい場合は、バックエンドの必要性のヘルプの学生があります。

ユニークなサーバレスバースサービスを構築するためのバックエンド場合、それは組立ライン、コーディング、デバッグ、さらには白髪リリース前のテストフロントエンドと同じにすることができます。今、開発者は、フロントエンドのクラウドの多くは探査、サーバレスのフロントとリア側のコードを成熟していた環境の世話をすることなく、クラウドでの開発経験を統一することができます。

サーバレスアプリケーションのアーキテクチャ設計

いくつかのサーバレスアプリケーションのアーキテクチャ図を読む、私たちは、ほとんどの企業は、このようなアーキテクチャ図を適用することを見出しました。

ファイル

  • 1 FAAS機能、データベース、キャッシュ、加速とバースサービスに抽象化する他のサービスに抽象化ビジネス機能。
  • 安らか上部またはイベントトリガ機構コールを提供する、異なる端部に対応(PC、携帯端末)
  • 長いオープン(バックホール)を行いFAASサービスの終了に(アクセスのコンポーネント)のオープンがそうであるようにすることができ、プラットフォームの機能を拡張します。

利点と課題

メリットと課題が共存をもたらすサーバレス、彼らはトー角チャットが立っていました。

利点の一つ:多くの知識管理アプリケーションを持っている必要がなく、フロントエンドより技術的な経験のフロントエンドに焦点を当て、。

最近、フロントエンドの前任者をたくさん読んで、最大の経験を覚えておくことで、テキストの要約を書いた「どのような役割エンドプレイに過去数年の間にフロントエンド。」私たちは、実際には、存在意義は、フロントエンド、人間とコンピュータの相互作用の問題を解決することであり、存在の彼らの感覚を誇張する傾向があり、ほとんどのシーン、ケーキの上のアイシングのようなものですが、必須ではありません。

最も誇りに思って仕事の経験が、それは知識ノード運用・保守アプリケーション、フロントエンドエンジニアリングシステムの構築、最適化性能への研究開発、このような標準の開発として、習得することができるあなたを覚えてますが、ビジネス・セクションの実際の発症を、あなたはそれが少なくともだと思ったものですこれは、ビジネスコードすることを言及する価値がありますフロントエンドは、技術の周りにも多くの時間を費やし、そしてビジネスの相互作用に思考の多くを減らします。

でも大企業、両方の熟練使用Nodejsを募集することは困難ですが、また、運用、保守の人々の幅広い知識を持っていますが、またほとんどの魚やクマの足の両方を持つことができない、フロントエンドの技術スキル、ビジネスの深い理解に彼に尋ねました。

サーバレスが効果的にこの問題を解決することができ、唯一の任意の彼Yunweiの知識を習得することなく、ライトのフロントエンドJSコードに必要な学生は、あなたはすぐにアイデアの彼らの完全なセットを実現することができます。

確かに、サーバーの知識を理解することが必要であるが、労働者の合理的な部門の視点に立って、それはフロントエンド技術のフロントエンドに焦点を当てるべきです。コアフロントエンドの能力やビジネス価値をもたらし、逆に、補足することがもう少し運用・保守知識の理解で終わっていますより多くのビジネス価値をもたらすことができ、それは私たちに、この時間を食い入るます。

言語は、ブラウザの進化を進化させ、サーバーの進化、単純なものから複雑なものまで、包装工程の下、全体さらに包装工程として、運用、保守サーバレスバックエンド+にしています。

領収書:コードのロジック配置が非常に多重化、メンテナンス性、クラウド+クライアント拡張する能力をもたらします。

クラウド+遠位端は、形態学的開発は、雲のような開発環境を作成するための強力なクラウドコーディング機能を提供する、またはエンドプラグです。その最大の利点は、シールドフロントエンドの開発環境の詳細、アイデアやサーバレス類似しています。

前のチームの多くは、インタフェースの使用GraphQLは「より柔軟に」作ってみました、そしてサーバレスは、より完全なソリューションです。

私自身のチームがGraphQLプログラムを試してみましたが、ビジネスは、すべてのシナリオのニーズを記述するための標準的なモデルを使用することは非常に複雑で困難であるため、使用GraphQLには適していませんので。正確に視覚的なバックエンドの開発プラットフォームに基づいて設定Blocklyはそれで立ち往生し、目覚しい発展効率を行いました。このBlockly後、ほぼ普遍的抽象化は、サーバレスで置き換えることができます。だから、サーバレスは効率の問題を改善し、複雑なシーンではバックエンドの開発を解決することができます。

サーバレスのクラウド開発が融合した後、さらに調整機能の実行順序、依存関係の論理的なレイアウトを可視化することができます。

私はログオフコンピューティングこのプラットフォームを通じてチームを処理Baiduのデータに広告を使用する前に、可視化を通じてMapReduceの後の各計算ノードは、簡単に、あなたはまた、最長リンクの実装を見ることができ、障害のブロッキングが発生した場合にどのノード見て、あることができます各ノードは、重量を実行するために再割り当て。でも、論理的なレイアウトは、開発のすべての痛みのポイントを解決することはできませんが、特定のビジネスシナリオに多くのことを達成することができるようになります。

課題1:サーバレスは完全にフロントターンのしきい値のバックエンドを解消しましたか?

ノードの学生は、フロントエンドのコードは、最も可能性の高い苦情をコミットするにはメモリが不足している書き込み。

ブラウザ+ Tabを生徒まれフロントエンドので、それはGCの問題を気にする必要はありませんが、UIコンポーネントとロジックの作成と破壊が非常に頻繁にも、自然スローオフシナリオです。GCはそのためNodejsプログラムバッファオーバーフローが私たちの最大の関心事である、バックエンドの開発シナリオで長い習慣です。

サーバレスのアプリケーションが動的にそれはもはやリリースなので、一般的には、メモリがいっぱいになる前にメモリのオーバーフローが、プロセスを解放しなければならないかもしれない、または異常がキルが出て強制的に検出された場合でも、あまりにも多くのGCの問題を心配する必要はありませんので、ロードされています。

しかし、ロードとFAAS機能を解除が完全に雲によって制御された後、長い時間のための便利な機能はありませんアンインストールも可能行い、副作用を制御するため、FAAS機能や注意を払います。

サーバレスのでスムーズな操作と環境の整備だけでなく、基本を理解する必要があるサーバーは、フロントまたはバックエンドで実行するコードを認識する必要がありますが。

チャレンジ2:パフォーマンスの問題

サーバレス冷たい開始は、パフォーマンス上の問題につながる、ビジネス側がプログラムの頻度やパフォーマンスの要件を実行するためのイニシアチブを取らせ、その後、再び深淵の研究開発運用・保守にドラッグ温かいサービスを開くことができます。

でも、業界で最も、サーバレスアマゾンのクラウドサービスを成熟完全にビジネスを行うことはできませんコール頻度を気にしない、それは簡単にスパイクシーンにも対応することができます。

だから今はサーバレスサーバレスを適用するために、むしろ力よりも、適切なシーンと一緒に任意のアプリケーションを使用することがより適切です。

あなたは、プログラムがオンラインとなっていることを確認するために定期的にFAASサービスを実行することができますが、私は、これはサーバレスの概念に反していると信じていますが。

スリー挑戦:コードの移行を確保する方法

サーバレスポジショニングマップの古典的な説明があります:

ファイル

ネットワーク、ストレージ、サービス、仮想宅、オペレーティングシステム、ミドルウェア、ランタイムは、データは気にする必要はありません、とさえアプリケーション層は、このような開始、破壊された部分などの追加のケアを必要とせずに、機能のどの部分を気にする必要があります。

これは、フロントは常にを利用する場合ですが、あなたは不利と考えられ変えることができます。 あなたのコードはパブリック・クラウド環境に完全に依存しているときは、環境全体を制御する力を失うことになる、とさえコードが唯一のクラウドに、特定のプラットフォーム上で実行することができます。

バースサービスのクラウドプラットフォームが異なる仕様が異なる場合があります提供し、FAASの入り口は、実装が異なる場合があり、我々はこの問題を克服しなければならない曇った展開を採用したいと思います。

今では多くは、サーバレスプラットフォームの標準化を行って検討しているが、一部のボトムアップツールライブラリがのようないくつかの違い、消去されている  サーバレスフレームワークを  というように。

我々はFAAS関数を記述するだけでなく、プラットフォームを書き込もうエントリ機能は、一般的なの実際の入り口軽いバインド  main 機能を。

概要

サーバレス値ははるかに大きな課題よりも、アイデアが実際にR&Dパフォーマンスの問題の多くを解決することができます。

しかし、まだ開発の初期段階でのサーバレス、試作段階でも、国内のサーバレスが、完全に優れたコンセプトのサーバレスを実現していない多くの制限の実行環境は、何段付き穴を設定しますもしそうなら、そこにあります。

おそらく3〜5年で、これらのピットは、その後、あなたが軍に参加することを選択した穴を埋める満たされている、またはサーバレスその権利を使用してシーンに投票しますか?

「アリババクラウドネイティブマイクロチャネルパブリック番号(ID:Alicloudnative)フォーカスマイクロサービスで、サーバレス、コンテナ、サービスメッシュ及び他の技術分野は、クラウドネイティブで人気の技術動向を中心に、ネイティブの大規模な着陸の練習を曇らせるは、ほとんどのクラウドネイティブ開発を理解してください技術公衆番号。」

おすすめ

転載: www.cnblogs.com/Leo_wl/p/12076011.html