次世代サーバーレスプラットフォームKnativeの応用実践

次世代サーバーレスプラットフォームKnativeの応用実践

事業紹介
1. 単一製品APIサービスは、Dangdang.comの技術プラットフォームのコア基本サービスの1つです。
2. 製品関連のAPIサービス群から構成される
3. 単一の製品APIにより、多数のバックグラウンドAPIのインターフェース集約が完了し、インターフェースのパフォーマンスが向上します。
4. 単一の製品 API により、関連するすべての上流サービスに対して効率的で信頼性の高い基盤サービス サポートが提供されます。
技術ステータス
1. 開発言語にはPHPとJAVAが含まれます。
2. K8S ネイティブ モードでデプロイして実行します。

動作環境
• ネイティブ: v0.8.0
• Istio: v1.3.0
• Kubernetes: v1.14.4
• ドッカー: v18.06.3
• Centos: v7.5
• プロメテウス v2.2.1
• グラファナ v5.0.3
• Tekton パイプライン: v0.8.0
• サーバー: 8コア / 32Gメモリ / 500GB HD

ユーザーコンテナの構築とオーケストレーション

1. ユーザーコンテナに対応するDockerfileを作成します。

ユーザーコンテナの構築とオーケストレーション
1. ユーザーコンテナに対応するDockerfileを作成します。
2. Tektonはコードをビルドし、ランタイムコンテナをパッケージ化してプライベートイメージリポジトリにプッシュします。

ユーザーコンテナの構築とオーケストレーション

1. ユーザーコンテナに対応するDockerfileを作成します。
2. Tektonはコードをビルドし、ランタイムコンテナをパッケージ化してプライベートイメージリポジトリにプッシュします。
3. knativeのservice.yaml設定ファイルを書く

ブルー/グリーンデプロイメント

トラフィック: - タグ: 現在
リビジョン名: productapi
-v1
パーセント: 100
- タグ: 候補者
リビジョン名: productapi
-v2
パーセント: 0
- タグ: 最新
最新リビジョン: true
パーセント: 0

パフォーマンステスト<br /> Knative プラットフォームがアプリケーション コードに及ぼすパフォーマンスへの影響を評価する同時リクエストの合計数: 200
Knative 環境における POD あたりの同時実行数: 40
Knative 環境で開始された Pod の数: 6
K8s 環境で有効化された POD の数: 6

問題点とその後の改善点<br /> パフォーマンスの問題:
• キュープロキシ
1. すべてのユーザーコンテナトラフィックの転送を担当
2. クライアントのメトリクスをオートスケーラーに報告する
• 問題点:
プロキシのレイヤーが呼び出しチェーンに追加されます。私たちのテスト シナリオでは、QueueProxy によって 27 ミリ秒のレイテンシと約 120 分の CPU が発生します。
リソースの消費。
• 将来的には、Istio のサイドカー (envoy) を直接使用して Queue Proxy を置き換えるという解決策が考えられますが、これによりサービス メッシュ レイヤーとの結合が発生する可能性があります。


運用および保守ツール
• ログセンター: EFK
• モニタリング: Promethues と Grafana
• サービスメッシュの可視化: Istio & Kiali、Jaeger (コールチェーンのトレース)

サービス可視化ツール<br /> サービス メッシュ可視化ツール - Kiali
1. サービストポロジー図
2. 健康チェック
3. 分散トレース
4. メトリクスの収集
5. 構成の検証

監視ツール

パフォーマンスの最適化(I)
コールドスタートの遅延を減らすソリューション
• コールドスタートの遅延を避けるために、サービスレプリカの数を最小限に抑える
autoscaling.knative.dev/minScale: "n" // n は 1 またはビジネスによって推定されるレプリカの最小数です
• マイクロサービスによりサービスの起動速度を最適化
A. ユーザーコンテナイメージのサイズを縮小して、簡単かつ迅速に配布できるようにする
B. ユーザーコンテナの起動時間を短縮する


