Freigeben über


Python on Windows Azure – クラウドを促進する名コンビ

このポストは、7 月 3 日に投稿された Python on Windows Azure – a Match Made in the Clouds! の翻訳です。

マイクロソフトでは、ここ数年にわたって Python on Windows への取り組みを改めて強化してまいりました。その成果が、Python Tools for Visual Studio (英語) のリリースや Python on Windows Azure (英語) として実を結んだことを大変嬉しく思っています。本稿では、どのような機能が利用できるようになったかをご紹介します。まずは、予備知識として Python について簡単にご説明します。

Python とはどのようなもので、何に利用されているのでしょう ?

Python (英語) は簡潔で使いやすい先進的な言語で、今日の開発者には欠くことのできないツールとなっています。TIOBE Index (英語) のトップ 10 内に常にランクインしており、多くの大学のコンピューター科学入門講座で履修言語として採用されています。また、幅広く充実したライブラリ (英語) を備えていることもあり、コンピューター科学部門の博士レベルやミッション クリティカルなアプリケーションでの zip ファイル作成にいたるまで、広範に利用されています。ここ最近で Python を実際に利用している企業や製品を挙げてみましたが、きわめて人気の高いサイト、広く普及しているデスクトップ アプリケーションやネットワーク化されたアプリケーションが含まれているのがおわかりいただけると思います。

また Python は非常に人気の高い言語で、Hacker News (英語) が実施した最近の人気投票では、次のような結果が出ています。

この言語のもう一つの重要なポイントは、クロスプラットフォームに対応しているという点です。実際、Python Windows Azure クライアント ライブラリを MacOS や Linux 上で使用する際には、ほとんど変更を加える必要はありません。

Python on Windows Azure

Python on Windows Azure の初期機能としては、以下の機能が提供されます。

  • Python クライアント ライブラリ
  • Django およびクラウド サービス
  • Python/Azure と Visual Studio の統合
  • Windows 仮想マシンまたは Linux 仮想マシン上での Python のサポート
  • IPython

Python クライアントライブラリ - クライアントライブラリ (英語) は、Azure ストレージや Azure キューなどの Windows Azure サービスを対象とした、OS に依存しない Python ラッパーです。Mac でも Linux でも、また、ローカルでも仮想マシンでも利用可能で、Windows Azure の幅広いコンピューティング サービスやストレージ サービスを活用できます。

BLOB へのアップロード:

myblob = open(r'task1.txt', 'r').read()

blob_service.put_blob('mycontainer', 'myblob', myblob, x_ms_blob_type='BlockBlob')

BLOB の一覧表示:

blobs = blob_service.list_blobs('mycontainer')

for blob in blobs:

print(blob.name)

print(blob.url)

BLOB のダウンロード:

blob = blob_service.get_blob('mycontainer', 'myblob')

with open(r'out-task1.txt', 'w') as f: f.write(blob)

Django - Web 作業用に、初期機能として Django (英語) がサポートされています。これを使用すると、IIS によるサーバー側の処理がサポートされると共に、Python Tools for Visual Studio (PTVS) (英語) を利用した展開ができます。WebPI を使用すると、必要なもの (Python、Django、PTVS など) はすべて Windows 上でインストールできます。また、初歩的な Web サイトの構築および稼動は、作業開始から 15 分で可能です。展開後は、Windows Azure の拡張性や地域サポートを利用して、複雑なサイトを効率的に管理できます。

Windows Azure に展開するアプリケーションの準備作業を PTVS で実行:

