「エバンジェリスト」というと堅そうですが、アニオタです
――最近注目のトピックを教えてください。
私、後天性のアニオタなんですよ。
――アニメ、ご覧になるんですか。
2003年にオタりました。以前はニュース、NHKのドキュメンタリー、洋画くらいしか観なかったんですが、たまたまNHK Eテレで『十二国記』を観て、あ、面白いと思ったのがきっかけです。
同僚に最近アニオタになったんだと言ったら、「『エヴァンゲリオン』を観ないのはどうよ」とか「『攻殻機動隊』は観なきゃねえ」と言われたので、DVDを借りて全部観ました。
村上 守(むらかみ まもる)
1987年NTTへ入社。パケット交換機の設計や制御ソフトウェアの開発に従事の後に、当時NTTグループ初のインターネットサービス(InfoSphere)の立ち上げのためNTTPCコミュニケーションズへ出向し、ISPやeコマースなどの各種サービス基盤システムの開発や構築を担当。
その後はNTTにてNGNなどを担当の後、2007年にNTTコミュニケーションズへ。
以降はクラウドサービスなどの技術開発のリーダーとして、Bizホスティングベーシックをはじめとする各種クラウドサービスの立ち上げを行う。
2015年より技術開発部にてクラウド・エバンジェリストとして活動中。
――『ガンダム』なども遡って観たんですか?
元祖は放映当時に観ていましたが、つまんないと思ってました。ロボット物はあまり好きじゃない。そもそもロボットが空を飛ぶわけがないし、宇宙から降りてきたら大気圏で燃えないわけがないので、嘘っぽいところが嫌ですね。ロボット物なら『装甲騎兵ボトムズ』は納得。あれはロボットが地面を走り回るし、兵器として割り切っていて壊れたら捨てて乗り換えるから。
『魔法少女まどかマギカ』も面白かった。魔法は一線を越えていて、想像すればあり得るから許せます。
と思いつつ、「『ガンダムSEED』は観るべき」と言われて観たら、なるほど面白くて、それ以降の『ガンダム』シリーズはライブで観ています。
入社2年目に新人研修教材を作成、大勢のNTT技術者がこれで学んだ
――コンピュータにはまったのはいつからですか?
中学校のときからアセンブラをやっていました。大学時代には、ソフトハウスでバイトをしていて、TeraTermのようなターミナルエミュレータを作ってばらまいたりしていました。いわゆるPDS(Public Domain Software)というやつです。まだインターネットという言葉も流行っていない頃でしたが、大学ではイーサーネット関連の研究をしていました。卒論は、自分で組み立てたコンピュータでMACアドレスを使ってコンピュータの通信プログラムを書くというテーマでした。
――大学時代からデータ通信に関わっていたんですね。パソコン通信もやっていましたか?
当時チャットが流行っていて、東京に住んでいたにもかかわらず栃木のBBSに入り浸っていたんです。ダイヤルアップ接続なんで1日中電話代がかかって、毎月5万円ほどになっちゃって。払えなくて止められて、バイト代が入ったら払って復活して、また払えなくなって止められて、を繰り返していました。
――もしかしてNTTを志望した理由は……。
ただでデータ通信ができる会社にしようと、NTTに入社したんです。1987年でした。専門分野は交換ということで、川崎電報電話局での1年間の研修を経て、パケット交換サービスを開発する事業部に本配属されました。それ以降ずっとデータ通信に関わっています。
――無事、希望の部署に配属されてほっとしましたね。
それがですねえ。新人研修でソフトウェア演習の内容が簡単、こんな課題では夢がないとアンケートに書いたら、人事部に呼び出されました。「偉そうなコメントを書いているが、自分だったらどうするんだ」と聞かれて、今後は電話だけでなくデータ通信が重要になる。2台のコンピュータをRS-232Cで接続して、1文字ずつ送信・受信する処理を組み合わせてパケット通信を行うプログラミング、みたいな課題がいいんじゃないですかと意見を述べたら、「それもらった。教材を作れ」と言われてしまって。
結局入社2年目にして、その年の新人研修用に教材を作って、さらに研修所にも行きました。その教材はしばらく使われていたので、技術畑のNTT社員の中には研修でその課題をやった人も多いと思います。
FreeBSDを使ってISP基盤システムを開発、きっかけは「予算がない」
――波乱のスタートでしたが、その後、初めてOSSを使ったのはいつですか?
1993年かな。そのころ、NTTもインターネットをやりたいということになったんですが、会社法の関係で、NTTが直接やるわけにはいかなかった。そこで、NTTPCコミュニケーションズでインターネット事業を立ち上げようとなりました。
インターネット事業にはISP基盤システムを開発する必要があります。SunOSを使いたかったんですが、内製なので買ってくるわけにはいかなかった。予算がないんですよ。どうしようと思っていたら、FreeBSDというただで使えるOSを見つけて、よしこれを使おうと。これがOSSを初めて使った事例です。FreeBSDは今でこそ簡単に入れられますが、当時はX Windowのコンパイルに十数時間もかかりましたね。
――そのときにNTTPCコミュニケーションズに出向されたんですか?
そのときはNTTに籍を置きながら、NTTPCコミュニケーションズに技術支援をするという形でした。
インターネットを始めるにあたり、ダイヤルアップ認証のしくみを作らなければならなかったのですが、そもそも黎明期の超初期段階なので製品は存在せず、買ってくることもできない。そこで、RFCドラフト段階でのリファレンスコードでオープンソースだったLivingston RADIUSを研究しました。ただ、クライアントが数台ならともかく、大規模になるとそのままでは使えないんです。なので、ソースコードを読んで、内部でどう処理しているかを勉強しながら、いかに高速に処理するか、スケールさせるかを考えました。リファレンスコードを修正するというより、それをもとに再実装したというところです。
――再実装したコードを開示しなかったのですか?
開示しませんでした。OSSとして開示すると、自分たちでコミュニティを作り、ソースコードを維持管理していかなければならない。でも、当時のNTTPCコミュニケーションズには、それだけの体力がなかったんです。ソフトウェアを作って売ることを生業としているわけではなかったから。もちろん、Livingston RADIUSに限らず、利用したOSSにバグを見つけたら修正用のパッチを用意するといったフィードバックは行っています。
生き残っていくOSSを選定することが大事、その基準は?
――その後、お仕事はどう変わりましたか?
1995年1月にInfoSphereのサービスが開始しました。しかし、関連システムの開発を行うエンジニアがいない。そこでNTTPCコミュニケーションズに出向したんです。Eコマースサイト、VPNサービス、顧客管理サービスなど、多くを内部で開発しました。
当時は革新的・画期的だった国際ローミングシステムの開発も行いました。国内のシステムはSunに移行していましたが、予算のないNTTの海外現地法人はPCベースのシステム。最初はFreeBSDを使っていましたが、時代の流れで増えてきたLinuxもそこで初めて利用しました。
2004年までNTTPCコミュニケーションズに出向した後、3年ほどNTTでNGN(次世代ネットワーク)の技術企画に携わり、その後、2007年にNTTコミュニケーションズに移りました。そこではOCNのVoIPサービスなどの開発を行っていましたが、2008年頃からクラウドが流行り始めました。
――数年ごとに時代の風が吹いてくるようですね。
風はね、自分で見つけて乗るものですよ。NTTコミュニケーションズでクラウドサービスを開発しようとなったとき、利用する仮想化ソフトウェアの候補として挙がったのがXenとKVM(Kernel-based Virtual Machine)でした。私はKVMを推しましたが、私以外は皆Xenを推す。私から見ると、KVMは名前のとおり、カーネルに統合されており、美しいんですね。開発元のQumranetがRed Hatに買収されたこともあり、最終的にKVMを採用しました。
――Red Hatによる買収に意味があったのですか?
Xenの開発元であるXenSourceを買収したCitrixは営利企業で、Xenの商用版を提供しています。そのため、買収された後は、Xenそのものの開発があまり進まなくなりました(注:2013年、CitrixはXenプロジェクトをLinux Foundationに移管しています)。一方、Red HatはKVMをRed Hat Linuxに統合し、サポートを提供するだけ。しかもRed Hatのコミュニティは世界一です。OSSとしてどちらが良いかは一目瞭然ですね。
2010年4月に開始したクラウドサービス、Bizホスティング ベーシックは、KVMの他にもMySQL、PHP、Perlなど、ほぼすべてをOSSを利用して開発しました。OSSを利用するにあたっては、生き残っていくOSSを選定することが大事だと考えています。
――生き残るかどうかの判断基準は?
美しいか、美しくないか。わかりやすいか、わかりやすくないか。コミュニティがアクティブか、アクティブじゃないか。いろいろな基準があると思います。
――「わかりやすい」というのは「シンプル」ということですか?
そう、コンセプトにしろ、コードにしろ、シンプルで、ぱっと見たときにコミットしようと思うくらいに単純明快なわかりやすさがないとだめですね。
あとは、パッチやメジャー/マイナーバージョンのリリースの頻度とか、コミュニティで発言している人数とかがどれだけ多いかも結構重要だと思う。
ドキュメントを直すだけでもいい、貢献したという経験が大切
――最近話題のOpenStackについてはどう思われますか。御社は、2015年10月のOpenStack Summit TokyoでOpenStack Superuser Awardを受賞されています。
OpenStackは、もともと筋が良いソフトウェアだと思います。でも完全な製品ではなく、材料なんですよ。電子レンジでチンすればよいくらいの状態ですが、そのまま使ってもだめです。
――OpenStackをはじめ、OSSをうまく利用するには何が必要でしょうか。
その技術を知ってください。必要に応じてソースコードを読めなきゃだめです。利用するけど中身を知りませんと言うなら、プロプライエタリ製品で済むでしょう。 あと、ソースコードを書いてください。今、付加価値を生み出せるのはソフトウェアだけです。ソースコードを書いたことがなければ、人に書かせることはできない。仕入れたソフトウェアの目利きもできないし、ソフトウェアを作る営みを管理すること、すなわちプロジェクトマネジメントも当然できない。
ソースコードを書くことを本業とする必要はないんです。でも、書いた経験がないと、その価値も見定められないし、問題が何かを見極められない。
――若手の方にはどのようにアドバイスしていますか。
とにかくコードを書けと言っています。1万行のプログラムではなく、たった20行でいいんです。
たとえば、メールアドレスの「@」の前と後ろを分離するプログラム。普通は20行くらい、上手い人なら10行、超上手い人なら1行で書けます。でも、新人は100行くらいの冗長なコードを書いてもってくる。ロジックに間違いがなく、アルゴリズムがOKなら、どんなに長くてもまずはコードを商用環境で動かしてみせます。自分が書いたコードをお客様に提供してお金が生まれることを理解してもらいたいから。そのうえで、普通は20行くらいで書けるよ、ここが冗長だねと指摘すると、ひぇーっと落ち込む。でも一度作り方がわかればパズルみたいなものだから、ここがだめと教えるとどんどん上手くなっていきます。コードを書いてものを作る楽しさ、喜びがわかれば、すごく伸びる。
書けない人もいます。それなら、開発企画やスケジュール管理など、ソフトウェア開発のいろいろなプロセスを担当すればよい。書けないからといって否定はしません。
――コミュニティとはどのように付き合えばよいでしょうか。
利用する立場としては、OSSそのものの開発に携わらなくても、バグを見つけたらパッチを提供する、イベントに参加する、コミュニティのキーマンとやりとりするなど、いろいろな貢献の仕方があると思います。NTTグループでは、勉強会を開いたり、グループ内での意見をとりまとめて発表したりといったことも行っています。そういった活動への参加は積極的に後押ししています。
世の中は、インプット、プロセス、アウトプットで成り立っています。インプットを処理し、価値を付加してアウトプットすれば、それを誰かが受け取ってくれる。その成果、貢献が世の中を動かしていると感じられれば人間は伸びるし、それが恒常的に起こるようにするには会社や組織がサポートするべきです。何かを変えたい、夢を具現化したいと考えるなら、コミュニティ活動を通してやればいいし、実際にそれが可能です。貢献がコミットされれば、ずっと記録に残ります。ドキュメントのバグを直すだけでもいい。大小に関係なく、貢献したという経験が大切です。
* * *
アニメについて、そしてOSSについて語る内容からは、村上氏の深くて強いこだわりが感じられます。長年、熱意とこだわりをもってOSSを利用してきた技術・経験があるからこそ、「OSSを知ろう」「ソースコードを書こう」「コミュニティに貢献しよう」との村上氏の言葉は、OSSを活用しようと考えている企業の重要な指標となり得るのではないでしょうか。