互換性を維持しつつOSSの潮流に対応。Active DirectoryやSQL Serverの取り組み

2017年4月13日(木)
松下 康之 - Yasuyuki Matsushita
マイクロソフトのエンタープライズ向けソリューションにおいて中核となるActive Directoryと開発ツールにおいてオープンソースソフトウェア(以下、OSS)は如何に使われているのか? 意外と知られていないActive DirectoryとSQL Server on Linuxさらに開発ツールに関してインタビューを行った。

マイクロソフトのエンタープライズ向けの基盤といえばWindows ServerやIIS、SQL Serverなどが挙げられるだろう。社内のネットワークがイーサーネットベースになり、複数のWindowsPCがNT Domainに参加することでユーザーの管理などが容易になったのが1993年、Windows NTの出荷が始まった年だ。その後、より高機能なディレクトリーサービスとして2000年に登場したのがActive Directory(以下、AD)だ。ADによってシングルサインオンやプリンターなどの管理が容易になった。またソフトウェア開発の領域では、ビル・ゲイツ由来のVisual BasicやVisual C++、Visual Studioなどマイクロソフト独自の開発環境はWindowsメインのエンタープライズでは必須のツールであったと言えよう。サーバー管理、ユーザー管理の要であるADとVisual Studioなどの開発ツールとOSSの関わりをマイクロソフトの二人のエバンジェリストから聞いた。

今回の出席者の氏名と所属は以下の通り。

  • 安納 順一(あんのう じゅんいち)
    デベロッパーエバンジェリズム統括本部
    テクニカルエバンジェリズム本部
    プリンシパルテクニカルエバンジェリスト
  • 山本 美穂(やまもと みほ)
    デベロッパーエバンジェリズム統括本部
    オーディエンステクニカルエバンジェリズム部
    テクニカルエバンジェリスト

ーーでは簡単に自己紹介をお願いします。

安納 順一氏

安納氏:マイクロソフトにはもう10年勤務になりますが、その前はシステムインテグレーターで15年間、フィールドSEをやっていました。現在のフォーカスしているエリアはDevOpsの辺りです。特に詳しい製品はADとAD on Azureです。

山本 美穂氏

山本氏:最初はメーカー系のシステムインテグレーターでその後、仮想化基盤の外資系に転職してプリセールスのSEをやっていました。インフラ系とソフトウェア開発でウォーターフォールをやっていましたのでウォーターフォールのダメなところは良く分かっているつもりです。

ーーお二人の経歴的にはAzureチームと比べてもOSSっぽい匂いがしないですね(笑)。

安納氏:私はかつての顧客がアカデミックな組織が多かったので、実はOSSは非常に身近にあったという感じですね。

山本氏:仮想化の会社に居た時も意外と中ではOSSの開発はやっていたんですけど、まぁ、あまり目立たなかったですね(笑)。なのでOSSは私も身近な存在でした。

ーーではまずはActive Directoryの話を聞かせてください。

安納氏:ADですが、中身はLDAPとKerberosという2つのオープンな技術を組み合わせてマイクロソフトが実装し製品化したものです。よくマイクロソフトの独自の製品と思われていますが、中で使われいる技術は公開されているもので、実装をしたのがマイクロソフトなのでそう思われているのかもしれません。ディレクトリーサービスにはX.500という国際標準がありましたが、余りに重装備で使いづらいのでよりシンプルなディレクトリーサービスとして出てきたのがLDAPということになります。Active Directoryが出てきた当時は、NIS(Network Information Server)が全盛の頃でしたけども、当時からWindowsのネットワークとUNIX系のネットワークを分けて管理する、みたいな発想がシステムを構築するベンダー側にあって、それぞれのエンジニアが別々にシステムを構築して両方を混ぜちゃいけないという間違った発想があったような気がします。なのでその2つのネットワークを繋げるメタデータベースという製品が出てきて、それで大儲けをしたのがサン・マイクロシステムズというのは余談ですね(笑)。話を戻すと別にどちらのサーバーも繋げて管理できるというのがADです。

