回復力と拡張性に優れたクラウドネイティブアプリケーションを構築する

回復力と拡張性に優れたクラウドネイティブアプリケーションを構築する

クラウドネイティブ アプリケーション設計により、ソフトウェア エンジニアは顧客のニーズを満たすことに集中でき、これはユース ケース レベルで活用できるソリューションです。

1986年、私は叔父の新興企業で働くためにコロラド州ボルダーに引っ越しました。初日にオフィスに到着すると、彼は Compaq ポータブル コンピュータが取り付けられた机を見つけてくれました。システムの上には、dBase II の使用に関する本が置かれていました。私は彼の会社のために注文を追跡するためのアプリを構築する任務を負いました。叔父は私がコンピューターに興味を持っていることを知っていたので、私は仕事を始めるのが待ちきれませんでした。これが、マイクロコンピュータ時代のアプリケーション構築を学ぶ初めての経験となりました。プロセスは非常に簡単です:

  1. 必要な要件を文書化します。
  2. 定義された要件を満たす設計を作成します。
  3. ソリューションをビルドしてデバッグします。
  4. ソリューションが期待どおりに動作することを確認します。
  5. ソリューションを配布する方法を確認します。
  6. 顧客にソリューションを採用して使用することを要求します。

現在、私たちは Web2 と Web3 の世界でアプリケーションやサービスを構築していますが、私はこの時代を「Web なし」のアプリケーション設計時代とよく呼んでいます。

数年後、私は全米の保険代理店が使用できるように、フロッピー ディスクで Turbo Pascal ベースのアプリケーションを配布したことを覚えています。その後、アプリケーションは企業のデータセンターに設置されたファイル サーバーに保存されるようになりました。 Web1 のイテレーションはまだ数年先のことでした。

2023 年のコンテナ技術トレンドの見通し

DZone の 2023 年コンテナ テクノロジー トレンド レポートでは、コンテナの現状、グローバル コンテナ化戦略の主要なトレンドと進捗状況、ソフトウェア アーキテクチャの最新化に関する建設的なコンテンツを探ります。

アプリケーション開発ライフサイクルのステップのほとんどは実際には変わっていませんが、クラウド サービス プロバイダーはいくつかの重要な要素をもたらします。

  1. 集中型のアプローチを採用します。
  2. スケーラビリティを向上します。
  3. アプリケーションとサービスの回復力。

これらすべての側面は、クラウド ネイティブ アプリケーションの利点です。

クラウドネイティブとは何ですか?

Wikipedia では、クラウド ネイティブ コンピューティングを、クラウド サービスを使用して「パブリック クラウド、プライベート クラウド、ハイブリッド クラウドなどの最新の動的環境でスケーラブルなアプリケーションを構築および実行すること」と定義しています。企業やスタートアップ企業がデータセンターの維持管理業務からの脱却を熱望する中、クラウドへの移行が最優先事項となっています。

クラウド ネイティブ アプリケーションは、単にクラウドで実行されるアプリケーションではありません。重要な違いは、アプリケーションがクラウド内でネイティブに実行されるように設計されている点です。コンテナ、サーバーレス、マイクロサービスの採用により、水平スケーリングとマルチリージョン サポートを提供しながら、ある環境から別の環境に簡単にデプロイできるソリューションが提供されます。

ハードウェア層はコードベースから分離されているため、クラウドネイティブ アプリケーションは簡単にスケールアップできます。

クラウドネイティブアプローチ

クラウド ネイティブ アプローチを採用すると、ソフトウェア エンジニアはアプリケーションを複数の側面に分割し、共通のアプローチを使用して各側面を処理できるようになります。

  1. サーバーレス - イベント駆動型リクエストを機能的な Lambda に移行して処理します。
  2. マイクロサービス – 大規模なアプリケーションを小さな処理ユニットに分割します。
  3. コンテナー - 配布用にアプリケーションを自己完結型のマルチレイヤー コンテナーにパッケージ化します。