Python Tools for Visual Studio – Python プログラムの作成には、Web ベースのものを含め、数多くの優れた IDE が利用できます。中でも私たちがお勧めするのは PTVS (英語) で、Visual Studio の OSS (Apache ライセンス) プラグインとして無償で利用できます。既に Visual Studio をご利用の場合、インストールはごく簡単です。Visual Studio をご利用でない場合は、統合シェルと PTVS の両方をインストールして使用します。この組み合わせによって、実質的に無償の “Python Express” が提供されます。PTVS の主な機能は以下のとおりです。

  • CPython および IronPython のサポート
  • Intellisense
  • ローカルおよびリモートでのデバッグ
  • プロファイル
  • インライン グラフィックスをサポートする統合 REPL
  • オブジェクト ブラウザー
  • Django
  • 並列コンピューティング

次のビデオでは、PTVS の基本的な編集機能について簡単に説明しています。

[View:https://www.youtube.com/watch?v=7CoGsSlrxKk&feature=player_embedded]

Django テンプレートのデバッグ:

Django テンプレートでの Intellisense サポート:

次のビデオでは、Windows Azure で (クラウド サービス モードで) Django サイトを展開する方法を説明しています。同様に、Mac または Linux のマシンから展開することも、Linux 仮想マシンに展開することも可能です。

[View:https://www.youtube.com/watch?feature=player_embedded&v=UsLti4KlgAY]

さらに PTVS は、ハイパフォーマンス コンピューティング (MPI コードのデバッグなど) といった高度な機能も備えており、将来的には Windows Azure 上でも利用できるようになる予定です。

IPython - IPython (英語) ノートブックは Python での開発を目的とした Web ベースの汎用 IDE で、”アイデア” をプロトタイプとして形にする上で重要なものです。このノートブックは WebSocket (Chrome、Safari、近日公開予定の IE10 など) をサポートしているあらゆる最新ブラウザーで実行できます。”エンジン” 本体は Windows Azure の仮想マシン (Linux または Windows) 上で動作します。

この強力なパラダイムにより、Windows Azure の強固な可用性と拡張性に支えられながら、生産性の高い環境で Python の広範にわたる充実したエコシステムにすばやくアクセスできます。その結果、利用者がモデラーであれ、教師であれ、あるいは研究者であれ、特にプロトタイプや共有、コラボレーションによって、まったく新たな可能性が開かれます。そして何よりも、インストールが不要という利点があります。次のビデオでは、IPython の機能について説明しています。

[View:https://www.youtube.com/watch?feature=player_embedded&v=ljrSOkMs7DQ]

概要とロードマップ

これまで見てきたように、Python on Windows Azure には数多くの利点があります。

1.優れた言語であり、充実したライブラリと、およそ 150 万人規模とも言われるきわめて活発な開発者コミュニティーを有しています。

2.Django と Flask は、優れた Windows サポートを提供する堅固な Web フレームワークです。

3.PTVS が Windows Azure をサポートすることにより、Visual Studio がワールドクラスの Python IDE へと変革されます。また、何よりも優れた点として、PTVS は OSS として無償で使用することができます。

4.IPython は Windows Azure によってサポートされていて、OS やブラウザーの種類を選ばず強力な探索能力および分析能力を発揮すると共に、視覚化環境を実現します。

5.Windows Azure クライアント ライブラリにより、Python を使用して、Windows、MacOS、および Linux から Windows Azure サービスに簡単にアクセスできます。

6.Linux および Windows の永続的な仮想マシンで、必要な Python スタックを実行できます。

また、Python チームのメンバーは大の OSS ファンであるということも強調しておきたいと思います。これらの機能のさらなる充実のために、皆様からのご協力を心よりお待ちいたしております。Windows Azure クライアント ライブラリは github の OSS (英語) で、PTVS は Codeplex の OSS (英語) です。バグあるいは導入をご希望の機能がございましたら、ぜひお知らせください。

また、Windows Azure での (Hadoop による) "ビッグ データ" のサポートやハイパフォーマンス コンピューティングのサポートも検討しています。何かよいアイデアをお持ちの方がいらっしゃいましたら、私たちにご一報いただけると幸いです。

- Shahrokh Mortazavi (Windows Azure 担当パートナー プログラム マネージャー)