ケーススタディ1 - Litware
概要
既存の環境
Litware, Inc.は独立系ソフトウェアベンダー(ISV)です。Litwareには本社と5つの支社があります。
アプリケーションアーキテクチャ
同社の主要アプリケーションは、VB.NETで記述されたロジックを使用するASP.NET Webフォームをベースとした、モノリシックな退職基金管理システムです。アプリケーションの一部の新規セクションはC#で記述されています。
アプリケーションのバリエーションは個々の顧客向けに作成されており、現在では
アプリケーションのコード ベース内の 80 個のライブ コード ブランチ。
アプリケーションはMicrosoft Visual Studioを使用して開発されました。ソースコードは本社のTeam Foundation Server (TFS)に保存されています。支社はTFSプロキシサーバーを介してソースコードにアクセスします。
アーキテクチャ上の問題
Litwareは顧客向けの新しいコードの作成に重点を置いています。既存コードのリファクタリングや削除のためのリソースは提供されていません。依存関係が個々の開発者にとって明確ではないため、コードベースの変更には長い時間がかかります。
コードのマージ作業には、多くの場合数か月かかり、多くの開発者が関与します。コードのマージによって、発見や解決が困難なバグが頻繁に発生します。
顧客からは、退職基金管理システムの所有コストが継続的に増加しているとの報告を受けています。無関係なコードをマージする必要があるため、軽微なコード変更でもコストがかさみます。
顧客からは、バグ報告が複雑すぎるという報告があります。
計画された変更
Litwareは、投資計画のための新しいアプリケーションスイートの開発を計画しています。この投資計画アプリケーションは、既存の退職基金管理システムとのわずかな統合のみで利用できます。
投資計画アプリケーションスイートには、1つの多層ウェブアプリケーションと2つのiOSモバイルアプリケーションが含まれます。1つのモバイルアプリケーションは従業員が使用し、もう1つは顧客が使用します。
Litwareは、よりアジャイルな開発手法への移行を計画しています。共有コードは一連のパッケージに抽出されます。
Litware は社内のクラウド変革プロセスを開始しており、適切な場合にはクラウドベースのサービスを使用する予定です。
Litware は、常に顧客からのバグ報告を待つのではなく、障害を積極的に検出したいと考えています。
技術要件
会社の投資計画アプリケーション スイートは、次の要件を満たす必要があります。
* ファイアウォールを通過する新しい着信接続を最小限に抑える必要があります。
* Developers というグループのメンバーはパッケージをインストールできる必要があります。
* すべての権限の割り当てには、最小権限の原則を使用する必要があります。
* 新しい機能を個別に開発することをサポートする分岐戦略を使用する必要があります。
* チーム リーダーというグループのメンバーは、新しいパッケージを作成し、パッケージ フィードに対する権限を編集できる必要があります。
* モバイル アプリケーションのクラッシュや使用中のデバイスの種類のレポートを一元管理するには、Visual Studio App Center を使用する必要があります。
* デフォルトでは、すべてのリリースは 30 日間利用可能な状態にしておく必要があります。ただし、製品リリースは 60 日間保持する必要があります。
* コード品質とリリース品質は非常に重要です。リリース中に、リリースに対してアクティブなバグが記録されている場合は、ステージ間のデプロイメントを続行しないでください。
* モバイルアプリケーションは、既存の退職金管理システムの株価算出サービスを呼び出すことができる必要があります。システムがアップグレードされるまで、このサービスはHTTPS経由の基本認証のみをサポートします。
* テストサーバーに必要なオペレーティング システム構成は毎週変更されます。Azure Automation State Configuration を使用して、サーバーの作成時および定期的なチェック時に、各テストサーバーのオペレーティング システムが同じ構成になっていることを確認する必要があります。
現在の技術的な問題
テストサーバーは最初のデプロイ時には正しく構成されていますが、時間の経過とともに構成のずれが生じます。Azure Automation State Configuration では構成を修正できません。
Azure Automation State Configuration ノードは、次のコマンドを使用して登録されます。

ホットスポットに関する質問
モバイル アプリケーションが共有価格設定サービスを呼び出すために必要な秘密を保存するようにクラウド サービスを構成する必要があります。
解決策には何を含めるべきですか? 回答するには、回答エリアで適切なオプションを選択してください。
注意: 正しい選択ごとに 1 ポイントが加算されます。
