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

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

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

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

推薦する

有料検索広告におけるモバイルデバイスとPCの違いを分析

過去 1 年間、モバイル デバイスとインターネットの発展は最も予想外のものであり、それが牽引した周辺...

ramnode-$3.5/512m メモリ/40g SSD/1T トラフィック/シアトル/ニューヨーク/アトランタ

ホスト モデムは長い間 ramnode を使用しています。現在アクセスしているホスト モデムは ra...

ウェブサイトのコンバージョン率を向上させるにはどうすればいいですか?

最近、Feng Cai Yi Yangは、ウェブサイトにトラフィックをもたらすだけでは十分ではないこ...

「蘇州SEO」ターゲットキーワードコンテンツページウェイト分析

目的: この記事の実際の目的は、キーワード「蘇州 SEO」の競争度と、それをコンテンツ ページとして...

インターネットの巨人たちがWeChatでどのように戦っているか、そしてウェブサイトの最適化が競合他社とどのように対峙しているかをご覧ください。

ヤフー中国がひっそりと撤退したとき、インターネット大手はWeChatバージョン5.0をブロックするた...

Dockerコンテナ技術のアーキテクチャとそのさまざまなモジュールを1つの記事で理解する

[[278155]]概要今日は、Docker の技術アーキテクチャと、それを構成するさまざまなモジ...

モンデリーズ中国がアリババクラウドと提携、世界有数のスナック企業がデジタルアップグレードを開始

6月7日、雲奇会議上海サミットにおいて、世界的スナック食品大手のモンデリーズ・インターナショナルの代...

初心者のためのGoogleランキングの知識

マーケティング理論家がネットワーク マーケティングについてどれほど深く書いても、次の事実を受け入れな...

vhost: ベトナム VPS、無制限トラフィック、$3.52/1g メモリ/20g ハードディスク

ベトナムの会社であるvhost.vn (0310213840) は、8年間運営されています。同社の事...

交通の画期的な方法についての簡単な説明

もしかしたら、これまでにもこのような記事を書いた人がいるかもしれないし、ないかもしれない。いずれにせ...

丹東紡織産業インターネットプラットフォームの構築に協力し、専門的で革新的な繊維企業のデジタル変革を支援します。

同国の「新インフラ」とスマート製造戦略の推進により、伝統的な製造業は産業インターネットにますます熱心...

Baidu が Taobao Affiliate を放棄したのには理由があります。Taobao Affiliate が生き残るにはどうすればよいかを考えてみましょう。

6月末のBaiduの大規模アップデートの洗礼の後、Taobaoの顧客の一人として、私は幸運にもBai...

404 ページが多数あると、Web サイトの信頼性が低下しますか?

今日は、ウェブサイトの 404 ページがウェブサイトに与える影響についてお話します。ウェブサイトの再...

ウェブサイト運営者に必要な認識

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

ホワイトハットSEOはリスクフリーですか?

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