これらの各側面について、クラウド サービス プロバイダーはエクスペリエンスを強化するアドオンを提供しています。一般的な例としては次のようなものがあります。

  1. API ゲートウェイ - サービスを保護し、リクエストの承認などの共通コンポーネントを処理します。
  2. 自動スケーリング - 事前に設定されたしきい値に基づいて拡大および縮小します。
  3. キャッシュ - 長時間実行されるアプリケーション要求を回避するために、要求された情報をメモリベースのキャッシュに保存します。
  4. フェイルオーバー - トラフィックをセカンダリ ノードに自動的にルーティングして処理します。
  5. ファイル ストレージ - 無限にスケーラブルで高性能なオブジェクト ストレージ。
  6. 負荷分散 - 異なる地理的な場所にあるインスタンスにリクエストを分散します。
  7. オーケストレーション - コンテナ ソリューションは、大規模に自動化、拡張、管理されます。
  8. 永続性 - SQL および NoSQL ベースのデータ ストレージ オプションを使用します。
  9. 機密性管理 - 機密性の高い情報の漏洩を回避します。

クラウド ネイティブ アプローチは最小の粒度で設計できるため、結果として得られるクラウド ネイティブ アプリケーションは、図 3 に示すように、設計のあらゆる側面に対して最適なソリューションを提供できます。

クラウドネイティブアプリケーションは複数のクラウドサービス機能から構築されます

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

アプリケーション構築におけるクラウドネイティブなアプローチにより、ソフトウェア エンジニアはユースケース レベルで最適なテクノロジーを使用してソリューションを構築し、顧客のビジネス ニーズを満たすことができます。つまり、あるユースケースではイベント駆動型のサーバーレス ソリューションを採用し、別のユースケースでは SaaS 駆動型の永続性レイヤーに裏打ちされたマイクロサービスを活用できるということです。

クラウドネイティブ アプリケーションでは、アプリケーション コンポーネントをオンデマンドで拡張できます。つまり、1 つのマイクロサービスに対する需要によって、他のマイクロサービスに同じレベルのリソースを割り当てる必要はありません。さらに、コンポーネント インスタンスは、同じ地域または異なる地域にわたって水平方向に拡張できます。

ハードウェア層がアプリケーション層から分離されているため、クラウドネイティブ アプリケーションを設計する人は、ビジネス ニーズと企業目標の達成に集中できます。

これらの利点により、クラウド ネイティブ アプリケーションは、オンプレミス データ センターで実行するように設計されたアプリケーションよりも大きな優位性を獲得します。バックアップ計画や災害復旧などの概念を考慮すると、その違いはさらに大きくなります。

クラウドネイティブの課題

クラウド ネイティブ コンピューティングはアプリケーション設計の楽園のように思えるかもしれませんが、考慮する必要がある課題もあります。クラウドネイティブコンピューティングに対する主な批判は、その潜在的な高コストです。

一般的な例としては次のようなものがあります。

  1. プロトタイプ コンポーネントをクリーンアップできません。
  2. スナップショットは、保持スケジュールを確立せずに自動的に作成されます。
  3. より安価なオプションが存在する場合に、ハードウェア リソースを過剰に割り当てる。

ほとんどのクラウド サービス プロバイダーはコストを予測および分析するための優れたツールを提供していますが、コスト管理を優先するには標準を広く採用する必要があります。世界中の複数の地域で作業する場合、特に機密データに関しては、適用される規制を理解することが重要です。遵守しない場合は罰金または料金が課せられる場合があります。

クラウド プロバイダーは、複数のリージョンの障害および災害復旧保護機能を提供します。ただし、これらの高度な概念は、自動障害処理を可能にし、予期しないデータの問題から保護するために、設計および実装するのが難しい場合があります。

結論は

