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

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

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

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

推薦する

hostmist - ブラックフライデースペシャル KVM/openvz

Hostmist はブラックフライデーに素晴らしいプロモーションを実施しました。米国ロサンゼルスとド...

acrosvm-90 RMB/年/KVM/128 MB メモリ/10 GB ハードディスク/250 GB トラフィック/ロサンゼルス

ほとんどの人は acrosvm を知らないと思います。acrosvm は 2009 年の終わりに設立...

ブラック 5: 123systems - 69 USD/3 年/3 GB RAM/75 GB ハード ドライブ/3 TB トラフィック

123systems にブラックフライデーがやって来ます。 chicagovps に売却された後、引...

企業がクラウド支出を管理するためのクラウドコスト最適化戦略

クラウド コンピューティングは、効率的なスケーラビリティと使用した分だけ支払う柔軟性により、企業の間...

分散メッセージングシステムの設計ポイント

分散キャッシュに関しては、Redis がリードしています。しかし、メッセージ キュー MQ に関して...

#11.11# Zji:「専用サーバー」最大50%オフ、香港/韓国/日本/台湾、ステーションクラスター、高防御シリーズなどを含む。

プロフェッショナルな独立サーバーブランドであるzjiも、予定通り「ダブルイレブン」特別プロモーション...

SAP、2022年第3四半期の業績を発表

クラウドビジネスの成長は加速し続けており、特に中国市場は好調である。クラウド収益は38%と25%増加...

Youzhanの登録価格の誤解から抜け出し、イベント登録の基本要素を把握する

「Youzhan」という言葉は、1年前にはほとんどの人にとって馴染みのない言葉ではなくなりました。し...

hosthatch: 米国 VPS、40% 割引 + トラフィック 4 倍、AMD シリーズ VPS - 年間 26 ドル、1T 大容量ハードディスク VPS - 年間 33 ドル

Hosthatchは、米国(ロサンゼルス、シカゴ、ニューヨークのみ)の通常のAMDシリーズおよび大容...

SEOのルール: ウェブサイトの価値志向を最適化する方法

「ウェブサイトの最適化」という用語は、ウェブマスターにとっては非常に馴染み深いものです。どんなウェブ...

調査によると、クラウド監視および管理ツールは不十分であることが判明

Enterprise Management Associates (EMA) の最近の調査では、企業...

JVMの動作原理とスタックとヒープの実装プロセスの詳細な説明

[[267906]]概要オンライン システムでは CPU 100% 問題が発生するため、トラフィッ...

IBM: ハイブリッドクラウドと AI を活用して企業のデジタル変革を実現

雲南白薬は、国内外で有名な伝統的な中国ブランドです。雲南白薬グループは、中国の近代企業発展の歴史にお...

Tencent eSportsは新たな世界を見つけたのか?

「中国のeスポーツはシルバーからゴールドへと移行している。」中国文学を引き継ぐ前、テンセント副社長の...

bluevm-512MメモリKVMとOVZの年間支払額はわずか9.9米ドル

bluevm は、この誕生月にサプライズをプレゼントすると言っています。512M メモリを搭載した ...