クラウド対応のアプリケーションアーキテクチャを構築するための5つのステップ
公開: 2019-03-01特定のプラットフォーム用にアプリケーションを構築することは常に良い考えです。 今日の多くの人にとって、それはクラウド対応アプリケーションの構築を意味します。 アプリケーションアーキテクチャがクラウド専用に設計されていることを確認することで、途中で直面する問題を減らすことができますが、それ自体が課題になる可能性もあります。
クラウド対応のアプリケーションを作成する場合は、最初から確実に成功させるために実行する必要のある多くの手順があります。 はい、それは今日作成されたほぼすべてのアプリケーションがクラウドベースである可能性があることは事実です。 ただし、プロジェクトのニーズに合わせて拡張できるクラウド対応アプリケーションが必要な場合は、これを容易にするための独自の開発手順があります。
従来のアーキテクチャと比較したクラウド対応アーキテクチャの違いは何ですか? アプリケーションとそのコンポーネントはオンサイトリソースではなく仮想リソースでホストされるため、これらのリソースは異なる方法で割り当てられます。 これらは、ローカルではなく、ワイドエリアネットワーク(WAN)を介して分散する必要があります。 また、アプリケーションユーザーがパブリッククラウド情報にアクセスできないように、リソースを管理する必要があります。
何が違うのかがわかったので、アプリケーションを「クラウド対応」にする理由も認識する必要があります。 IBMのKyleBrownとMikeCapernによると、「アプリケーションをパブリッククラウドまたはプライベートクラウドに効果的にデプロイできれば、アプリケーションはクラウド対応です。」 つまり、アプリは、ホストのすべてのPaaS(Platform-as-a-Service)機能を利用できる必要があります。
これは、見た目ほど画期的ではありません。 実際、クラウド対応のアプリケーションを作成するために、既存のツールをすべて残す必要はありません。 重要なのは、実装プロセスを最大限に活用するために、最も重要な手順とルールを念頭に置くことです。
クラウド環境への移行がこれまでになく簡単になり、さらに必要になりました。 急速に変化する消費者の要求のおかげで、開発者は常に改善し続ける必要があります。 それは正しい; 快適になる余地はありません。 クラウドテクノロジーにより、スケーリングがより簡単で手頃な価格になるため、今日の世界ではもはやオプションではありません。
クラウド対応アーキテクチャとクラウドネイティブ
まず、部屋の中の象に話しかける必要があります。 クラウド対応アーキテクチャとクラウドネイティブアーキテクチャには違いがあり、この違いは非常に重要です。 クラウドネイティブアプリケーションは、パブリッククラウドで実行するように作成されたプロジェクトです。 これらは元々、コンテナベースのデプロイメントで構築されました。
クラウドネイティブアプリケーションは、アジャイルソフトウェア開発を使用して、常に新しいイテレーションを解約します。 オブジェクトストレージやキューイングシステムなどのクラウドサービスへの依存度が高くなります。 これは、ここで話しているクラウド対応とは大きく異なります。
上で概説したように、クラウド対応とは、従来のエンタープライズアプリケーションをクラウド上で機能できるように変換することです。 パブリッククラウドが提供するすべてのサービスを利用できることはおそらくないでしょうが(これはクラウドネイティブのみが実行できることです)、移行を行うことには多くの利点があります。
この状況での制限要因はコードではありません。 それは実際には展開の仕組みです。 エンタープライズアプリケーションは従来は多層であるため、元の設計に水平方向の自動スケーリングが組み込まれているクラウドネイティブとのマッチングが困難になります。 これが、アプリケーションが現在どのようにデプロイされているかを調べることが非常に重要である理由です。 更新プログラムのインストールを自動化するための一連のスクリプトがすでに装備されている場合は、クラウド対応に変換する方がはるかに簡単です。
アプリのクラウド対応アーキテクチャを作成することの意味を理解したところで、移行を行う際に従うべき5つのステップについて説明しましょう。
1.スケーリングの影響を検討します
プログラミング環境をクラウドベースの環境に変更するのは簡単ではありません。 これは大幅な変更であり、スケーリング時に問題が発生するのを避けたい場合は、多くの基本的な変更が必要です。
スケーリングは、クラウドプラットフォームを使用することの多くの特典の1つです。 仮想アプリケーションは、構築と更新が簡単です。 ただし、特定のトポロジでアプリをコーディングすると、すぐに問題が発生します。 今準備しないと、動的スケーリングが大混乱を引き起こす可能性があります。 まだ初期段階にあるように、すべての新しいプロジェクトにアプローチします。
最善の戦略は、アプリをできるだけ一般的に開発することです。 このように、定期的な更新を開発し、現在だけでなく将来にわたってアプリを可能な限り協調的に保つことがはるかに効率的です。

2.処理とデータを分離する
アプリを台無しにするよくある間違いの1つは、データをアプリケーションに結合する方法です。 これは他の状況では問題ないかもしれませんが、クラウド対応アプリを設計するときは、処理とデータを別々のコンポーネントとして維持する必要があります。
ほとんどのパブリッククラウドとプライベートクラウドは、このデータと処理を別々にしたいと考えています。 また、特に機密情報を保存している場合は、非常に安全です。 さらに重要なことは、アプリを圧迫する追加のデータストレージがないため、アプリの実行が大幅に向上することです。
今日の時代では、低速で信頼性が低く、ユーザーに反応しないアプリを買う余裕はありません。 クラウドアーキテクチャでは、アプリを常に最高のパフォーマンスで実行したい場合は、データを分離することが不可欠です。
3.ログにアクセスできるようにします
100%安全で、エラーのないアプリケーションはありません。 これは開発者のせいではなく、テクノロジーの現実にすぎません。 ログをローカルファイルシステムに書き込まないでください。 これを行って問題が発生した場合、これらのログにアクセスすることははるかに困難です。 アプリケーションが完全にクラッシュした場合、これらのローカルログはどのように役立ちますか?
貴重なデータを失わないでください。 ログは、問題が存在することを知る前に、問題に戻るためのパンくずリストです。 ファイルをローカルに保存する代わりに、サードパーティのログアグリゲーターを使用してください。 オープンソースのアグリゲーターを使用する場合でも、商用のアグリゲーターを使用する場合でも、何が起こっても、開発チームがscalaサーバーとインフラストラクチャの監視にアクセスできるようにしてください。
これらのログフレームワークを利用することには多くの特典があります。 表示したい情報をフィルタリングしたり、クラウドストレージ上のログファイルを追跡したりできます。 そもそも問題の発生を防ぐ最善の方法は、アグリゲーターを使用してリアルタイムの変更を最新の状態に保つことです。
4.セキュリティが最優先
はい、セキュリティは技術的にはこのリストの上位にありますが、開発者にとっては常にセキュリティを最優先する必要があります。 さらに別のモバイルアプリ開発会社のデータ侵害に関する別のレポートを見ずに、今日のニュースフィードをスクロールすることはできません。 毎日、サイバー攻撃がより一般的になっています。 アプリを単なる別の統計にしたくはありません。
アプリのデータは暗号化する必要があります。 システム間を流れるため、より脆弱です。 この情報を保存および保護するためのシステムを作成します。
クラウドベースのセキュリティは、エンタープライズセキュリティに基づいている必要があります。 まだ完全にクラウドに参加していない場合でも、開発段階以降のアプリのセキュリティに対するアプローチに一貫性を持たせてください。 明確なセキュリティ仕様を作成し、DevOps自動化をこれらの標準に準拠させます。 最後に、自分の業界のセキュリティ規制とコンプライアンス条件について自分自身を教育します。 これらは大きく異なる可能性があります。
5.データを移動するための戦略を作成します
最後に、アプリ開発データをクラウドに移動する方法を検討する必要があります。 これらの前のステップで十分に準備すれば、それは簡単なプロセスになります。 もちろん、これはすべて、移動するデータの量によって異なります。 データが少ない場合は、インターネット接続を介してこのデータをコピーするのと同じくらい簡単です。
大規模なワークロードの場合、送信する前にデータを圧縮する必要がある場合があります。 非常に大きい場合は、物理ドライブをクラウドプロバイダーに出荷する必要がある場合があります。 プロバイダーは、移動のベストプラクティスについて具体的な指示を与えることができます。
ただし、アプリ開発会社によるアプリケーションがドライブに組み込まれたら、移植可能であることを確認してください。 プロバイダーがアプリケーションをプロバイダーだけで「ロックイン」することは望ましくありません。 多くの場合、メタデータは単一のプラットフォームに固有であるため、これも移植可能である必要があります。 最後に、最終的なテスト戦略、理想的には自動化された戦略に進みます。 それだけです、あなたはクラウドにいます!
結論
従来の開発からクラウド対応アーキテクチャに移行する際には、注意すべき点がたくさんあります。 はい、途中で間違いを犯す可能性があります。 ただし、テクノロジーを習得して成長している限り、より効果的な戦略を作成していることになります。
クラウドテクノロジーに投資することで、プロジェクトはさまざまなメリットを得ることができます。 これで、迅速かつ効果的にスケーリングできるようになりました。 ただし、上記の手順を使用して、安全で安定した移行を行うという課題に取り組む必要があります。 簡単ではありませんが、それだけの価値はあります。
続きを読む2020年にモバイルアプリケーションを自信を持って宣伝する方法