Visual Studio 2015で“真のオープンソース化”を実現
アプリケーション開発において「モバイルファースト、クラウドファースト」と耳にする機会が増えたのは、誰もが実感するところだろう。かつてはPC向けに考えていれば十分とされていたのが、今や「モバイルこそ優先すべき」であり、さらにあらゆる環境への対応が当然のように求められるようになった。
井上氏は「開発現場でのニーズに対し、Microsoftは技術やツール、そして開発環境においても『すべての環境に対応し、すべてのエンジニアに提供すること』をビジョンとして掲げ、様々な取り組みを進めている」とMicrosoftの姿勢を語る。
その象徴と言えるのが、2015年7月に登場した、統合開発環境Visual Studioの最新バージョンVisual Studio 2015だ。モバイル&クラウド中心のクロスプラットフォーム開発、そしてDevOpsへの対応など、これまで以上のフレキシビリティが発揮されているという。
たとえば、モバイルを意識したiOS、Android向けのアプリケーション開発を想定した場合、Visual Studio 2015ではC#+Xamarinでも、C#+Unityでも、そしてHTML/JS+Cordovaでも開発できる。また、C++を使って、Android、iOSの共有ライブラリを作ることもできるという。
また「.NET 2015」の方では、既存.NETの最新版となる「.NET Framework 4.6」に、新たにランタイムライブラリ「.NET Core 5」が加わって2本柱となる。.NET Coreを使うことで、Windows環境のみならず、Linux、Mac OS X上でも.NETが動き、C#でも開発が可能になった。つまり、従来通りWindows環境での開発は.NET Frameworkで、そしてサーバサイドのクロスプラットフォームを意識した開発なら.NET Coreでというわけだ。
.NET Coreは、GitHub上でソースコードが全て公開されているだけでなく、開発状況も公開され、ロードマップもディスカッションされている。従来の.NETもソースコードは参照できたが、完全なオープンソースとして動いていたとは言えなかった。それが2015からは“真のオープンソース化”を実現したということになる。
「プルリクエストによるバグ修正や機能リクエストなどが、.NETの枠組みの中で吟味され、テストされ、新しい.NET Coreとして活かされる。それが実際に実現しており、先日も日本人エンジニアのプルリクエストが製品に活かされた。興味がある方はぜひ触ってみてほしい」と井上氏は語る。
高機能エディターVisual Studio Codeと開発管理クラウドツールVisual Studio Online
このようなオープンソース化の動きに加えて、Visual Studio 2015に新たに追加されたツールが「Visual Studio Code」である。これまでの流れと全く異なる、Visual Studioとは一線を画した、MacやLinux上でも使える軽量・高速な高機能エディターだ。
ここで井上氏はMacのノートPCを開き、Visual Studio CodeによってC#でWebアプリケーションを開発するデモンストレーションを開始。YeomanでASP.NETのソースを生成し、Visual Studio Codeの画面上での編集を施した。
Visual Studio Codeはインテリセンスも使え、C#はもちろんのこと、Node.jsやJavaScript、TypeScriptなどの言語に対応している。マークダウン形式の文書や、HTML/CSSのコーディング、Java、PHPなど様々な言語のコーディングにも適する。Visual Studio Codeが対応している言語リストが表示され、そこから選択してエディター上で実装するという仕組みだ。井上氏は作成したアプリケーションをUbuntu上で起動させ、ネット上に公開してみせた。
さらにVisual Studioファミリーでは、開発言語のオープン化だけでなく、オープンな開発環境も提供する。たとえば、開発管理クラウドツール「Visual Studio Online(VSO)」では、Visual Studioを使わないエンジニアでも、EclipseやXcodeなどを使って、バージョン管理、プロジェクト管理などが利用可能となっている。
VSOは、これまでオンプレミスで提供されてきたプロジェクト管理ツールの「Visual Studio Team Foundation Server(TFS)」のクラウド版として、クラウドプラットフォーム「Microsoft Azure」上にホストしたものだ。5ユーザまでの無料プランもあり、誰もがいつでも使用できる環境が提供されている。
「コードのバージョン管理やタスク管理、自動ビルドや自動テスト、自動デプロイも可能。アプリケーションの分析機能なども準備されている。DevOpsで役立つ機能が多く揃っているので、ぜひ一度は触ってみてほしい」と井上氏も太鼓判を押す。なお、TFSは「Team Foundation Version Control(TFVC)」と呼ばれる独自の集中型バージョンコントロールを搭載しているが、分散型のGitも使えるようになっている。
Microsoft Azureと各種連携サービスが実現する、迅速かつ柔軟な開発スタイル
続いて、クラウドコンピューティングプラットフォームMicrosoft Azureが提供するサービスが紹介された。仮想マシンなどコンピューティングから、ネットワーク、データサービス、アプリケーションまで多種多様に至る。その中でも、特にVisual Studioとの関連性の高いサービスは「Azure App Service」だ。
Azure App Serviceとは、クラウドスケールのアプリケーションの実行基盤であり、「Web Apps」「Mobile Apps」「Logic Apps」「API Apps」を連携・活用することで、スピーディかつ的確な開発が可能になる。
アプリケーション開発では、データに基づいて仮説を立て優先順位をつけるといった「プランニング」から、迅速かつ高い品質を担保する「開発・テスト」、そして、頻繁なリリースや障害発生時の対応といった「運用」、そのアプリケーションがどのように使われているか「監視・分析」によって次の開発に活かすまで、サイクルを迅速かつ継続的に回すことが重視されている。
つまり、Visual Studioで迅速な開発を行い、 Visual Studio OnlineやGitHubでリポジトリから、ビルド、テスト、デプロイを行い、Azureに公開して監視・分析を行い、再び開発環境へフィードバックすることで、前述したニーズを満たすサイクルが実現するというわけだ。
ここで井上氏は、再びデモンストレーションを実施。Webアプリケーションを作成し、同時にAzure上に環境を設定してホストし、さらにVisual Studioの「Cloud Explorer」「Server Explorer」のリモートデバッグでAzure上のインスタンスにデバッガーをアタッチしてみせた。通常であれば、クライアント上でデバッグし、問題ないとなればAzureにホストするが、なぜかAzure上のみで不具合が起きるなどのケースもあり、ダイレクトなデバッグが有効である場合も多いという。
そして、Visual Studio からGitHubにプッシュし、リポジトリからビルド、テスト、デプロイを行ってAzureに公開するまでを実行。常に最新バージョンがWebアプリケーションとして提供される環境が整う様子を再現してみせた。
さらに井上氏は新しい機能として「展開スロット」を紹介し、デモンストレーションを行った。テストサイトで改善を行い、OKとなれば本サイトへ展開する。仮想IPのスワップをポータル上で行うことで、その展開・切り替えをスムーズに行うというものだ。
加えて、アプリの利用状況を収集できる「Application Insights」も紹介。あらゆる環境、言語を問わず、エラーやパフォーマンスといった利用状況を把握し、開発へとフィードバックを図る。そのサイクルによってサービス品質を向上するのが目的だ。
そして今後の動きとして、オープンソースのコンテナ管理ソフトウェア「Docker」への対応が紹介された。「Hyper-V」ではゲストOSにアプリケーションをホストし仮想化していく形態だが、Dockerと連携することでゲストOSがDockerエンジンでまかなわれ、そこにコンテナ単位でアプリケーションが仮想化されていく形になる。Windows Server 2016から対応し、Visual Studio 2015の拡張機能でDockerに対するアプリケーションのデプロイも行えるようになる。日本語対応は少し先というが、おさえておくべきトピックスと言えるだろう。
最後に、井上氏は「Microsoftは既にWindowsに限定された世界から脱して、様々なオープン化に取り組み、様々なユーザに対して有用なサービスを提供している。ぜひ、興味のある部分から触れてみてほしい」と語り、講演のまとめとした。
お問い合わせ
日本マイクロソフト株式会社
TEL: 03-4332-5300(大代表)