リモートワーク開発環境を整備する
マイクロソフトのようにリモートワークができる環境を構築している企業はまだまだ少ない。ではリモートワークできる環境をどうつくるか。最初に増渕氏が取り上げたのは、個人や小規模開発チームから気軽に誰でも取り組める開発環境の整備の仕方である。リモートワークの開発環境として増渕氏がおすすめするのが、Visual Studio Code(VS Code)の環境整備である。VS Codeは2020年1月にバージョンアップしたばかり。「拡張機能など、便利な機能がたくさん用意されている」と増渕氏は説明を続ける。
VS Codeはカスタマイズがしやすい。たとえば、スニペットとして簡単な呪文を入力すればたくさんのコードが出力されるような登録をしておき、設定のJSONをチームで共有しておけば作業効率も上がる。そういった環境を考えるとVS Codeそのものをリモートにするというやり方もある。
さらに増渕氏は別の開発環境として、「VS Code Remote Development」という1年前にリリースしたエクステンションを紹介。これを使うと、Visual Studioのファイルの環境やランタイムの環境をリモートで使うことができるようになる。Remote Developmentを使うことで、WindowsであってもネイティブのUbuntuやCentOSなどの環境でデバッグできるようになる。
「例えば自宅のPCから会社のサーバのテスト環境を使いたいというときに、このエクステンションの利用が考えられる」(増渕氏)
だが、この機能は単体だと1段だけのSSHログインになってしまう。だが、リモート先にrmateを導入するなど、サーバ間での接続環境をつくることで、多段のSSHログインの環境を作ることができるという。
Remote Developmentを使って、ローカルPCをリモート環境につなぐ場合、オンプレミスサーバやAzureやAWSなどのサーバが必要になる。そのようなサーバの運用を不要にするのが、昨年リリースされた「Visual Studio Online」である。Visual Studio Onlineは、マイクロソフトサーバ環境などをマネージドで提供するので、運用はすべてマイクロソフトにお任せすることになる。「時間で区切ることができるので、手軽に使える」と増渕氏。使い方も非常に簡単で、エクステンションをインストールすると左下に接続マークが出てくるので、その接続マークをクリックするだけ。そうすると、リモート接続先が示されるので、適切なものを選択することで接続できるという。ブラウザがあれば クラウドにあるVS CodeにアクセスできるのでiPadなどからのアクセスも可能だ。
もう一つ、便利なツールとして増渕氏が紹介したのが、「Visual Studio Live Share」である。同ツールを使えば、VS CodeやVisual Studioでプログラミングしている画面を仲間と共有し、コラボレーションできるようになる。共同編集はもちろん、共同デバッグ、仲間とのチャットなど、多様な機能が装備されている。
「リモートワークはもちろんだが、同じオフィスでもペアプログラミングや教育などにも使うことができる」(増渕氏)
VS Codeを使えば、リモート環境でもオフィスと同様の開発環境が構築できることが分かった。次は、会社の環境や会社が持っているクラウドをどうやって自宅とつなげていくかだ。
VS Codeはエクステンションで、AzureのPaaSやIDマネジメントと統合するという便利な機能を提供している。「これらを使うと圧倒的に作業効率が上がる」と増渕氏。だが、これらの仕組みは個人エンジニアやWeb系の開発エンジニア、スタートアップなら問題なく使えるが、従来からあるようなシステムは、外部からのアクセスができないようにしていたり、できたとしてもAD FSの運用が大変という問題がある。
「このような社内へのアクセスは、開発者だけでは解決しにくい問題だ。組織ぐるみで、認証や認可の仕組みを整備する必要がある」(増渕氏)
従来、社外から社内へアクセスする場合、AD、SaaSのアプリを使う場合は、AD FSを使っていた。だが、Office 365の認証基盤でもあるAzure Active Directory(Azure AD)で社外のアプリやSaaSアプリを認証できるようになる。Azure ADを認証基盤として使うメリットはいろいろある。マイクロソフト自身が数千にも及ぶSaaSアプリを検証しており、それぞれの連携方法のドキュメントを「SaaSアプリケーションとAzure Active Directoryの統合に関するチュートリアル」として提供している。また既存のカスタムアプリをシングル サインオン(SSO)として統合する際にどのような技術・方式を採用するのか考える助けとなるドキュメント「Azure Active Directoryでのアプリケーションへのシングル サインオン」を提供している。このドキュメントには、実際の状況に最適なシングル サインオンの方法を判断するのに役立つフローチャートも含まれていて、「5分程度で既存アプリに最適なSSO技術を選択できる」と増渕氏はいう。
Azure ADでアプリを管理すると良い点は3つある。第一に前述の通りシンプルなクラウドアプリとの連携、シングル サインオンの管理ができること。第二に安全な条件付きアクセスが実現すること。「Azure ADの条件付きアクセスポリシーを他のクラウドにも適用できる」と増渕氏。条件付きアクセスポリシーとは、ユーザーの環境やログインする状況に応じてアクセスポリシーをダイナミックに返るという定義ができるというもの。これにより、環境やロールに応じて柔軟なアクセスポリシーの管理ができるようになる。第三はオンプレミスのIDプロバイダーのメンテナンス作業を削減することだ。