クラウドネイティブ ストレージ システムはどのような条件を満たす必要がありますか?

クラウドネイティブ ストレージ システムはどのような条件を満たす必要がありますか?

2019年にテクノロジー業界では「クラウドネイティブ」という言葉が広く使われていましたが、この言葉には特に明確な定義はありませんでした。主な混乱は、「クラウド ネイティブ」はアプリケーションがデプロイされる環境とはほとんど関係がなく、この用語がプライベート クラウドとパブリック クラウドに同様に適用されることです。この用語は、アプリケーションとアーキテクチャの特性を指します。

Cloud Native Computing Foundation (CNCF) によるこの用語の最新の定義には、いくつかの関連情報が記載されています。

クラウド ネイティブ テクノロジーにより、組織はパブリック クラウド、プライベート クラウド、ハイブリッド クラウドなどの最新の動的環境でスケーラブルなアプリケーションを構築および実行できるようになります。コンテナ、サービス メッシュ、マイクロサービス、不変のインフラストラクチャ、宣言型 API などがこのアプローチの例です。

これらの技術により、疎結合システムの回復力、管理性、監視性が高まります。強力な自動化機能と組み合わせることで、エンジニアは最小限の労力で、頻繁かつ予測可能な方法で重要な変更を加えることができます。

では、ストレージがクラウド ネイティブであるということはどういう意味でしょうか?つまり、クラウド ネイティブ エコシステム内の他のすべてと同じように、動的な API 駆動型の方法で動作する必要があります。ストレージ システムがクラウド ネイティブであるかどうかを判断するための関連するメトリックが 2 つあります。

  • Kubernetes 用に構築されていますか?
  • Amazon の S3 API と互換性がありますか?

以下では、これらの指標をさらに詳しく解釈します。

クラウドネイティブストレージはオブジェクトストレージです

最新のアプリケーション アーキテクチャはオブジェクト ストレージに基づいており、デフォルトでは S3 がクラウドの API 言語です。オブジェクト ストレージは、クラウド ネイティブ アプリケーションによって生成される大量のデータを処理できるように設計された唯一のストレージ タイプであり、企業が負担できる価格とユーザーが期待する速度で処理できるため、現代のストレージの主流となっています。オブジェクト ストレージのその他の特性としては、ブロック ファイル ストレージ システムと比較して、優れた分散特性、優れた回復力、高い可用性などが挙げられます。

これらはすべて、クラウド ネイティブ アプリケーションに望ましい特性です。

Amazon S3 API はオブジェクト ストレージの事実上の標準であり、すべてのオブジェクト ストレージ ソフトウェア ベンダーは S3 API と互換性があると主張しています。 AWS S3 は実際にはバイナリ互換性があります。すべてのシナリオに適用されるか、すべてのシナリオに適用されないかのどちらかです。

つまり、S3 API は、考えも及ばないような極端なケースも含め、基本的にほとんどのシナリオに対応できます。これはオープンソース ソフトウェアが大きな利点を持つ分​​野です。アプリケーション、オペレーティング システム、ハードウェア アーキテクチャの規模と多様性を考慮すると、ほとんどのエッジ ケースに対応しており、それらに適していることがわかります。

アプリ作成者にとっては、これらのベンダーに対してアプリをテストする必要があるため、これは重要です。オープンソースを使用すると、ベンダーのソリューションを簡単に評価およびテストでき、テストに合格すればクラウドネイティブである可能性が高くなります。そうでなければ、いいえ。

Kubernetes向けに設計

「クラウド ネイティブ」であるための 2 番目の基準は、外部のコンテナ オーケストレーション プラットフォームを活用する分散アーキテクチャを使用することです。つまり、アーキテクチャは Kubernetes 対応である必要があります。 Kubernetes は、コンテナ オーケストレーションに関してはすでに業界の明確な勝者であるため、Kubernetes と連携するように構築することは、クラウド ネイティブと見なされるストレージ ソリューションを実現するために不可欠です。

ストレージが Kubernetes 対応であるというのはどういう意味ですか?主な基準は 6 つあると考えています。

1. Kubernetesでストレージノードをオーケストレーションする

Kubernetes は、コンピューティングとストレージの両方のオーケストレーションを処理できる強力なオーケストレーターです。 MinIO のような真のクラウドネイティブ ストレージ ソリューションは Kubernetes と統合されており、オペレーターは Kubernetes インターフェースを使用してストレージを管理できます。一方、Kubernetes はストレージのプロビジョニングからボリュームの配置まですべてを処理します。

2. マルチテナント

マルチテナントにより、複数の顧客がアプリケーションの単一インスタンスを使用できるようになります。また、適切に実装されていれば、特に大規模な場合、運用オーバーヘッド、コスト、複雑さを軽減できます。ただし、複数のユーザーが他のユーザーに影響を与えることなくコンピューティング リソースやストレージ リソースにアクセスできるように、厳密なリソース分離も必要です。真のクラウドネイティブ ストレージ ソリューションは、マルチテナント アーキテクチャのセキュリティ、高可用性、高パフォーマンスを保証するために十分なリソース分離を提供します。

オブジェクト ストレージの世界では、これは Kubernetes インフラストラクチャがストレージ テナントを分離して管理する必要があることを意味します。 Kubernetes がインフラストラクチャを管理しない場合は、真のクラウドネイティブ プラットフォームとは言えません。これにより、CSI またはオペレータ統合機能を備えた機器ベンダーは不適格となります。

3. 軽量

ストレージ システムが非常に軽量で、アプリケーション スタックとパッケージ化できない限り、マルチテナントは不可能です。ストレージ システムが占有するリソースが多すぎたり、含まれる API が多すぎると、同じインフラストラクチャ上に多数のテナントを配置できなくなります。

