シナリオ1 - グローバル スケールとセキュリティで保護されたアクセスを設計する
次の 2 つのユニットで、2 つのビジネス シナリオを確認します。 会社の説明、プロジェクトの目標、制約は既に示されています。 自分でこれに取り組むこともできますが、可能であれば他のユーザーとブレーンストーミングを行うと面白いかもしれません。
ソリューションの開発のプロセス
これらのシナリオおよび実際でも、あなたの目標は以下について理解することです。
- 企業が解決する必要がある問題。
- ソリューションに伴うすべての要件と制約。
この目標は、多くの場合、"問題の説明" の形式となります。 これは、状況、現在の条件、ソリューションに必要な結果を明確に定義する、正式な一連の段落です。 この時点では、問題の解決方法を調査しないようにして、解決したい内容に焦点を当てる必要があります。
自分 (およびおそらくチームや利害関係者) が問題の説明に同意した後、見つけられる限り多くのプロジェクトの要件 ("目標") を抽出する必要があります。 その後、ソリューションの制約にする必要があります。
この時点では、非現実的な制約があることは問題ありません。 後ほど、各要件および制約に対する費用便益比率を示した後で、これらを撤回できます。
運用環境には、通常、ソリューションを作成するフェーズが 6 つあります。 問題の説明の開発は始まりにすぎません。
- 検出: 顧客からの問題の元の説明。
- 構想: プロジェクトの成功がどのようなものになるかの "実用的でない" 説明。 多くの場合、"私は...できる" という記述として表現されます。
- アーキテクチャの設計セッション: 暫定的なソリューションのテクノロジ オプションおよび選択肢の初期レイアウト。
- 概念実証 (POC): ソリューションに最適なテクノロジとプロセスが選択された後、POC は、ソリューションがどのようなものになる可能性があるかを示す小さい代表的な例を使用して設定されます。 類似する例に含まれる現在実行中のソリューションが使用可能な場合は、それを使用できます。
- 実装: 前のフェーズの結果に基づく、完成したソリューションの段階的なロールアウトの実装。
- 引き継ぎ: 今後の機能強化についてのディスカッションを伴ったプロジェクトの事後検証。
このモジュール全体で、プロジェクト テンプレートと最新のアイコンを活用することができます。 これらのアセットは、運用環境のワークロードでも使用できます。
このモジュールのシナリオでは、問題の説明の決定 ("検出") にある程度時間をかけることになります。 しかし、大きな焦点は "アーキテクチャの設計セッション" にあります。 このモジュールの後でソリューションをさらに開発する場合は、モジュール内のアセットを使用してこれを行うことができます。
シナリオの詳細
顧客は、世界中のサービスおよびコンテンツ配信のプロバイダーです。 基本的にはオペレーショナル データ マートであるものへの 1 秒あたり数千件の書き込みを処理できるシステムの構築に関する支援を求めています。
また、顧客には、傾向を判断して異常を特定するために、データに対してリアルタイム分析を実行する機能も必要です。 現在は、共通言語ランタイム (CLR) アプリケーションでこれを行っています。 顧客はデータ ウェアハウスを希望しておらず、SQL セキュリティの大部分を利用しますが、ユーザーが住む場所をスケーリングできる必要があります。
また、顧客は、そのハイブリッド環境で使用する認証方法を決定しようとしています。 メインのソリューションおよびアプリケーションは Azure に配置されますが、顧客は次のものにも対応する必要があります。
- Azure 以外のドメイン参加済みマシン上のアプリケーション。
- Azure 以外のマシン上の、ドライバーまたは接続文字列の変更を許可しない古いアプリケーション。
- Azure 以外のドメイン参加済みでないマシン上の SQL 管理ツール (SQL Server Management Studio、Azure Data Studio、PowerShell) からレポートを実行する複数のユーザー。
顧客は、可能な限り、接続文字列やアプリ構成ファイルのパスワードまたはシークレットをハードコーディングしないようにしたいと考えています。 また、SQL ツールでパスワードを使用しないようにするか、その認証を強化する方法を見つけたいと考えています。
シナリオのガイダンス
- 現在のソリューションと最も互換性があり、現在利用可能な Azure SQL デプロイ オプションから始めます。
- 読み取りワークロードを書き込みワークロードから分離しながら、複数のクエリが同時に実行されている複数のリージョンにわたって、顧客はどのようにスケーリングしますか?
- さまざまなデプロイにわたるデータに顧客がアクセスするにはどうすればよいですか?
- シナリオで説明されている対話式操作のパスにどの認証方法を推奨しますか?
タスク
シナリオと示されたガイダンスを確認した後に、プロジェクトについて見つけられるだけの要件を抽出します。
ソリューションで使用される可能性があるテクノロジとプロセスの候補を一覧にします。 明確化が必要な場合により多くの情報が得られるよう、シナリオを自由に調整してください。 この場合は推測することができます。
ヒント
セキュリティの課題については、Azure SQL のセキュリティに関するベスト プラクティスのプレイブックを使用することを検討してください。
意思決定マトリックスまたはその他の意思決定プロセスを使用して、暫定的なソリューションを構成するテクノロジとプロセスを選択します。
プロジェクトの目標と制約、推奨されるソリューション設計を示すメモを取ります。
暫定的なソリューションを考えたら、次の手順は、多くの場合、より大規模なチーム (またはシナリオに応じて、顧客やリーダーなど) にそれを示すことです。 プロジェクトの目標および制約と、ソリューションによるそれらの項目の対処方法を共有する形で、ソリューションを作成して提示する必要があります。
準備ができたら、次の質問に答えて、自分のソリューションをサンプル ソリューションと比較して評価します。 複数の適切な回答が存在する場合があるため、自分のソリューションが一覧にない場合でも、実行可能である可能性があります。