「数日かかったが、最低限のYamatoDriveの機能が回復した」
「何が止まっていたんだい? アクセスしたらページは見えたけど」
「WebRole側の全機能。ASP.NET側プロセスの機能は生きていたのでページは見えた」
「なぜ発覚が遅れたんだい?」
「別件でMSに調査を依頼していた問題があってね。その関係でほとんどいじっていなかったのだ。その上、WebRole側の機能を必要とするような使い方はしなかったのでね」
「ふーん。それってたまたま相互に関係ない問題が2つ重なったということ?」
「そういうことになる」
「それって両方ともAzureの問題?」
「それは微妙だ。もう1つは結局マイクロソフトアカウントの認証の問題なので、直接Azureとは関係しない」
「Azureも認証に使っているから関連するが、Azureそのものでは無いってことだね」
「まあそうだな」
「で、そっちの結論は?」
「まだ出ていない」
「そうか」
「でも、こっちの結論は出た」
「なら原因と対策を教えてくれ」
原因 §
「原因は、WebRole側プロセスに限ってODataモジュールのバージョン不一致の問題が出たことだ。このプロセスは5.6.2を読み込んでいるようだが、開発環境で参照しているアセンブリは5.6.3だった。その結果、全てのストレージのアクセスが利用できず、あらゆるログ記録機能がダウンした。エラーメールすら送れない。そもそも送り先情報を取り出せないんだ。結果として、ログ記録機構の再構築から始めねばならず、凄く手間を食った」
「ストレージが使えないなら、どうやってログを記録したんだ?」
「イベントログに書かせてリモートデスクトップ接続で読み出した」
対策 §
「それで対策はどうなったんだ?」
「うん、本来はODataのモジュールのバージョンを合わせるだけで良いはずだのだが、どうnugetをいじっても出来なかった」
「バージョンダウンにはコマンドライン操作が必要だろう?」
「ずっとコマンドラインでやってたが、nugetのサイトにあるバージョン指定したコマンドラインのオプションを利用しても、どうしても上手く行かなかった」
「じゃあどうするんだよ」
「nugetを使う限り無理だが、nugetをやめたシステムを再構築する時間も惜しいので、一定時間でプロセスが落ちる制約を踏まえた上でASP.NET側のプロセスで処理を実行するように手直ししたよ。暫定処置だ」
暫定の意味 §
「暫定……って?」
「実は、このYamatoDriveというソフトそのものの開発取りやめが検討中だった。だから正式に停止するまでの間だけ維持できれば良いということ」
「将来無くなっちゃうの?」
「現在YamatoDriveに含まれているクロロワロロ2014などの個別の機能は、バラバラにしてWebSitesに変更しようかと思っている」
「その理由はなんだい?」
「そんなの決まっている。CloudServiceだと配置に数十分掛かるが、WebSitesだとほぼ一瞬だ。しかも、WebSitesの無料インスタンスなら複数抱え込んでも懐は痛まない」
「ふーん」
「現実の問題として、MSがCloudServiceに力を入れていないのは良く分かる。今どきの流行はWebSitesと仮想マシンだ」
「でも始まった時のAzureって、CloudServiceに相当するものだけだったよね?」
「そうだ。昔のAzureと今のAzureは全くの別物と思って良いだろう」
「C#1.0の知識でC#6.0のソースは読めないようなものだね」
「そうだ」
「で、それがどうしたの?」
「今回の問題も、CloudServiceを実行している事例は少なく、ましてWebRole側プロセスで込み入った処理をさせている事例はもっと少ないことを示しているのだろう。まあ実際に動作の確実性、出来の善し悪しを見ると、完全にWebSitesの方が優れている」
「そんなに差があるのかね?」
「実際に使い比べると凄くあるぞ」
「ほんとに?」
「CloudServiceとワンセット出てくるストレージは、本当に【子供が遊びで作ってるんじゃないか】と思えるほどの出来映えだ。SQL大嫌いなおいらが言うのも何だが、SQL Serverと比較するとかなり出来が良くない」
「それは何を意味するんだい?」
「MSはそっちに力を入れていない。単に始めたものは簡単に切れないから続けているだけで、主力はWebSites+SQL Serverに向いているのだろう」
「分かった。No NoSQL, No Lifeな君には不本意な状況だね」
「しかし、当面は使わざるを得ないだろう」
「やっぱり使いにくい?」
「凄く使いにくいぞ。些細なフィールド1個追加しただけでもうデータベースが使えないってどういうことだよ。呆れるほど硬直的だ」
「ひ~」
「だから、現状よりもマシというだけで、理想には遠いよ。データベースに関しては何か他の選択肢を模索中だよ」