インプレス社からMicrosoft Azureの本格的な実践ガイドが出ました。
大変勉強になり、多くの炭素生命体におすすめしたいので書評をまとめました。
前提読者
この本の前提読者は 「企業」や「組織」でシステム開発・運用に従事し、Azureを活用したいアプリケーション開発者/インフラ技術者を対象にしています。
システム開発やインフラ構築の基礎的なところを理解しているエンジニア向けの本です。 大規模オンプレやAWSなどですでにBtoBの「業務」システムを開発・構築したことがある人向けでです。
あと、.NET アプリケーションだけではないです。 オープンなテクノロジーのアプリケーションをAzureで動かしたい人で、Azureの中身をしっかり理解したい人もぜひ。
導入
第1章でAzureの概要とAzureを利用するまでの流れが説明されています。 第2章ではサンプルシステムの構築と、コスト試算のしかたなど非常に実用的な内容がわかりやすくまとまっています。
サンプルの構成は、Azure Load Balancerの後ろに冗長化されたVMの後ろでSQL Databaseを構成するシンプルな構成です。
Compute
第3章は仮想マシンについての詳細な説明があります。スペック選定や起動/停止/削除、スケールのしかた、監視やログの確認などがコンパクトにまとまっています。
第4章はPaaSであるAzure App Serviceの解説があります。Azure App Serviceは複数ありますが、ここではWebAppについて書かれてあります。
私的には、Azureの推しはやはりPaaSかなと。
Visual Studioに慣れているというのもありますが、公式ドキュメントが非常にしっかりしており、豊富なサンプルコードもあり、わたしのような実装力低いマンが具体的になにかアプリを作りたい!となったときに一番早くサービス提供できるのが、Azureかなとおもっています。
本書には解説はありませんが、私がWeb App for Containerをはじめて使った時の感想は 「もう、ぜんぶこれでいいじゃんかよ」 以外出てきませんでした。
ぜひ騙されたと思って、使ってみてください。 あとは、Kuduの詳しい説明があるのも嬉しいところです。
Networking & Security
第5章では仮想ネットワーク(VNet)に関する説明、第6章ネットワークセキュリティでNSGによるアクセス制御がまとめられています。 また第7章ではプライベートネットワーク接続で、サイト間VPN接続の話やExpressRouteなどの詳細な説明があります。
サイト間VPNや強制トンネリング、ExpressRouteのバックアップのためのサイト間VPNと専用線のハイブリット構成などなど様々なパターンが整理されています。
いずれも業務システムを運用する上では、必須なところが非常に分かりやすく書かれています。 書き口もCiscoっぽい感じでまとまってて、、、なるほどなるほど、でした。
第8章は、ID管理全般、Azure ADとRBACの説明、リソースポリシーの考え方がまとまっています。
私は過去に業務システムの統合認証基盤PJにすこし関わっていたこともあり、大規模システムのID管理の厄介さを肌身で知っていますが、AWSにしろAzureにしろこのID管理とアクセス制御のアーキテクチャがきちんと理解できてないとクラウドは利用できないので、ぜひ。
おかげさまで、ゆるふわっとしか理解していなかった知識がだいぶすっきり整理されました。
Storage & Datastore
第9章は、Azure Storageの概要とストレージアカウントの作成方法につつき、オブジェクトストレージであるBlob/NoSQLであるTableストレージ/メッセージング用のQueueストレージなどの解説されています。いずれもわかりやすい図が付いているので、苦手でも問題なく読めます。
あと、業務システムではセキュリティに関していろいろうるさく言われると思いますが、SSE/クライアント側での暗号化/Azure Disk Encryptionによる暗号化方式の違いがまとまっています。
ストレージへのアクセス制御や監視など、おきまりのツボもきちんとおさえています。
第10章では、Managed Diskの解説があり、可用性セットとの関係性や、スナップショットの取り方などがまとまっています。
第11章では、SQL Databaseについての詳細な解説があります。Lift and Shift案件では、DB周りの知識は必須になりますが、かなりのページ数を割いて丁寧に解説されています。アクティブgeoレプリケーションなども解説があり、どのパターンでどういう可用性構成を設計すればよいかのノウハウも記述されています。
第12章では、PostgreSQLやSQL Data WarehouseやAzure CosmosDBやAzure Data Lake Storeなどのデータストアに関する説明があります。ここは詳細なオペレーションではなく、どういうときにどのストレージを使うべきかみたいな方法論がまとまっています。
私はストレージやデータベース周りの設計運用経験がほとんどなく、とても苦手なので、ここは繰り返しなんども読みたいと思います。
Infrastructure as Code
Azureの良いところは、ツールがとにかく使いやすい、(ごく普通の)開発者フレンドリーなことです。
クラウドの概要を理解し、GUIでのオペレーションに慣れてくるとだんだんうざくなり、多くの炭素生命体はコードベース・定義ベースでシステムを管理したくなるものです。
この章をきちんと読めば、Visual Studoを使ってARMテンプレートを作成=>デプロイが可能です。
リファレンスアーキテクチャと構築テクニック
ここは、必見です。大事なことなので2度繰り返しますが、ここは必見です。
クラウドをエンタープライズな業務システムに適用させる場合、現状の業務をきちんと分析・整理し、いかにクラウドネイティブなアーキテクチャにもっていくかが成功の分かれ目な気がします。その際、たくさんのサービスを組み合わせて、最適なアーキテクチャを設計するのは、非常に高いスキルを求められます。
そういうハイスキルエンジニアを雇える企業はそう多くないので、リファレンスアーキテクチャや導入事例などを真似しながら、クラウド移行していくのが成功への近道なので、こってりした脂っこいアーキテクチャはなるべくたくさん知りたいわけです。
本書では、ASP.NET+SQL DatabaseおよびNode.js+CosmosDBを
- IaaSでシングルリージョンで構成するパターン
- PaaSでシングルリージョンで構成するパターン
- PaaSでマルチリージョンで構成するパターン
でそれぞれ設計と実装を図解されています。その際
- 可用性
- 拡張性
- セキュリティ
- 運用
といういたって王道な切り口で、テンプレートをどう構成すべきかなどが整理されています。 この章だけを切り出し500Pぐらいの別書籍化をおねがいします。
余談ですが、私が以前在籍していた会社の上司が執筆した書籍で、ことあるごとに参考にしています。いつかわたしもこういう本が書けるようになりたいなぁと。
いやいやいやいや、本が書きたいわけじゃなくて。実際にお客様に導入がしたいわけで😊
まとめ
とても良い本でした。
私の職場で調査研究・サービス提供しているシステムは、AWSまたはAzureで動いています。技術的についていけてないところばかりなんですが、、、、
2018年は、いろいろまじめにやっていきの年になるはず💪なので、よいバイブルです!
あと、1箇所誤字があったみたいなのでお知らせしておきます。
×:サブネット ○:寒ネット
おわり