ーー前回のAzureチームへのインタビューの時に出た話で、特に最近はAzure ADの進化が早いと言う話がありました。オンプレミスとAzure上のADで違いはあるんですか?

安納氏:もともとはOffice 365のIDを管理するゲートウェイ的なものがあり、それを後からAzure ADとして名前を変えた時がありました。その後、いろいろ名前が変わったりして最終的に今のAzure ADの初期バージョンが出てきたのが2013年になります。中身はLDAPなのでそこのコアは変わらないですが、認証の部分は全くゼロから書き直しています。オンプレミスのADはActive Directory Federation Serviceを使うことによってAzure ADと同じプロトコル、SAML 2.0、WS-Federation、OpenID、OAuth、FIDO 2.0を使えるようになっています。なのでオープンなプロトコルに対応しているということになります。

ーー製品名の変遷は異常に細かい話になって逆に混乱しちゃいそうですね。まとめるとオンプレミスのADとAzure ADはLDAPと言う部分のコアは同じだが、他は全く違うもの、と言う認識で良いんでしょうか?

安納氏:まとめるとそういうことになります。ADとAzure ADは基本機能として連携できます。そして今の時代だとオンプレミス側にADが無いという企業がありまして、AzureのADを使って社内のネットワークを管理したいという流れに対応したのがAzure Active Directory Domain Servicesになります。これはパブリッククラウドであるAzureから社内のネットワーク上のIDの管理を行うものでADの機能をAzure上においておく、というものになります。なので社内にADのサーバーがなくても同じような役割を実行できるわけです。社内のRed Hatのサーバーもこの中で一発でログインできるようになります。

ーーADはどちらかというと「Windows専用のディレクトリーサービスと認証用」という認識は改めて、オープンなプロトコルにも対応していること、コアな技術は公開された技術を使ってマイクロソフトが実装しているということですね。

安納氏:そうですね。ソフトウェアの開発のほうに視点を移すとGitHubでソースを管理してSlackでコミュニケーションする、みたいな場合でも認証の部分はADで問題無いです。その場合はVisual Studio Team Servicesをハブとして入れてその機能と合わせることでより使いやすくなると思います。

ーーソフトウェア開発というとマイクロソフトにとっての中心はやはり「Visual Studio」になるんですね。

安納氏:それはこれまでマイクロソフトの環境でソフトウェア開発を行ってきた企業の皆さんに対して互換性をちゃんと維持するという意味では重要なんですね。

山本氏:ただしオープンソースという文脈ではVisual Studioも様々なプラグインを通してOSSのツールや言語との連携が進んでいます。また、既にOSSとして公開している「Visual Studio Code」はエディターとして利用が進んでいます。例えば、Markdown記法で文章を書く時にプレビューをみながら書けるのですごく便利に使えるんじゃないかと思います。

ーー言語で言えば、C#やC++がマイクロソフトにおける主な開発言語だと思いますが、GitやCI/CDなどのOSSのツールを使った開発プロセスにはどう対応するんですか?

安納氏:そ前述した通り、Visual Studio Team Services(VSTS)が中心となってJenkinsやAnsible、Puppet、ChefといったOSSツールと連携してソフトウェア開発を回すことができます。例えば継続的インテグレーションにおけるパイプラインもVSTSがその機能を果たします。

山本氏:OSS界隈の人からは「VS Codeは良く出来ている」という評価を貰っていますので、エディターとしては評価されているのではないかと思います。

ーー次にSQL Server on Linuxについて教えてください。これはサーバーとしてLinuxを選択した企業でもSQL Serverをそのサーバーの上で動かすことができるということで良いんですか?

山本氏:はい。実際にはSQL Serverはコンテナーの中で実装されていてWindowsのエミュレーションを通じてLinuxのシステムコールを呼んでいるということです。つまりSQL ServerそのものはWindowsのアプリのままで、エミュレーションを通してLinux上で動いていることになります。Bash on Windowsの逆をやっているということですね。それをコンテナーで固めてLinux上で動かすので、中身は実はDLLを呼んでいたりするわけです。実際にはこの技術は7年ほど前に出た論文でもう公表しているんですね、それを今、システムとして実装して発表したわけです。そういう意味では枯れた技術を使っているとも言えます。

