クラウドネイティブについて話しているのですか?クラウドネイティブとは正確には何ですか?

1.クラウドネイティブとは

最近、人々がクラウドネイティブと言うのを聞いています。クラウドネイティブとは何ですか?クラウドネイティブは、クラウドネイティブの2つの部分
に分けることができます。

クラウドとはクラウドサーバーを意味します。
クラウドサーバーが普及する前は、物理サーバーを自分で購入してプロジェクトを展開していました。物理マシンを購入し、ネットワークオペレーターからパブリックIPサービスを購入し、これらのマシンをサーバールームとして配置する場所を社内で見つける必要があります。
ここに画像の説明を挿入
クラウドサーバーを使用すると、企業は物理的な機器を購入する必要がなくなります。独自のプロジェクトをオンラインで展開する場合は、クラウドサーバープロバイダーから購入するだけで独自のサーバーを利用できます。従来のサーバーと比較して、クラウドサーバーの方が多くなります。従来のサーバーにはない利点。弾力性、分布など。
ここに画像の説明を挿入

原生

ネイティブとは何ですか?ネイティブとはネイティブを意味します。私たちのプログラムが開発および設計されるとき、それはローカルの自作サーバーでの実行、クラウドサーバーでの実行、およびプロジェクトアーキテクチャの設計という点で完全に異なります。
また、ネイティブとは、アプリケーションが最初からクラウド環境を念頭に置いて設計されていることを意味します。クラウド向けにネイティブに設計されており、クラウド上で最適な姿勢で実行されます。リソースの利点を最大限に活用する必要があります。クラウド上で、アプリケーションをより強力に、より速く、より安定させるために。
ここに画像の説明を挿入

クラウド+ネイティブ

したがって、クラウドネイティブは特定のテクノロジーを指すのではなく、テクノロジーシステムのようなものです。
たとえば、クラウドネイティブに精通していない場合は、ビッグデータに精通している必要がありますね。ビッグデータには、SparkやHadoopなどのテクノロジーが含まれます。
同じことがクラウドネイティブにも当てはまり、私たちがよく知っているいくつかのテクノロジーで構成されています。見下ろしてみましょう。

2.クラウドネイティブの4つの要素

実際、クラウドネイティブコンセプトの概念は、Googleが主導する基盤から生まれました。元のネイティブコンピューティング基盤はCNCFと呼ばれています。
ここに画像の説明を挿入
CNCFが数世代にわたって更新された後、彼は答えを出しました。クラウドネイティブの4つの要素は次のとおりです。

マイクロサービス

クラウドネイティブのほぼすべての定義にはマイクロサービスが含まれます。マイクロサービスはモノリシックアプリケーションです。マイクロサービスには理論的根拠があります。つまり、サービスをセグメント化する方法をガイドするコンウェイの法則です。非常に神秘的です。理論的法則と呼べるものは何でも簡単ではありません。そうでなければ、Bはありません。おそらく組織構造が製品形態を決定することを意味します。それが生産性に影響を与えるMarxの生産関係と関係があるかどうかはわかりません。マイクロサービスアーキテクチャの利点は、機能によって切断された後、サービスが分離され、結束が強くなり、変更が容易になることです。サービスを分割する別の手法は、DDDに基づいていると言われています。

コンテナ化

Dockerは最も広く使用されているコンテナエンジンです。CiscoやGoogleなどの企業のインフラストラクチャで広く使用されています。LXCテクノロジーに基づいています。コンテナ化はマイクロサービスの実装保証を提供し、アプリケーションの分離の役割を果たします。K8Sはコンテナオーケストレーションシステムです。 。コンテナ管理、コンテナ間の負荷分散、Googleの作業、Docker、K8SはどちらもGoで記述されており、これらはすべて優れた機能です。

DevOps

これは、開発と運用および保守の組み合わせであるDev + Opsという言葉の組み合わせです。開発と製品とは異なり、それらはしばしば互いに出会います。実際、DevOpsにはテストも含める必要があります。DevOpsはアジャイル思考、コミュニケーションです。文化、および組織形態。クラウドネイティブに継続的な配信機能を提供します。

継続的デリバリー

