【書評】Windows Azureテクニカルハンドブック

4月のC#ユーザー会でいただいた(じゃんけんで勝ち取った)「Windows Azureテクニカルハンドブック」をやっと読みました。いただいてから約2ヶ月もかかってしまいすみません。

IMG_20120407_180443

日本マイクロソフトのエバンジェリストが監修し、AzureMVP3名が内容を書くというこれ以上ない贅沢な布陣です。Windows Azure全体をほぼ網羅しながら、自称中級者の自分が読んでも内容が薄いと感じることはありませんでした。日常的にWindows Azureを使用し・試行錯誤しているからこそ、それぞれの技術的要素の抑えておくべきポイントを把握しているからかもしれません。Windows Azureを知り尽くしているスーパーエンジニアという理由だけでなく、MVPは初心者・中級者を中心にコミュニティで情報をアウトプットしていることを評価されているため、Windows Azureの何をどのように伝えるべきかについて日本では右に出る者がない贅沢な著者陣による本になっています。

以下、本書を読み終わっての個人的な感想を書きます。

本書の対象:

Windows Azureについて初めて学ぶ初級、または断片的な知識を整理して理解したい中級エンジニア(開発者、インフラエンジニアに関係なく)

「クラウドサービスとは?」「Windows Azure Platformとは?」から始まり、1通りWindows Azureの備える機能を網羅しており、初心者から中級者まで活用できる内容になっています。補足・中級者向けの内容は注を使用して解説しており、流れを妨げることなく補足的な内容も合わせて確認することができます。

ポイント:

開発者・インフラエンジニア・運用エンジニア向け:

Windows AzureはPaaSであるため、クラウド上で実行されるサービスを作成する開発者だけでなく、スケーラビリティ・リソースの効率的利用、カットオーバー後の監視・運用を行うエンジニア向けの内容も充実しています。「6章 アプリケーションの運用」は、まさに開発者以外も必見の内容になっています。

.NET以外のテクノロジーの解説:

基本的にサンプルコードはC#で書かれていますが、Windows AzureはJava,PHPなどで書かれたアプリケーションもサポートしています。「5章 アプリケーション開発」ではJavaからJDBC経由、Hibernate経由でSQL Azureへアクセスするサンプルコードが載っています。

事例:

Windows Azure上で稼働している「MSN産経フォト」のアーキテクチャ、開発、運用事例が掲載されています。クラウド上のサービスがどのようなアーキテクチャで稼働しているのか、開発体制は何が変わって何が変わらないのか、インスタンス数増減の運用、オンプレミスでの運用と比較して削減できたコストなど、技術のみを学んでいても知ることのできない非常に貴重な生の事例を見ることができます。

最新情報のキャッチアップ:

Windows Azureは短いサイクルで新機能がリリースされるため、半年前の最新情報が最新でなくなることも珍しくありません。しかし、正式リリースされた機能が根本的に変更されることは考えにくく、内部の造詣に深く、頻繁に情報のアウトプットを行なっている方々によって書かれた本書によってWindows Azureの本質を理解することで、新機能へのキャッチアップも行いやすくなると思います。新機能も現行機能の延長上、現行機能では不足している部分を補うためにリリースされるのであり、現行の1バージョン前の情報をきちんと抑えていくことで、新機能の目的・利用シーンを想像しやすくなります。本書でもWindows Azure管理ポータルは英語版のキャプチャーが掲載されていますが、現在は日本語版を利用することができます。また、SQL Azureの管理用画面も、現在は本書の掲載内容と一部異なっていますが、クラウド上のRDBという本来の役割・目的は何も変わっておらず、これまでできなかったこと、やりにくかったことができるようになっておりやや古くなった情報であっても問題はないと思います。

クラウドのサービスはめまぐるしく新機能が発表され、文字通り日進月歩でサービス内容が進化(変更ではなく)しています。ある時点での最新情報を網羅的に理解し、差分情報を自分で探して学ぶことの重要性が他の分野以上に高まっています。「7章 最新情報」には、未来の新機能をキャッチアップするための場(URL)が記載されており、エンジニアとして書籍、Webページで学んで終了ではなく、常に最新情報をキャッチアップすることの重要さにも触れています。