他にもSQL Serverの次のバージョンであるvNextではLinuxとWindows Serverでクラスターを組んで可用性を高めることもできますし、SQL Serverをフロントに、後ろにNoSQLのデータベースを置いて一つのクエリーでRDBとNoSQLのデータにリクエストを送るみたいなこともできます。SQL ServerはOSSにおけるデータベースとも共存できるように開発が進んでいます。

ーーSQL Server in Linuxの実装は非常に興味深いですね。昔からマイクロソフトはエミュレーションは得意技ですもんね(笑)。

山本氏:そうですね。マイクロソフトは互換性を非常に重視する会社なので、Win32アプリのEXEとDLLをまとめてUWP(Universal Windows Platform)形式にするようなレガシーのアプリを救うためのツール*も公開しています。エミュレーションという意味では.NETと.NET CoreがありましてWindowsのプラットフォーム向けの開発であれば.NETですが、マルチプラットフォームでの開発を行う場合は.NET Coreです。.NET Coreは完全にOSSとしてGitHubで公開されていますので、ソフトウェア開発においてもマイクロソフトとしてOSSを意識して開発が進んでいることが分かってもらえると思います。

* 参考:https://thinkit.co.jp/article/10821

ーーしかしWeb系などの最先端のところで開発をしているエンジニアからはなかなかマイクロソフトの話は出てこないですね(笑)。

山本氏:そうなんですよね。会社としては製品もOSSで公開したり頑張っているんですが、やっぱり露出が少ないんですかね。個人としてはOSSのコミュニティの中で露出を増やしているんでそれを続けていくしかないかなとは思います。マイクロソフトが開発したOSSは全部GitHubで公開するというのが方針なので、GitHub上では活発に活動をしているのは分かってもらえるはずなんですけどね。ちょっと残念です。

今回はマイクロソフトのDNAであるソフトウェア開発ツールとエンタープライズでの認証の中核となるActive Directoryを中心に話を聞いた。.NET CoreやVS CodeなどOSSとしても注目されるエリアだが、実際はかつてのWin32ベースの開発からの互換性を維持しつつ、最新のプラットフォームや言語に対応するという厳しい枷を自らに課しているという実情が見えたインタビューでもあった。OSSコミュニティに貢献しながらも日本国内ではなかなか認知されないという悩みを抱えるエバンジェリストたちの努力が実ることを祈りたい。

de:code (decode) 2017

日本マイクロソフトの開発者/アーキテクト/IT Pro 向けイベント「de:code 2017」が今年もやって来る。4月末まで早期割引実施中!
イベント公式サイト→ https://www.microsoft.com/ja-jp/events/decode/2017/

(編注:2017年4月13日18時45分更新)山本氏のvNextに関する発言の一部を修正致しました。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

クラウドインタビュー
第5回

マイクロソフトはいつからOSSラブになったのかーOSS関係者座談会

2017/6/30
ここ数年でマイクロソフトに転職したエンジニアが語るOSSに振り切れたマイクロソフトの過去と未来を探る座談会。書けないことのほうが多いのが非常に残念なインタビューであった。
クラウドインタビュー
第4回

コンパイラーが無料じゃないなんて! 新旧エバンジェリストが語る開発ツールにおけるOSSとは

2017/5/10
マイクロソフトのOSS戦略、開発ツール担当のエバンジェリストに聞いたOSSラブなマイクロソフトの本音とは? 無償が当たり前の開発ツールをマイクロソフトはどう考えているのか? を探る。
クラウドインタビュー
第3回

日本マイクロソフトCTOが語る“普通のOSS企業“になったマイクロソフトとは

2017/4/26
マイクロソフトのオープンソースソフトウェアに対する取り組みについてCTOの榊原彰氏にインタビューを行った。深層学習研究の状況、マイクロソフトが抱える課題など率直に語ってくれた。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています