私の仕事の 1 つで、私は Java で開発され、RabbitMQ および PostgreSQL と統合された堅牢な管理システムに取り組みました。その使命は、大規模な電子商取引プラットフォームの支払い、配送、在庫を制御することです。元のシステムはオンプレミスのデータセンターでローカルに運用されていましたが、スケーラビリティと信頼性に対する高まる需要を満たせなくなりました。このシステムは、重要なトランザクションでの高いレイテンシ、メンテナンスの困難、ワークロードの増大に伴う運用コストの増加などの課題に直面していました。
この移行の目的は、システムをクラウドに移行するだけでなく、アーキテクチャを改善してスケーラビリティ、復元力、効率性を高めることでもありました。 Azure をクラウド プラットフォームとして選択したのは、「Azure Well -Architected Framework」で説明されているように、セキュリティ、ガバナンス、コスト最適化のベスト プラクティスをサポートしながら、最新の堅牢なアーキテクチャの特定のニーズを満たす能力によって決定されました。
新しいシステムは、Azure Well-Architected フレームワークの原則を使用して、拡張性、回復力が高く、管理が容易になるように設計されています。このアーキテクチャは、増加するトラフィックを処理し、高可用性を確保し、運用コストを削減するように設計されています。 Azure への移行は、既存のコンポーネントを移動するだけでなく、システムの機敏性、安全性、効率性を確保するためにアーキテクチャを見直し、最新化することも意味しました。
アーキテクチャは、コンテキスト、コンテナ、コンポーネント、コードの明確なビューに重点を置いて、C4 モデルの 4 つのレベルで計画されました。これにより、エンジニアからマネージャーに至るすべての関係者が、新しいシステムの拡張性と信頼性の目標に関して足並みをそろえることができます。
コンテキスト図は、支払い、配送、在庫管理システム全体を示しています。このシステムは、顧客、支払いシステム、輸送プラットフォームなどのさまざまな外部コンポーネントと対話します。この図は、ユーザーと外部システムがシステムとどのように対話するかに焦点を当てています。
新しいシステムは 3 つの主要なビジネス領域に分かれています:
これらの各領域は個別のマイクロサービスとして扱われ、独立したスケーラビリティと簡素化された管理が容易になります。コンテキスト図は、これらのサービスと、支払いシステム、配送システム、ユーザー サービスなどの外部プラットフォームとの間の相互作用に焦点を当てています。
コンテナ図は、アーキテクチャ内の主要なソフトウェア コンテナに焦点を当てています。各サービスは、Azure 上の Kubernetes のコンテナ化機能を活用して、個別のアプリケーション コンテナーに変換されました。 RabbitMQ は非同期通信を改善するために Azure Service Bus に置き換えられ、PostgreSQL は Azure Database for PostgreSQL に移行され、可用性とスケーラビリティが向上しました。
主なコンテナには以下が含まれます:
コンポーネント図は、各マイクロサービスの内部アーキテクチャに焦点を当てています。各コンポーネントは、自律的で簡単に拡張可能なソフトウェア ユニットとして表されます。
主要なコンポーネントには次のものが含まれます:
主要なコンポーネントには次のものが含まれます:
主要なコンポーネントには次のものが含まれます:
在庫管理コンポーネント: 在庫レベルの監視と調整を担当します。販売システムと統合されており、再入荷予定なしで商品が在庫切れになることはありません。
アラート コンポーネント: レベルが最低値に達したときに、在庫補充の責任者にアラートを生成します。
Azure へのシステム移行により、いくつかの重要な改善がもたらされました。
Azure Well-Architected Framework のベスト プラクティスを使用し、C4 モデルを実装することにより、移行によりアーキテクチャが最新化されただけでなく、より信頼性が高く、スケーラブルで安全なシステムが確保されました。
以上がローカルからグローバルへ: 効率とセキュリティを向上させた Azure の移行の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。