LinuxCon2010/10+ Years of Linux at IBM

10+ Years of Linux at IBM
Dan Frye, IBM Vice President, Open Systems Development and Linux Foundation Board Member

IBMLinuxに取り組んだ10年をふりかえる

当初、Linuxエンタープライズのエッジで使われていた
今ではミッションクリティカルなコアでも使われている。
IBMでも日本の銀行などでシステムを組んだりして、主要プロダクト,システムであたりまえのように使われている。

1999年にIBMLinuxの組織を作った。
そこから10年、多くの失敗をした。
本にするとすごい量になるだろう。

Linuxはグローバルなビジネスのツールとしても機能しだした。
今では欠かせないものだ。

ここでは、IBMLinuxビジネスの10年をふりかえる。

1998年、インターネットブーム

コミュニティの存在がこれまでにないものになってきた。
たとえば、ファイルシステムの開発者が世界各地で改善を続けていた。
真の意味での「イノベーション」がOSSで起こっていて、革新の速度が変わった。
コミュニティがビジネスにおけるゲームを変える原動力であると考え始めた。

1998年9月、小さなチームのリーダーだった。
Linuxが将来のプラットフォームとして注目されていた。
当時はばかげた考えといわれるぐらい、誤解が多かった。
当時の上司に、Linuxとは何なのか、誰がコントロールしているのか、を説明する必要があった。
Linuxは90日間でIBMで「戦略」として採用された。
お客様の中でも使われるようになった。
IBMよりも先に、お客様がLinuxを知るようになった。

  • 当時の疑問点として挙げられた項目
    • 持続性があるのか?
    • コミュニティの人たちが飽きないのか?
    • コントロールは誰がするのか?
      • IBMはコントロールが大好きな会社でした。
      • 結果的に品質をコントロールは不可能だ。
      • しかし、この問題は質問自体が間違っていた。
    • GPL
      • IBMは長期間、GPLについて研究した。
      • 結論として、IBMOSSライセンスと共存することを選んだ

1999年:IBM gets started

  • 1999年3月、LinuxWorldに参加
  • 1999年後半にはLinuxコミュニティへの貢献(contribution)をはじめた。
  • Linuxテクノロジーセンターを設立

OSSのコミュニティはひとつではない。
リーダーシップ、やり方も違う。
カーネルの中でも、メモリマネジメントなど、機能が違うと違うと知った。

次に、教育について考えた
ミスしたことが受け入れられた。

  • 1999年9月に、IBMの戦略がより真剣な方向に向いた

お客様の要望は、想像したよりも大きかった。
もっと投資が必要、よりリソースをさくことが必要だった。
お客様からの信頼も得られてきた。

2000年 Linuxに参入し、お客様からの信頼も得られてきた。

カーネルへのコントリビュートを始めた。
最初はカーネルから離れて別のコミュニティに貢献していた。
Andrew Mortonにも、カーネルへの貢献が遅いと指摘を受けていた。

「本格化」から「加速」に方針転換

IBMの基調講演のなかで、10億ドルの投資を発表。
コントロールではなく、貢献であると明確に方針を示した。


IBMの主要な部門にはLinuxのチームが作られて、
Linuxのビジネスができるようにした。
マーケティング部門もそう。
 

Lesson Learned #1 : Develop in the Open
  • ジャーナルFS

最初、うまくいかなかった。
完成した後でソースを出した。
IBMのファイヤウォール内で作ってから公開というパターン
カーネルコミュニティの反応は、面白い
コミュニティは、インクリメンタルに作り上げていく。
初期で発表して、みんなで作っていかなければならない

  • スケーラビリティ

複数のCPUで動かすための対応
メーリングリストでの議論を進めていく中で、いろいろと違和感があった。
このことについて考えたとき、やり方が間違っていた

社内でのコミュニケーションを禁止した。
コミュニティ向けのE-mailのみでやり取りするようにした。