パフォーマンスの最適化(II)
予測される高同時実行シナリオの解決策は、サービスに必要なレプリカの予想される最小数を事前に設定することです。例: autoscaling.knative.dev/minScale: "200"
リソースの過剰割り当てを避けるために、サービスに必要なレプリカの最大数を設定します。例: autoscaling.knative.dev/maxScale: "500"
ポッドの可用性を確保するために、サービスの各ポッドの同時リクエストの最大数を設定します。例: autoscaling.knative.dev/target: "100"


その後の開発と改善<br /> より弾力性のあるスケーリングインジケーターをサポート
• 現在サポートされている指標
HPA: CPU 使用率、0 へのスケールダウンはサポートされていません
KPA: 同時リクエスト数、0 までのスケールダウンをサポート
• 新しいバージョンでは新しいメトリックが追加されました:
KPA: RPS/QPS/OPS

結論は
• Knative は、サーバーレス プラットフォームの標準化にとって非常に重要です。
• Knative は現在徐々に成熟していますが、大規模なアプリケーションではさらなる改善が必要です。
• Knative は幅広い開発の見通しがあり、将来的には主流のサーバーレス アーキテクチャ管理プラットフォームになると期待されています。

<<:  JVM 全体のアーキテクチャとチューニングパラメータの説明

>>:  サーバーレスによるソフトウェアパフォーマンスの向上

推薦する

Baidu が「神経質」なレポートを発表しました。SEO 担当者の今後の進路はどうなるのでしょうか?

前回、Baidu が当社のウェブサイトを 2 回禁止したため、ランキングは 100 位に落ちました。...

クラシックな推奨事項: リースウェブ 月額 7 ドル 512M メモリ KVM/月額 38 ドル サーバー/米国/オランダ データ センター

LeaseWeb は有名なブランドです。その資格に注意を払う必要はありません。重要なのは、そのローエ...

2021年のクラウドコンピューティングのトレンド予測、7つの分析結論、インターネットの未来は有望

[[379248]] 2020 年のコロナウイルスのパンデミックの間、クラウド コンピューティング ...

SEOの学習は、次の6つの側面から始めることができます。

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますSEO シ...

ウェブサイトのトラフィックを増やすための10の必勝ヒント

最近、私はいくつかのグループの皆さんとチャットをしています。多くのネットユーザーが、電子商取引サイト...

チェック・ポイント・ソフトウェア・テクノロジーズ、統合クラウドネイティブプラットフォームを拡張し、Alibaba Cloudをサポート

組織は、継続的なコンプライアンスを維持しながら、クラウド インフラストラクチャ全体にわたる高度なセキ...

クラウドネイティブなデータガバナンスソリューションを設計する方法

1. 背景データ ガバナンス プロジェクトには、多くの場合、規制上の圧力、高コスト、投資収益の不明確...

ゼロトラストによるハイブリッドクラウドの保護

デジタル変革はハイブリッド クラウドに依存します。すべてのクラウド環境にわたって一貫してセキュリティ...

SAP が Shanying International のエコ製紙産業の構築を支援

山英国際ホールディングス株式会社(以下、「山英国際」)とSAPは、双方の上級役員が出席し、戦略協力の...

Xiongzhanghaoのアカウントインデックスを迅速に改善するにはどうすればよいですか?ガイドを添付します!

月給5,000~50,000のこれらのプロジェクトはあなたの将来ですXiong Zhang アカウン...

シンガポールで oneasiahost VPS を購入しました。非常にお勧めです (古い投稿)

この投稿は私が昨年個人ブログに書いたものですが、退屈しのぎにここに再投稿しました。 1時間以上前に、...

2月の百度ランキング更新に関する最新の観察

この時期は、伝統的なビジネス環境の閑散期に入りました。大きなホットスポットがないため、ウェブサイトの...

交通渋滞は心配するほどのものではありません。

これまで常に強力であったインターネットトラフィックの考え方は、今後どこに向かうのでしょうか? 201...

モバイル検索が役に立たないかどうかは、製品の定義によって決まる

モバイル検索製品の将来については、人によって位置づけが異なります。検索製品自体がエコシステムであると...