ホームページ >テクノロジー周辺機器 >IT業界 >クラウドの加速:最終ステップ
(この記事は、Ampere Computingの「Accelerating Cloud Computing」シリーズの5番目の部分です。すべての記事をSitePointで読むことができます。) クラウドネイティブアプリケーション開発の最後のステップは、どこから始めるかを決定することです。このシリーズの最終号として、クラウドネイティブアプリケーションを開発する方法、組織内のプロセスを開始する場所、およびプロセスで遭遇するさまざまな状況を検討します。
このシリーズの他の部分に示されているように、クラウドネイティブプラットフォームはX86ベースのコンピューティングの強力な代替品になりつつあります。パートIVで実証したように、パフォーマンス、予測可能性、エネルギー効率の観点から、フルコアアンペアVCPUとセミコアX86 VCPUの間には大きな違いがあります。クラウドネイティブアプリケーションの開発方法
クラウドネイティブコンピューティング環境向けの分散アプリケーションを設計、実装、および展開する自然な方法は、アプリケーションをより小さなコンポーネントまたはマイクロサービスに分割することです。それぞれが特定のタスクを担当します。これらのマイクロサービスでは、通常、機能を共同で提供する複数の技術要素があります。たとえば、注文管理システムには、プライベートデータストア(メモリ内の注文と顧客情報のキャッシュに使用される場合があります)と、APIマネージャーがフロントエンドサービスを有効にするためのAPIマネージャーに加えて、顧客のショッピングカートを処理するセッションマネージャーが含まれる場合があります。それと対話できるように。さらに、商品の可用性を決定するための在庫サービスに接続されている場合があります。おそらく配送と配送日を決定するための配送モジュール、および支払いを徴収する支払いサービス。
さらに、クラウドネイティブのアプローチにより、ソフトウェアは、現在の負荷を処理し、オフピーク時間中にリソースをシャットダウンするために必要なサーバーを作成するだけで、利用可能なハードウェア機能を最大限に活用できます。 Ampereのような最新のクラウドネイティブCPUは、膨大な数の高速CPUコアと高速相互接続を提供し、ソフトウェアアーキテクトがアプリケーションを効果的に拡大できるようにします。
このシリーズの2番目と3番目の部分では、アームベースのクラウドネイティブプラットフォームへのアプリケーションの移行が比較的簡単であることを示しています。この記事では、この移行を成功させるために通常取られる必要がある手順について説明します。AmpereのCloud-Native ARM64プロセッサに移行する最初のステップは、適切なアプリケーションを選択することです。他のCPUアーキテクチャに密接に結びついているアプリケーションの中には、特定の命令セットにソースコード依存関係があるため、または命令セットに関連するパフォーマンスまたは機能的制限のために、移行がより困難になる場合があります。ただし、アンペアプロセッサは、多くの場合、多くのクラウドアプリケーション向けに適切に設計されています。
移行に適していると思われるアプリケーションを選択したら、次のステップは、依存関係スタックを更新するために必要な作業を決定することです。依存関係スタックには、ホストまたはゲストオペレーティングシステム、プログラミング言語、ランタイム、およびサービスが持つ可能性のあるアプリケーションの依存関係が含まれます。Ampere CPUで使用されているARM64命令セットは、近年目立つようになっており、多くのプロジェクトは近年ARM64のパフォーマンスを改善するために一生懸命働いています。したがって、このセクションの一般的なトピックは「新しいバージョンがより良い」です。
アンペアインスタンス(ベアメタルまたは仮想マシン)にアクセスできると、移行のビルドとテストフェーズを開始できます。上で言ったように、ほとんどの最新の言語は現在、ARM64を一流のプラットフォームとして完全にサポートしています。多くのプロジェクトでは、ビルドプロセスはバイナリを再コンパイルするか、JavaコードをARM64ネイティブJVMに展開するのと同じくらい簡単です。
ただし、ソフトウェア開発プロセスの問題が、移行プロセス中にチームが返済しなければならない「技術的債務」につながる場合があります。これは多くの形をとることができます。たとえば、開発者は、特定のハードウェア機能の可用性や、標準では定義されていない実装固有の動作について仮定することができます。たとえば、CHARデータ型は、実装に応じて署名された文字または非署名文字として定義でき、X86のLinuxでは署名されます(つまり、-128〜127の範囲)。ただし、同じコンパイラを使用してARM64では、署名されていません(範囲0〜255)。したがって、charデータ型シンボルに依存するコードは正しく機能しません。
ただし、全体として、SSEなどのX86固有のハードウェア機能に依存しない標準とコードに準拠するコードは、Ampereプロセッサで簡単に構築できます。 Jenkins、Circleci、Travis、GitHubアクションなどのサポートARM64ビルドノードなど、ほとんどの連続統合ツール(サポートプラットフォームマトリックス全体で自動化された構造とテストを管理するツール)。生産中のアプリケーションの展開を管理
ARM64アーキテクチャ用のプロジェクトコンテナを構築している場合、マルチアーキテクチャコンテナとなるマニフェストを作成するのは非常に簡単です。これは基本的に、複数のコンテナ画像へのポインターを含むマニフェストファイルであり、ホストアーキテクチャに基づいて画像を選択するときにコンテナが実行されます。
展開段階で人々が通常遭遇する主な問題は、再び「技術的債務」に分類できます。展開および自動化スクリプトは、特定のプラットフォーム固有のパス名を想定したり、X86のみのバイナリアーティファクトに依存するようにハードコードすることもできます。さらに、異なるLinux分布によって返されるスキーマ文字列は、分布によって異なる場合があります。 x86、x86-64、x86_64、arm64、aarch64に遭遇する場合があります。これらのプラットフォームの違いを正規化することは、過去に行ったことのないことかもしれませんが、プラットフォーム変換の一部として非常に重要です。
プラットフォーム変換の最後のコンポーネントは、アプリケーションの操作です。クラウドネイティブアプリケーションには、適切に機能するように、生産における多数の足場が含まれています。これらには、イベントを集中化するログ管理、管理者が物事が期待どおりに機能することを確認するための監視、異常、侵入検知ツール、アプリケーションファイアウォール、またはその他のセキュリティツールが発生した場合にアラートを警告することが含まれます。俳優。これらには、適切なプロキシとインフラストラクチャがアプリケーションノードに対してアクティブ化されるように投資するのに時間がかかりますが、すべての主要な監視およびセキュリティプラットフォームがARM64をプラットフォームとしてサポートするようになるため、アプリケーションの内部作業を見ることができないことを保証します。 。実際、サービスとしての最大の観測可能性ソフトウェアプラットフォームの多くは、アプリケーションプラットフォームをAmpereおよびその他のARM64プラットフォームにますます移行して、プラットフォームが提供するコスト削減を活用しています。
クラウドネイティブプロセッサへの移行は膨大である可能性があり、移行投資は努力する価値があります。このアプローチを使用すると、組織が時間の経過とともに期待できる運用貯蓄を評価および検証することもできます。
パフォーマンスの向上に対する最大の障害の1つは、慣性であり、組織が最も効率的または費用対効果の高い方法でなくても、組織が行ってきたことを続ける傾向であることに注意してください。そのため、クラウドネイティブテクノロジーの価値を組織に証明するために最初のステップを踏むことをお勧めします。このようにして、利害関係者と共有するための実際の結果が得られ、クラウドネイティブコンピューティングが大幅な投資やリスクなしにアプリケーションのパフォーマンスと応答性を改善する方法を示します。
クラウドネイティブプロセッサが登場しました。問題は、クラウドネイティブに切り替えるかどうかではなく、変換するときです。以前に未来を受け入れる組織は、今日から恩恵を受けるでしょう。クラウドアプリケーションを設計、構築、展開するためのリソースが含まれるAmpere Developer Centerのクラウドスピードでの開発について詳しく学びます。クラウドネイティブコンピューティングの利点を自分で体験する準備ができたら、Ampere AltraシリーズとAmpereoneテクノロジーに基づいて、CSPにクラウドネイティブのオプションを尋ねてください。
以上がクラウドの加速:最終ステップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。