ソフトウェア エンジニアとして、私たちはアプリケーションの設計方法において長い道のりを歩んできました。しかし、私にとって唯一変わっていないのは、新しいアプリケーションを設計して構築する機会があったときに、今でもどれほど興奮するかということです。

私は、あらゆる IT プロフェッショナルに当てはまると思われる次のミッション ステートメントに重点を置いてきました。

IP の価値を高める機能や特徴を提供することに時間を集中してください。フレームワーク、製品、サービスを活用して、その他の問題に対処します。

クラウド ネイティブ アプリケーションの設計は、ソフトウェア エンジニアが顧客のビジネス ニーズを満たすことに集中できるようにし、あらゆるユース ケース レベルで最善のソリューションを使用できるようにするため、私の個人的なミッション ステートメントに完全に適合しています。しかし、人生で下すあらゆる決断と同様に、それに伴うコストを常に念頭に置く必要があります。

<<:  Docker トラブルシューティングの実践: 実際の問題を解決するためのヒント

>>:  リリース戦略の選択: ZadigX、Alibaba Cloud、Argo、Spinnaker、Harness、Codefresh...

推薦する

強力なeコマースプラットフォームイベントを計画する方法

電子商取引プラットフォーム活動の力は誰の目にも明らかです。ほぼすべての休日に大規模なプロモーション活...

視野を広げる、新年に欠かせないクリエイティブなアクティビティ13選!​

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス出典 | Activit...

CBRCはP2Pを調査するために非公開会議を開催し、年末までに規制規則を発行する可能性があります

はじめに: P2P 業界が中国銀行業監督管理委員会の監督下に置かれたことを受けて、中国銀行業監督管理...

クラウドホスティング市場は混乱しており、中国市場のヒーローは誰かを問う

クラウド コンピューティング テクノロジーとアプリケーションの急速な発展に伴い、高性能、低コスト、柔...

急速に台頭するクラウドデータアーキテクチャ

クラウド データ アーキテクチャの人気の高まりは、次のようなテーマを示唆しています。オンプレミス デ...

本当に 1 年後には Web サイトの最適化をあきらめなければならないのでしょうか?

数か月前、私は浙江省のフォーラム ウェブサイトのウェブマスターを務めているウェブマスターに会いました...

UCloudのコアセキュリティ製品は公安省から販売ライセンスを取得しました

最近、UCloudのYoudunシリーズの5つのコアセキュリティ製品は、公安部コンピュータ情報システ...

APPプロモーション:これらのデータとチャネルをマスターすることによってのみ、100万人のユーザーを獲得できます。

大企業でも中小企業でも、アプリをゼロから宣伝するには、起業プロセスを経る必要があります。常に、人員が...

securespeed-$3.25/512m メモリ/25g SSD/750g トラフィック/ロサンゼルス

Securedspeed は、私が気に入っている OVZ をメインにしている VPS 業者です。20...

意見: アジアにおけるクラウド導入に関する 5 つの大きな誤解

今日のデジタル変革の競争の時代において、組織は迅速に行動し、対応する必要があります。しかし、ビジネス...

外部リンクの価値の要点はどのような点に反映されるのでしょうか?

外部リンクの価値は何でしょうか? 制限なく毎日一生懸命働かなければなりません。しかし、ここまでやって...

トップクラスのマネージドクラウドサービスプロバイダーの選び方

マネージド クラウド サービス プロバイダー (MCSP) は通常、顧客のクラウド プラットフォーム...

Kubernetes で Apache Spark を実行する方法

[[416069]] [51CTO.com クイック翻訳] Empathyのプラットフォームエンジニ...

スノーデン氏、米国と英国が世界中で数十億のSIMカード情報を盗んだことを明らかに

2月19日の英国紙ガーディアン紙の報道によると、元CIA職員のエドワード・スノーデン氏が公開した最新...

個人ブログをもっと魅力的にする方法

私の個人ブログは開設してほぼ 2 年になりますが、ユーザー数は常に非常に少ないです。私は Web デ...