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

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

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

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...

推薦する

#VietnamVPS# tothost: 月額1.63ドルから、ネイティブベトナムIP、100M帯域幅、無制限トラフィック、VMware/KVM仮想

tothost は 2009 年に設立されたベトナムのサーバー プロバイダーです。主にベトナム VP...

trentahost-1.56 USD/KVM/256 MB RAM/8 GB SSD/Windows/1000 MB/無制限/7 データセンター

trentahost.com は 年に設立されたようですが、それについての情報はあまりありません。 ...

ウェブサイトを構築するときにテキストをどのようにレイアウトすればよいでしょうか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスウェブサイトにとって最も...

ユーザーエクスペリエンスはウェブサイト運営における大きな欠陥である

「原点回帰」という言葉をよく耳にしますが、これは物事が極端に発展すると、原点に戻るという意味です。ウ...

onrahost-KVM/ダブルSSD/半額プロモーション/DDoS保護

onrahost は比較的新しい VPS 販売業者 (2011 年) であり、Hostcat に一度...

デジタル政府はこれまで以上に重要

紙の文書からデジタルプロセスへの移行は、資源や人件費の削減など、COVID-19パンデミックのような...

24quanの業務停止の背景:投資熱の後に損失を止めたいという衝動

1か月の交渉の後、投資家と創業チームの間の対立は再び激化し、生き残るためにベンチャーキャピタルに依存...

chicagovps 簡単なレビュー

私は chicagovps.net から 2G メモリの VZ を購入しました。これには 4 コアの...

新たな状況に直面して、医学ソフト記事の出版における新たなブレークスルーを模索する方法

百度の新たな一斉検閲により、医療ソフト記事、特に医薬品ソフト記事が再び影響を受けています。メディアは...

hosteons: クリスマスに30%オフ、米国での無制限トラフィックVPS、Windowsシステム、IP変更は1回3ドルのみ、Alipay決済対応

公式サイト: https://hosteons.com具体的な結果については、以下を参照してください...

贛州SEO最適化市場分析

贛州市は江西省で2番目に大きな都市であり、1つの区、2つの市、15の県を管轄しています。贛州市の主要...

電子商取引企業のウェブサイトの健全な発展を実現する方法

電子商取引の時代において、企業のウェブサイトの地位と役割はますます重要になってきており、ウェブサイト...

10の視点からウェブサイトのトラフィックを伸ばす

ウェブサイトが収益を上げたい場合、トラフィックなしでは成り立ちません。その結果、多くのウェブマスター...

医療業界におけるユーザーの検索行動についての簡単な説明

医療ユーザーの検索習慣とは?今日は医療ユーザーの以下の関連検索共有を紹介したいと思います。一般のネッ...