継続的デリバリーとは、遅延のない開発、ダウンタイムのない更新、小さなステップと高速実行、および従来とは異なるウォーターフォール開発モデルです。これには、開発バージョンと安定バージョンの共存が必要です。実際、多くのプロセスとツールのサポートが必要です。

ここに画像の説明を挿入

これらの要素はまだ少し抽象的です。実際、業界で最もコンセンサスとなっている、元のネイティブアーキテクチャに準拠するランディングアプリケーションシステムは、マイクロサービスアーキテクチャに基づいて、コンテナ化されたデプロイにk8s + dockerを使用して、フロントエンドとバックエンドが完全に分離されたアプリケーションを開発し、柔軟性を向上させます。保守性、およびアジャイル反復メソッドの助けを借りたサポート継続的な反復と改善を備えたカウンターパーティツールの機能は、オンラインリリースの自動化をサポートし、クラウドプラットフォーム機能を使用して、柔軟なスケーリング、動的調整、および最適なリソース使用率を実現します。このアーキテクチャはシンプルです。アプリケーションをすばやく構築し、アプリケーションを簡単にデプロイし、アプリケーションを実行する従来の5Gトラフィック分散スパイクこれはアプリケーションアーキテクチャであり、以前のIT構築モデルは、今日までのインターネットテクノロジー開発全体の統合システムです。

3.特定のクラウドネイティブテクノロジーは何ですか?

多くのクラウドネイティブテクノロジーがあり、コンテナ、サービスメッシュ、宣言API、不変インフラストラクチャ、マイクロサービスの5つのタイプに大別できます。

ここに画像の説明を挿入

コンテナ

コンテナ化された端末コンテナ化されたカプセル化とは、コンテナベースのアプリケーションを指します。使用されるコンテナ化テクノロジはコンテナ内で実行されるため、アプリケーションはコンテナ内でカプセル化され、コンテナ内で実行され、リソースの相対的な分離とコンテナイメージの再利用を実現します。基盤となるハードウェアの違いを考慮する必要がないため、開発作業が大幅に簡素化され、運用・保守担当者にとっても非常に使いやすいため、環境問題を心配する必要がありません。使用されるテクノロジーには、Dockerとk8sが含まれます。

マイクロサービス

マイクロサービス指向、マイクロサービス指向とは、大規模な機能アプリケーションを、単一の機能を備え、比較的独立していて、互いに分離されたマイクロアプリケーションに分割することを指します。マイクロアプリケーションは、SpirngCloudなどのマイクロサービステクノロジーを使用して、インターフェイスを介して通信します

サービスメッシュ

サービスメッシュは、サービス通信の処理専用のインフラストラクチャレイヤーです。その責任は、クラウドネイティブアプリケーションで構成されるサービスの複雑なトポロジの下で信頼性の高いリクエストを配信することです。実際には、これはアプリケーションサービスとともに展開され、アプリケーションサービスに対して透過的な一連の軽量ネットワークプロキシです。

不変のインフラストラクチャ

不変インフラストラクチャの不変性は、プログラミングの不変性の概念と非常によく似ています。プログラミングにおける不変の変数は、割り当てが完了した後は変更できないことであり、新しい変数は、古い変数全体を置き換えるためにのみ作成できます。この機能により、この変数は並行環境で安全に使用できます。インフラストラクチャの基本的な不変性は、サービスを実行しているサーバーが展開後に変更されないことを意味します。

Deciarative API

宣言型APIはKubernetesの技術的なポイントであり、そのコア原則は、ユーザーがAPIオブジェクトの説明をKubernetesに送信するときに、クラスター全体の各リソースのステータスがAPIオブジェクトで記述されるようにする責任があるということです。要件は一貫しています。さらに重要なことに、この保証は「無条件」、「有効期限なし」の約束です。etcdに保存されているAPIオブジェクトごとに、Kubernetesは「コントローラーパターン」無限ループと呼ばれるプロセスを開始し、常にチェックしてから調整し、最後に状態を確認しますクラスタ全体のは、このAPIオブジェクトの説明と一致します。簡単に理解すると、オブジェクトの宣言はオブジェクトの作成から切り離されています。共通のプログラムでオブジェクトを作成するには、オペレーティングシステムからリソースを申請する必要があります。同様に、コンテナクラウドプラットフォームでオブジェクトを作成するには、k8sからリソースを申請する必要があります。ただし、k8sはさらに一歩進んでおり、申請フォームを送信するだけで、k8sシステムがオブジェクトの作成を完了します。

