Posts Tagged ‘storageteam’

Azure Storageサービスの新機能と、Storageクライアント ライブラリのアップデートを発表できて、興奮しています。新しい種類のBLOBである追加BLOB (Append Blob) や、Azure Filesサービスの多数の新機能があります。詳しくは、次の機能を追加します:

(more…)

(既存のブロックBLOB、ページBLOBに加えて) 追加BLOB (Append Blob) という新しい種類のBLOBを導入できて、興奮しています。追加BLOBは、2015年第3四半期に利用可能になる予定です。このブログ ポストでは、追加BLOBの概要を紹介し、最も一般的な利用シナリオを明らかにします。リリースが近くなったら、さらなる情報と詳細を共有する予定です。

(more…)

Windows Azure BLOB、テーブル、キューにわたって多様な新機能を提供する、Windows Azureストレージの新しい2013-08-15バージョンが利用可能になったことを発表できて、興奮しています。このバージョンでは、次の主な機能を追加します:

(more…)

MicrosoftのBuildカンファレンスで、Windows Azureストレージの内部構成、ベスト プラクティス、我々がこれまで取り組んできた一連の心躍る新機能について話しました。今後予定されている心躍る新機能について話す前に、この1年を思い出してみたいと思います。我々が提供しているオブジェクト数と平均秒間リクエスト数についてブログを書いて (英語 / 日本語 (機械翻訳)) 以来、ほぼ1年になります。

この1年は、Windows Azureストレージにとって、またしても素晴らしい1年でした。多数の外部のお客様と (XBox、Skype、SkyDrive、Bing、SQL Server、Windows Phoneなどの) 社内製品が、Windows Azureストレージの著しい成長を推進し、Windows Azureストレージがそれらのサービスの重要な情報を格納/提供するために選択されました。これによって、Windows Azureストレージは、8.5兆個以上のオブジェクトをホストし、平均で秒間90万以上のリクエスト (秒間2.3兆以上のリクエスト) に対応することになりました。これは、1年前にブログを書いた時以来、格納されているオブジェクト数では2倍の増加、平均秒間リクエスト数では3倍の増加です!

セッションでは、今後予定されている多様な新機能についても話しました。我々が話したすべての新機能の要点は、次の通りです。

  • キューの地理的レプリケーション: 地理冗長ストレージ アカウントに対して、すべてのキューが地理的レプリケーションされるようになったことを発表できて、嬉しく思います。これは、地理冗長ストレージ アカウントのすべてのデータ (BLOB、テーブル、キュー) が地理的レプリケーションされるようになったことを意味します。

2013年末までに、次の機能をリリースすることを目標にしています。

  • セカンダリ読み取り専用アクセス: 地理的レプリケーションされたデータの結果整合性のある (eventually consistent) コピーを読み取るために活用できる、セカンダリ エンドポイントを提供する予定です。加えて、ストレージ アカウントに対する、現在のレプリケーションの遅延を取得するAPIを提供する予定です。ストレージ アカウントのデータに対して計算処理を行うための別のソースとして、および、プライマリが利用可能でない場合のフォールバック オプションとして、アプリケーションはセカンダリ エンドポイントにアクセスできるようになる予定です。
  • Windows Azureインポート/エクスポート: お客様がディスクを発送することで、テラバイト級のデータをWindows Azure BLOBストレージに出し入れすることを可能にする、新しいサービスのプレビューをリリースする予定です。
  • リアルタイム メトリック: リアルタイムに近い形で、BLOB、テーブル、キューに対するストレージ メトリックの分単位の集計を提供する予定です。これらのメトリックは、時間単位のメトリックでは平準化されがちな、より粒度の細かいサービスに関する情報を提供する予定です、
  • クロス オリジン リソース共有 (CORS): Windows Azure BLOB/テーブル/キュー サービスに対して、CORSを有効化する予定です。これによって、お客様は、WebページでJavaScriptを使って、ストレージに直接アクセスできるようになります。これによって、ブラウザーがクロス ドメインのアクセスを妨げるという事実を回避するためにストレージへのリクエストをルーティングするプロキシ サービスが、必要なくなります。
  • Windows Azureテーブル ストレージに対するJSON: AtomPubに比べてずっと軽量でパフォーマンスの良い、OData v3 JSONプロトコルを有効化する予定です。特に、JSONプロトコルは、帯域幅の観点で非常に効率的なプロトコルである、NoMetadataオプションを持っています。