4. スケーラビリティ

スケーラビリティは、クラウド ネイティブ システムの重要な属性の 1 つです。 Kubernetes の利点の 1 つは、大規模に実証されていることです。 Kubernetes はストレージのスケーリングの管理にも使用できますが、基盤となるストレージ システムが Kubernetes と統合され、ストレージのプロビジョニングとプロビジョニング解除の機能が Kubernetes に引き渡されている場合に限られます。

5. API駆動

Kubernetes およびクラウドネイティブ システム全般の基本原則の 1 つは、自動化を通じて可能な限り管理することです。ストレージ システムを真にクラウド ネイティブにするには、API を介して Kubernetes と統合し、動的な API 駆動型のオーケストレーションを可能にする必要があります。

6. ユーザースペース

最後の考慮はおそらく最も難しいでしょう。オブジェクト ストレージ ソリューションをクラウド ネイティブにするには、カーネルに依存せずに完全にユーザー空間で実行する必要があります。これは、ほとんどのオブジェクト ストレージ システム (特にハードウェア アプライアンス) が構築される方法ではありません。ただし、ストレージをコンテナ化して任意の Kubernetes クラスターにデプロイする場合は、これらの制限に従う必要があります。定義上、これはカーネルのパッチ適用を必要とするソリューションや特殊なハードウェアを備えたソリューションはクラウドネイティブではないことを意味します。

結論は

「クラウド ネイティブ」ステータスを要求するこれら 2 つの基準は、ある程度は単純ですが、実際には非常に困難です。パブリック クラウド オブジェクト ストレージ ベンダーは、これらの脅威にうまく対処してきました。確かに、Google が Kubernetes のソースであり、Amazon が S3 のソースであるなら、そうすることが期待されます。プライベート クラウド オブジェクト ストレージ ベンダーがこれらのテストに合格するのは、はるかに困難です。 S3 と互換性があると主張する人もいますが、詳しく調べてみるとそうではないことがわかります。ほとんどの従来のベンダーにとって、Kubernetes は単純に彼らの遺伝子の中に存在せず、多くの場合、計画の中にさえ存在しません。ここには多くの困難があるからです。

MinIO はクラウドネイティブ ワークロード専用に構築されており、Kubernetes を念頭に置き、Kubernetes の方法に従って設計されています。 MinIO は S3 と互換性がありますが、Google、Azure、プライベート クラウドでも使用できるため、マルチクラウドやハイブリッド クラウドが可能になります。

高性能なクラウドネイティブ オブジェクト ストレージは、クラウドネイティブ アプリケーションに必要なパフォーマンス、信頼性、スケーラビリティを実現する唯一の方法です。

<<:  分散スケジュールタスクの弾性ジョブのジョブシャーディング戦略について話しましょう

>>:  1 つの記事で DevOps を理解します。それでも分からないなら殴ってみろ

推薦する

SEO 起業プロジェクトが多数あるため、Weikebaba SEO に参加してみてはいかがでしょうか。

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

Kubescape で Kubernetes を保護する方法

Kubernetes は強力ですが、複雑でもあります。クラスターを攻撃に対して脆弱な状態にしておくこ...

本の貸し出しサイトが静かに出現し、ニッチな市場を狙う

伝統的な図書館が人々の慌ただしい生活からますます遠ざかるにつれ、書籍を迅速に更新し、戸別配達や受け取...

ソーシャルメディアマーケティングの15のヒント

最近、ソーシャルメディアに関する本を読みました。ソーシャルメディアで働いている友人たちの役に立つこと...

テンセント、アリババ、銀行がクラウドへの生死を賭けた競争を繰り広げる

テンセントがダウン、テンセントがダウン、テンセントがダウンするとアリババもダウン。 2019年3月2...

360 百度検索戦争は SEO に影響を与えるか?

この間、Baidu と 360 Search の間での検索戦争は静かに進行してきました。Baidu ...

復旧には14日かかり、近年最大のSaaS障害となった。

すべての開発プロジェクトを管理するプラットフォーム、社内文書の共有ナレッジベース、ビジネス部門、営業...

運用上の注意: プライベート ドメイン トラフィックとは何を意味しますか?プライベート ドメイン トラフィックに関するこれらの誤解に注意してください。

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスプライベートドメイントラ...

コンテナ構築の7つのベストプラクティス

コンテナと Kubernetes は急速に人気を集めていますが、まず 1 つのことを明確にする必要が...

「SEO のいくつかの重大な犯罪」を反論する SEO を本当に理解する方法

最近、ある業界のウェブサイトで「SEO のいくつかの重大な犯罪」というタイトルの記事を見ましたが、そ...

知っておくべきエッジコンピューティングの誤解

[[379838]] [51CTO.com クイック翻訳] エッジ コンピューティングは、より広範な...

百度のアルゴリズム異常は「砂糖で覆われた弾丸」の疑い

みなさんこんにちは。私は梁磊です。百度はここ数日、異常な動きを見せています。皆さんも慣れていると思い...

エッジコンピューティングの開発を加速

5G は、これまでのどの世代の無線技術よりも速いペースで導入されています。 Omdiaの調査によると...

ガートナーによるクラウドおよびエッジ インフラストラクチャの展望

今日のデジタルファーストの世界では、企業のインフラストラクチャは絶えず進化し、変化しているため、イン...

Hostyun のロサンゼルス データ センターの簡単なレビュー - 200M 帯域幅のトリプル ネットワーク cn2 gia vps!

Hostyun は最近、米国のロサンゼルス データ センターの cn2 vps も使用しました。3 ...