最後に:

2012/6/8にWindows Azureの大きな新機能が発表されました。IaaSやWebロールよりももっと手軽にWebサイトを構築できる機能が利用可能になっています(Preview版ですが)。現在(2012/06/10)が「Windows Azure 2.0」とするならば、本書に記載されている内容は「Windows Azure 1.0」です。ただし、新機能「Virtual Machines」は「VM Role」の発展版、「Web Sites」はWebロールよりも手軽にサイトを公開するために、AmazonのBeanstalk,Herokuに対抗したサービスであり、「Windows Azure 2.0」は「Windows Azure 1.0」の延長上にあります。新機能が発表されたからといっても、既存機能はこれまでどおり利用可能であり、本書の記載内容が風化するわけではありません。新機能の目的・役割を理解する上でもこれまでのWindows Azureを理解することは非常に重要だと思います。

Community Open Day 2012に参加しました

申し込んだのが直前だったのでキーノートが定員に達しており聞くことができませんでした。前日飲み過ぎて起きたのが11時だったので、どのみち午後からしか参加できませんでしたが。

事前に申し込んだ内容に従って以下のセッションを聞きました。事前に申し込んだのはあくまでも参考で、当日は何を聴いてもよさそうでしたが。

  • Multi-Device + Windows Azure連携アプリケーション開発(13:00-14:00)
  • Windows Azureで2/29に起こった問題のまとめ(14:00-15:00)
  • 今日からはじめるJS UnitTest(15:00-16:00)
  • TFSを使ったアジャイル開発事例(16:00-17:00)
  • MicrosoftテクノロジをつかったふだんのJavaScript開発(17:00-18:00)
  • Windows Azureの新機能とビジネスへの適用案(18:00-19:00)

印象に残ったセッションが2つあったので、メモを残しておきます。

Windows Azureで2/29に起こった問題のまとめ (@harutamaさん)

当日使用した資料はSlideShareで公開されています。

Azureファンにとっては目と耳と鼻から脳汁が垂れてくるような内容でした。知的興奮が高まりすぎて「ε=\_○ノ イヤッホーゥ!」ってなりそうでしたがギリギリのところで抑えることができました。どういう内容かというと

謎のベールに包まれたあのファブリックコントローラーさんの正体が丸裸に!!!

Windows Azureの物理・論理アーキテクチャ、ファブリックコントローラー、AzureホストOSの展開、ロールVMの展開など、ユーザーとしてAzureを使用しているとなかなか見えない部分をわかりやすく解説しています。で、その内部構造を踏まえた上でうるう年に起こったWindows Azureの障害の説明がされています。公開されるかどうか分かりませんが、動画が公開されればAzureファンであれば絶対に見るべきです。本当に、こんな話を日本語で聞ける機会はないんじゃないかと思うくらい、他では聞けない内容でした。これだけでも今回のCommunity Open Dayに参加した価値がアリました。

MicrosoftテクノロジをつかったふだんのJavaScript開発 (@mayukiさん)

mayukiさんかわいい、この一言に尽きます。

懇親会

3次元は苦手なので懇親会は参加せずに帰ろうかと思ったんですが、じゃんけんに勝つと約\10,000相当のASP.NET4本が手に入る可能性があるとTwitterで知り、参加することに。ビール飲みつつステルスしていたら

「Yo!オマエがうちの会社の新入りか?!まぁ、飲めや!!(ビール瓶片手に)」

とLevel5の人たちに囲まれました。ああ…この人達が噂のLevel5の人たちだ…すいません、自分Level2ですから、コミュ障ですから。何で向こうが3次元のステルス状態の自分を認識できるのかよく分からずに萎縮してました。

挙句の果てに

「あれ?WDDで会ったっけ?」

と言われ

「すいません、お会いしてないです。すみません、本当にすみません。」

という状態になってました。

本当に最後の最後でモテモテで全く隙のない、@chack411さんに挨拶することができました。WDDでまったく声をかけられなかったので、一言あいさつすることができて本当によかった…

※懇親会は一部話を脚色しています。本当にすみません。

勉強会とかコミュニティの懇親会って苦手です…3次元って苦手です…次から懇親会は参加するのやめようかな。