クラウドネイティブとは何か、そしてクラウドネイティブアプリケーションの12の要素を理解する

クラウドネイティブとは何か、そしてクラウドネイティブアプリケーションの12の要素を理解する

クラウド ネイティブという言葉は誰もが知っていると思います。しかし、「クラウド ネイティブとは正確には何なのか」と尋ねられたら、どのように答えますか?

クラウドネイティブ

Cloud Native Computing Foundation (CNCF) は、公式 Web サイトで次のように説明しています。

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

これらの技術により、フォールト トレラントで管理しやすく、監視しやすい疎結合システムの構築が可能になります。信頼性の高い自動化と組み合わせたクラウドネイティブ テクノロジーにより、エンジニアはシステムに頻繁かつ目に見える変更を簡単に加えることができます。

実際のところ、上記の定義はクラウド ネイティブが何であるかに関してまだ非常に曖昧です。ただし、上記の定義からいくつかの重要な情報を得ることができます。

  1. クラウド ネイティブ アプリケーションはクラウド環境にデプロイする必要がありますが、クラウド環境にデプロイされたアプリケーションは必ずしもクラウド ネイティブ アプリケーションであるとは限りません。
  2. クラウド ネイティブ アプリケーションには、一定のスケーラビリティ、フォールト トレランス、および可観測性が備わっています。
  3. クラウド ネイティブはテクノロジーやフレームワークではなく、概念です。

これもわかりやすいですね。初期の頃は、企業がアプリケーションやサービスを立ち上げたい場合、マシンを購入してコンピュータ ルームを導入し、そのコンピュータ ルームのサーバーに独自のアプリケーションを導入する必要がありました。これは明らかにクラウド ネイティブではありません。結局のところ、クラウドはまだ開始されていません。

その後、多くのクラウドベンダーが登場し、クラウド環境を提供しました。現時点では、アプリケーションを展開する場合、独自のコンピューター ルームを構築する必要はなくなりました。クラウドベンダーから対応するデータセンター内のサーバーを購入するだけで、アプリケーションを展開できます。ただし、現時点では、アプリケーションはクラウド上にあるとしか言えず、アプリケーションはまだクラウド ネイティブ アプリケーションではありません。

これも上で述べた通りです。アプリケーションはクラウド環境にデプロイされますが、これはクラウド ネイティブ アプリケーションであることを意味するものではありません。現時点では、アプリケーションはクラウド ベンダーの機能を十分に活用しておらず、スケーラビリティ、フォールト トレランス、および可観測性も備えていないためです。

12要素の適用

以前、クラウドネイティブとは何かを紹介しました。それでは、12 要素アプリケーションとは何かについて説明しましょう。 12 ファクター アプリは、有名な PasS プラットフォーム Heroku の CTO である Adam Wiggins 氏によって提案されました。これはもともと、クラウド上で実行されるアプリケーションが従う必要がある 12 のベスト プラクティスを指していましたが、クラウド ネイティブ アプリケーションにも適用されます。

1. ベンチマークコード

ベンチマーク コードとは、日常の開発と展開において、開発、テスト、オンラインなど多くの環境が存在する可能性があり、同じベンチマーク コードが必要になることを意味します。ただし、ここで主に重点が置かれているのはオンラインです。クラウド ネイティブ アプリケーションのデプロイメントはいつでもどこでも動的に拡張できるため、オンライン環境がベースライン コードに基づいてデプロイされ、1 セットのコードに対して複数のデプロイメントを実装する必要があるためです。

これもわかりやすいですね。分散アーキテクチャと同様に、複数のインスタンスが同じコードでデプロイされます。

2. 宣言的依存関係

宣言的依存関係とは、依存関係を明示的に宣言する必要があることを意味します。現在、依存関係管理ツールは数多く存在します。たとえば、Java プロジェクトには Maven と Gradle が使用され、他の言語のプロジェクトにも他のパッケージ管理ツールが使用されます。

開発に必要なクラス ライブラリの明示的な依存関係に加えて、システム レベルのツールやライブラリにも依存する必要がある場合は、暗黙的な依存関係ではなく宣言的な依存関係も作成する必要があります。これは、クラウドネイティブ環境では、コンテナに基づいてアプリケーションをデプロイするためです。これらの依存関係を明示的に宣言しないと、同一のコンテナ イメージを作成できず、サービスが利用できなくなる可能性があります。

3. 構成管理