これらのテクノロジーはクラウドネイティブの構成の一部にすぎませんが、これらのテクノロジーは自社のコンピュータールームサーバーでも使用できます。つまり、これらのテクノロジーを使用しても、クラウド環境でなければ、クラウドネイティブではありません。 、クラウドネイティブ、クラウドサーバーベースである必要があります。

第4に、従来の物理サーバーに対するクラウドサーバーの利点

自分で物理サーバーを構築する代わりに、なぜクラウドサーバーを使用するのですか?
ここに画像の説明を挿入

クラウドサーバーの具体的な利点は次のとおりです。

1.柔軟性:クラウドサーバーは、多数のクラスターホストのコンピューティング、ネットワーク、およびストレージリソースを統合する仮想化テクノロジーを採用しています。そのCPU、メモリ、ハードディスク、帯域幅、およびその他のリソースは、オンデマンドで柔軟に拡張および使用できます。会社のプロジェクト、すべて1つの特徴は、訪問数が固定されていないことです。アクティビティを実行する場合、訪問数は1日のトラフィックの数倍になります。この状況に対処するために、物理サーバーの場合、会社は常に最大のトラフィックピーク機器に対応できる物理サーバーを準備しますが、トラフィックピーク後、これらの物理機器はクラウドサーバーのように解放できず、柔軟性がありません。

2.セキュリティと安定性**:クラスターサーバーに基づいて、クラウドサーバーはより強力なホストパフォーマンスを持ち、操作はより安全で安定しています。

3.利便性:クラウドサーバーは運用とアップグレードに便利です。従来のサーバーのリソースは限られています。より優れたスキルを習得したい場合は、クラウドサーバーのみをアップグレードできます。いわゆる「クラウド」とはネットワークとインターネットを意味します。Aクラウドサーバーは、弾力的にスケーラブルな処理機能を備えた、シンプルで効率的、安全で信頼性の高いコンピューティングサービスです。操作が簡単です。元の構成が低すぎる場合は、システムを再インストールせずにCPU、ハードディスク、メモリなどをアップグレードできます。これにより、以前の使用に影響はありません。

4.低コスト:クラウドサーバーの方が費用効果が高いクラウドサーバーは従量制です従来のサーバーと比較して、リソースを無駄にすることなく好きなだけ購入できます従来の物理サーバーはトラフィックに対応できるように準備する必要がありますピーク。デバイスの数。

5.クラウドネイティブのメリット

  • ラピッドクラウドネイティブアーキテクチャは、アジャイル開発とユニットを使用します。これにより、企業は迅速に開発して製品を自動的に作成しないだけでなく、製品を継続的に更新できるため、製品は需要に追いつき、需要を導き、企業は別の位置に立ってください。地面を失いました。
  • 弾力性のある拡張クラウドネイティブアーキテクチャは本質的にクラウドコンピューティングを特徴とし、リソースはオンデマンドでスケーリングできるため、リソースの使用率が向上するだけでなく、企業のコストも大幅に削減されます。
  • 強力なクラウドネイティブアーキテクチャは、コンテナオーケストレーターに依存してk8とマイクロサービスを組み合わせ、自動リカバリ機能、フォールトトレランス機能、障害分離機能を備え、アプリケーションを強化します。
  • 使用されるコンテナ化されたテクノロジーアプリケーションはコンテナで実行されるため、根本的な違いを保護します。基盤となるハードウェアの違いを考慮する必要がなく、開発の作業負荷が大幅に簡素化され、運用および保守担当者にも非常にフレンドリーで、心配する必要がありません。環境問題について。そして苦しんでいます。

6.まとめ

以上のことから、クラウドネイティブとは、開発環境を物理サーバーからクラウドサーバーに変更し、このクラウドサーバーの環境に合わせて技術的なアーキテクチャを調整することであると簡単に理解できます。これはクラウドネイティブです。

おすすめ

転載: blog.csdn.net/qq_45171957/article/details/124076530