Buildのセッションを見逃した場合は、こちらからアクセスできます。このセッションは、ベスト プラクティスに加えて、前述の機能をより詳細にカバーしています。

関連情報

 

 

本日、Windows Azureストレージ クライアントライブラリのバージョン2.0をリリースします。これは、新機能、幅広いプラットフォーム互換性、これまで皆さんから頂いた素晴らしいフィードバックを解決する修正を含む、.NETライブラリに対する過去最大の更新です。ソース コードはGitHubで入手可能になっています。また、このライブラリはNuGetを介しても入手可能であり、Windows Azure SDK for .NET (2012年10月版) にも含まれています。より詳しい情報とリンクについては、以下を参照してください。.NET 4.0ライブラリに加えて、Windows Runtimeプラットフォームを完全にサポートし、Windowsストア アプリがサポートする任意の言語 (JavaScript、C++、C#、Visual Basic) で書かれた、(ARMベースのシステムをサポートする) Windows RTとWindows 8の両方向けのモダンなWindowsストア アプリを構築するために使える、Windowsストア アプリ向けの2つのライブラリを、コミュニティ テクノロジー プレビュー (CTP) としてリリースします。このブログ ポストはこれらのライブラリの概要であり、プラットフォームに関係なく.NETでクラウド アプリケーションを開発する際に理解に役立つ実装の詳細を扱います。

新機能

ストレージ クライアント ライブラリの今回のリリースでは、次のような多数の新機能を追加しました。

  • 簡素化と使いやすさ – Windows Azureストレージを初めて使う開発者でも迅速に使いこなすことができる一方で、既定の実装を越えてアプリケーションの動作をカスタマイズしたい開発者に引き続き拡張性を提供する、大きく簡素化されたAPI。
  • 新しいテーブル実装 – 低遅延/高パフォーマンスのワークロードに最適化された簡素化されたインタフェースを提供し、開発者がデータをより制御可能にする、より拡張可能なシリアル化モデルを提供する、完全に新しいテーブル サービス実装。
  • 高度なデバッグ/構成機能 – みなさんから頂いた共通のフィードバックの1つは、ストレージ サービスへの呼び出しをしているときに、「水面下で」何が起こっているか知ることが非常に難しいということでした。何回リトライが行われたのでしょうか? エラー コードは何でしょうか?OperationContextオブジェクトは、高度なデバッグ情報、並列で複雑なアクションに対するリアルタイムのステータス イベント、ユーザーがリクエストをカスタマイズしたりエンド ツー エンドのクライアント トレースを有効化することを可能にする拡張点を提供します。
  • Windows Runtimeのサポート – JavaScript、C++、C#、Visual Basicを使ったWindowsストア アプリの開発をのサポートと、C++、C#、Visual Basic向けの強く型付けされたテーブル拡張ライブラリを含む、Windows Runtimeコンポーネント。
  • 完全な同期プログラミング モデル/非同期プログラミング モデル (APM) 実装 – .NET 4.0向けの完全な同期API。クライアント ライブラリの旧リリースでは、単に対応するAPMメソッドを囲みManualResetEventを使うことで、同期メソッドを実装してました。実行中に追加のスレッドがブロックされたままになるので、これは理想的ではありませんでした。今回のリリースでは、すべての同期メソッドは、そのスレッド上で作業を完了します。Cloud[Page|Block]Blob.Open[Read|Write] メソッドを介して利用可能な並列性のためのストリーム実装を例外として、そのスレッド内でメソッドが呼び出されます。
  • 簡素化されたRetryPolicy – 簡単で再利用可能なRetryPolicy。
  • .NET Client Profile – ライブラリが、.NET Client Profileをサポートするようになりました。.NET Client Profileに関する詳細については、こちらをご覧ください。
  • 合理化された認証モデル – 匿名、共有アクセス署名、アカウント/キー認証スキームをサポートする、単一のStorageCredentials型を提供するようになりました。
  • 一貫性のある例外処理 – ライブラリは、サーバーへのリクエストを行う前に発生した任意の例外を、即座にスローします。リクエスト実行中に発生した任意の例外は、(他のすべての例外をラップし、リクエスト実行に関する高度な情報を提供するする) 単一のStorageException型にラップされます。
  • APIの明瞭さ – サーバーにリクエストを行うすべてのメソッドが、[DoesServiceRequest] 属性で明確にマークされるようになりました。
  • BLOB APIの拡張 – BLOBのDownloadRangeで、ストリーム実装に依存することなく、ユーザーがダウンロードする特定のバイト範囲を指定可能になりました。
  • BLOBダウンロードの再開 – 接続が失われた際に受け取っていないバイトだけをダウンロードするための、後続範囲リクエストを発行できる機能。
  • MD5の改善 – すべてのクライアントAPIにわたって一貫性のある、簡素化されたMD5の動作。
  • ページBLOB実装の更新 – ストリームの読み書きを含む、完全なページBLOB実装。
  • キャンセル – ICancellableAsyncResultを介した、非同期キャンセルのサポート。注: これは、CancellationToken.Register() メソッドを介して、.NETのCancellationTokenとともに使えます。
  • タイムアウト – エンド ツー エンドのタイムアウトのシナリオをサポートする、クライアント、サーバーで別個のタイムアウト。
  • Windows Azureストレージ機能サポートの拡張BLOB/コンテナのリース (英語 / 日本語 (機械翻訳))、BLOB/テーブル/キューの共有アクセス署名 (英語 / 日本語 (機械翻訳))、非同期アカウント間BLOBコピー (英語 / 日本語 (機械翻訳)) の実装とともに、2012-02-12 REST APIバージョンをサポートするようになりました。

設計

.NETとWindows Runtime向けの新しいストレージ クライアントを設計する際、我々は、開発プロセスを通して従う一連の設計ガイドラインを定めました。これらのガイドラインに加えて、Windows Runtime向けに開発する際には、特に、いくつかの主要なアーキテクチャ上の決定を後押しするJavaScriptでは、いくつかの固有の要件があります。

たとえば、これまでのRetryPolicyは、ユーザーが構成可能なデリゲートを基にしていました。しかし、すべてのプラットフォームでこれをサポートできないので、どこでも簡単で一貫性のある実装になるように、RetryPolicyを再設計しました。また、この変更によって、これまでの実装の複雑性に関するユーザーからのフィードバックを解決するために、インタフェースを簡素化できました。

Windows Runtime

今回のリリースを主に推進したのは、特にWindows 8、Windows RT、Windows Server 2012を対象にした、プラットフォーム サポートの拡大でした。そのため、コミュニティ テクノロジー プレビュー (CTP) としてWindows Runtimeをサポートする、次の2つのWindows Runtimeコンポーネントをリリースします。

  • Microsoft.WindowsAzure.Storage.winmd – JavaScript、C++、C#、VBをサポートする、完全なストレージ クライアント。このライブラリにはすべてのコア オブジェクトが含まれ、JavaScriptで利用可能なBLOB、キュー、基本的なテーブル実装がサポートされています。
  • Microsoft.WindowsAzure.Storage.Table.dll – 汎用的なクエリのサポートと強く型付けされたエンティティを提供する、テーブル拡張ライブラリ。これは、強く型付けされたエンティティとリフレクションを基にしたPOCOオブジェクトのシリアル化を提供するために、JavaScript以外のアプリケーションによって使われます。

仕様変更

Windows 8、Windows RT、Windows Server2012の登場とともに、我々は現行のライブラリのプラットフォーム サポートを広げる必要がありました。この要件を満たすため、プラットフォーム サポートを広げ、新機能と重要なパフォーマンス改善 (詳細は後述) を提供するための既存のストレージ クライアントのコードベースの改訂に、我々は多大な労力を投資してきました。クライアント ライブラリの今回のバージョンの主要な目的の1つは、開発者の知識とコードをあるプラットフォームから別のプラットフォームに自然に移行できるように、プラットフォームにわたって一貫性のあるAPIを維持することでした。そのため、この共通のインタフェースをサポートするために、ライブラリのこれまでのバージョンから、いくつかの仕様変更を行いました。また、この機会を使って、.NETライブラリと最近リリースされたJava向けのWindows Azureストレージ クライアント ライブラリ (英語 / 日本語 (機械翻訳)) の両方に対する、フォーラムなどで頂いた皆さんからのフィードバックに対応しました。既存ユーザー向けに、それぞれの変更をより詳しく説明した仕様変更のアップグレード ガイドを、このブログに投稿する予定です。

新しいクライアントがこれまでの1.xリリースと同じNuGetパッケージの基で公開されていることに、注意してください。そのため、自動アップグレードが仕様変更を引き起こすので、既存プロジェクトを確認してください。

追加の依存性

新しいテーブル実装は、(まとめてODataLibと呼ばれる) 3つのライブラリに依存しています。これらは、NuGetを介して入手可能なODataLib (バージョン5.0.2) パッケージで解決可能ですが、現在5.0.0バージョンを含んでいるWCFデータ サービスのインストーラーでは解決できません。ODataLibライブラリは直接ダウンロード可能であり、また、NuGetを介してコード プロジェクトから参照可能です。ODataLibパッケージは、次の通りです。

名前空間

注目すべき仕様変更は、アセンブリ名とルート名前空間が、Microsoft.WindowsAzure.StorageClientからMicrosoft.WindowsAzure.Storageに変更されたことです。他のWindows Azureサービスのライブラリとより合致することに加えて、今回の変更によって、アプリケーション移行時に、開発者はライブラリの古い1.Xバージョンと2.0リリースを同時に使うことができます。さらに、より的を絞った開発者のエクスペリエンスとより巧みなIntelliSenseのエクスペリエンスを提供するために、それぞれのストレージ抽象化 (BLOB、テーブル、キュー) がサブ名前空間に移動しました。たとえば、BLOB実装はMicrosoft.WindowsAzure.Storage.Blobにあり、関連するプロトコル構成要素はMicrosoft.WindowsAzure.Storage.Blob.Protocolにあります。

テスト、安定性、オープン ソース コミュニティとの連携

我々は、一貫性、安定性、信頼性がある堅牢なAPIを提供することを約束しています。今回のリリースでは、テスト カバレッジを広げ、巨大なテスト シナリオを (一般に利用可能な) より的を絞ったものに分割する点において、大きく進展しました。

マイクロソフトとWindows Azureは、我々のサービスのクライアント ライブラリに関して、できる限りオープンで透明性があるように努力しています。すべてのライブラリのソース コードは、Apache 2.0ライセンスの基でGitHubを介してダウンロード可能です。加えて、我々は、.NET 4.0ライブラリ向けだけでも、450以上の新しい単体テスト提供しました。コードベースを修正したいユーザーは、変更を検証するための簡単で軽量な方法を持つようになりました。これらのテストのほとんどは、Widnows Azure SDK for .NETを介して出荷されているストレージ エミュレーターに対して実行できることに注目することも重要です。これによって、ユーザーは、ストレージ アカウントの使用料を発生させることなくテストを実行可能になります。また、我々は、ユーザーがWindows Azureストレージに関連する簡単な、あるいは高度なトピックの両方を使いこなせるように、一連のより高レベルなシナリオとハウツーを提供する予定です。

まとめ

我々は、.NETコミュニティにWindows Azureストレージを扱う真に一級の開発エクスペリエンスを提供することに、多大な労力を注いてきました。このブログ ポストで提供されている内容に加えて、我々は、多様な機能とシナリオをより詳しく扱う、一連の追加のブログ ポストの公開を続ける予定ですので、後で確認してください。願わくは、あなたの過去のフィードバックが今回の新しいライブラリに反映されていればいいのですが。コミュニティからのフィードバックには本当に感謝しているので、ブログ ポストへのコメントやフォーラムへn参加によって、フィードバックを続けてください。

リソース

Windows Azure SDK for .Netを入手してください。

 

 

関連情報