アプリケーションを正常に起動するには、正しいコードに加えて、正しい構成も必要です。クラウドネイティブアプリケーションでも同様です。環境に応じて異なる構成が必要です。環境が同じであれば、構成も同じである必要があります。また、構成をコードから分離する必要があり、これも理解しやすいです。結局のところ、アプリケーション コードを複数の環境にデプロイする必要があります。構成が同じであれば、展開する方法はありません。

構成管理は、Diamond やその他の構成センターなどのミドルウェアを使用して実行できます。構成センターでは、リアルタイムの変更と構成のプッシュを実現できるため、管理と変更が非常に便利になります。

4. バックエンドサービス

ここでのバックエンド サービスとは、メッセージ キュー、データベース、キャッシュ、スケジューリング プラットフォームなど、アプリケーションが依存するダウンストリーム サービス、コンポーネント サービス、ミドルウェア サービスを指します。クラウド ネイティブ アプリケーションでは、これらのバックエンド サービスをリソースとして呼び出す必要があり、これらのリソースもクラウド ネイティブ アプリケーションの仕様に準拠している必要があります。つまり、いつでも動的に拡張できる必要があります。

5. ビルド、リリース、実行

クラウドネイティブ アプリケーションでは、アプリケーションの構築、リリース、運用を厳密に分離する必要があります。これらのアプリケーション プロセスは、各要件の反復後にオンラインになるために必要であり、これらの手順がこの順序で実行されるため、ビルド前にリリースが存在しないことがわかりやすくなります。 Java アプリケーションの場合、ビルドとはソース コードをコンパイルしてパッケージ化することです。構築フェーズで失敗した場合、次のステップは実行されません。

アプリケーションをビルドするときに、依存関係が不足しているかコンパイル エラーがある場合は、ビルドが終了します。公開とは、コンパイルされた Jar パッケージまたはその他のフォームを構成ファイルとともに指定された環境のコンテナーにデプロイすることです。実行とは、公開するコンテンツを開始することです。現時点では、弊社の設定に問題がある場合、アプリケーションの起動に失敗する可能性があります。

6. プロセス

クラウドネイティブ アプリケーションでは、アプリケーションがステートレスである必要があります。これは理解しやすいですね。結局のところ、クラウドネイティブ アプリケーションはいつでもスケーラブルであるため、アプリケーションはステートレスである必要があります。このため、開発中にコード内で状態を必要とするロジックを使用しないように注意する必要があります。たとえば、スケジュールされたタスクにより各インスタンスがスケジュールに基づいて実行されるため、問題が発生する可能性があります。 XXL-JOB のような分散スケジューリング プラットフォームを使用できます。

7. ポートバインディング

アプリケーションはポートをバインドすることでサービスを提供します。ほとんどの場合、私たちはすでにこれを実行しているので、一部の友人はこれを理解できないかもしれません。その理由は、アプリケーション内でプロセス通信を使用しないようにするためです。

8. 同時実行性

高い同時実行性でのプロセス拡張をサポートする必要があるため、アプリケーションはステートレスである必要があり、より多くのプロセスを展開することで拡張できる必要があります。これも分かりやすく、先ほど述べた無国籍にも関係します。

9. 扱いやすい

いわゆる「扱いやすい」とは、クラウド ネイティブ アプリケーションがすばやく起動し、正常に終了できることを意味します。クラウドネイティブ環境では、容量を柔軟に拡張する機能が必要であるため、アプリケーションは迅速に起動および終了できる必要があります。

高速起動により、アプリケーションはより速くサービスを提供し、弾力的なスケーリング要件をより速く満たすことができます。また、正常な終了により、アプリケーションのシャットダウン時にタスクやトラフィックのアクセスを回避することもできます。

10. 開発環境はオンライン環境と同等

さらに、開発環境、プレリリース環境、オンライン クラウド ネイティブ環境を可能な限り同じ状態に保つ必要があります。もちろん、ここでの「同じ」とは、できるだけ同じに保つことを意味します。同じ環境であれば、実装した機能が環境の問題で利用できなくなることはありません。ただし、リソースの問題により、開発環境、プレリリース環境、オンライン環境がまったく同じにならないことに注意してください。

11. ログ

クラウド ネイティブでは、ログをイベント ストリームとして扱う必要があります。これは、クラウド ネイティブ アプリケーションのインスタンスの数は常に変化しており、各インスタンスが常にログを生成するためでもあります。各インスタンスのログを確認することはできないため、特定のログシステムにログを収集して収集する必要があります。これは実際には分散システムでも同じです。ログは通常、ELK テクノロジーを通じて保存および分析されます。

12. プロセスの管理

