ベンダーロックイン排除のためにオープンという議論
自治体などの入札においてベンダーロックインを避けるため、特定のベンダーや技術に縛られないようにする。最近、このような方針を掲げる自治体や団体も出始めている。
これ自体は良い方針だが、ここで考えなければならないのが、何をもってオープンとするかである。
Web系であれば、利用者の多いLinuxのディストリビューションにApacheとMySQL、それにPHPやJavaのフレームワークを使うということになるのだろうか。ここのApacheはnginxでも良いし、MySQLはPostgreSQLでも良い。フレームワークもあくまでも例なので正直オープンであればなんでも構わない。
だが、この「なんでも構わない」の部分を明確にしておかないと、実際に調達を行う場合、入札仕様書(RFP: Request For Proposal)が書けないので、どっかでオープンの定義を明確にしないといけない。
その定義の難しさもさることながら、どこまでドグマチックにオープンを追求するべきかはさらに悩ましい。
例えば、IaaSを使うことを想定している場合、各クラウドベンダーが提供する独自サービスを一切使わないということは果たして現実的であろうか。そのクラウドベンダーがマイナーであるならともかく、AWSをAWSの良いところを用いないのは開発効率やコストの面でも本末転倒だろう。また、開発内容によっては、IaaSにこだわらないほうが良い場合もあろう。GAE(Google AppEngine)やMicrosoft Azureをベンダーロックインになるからと言って、選択肢から外すのが得策とは思えない。もっと言うと、オープンソースではないが、ここまで普及しているWindowsを排除するのもどうだろう。いたずらにオープンの追求にこだわるとピューリタニズムに陥りかねない。
ベンダーロックインを排除するという場合、結局はどこまで潔癖にオープンにこだわるかということと、そのベンダーや開発元のオープネスを信じられるかというところになるのであろう。
せっかく、自治体などでの入札においてオープンが意識されるようになったときに水を指すようであったら申し訳ないが、ベンダーロックイン排除という言葉がひとり歩きせず、意味ある形でオープンでサステイナブルなシステムの開発要件を考えられるようになることを願う。
年末に某システムの要件を見たときに、ちょっと行き過ぎではないかと思ったことからの雑感。
[更新:2015/01/05 8:06]Facebookにて、オープン性よりもポータビリティを主眼に置いた方が良いんじゃないかとかインターオペラビリティをどの層でやるのかが問題だろうというコメントをもらった。なるほど。