LinuxではSMPではうまくいかないとLinusも言っていた。
参加の仕方がわるかった。
これをしっかりと見ていけば、問題は解決していく。

    • 早めに目標を設定して
    • 参加して
    • インクリメンタルに
    • 個人として参加し、迅速にフィードバックを反映していく。

2003年 カーネル2.6の開発に参画。

 エンタープライズのエッジから、ミッションクリティカルな分野、Webアプリケーションなど、主要製品に入り込むことができると考えていた。

  この時点では、IBMLinuxについていけてなかった。
  開発コミュニティが先を行っていた。

  さらなる投資を決断、CEO、CTOに説明、
  Fortune500企業にもLinuxが有用であることを説明していった。
  いずれ、Linuxが世界の標準になることを推進
  そのことで、信頼を勝ち得た。



Lesson Learned #2 : Don't reinvent the penguin

ここで学んだのは、十分広い分野をサポートしていたと考えいたのは間違いだった。
コミュニティに貢献する中で、分野は広がっている。
IBMがサポートしていたアーキテクチャ、分野も、公開してみると、他のシステムにも広がっていくことを知った。

  • スケジューラの改善

IBMの社員のコードがコミュニティで拒否されたが、
そこから提案のより改善されたコードが、コミュニティで作られた。
誰が作ったということは重要ではない。
結果にこだわるのであれば、コミュニティ全体の成果を考えることが重要であることを学んだ。

OSSディベロッパのマネジメントは時間がかかるが、個人、企業にとっても意味があることになる。

これは、コミュニティに参加することで得られるメリットである。

新しいプロジェクトを作るのではなくて、すでに活動を続けているコミュニティに参加し、そこで一緒により良いものを作るのが、最も効率的に成果を得られる。

経験のあるプログラマに手伝ってもらうには、参加しないといけない。


企業の開発者、経営者にアドバイスしたいのは、
「コミュニティへの参画が、最も効率が良い」と伝えたい。


2004年〜2005年

Linuxは特別プロジェクトとして開発するチームでした。

”Emerging Business Opportunity”

→重点的分野として、特別に短期的に投資するチームとなった。



Lesson Learned #3 : Work with the process

Linuxは責任者ではない。
影響力を持っているが、意思決定の責任は無い。
社長ではなく、裁判所のような立場が近いだろう。

会社として効果を得るには、コミュニティで信頼を得ることが必要だ。
コミュニティで信頼された開発者が、コミュニティの中で「議論」をしていかなければならない。
ハードウェアのサポートなど、コミュニティの中で仕事をしなければ取り入れられない。


ほとんどのこと(ロードマップなど)は予想ができるものである。
コントロールはされていないが、コミュニティの向かう方向は読めてくる。
IBMもコミュニティの進み方に慣れてきた。
ハードウェアのチームも心配しなくなった。
だいたいはきちんと対応できることがわかってきた。

ハードウェアはかなり早い段階でサポートしなければならない。
それで初めてpatchが受け入れられ、Linuxのベストのサポートが受け入れられるようになる。


2006-2007

  • Linuxは主要なプロダクトとなった。

メインストリームとして、退屈なぐらい仕事が続いてきた。
現在は、プラットフォームとして大きな信頼が得られている。
IBMの収益の柱になっている。
多くの顧客、業界で使われている。
市場規模とか、もうLinuxのサーバーが何台あるとかは数えなくなった。
増えすぎて数えても意味がない。

  • KVMが重要な役割を示す

ハイパーバイザーとしてカーネルを動かす。
KVMがアップストリームに入ってから、
セキュリティ、パフォーマンスなど、驚くべきスピードで進化を続けている。

まとめ

  • 早い段階で持ち込むこと
    • その後、議論を続けること。
    • 投げただけで終わらない。
    • デバイスドライバが、リリースごとに保持されることに、最低限でもサポートを続けなければならない。
  • OSS技術者のマネジメントは必要
  • コミュニティに影響を与えることができる。
    • 開発者がコミュニティで信頼を得ていれば、そういう人材は簡単に置き換えられない。
    • コミュニティの人間関係が大切
  • 持続性を持つ
    • 時間がかかる仕事です。