最後のポイントである「管理プロセス」は、バックグラウンド管理システムのタスクを 1 回限りのプロセスとして実行することを指します。実際、これは普遍的な要因ではなく、バックグラウンド システムの特定の機能に関連しています。ここでは議論しません。

要約する

上記では、クラウド ネイティブとは何か、そしてクラウド ネイティブ アプリケーションの 12 の要素について説明しました。それらの多くは分散システムの要件と一致していますが、クラウド ネイティブ アプリケーションの要件はより高く、より厳格で、より自動化されています。

全体的な観点から見ると、クラウド ネイティブ アプリケーションは現在、企業や個人にとって最善かつ最速で低コストの方法です。

多くの中小企業では、独自のインフラストラクチャを構築する必要はありません。クラウドベンダーが提供する機能を直接導入して、自社のビジネスを迅速に展開することができます。結局のところ、中小企業にとって最も重要なことは生き残ることであり、そのようなことに時間とエネルギーを浪費する必要はありません。

参照する

  1. 入門からプロジェクト実践まで、Springを学ぶ
  2. オンライン情報


<<:  クラウドネイティブはデジタル世界の新たな未来をリードし、アプリケーションエンジンはクラウドネイティブの「ルート」技術革新で飛躍的な進歩を遂げる

>>:  クラウドネイティブのコンテキストで JVM メモリを構成する方法

推薦する

優れたマーケティングと質の悪い製品は市場全体の衰退につながる

私は再びあなたとチャットし、私の一時的なアイデアをいくつか共有して、それがあなたの役に立つことを願っ...

#Hollandvps# hostus、オランダの新データセンター、768M メモリ/VPS 年間支払い 16 USD

Hostus はオランダのアムステルダムに新しいデータセンターを追加しました。コンピューター ルーム...

アリババは、脆弱なネットワークの「ラストマイル」を埋めるために独自の次世代ネットワークプロトコルXLINKを開発しました。

記者は6月2日、DAMOアカデミーのXG実験室とタオバオテクノロジーが共同開発したマルチパスQUIC...

「タオバオ大学」をめぐる論争:人材育成か「ベンダー」の模倣か

アリワンワンの特徴的な「ピンポーン」という音とともに、店主は客に挨拶を始めました。「おや、何をお求め...

hivalidity: インド VPS (ムンバイ、ノイダ)\米国 VPS\ドイツ VPS、月額 5 ドル、1Gbps 帯域幅

2009 年に設立されたインド企業である hivalidity は、ドメイン名、仮想ホスティング、V...

予算vm-$169/253IP/E3-1270V3/32Gメモリ/2Thdd/240gSSD/20Tトラフィック/Gポート/ロサンゼルス

Enzuの有名なIDCブランドbudgetvmは、ロサンゼルスデータセンターで特別なサーバープロモー...

クラウドコンピューティング市場の競争が激化、IBMがフィンランドのクラウドコンピューティング企業Nordcloudを買収

IBMは12月25日、フィンランドのクラウドコンサルティングサービスプロバイダーNordcloudを...

キャンセルから再審査までのウェブサイト登録の全プロセス

2012 年 9 月 5 日に、私のブログの登録が取り消されましたが、登録システムからテキスト メッ...

準備はできていますか?Google PRアップデートがまもなく登場します

Google PRが最後に更新されたのは2012年5月初旬でした。最近の更新を見ると、Googleの...

アリババ平頭が再び新種を開発、初のブロックチェーンチップソリューションが誕生

最近、アリババ傘下のチップ企業である平頭閣は、中国初のフルリンクスマートコントラクトプロセッサを発表...

最初にウェブサイトを運営し、宣伝する方法 - A5 Webmaster Network

初期の開発中に Web サイトを引き継いだ Web マスターであれば、おめでとうございます。これは良...

JD CloudとAI:緊急支援を提供するための無料製品とサービスを多数提供し、企業と一般市民の流行との闘いを支援

旧暦の1月6日は、店舗開店の重要な日です。疫病に覆われた春節は、多くのことを中断させました。しかし、...

2021年中国産業インターネット会議が間もなく開幕します。誰を観るべきでしょうか?

9月17日、広東省工業情報化庁、広東省通信局、工業情報化部第五電子研究所、中国工業インターネット研究...

uk2-ビジネス クラウド ホスティング/3 つの無料ドメイン/無料 SSL/無料 SEO ツール/4.95 GBP

UK2 グループから商用クラウド ホスティングに関するプロモーション情報を受け取りました。商用クラウ...