あー、冬ですね。11月の3連休いかがお過ごしでしょうか。最近は焼き芋駆動開発のAkira Tsumuraです。
『なれる!SE 12巻』買ってきました。流石に11巻の企業買収ネタは重すぎて読めませんでしたが、それでも特定派遣ネタが出な…出てましたね。
(個人的にはJuniper SRX出してあげて…ScreenOSもいいコだけど…。)

なれる!SE12 アーリー?リタイアメント<なれる!SE> (電撃文庫)
夏海 公司
KADOKAWA / アスキー・メディアワークス
2014-12-20



OSSなソフトウェアについてコミュニティへの問い合わせ方、教えます。

さて、この世の中、GPLに始まりMIT、BSD/修正BSD、Apacheなどなど数々のライセンスがありますが、総称して「オープンソースソフトウェア」(以下OSS)に支えられています。
例えば僕が普段使っているMacOSXやiOSも中身はFreeBSDですし、バックアップ先のBuffalo LinkStationも中身はDebian系組み込みLinuxとOSSのミドルウェアで実装されています。そういえば某プリンタのファームウェアもDebianですね。AndroidもLinuxベースのOSです。
そして、現在のウェブページのほとんどはLinux/FreeBSD上のApacheやnginxをミドルウェアとして、PHP/Perl/MySQL/MariaDB/Postgresqlといった、所謂「LAMP」で提供されており、その上でWordPressといったLAMP CMSが稼働しています。(もちろんRuby on Railsやbashで実装されたサイトもありますよ!)
また、ウェブサイトを配信するインフラでも、Juniperのルータ・スイッチのOS「junos」やCitrixのロードバランサ「NetScheler」にはFreeBSDが、F5 BIG-IPシリーズはLinuxベースの独自OSが動いています。
VoIP(IPフォン)の世界でも、今や殆どのアプライアンス製品がLinuxとAsteriskというOSSで動いています。
ね、OSS無しには今の世の中語れないでしょ?(笑

さて、OSSの良い所は以下のような感じだと思っています。

  • 無償で自由に使う事ができる。
  • ほとんどのものは一般的なPC(IA-32、EMT64)でも動作する為、(英語力と開発力があれば)すぐにトライできる。
  • 誰でも自由に改変し、その修正を投稿(gitで言うPullReqest)する事ができる。
  • そのソフトウェアを使って利益を出す事が認められている。

その一方で、サポートに関して言うと、「自己責任」の一言に尽きます。

誰でも、自由に、無償で、商用でも使うことはできますが、その一方ソースコードが完全に公開されている以上、最後は「ソース読め」の一言しか帰ってこないものと思ってください。

有償サポートという手段

さて、OSSは一般的にコミュニティで開発されている事が前提となっています。
また、Linux KernelやOpenStack、日本で言うところのSoftEtherVPNや教育機関向けCMS NetCommons等、特定の企業や団体が成果物をソースコードレベルで公開している場合もあります。
例えば、Hewlett-PackardのRAIDコントローラ「SmartArrayシリーズ」は、かつてccissドライバとしてOSSで開発されていましたが、これも企業がデベロップした結果をOSSにした一つの例と入れるでしょう。
(個人的に、Solarisライクなデバイス名が大好きでした…。)

もし有償サポートが存在しない、もしくは購入していない場合、自力で解決するか、そのソリューションを破棄するか、コミュニティに問い合わせる事となります。

OSSの有償サポートでは、例えばMicrosoftAzure上ではOpenLogic社の有償サポートを得る事ができます。また、AWS上ではRHELの他Vyatta等有償サポートを得られるAMIを使用する事でサポートを得られます。
しかし、有償サポートとはいえど、ライセンスの購入形態によっては英語でのみ、もしくはサポートレベルが限られたサポートが提供されている場合があるので、注意が必要です。
もしくは、OSSの有償サポートを独自に展開するサービスを別途購入する場合もあります。

コミュニティは忙しい。マジ忙しい。

前置きが長くなりましたが、OSSコミュニティに問い合わせる例をご紹介しましょう。

コミュニティ運営は、有償サポートを提供する側やデベロッパーからすると、かなりロープライオリティのタスクになります。
理由は簡単、コミュニティ活動だけでは食べていくことができないからです。
営利で関わっているメンバーはさておき、それ以外は基本的に趣味で関わっているメンバーです。彼らはとても気まぐれか、余程の事が無いと熱心にはサポートしません。

仮に、フォーラムやMLで自分の質問にレスが付かなかったとしても、文句を言わないでください。
それは恐らく「無視された」のではなく、おおよその場合は「書き込む内容がマズかった」場合が多いです。

まずはぐぐる。3度と言わず5度ぐぐる。

さて、そうなるとまずやるべきは過去の質問を検索する事です。
過去のナレッジについて、更にフォローアップの質問をする事はとても良い事です。

ここで、1つ例を挙げましょう。

2014-11-24

先日、手持ちのノートPC(ThinkPad X40)にFreeBSD10.0Rをインストールしようとした時の事。
上記の写真は解決後ですが、赤枠のところでフリーズする現象が発生しました。
結果として、FreeBSDの英語メーリングリストに答えはあり、「FreeBSD9.0Rにアップグレードしたら起動しなくなった。(意訳)」、つまりこの機種は9.0R以降ではサポートされなくなっており、8.4Rをインストールする事で無事に起動しました。
もしこれが無ければ、チップセットレベルでサポート状況を確認していたでしょう…。
このように、まずはぐぐったり、フォーラムやMLを検索する事をオススメします。

また、OpenSUSEのように日本ではマイナーでも海外ではメジャーな例もありますので、日本語だけではなく英語でも検索します。google翻訳が技術系に強いので、試してみてください。
過去ログが検索できない場合(Linux-HA Japanなど)もありますので、普段から関連するメーリングリストを購読しておく事をオススメします。そうすると、後でメーラで検索をかける事ができます。

コミュニティに問い合わせよう

さて、コミュニティ、もしくは「ユーザ会」(Users Group)などでは、デベロッパーとユーザがライトに交流しています。
オフ会(最近はmeet-upとも言う)でダベッてる時に問題解決している時もあるので、よかったら顔を出してみてください。

さて、コミュニティ側から観ていて、特によくある問い合わせはこんな感じです。

  • XXXを使っていて(バージョン不明)、こうなったのですが(環境・手順不明)、どうしたら良いのでしょうか(目的不明)。
  • 実際に稼働している環境の再現方法がわからない。
  • こちらで再現しようにも、Configや実稼働のURLが貼られていない、もしくはフェイク。

このような問い合わせが8割を占めます。
この場合、内容の確認や憶測を元にした回答などで、2度手間・3度手間になりがちです。

例えばWebCMSの場合、以下のように内容を整理して送信してくれるだけで、かなり助かります。


  • 使用バージョン
    MODX Evolution 10.0.14-r5
  • 稼働環境
    ロリポップ ロリポプラン
    稼働中サイト:http://demosite.mikalab.info/ (独自ドメイン)
  • やろうとしている事
    デモサイトのブログサンプルを移植中に、DBのバージョンアップを行っていた。
  • 今起こっている問題
    エラーメッセージが表示され、管理画面にすらアクセスできなくなった。
    (以下再現方法とエラーメッセージ)
  • 最終的な目標
    ロリポップ上の独自ドメインで、サンプルサイトにあるようなMODXでブログを作りたい。

特に、実稼働しているURLについては貴重な情報になるので、是非お送り下さい。
もし不安である場合は、後述するメールフォームからお問い合わせ下さいませ。
(中の人が確認の為アクセスしますが、悪用はしません。。。)

また、もしサイトを観られたくない場合(NDAに抵触するなど…)でも、MODXデモサイトで環境を作って引き渡す事が可能です。
(URLはランダムなもの、尚且つID/PASSWORDは統一の個別の環境が、72時間利用可能です。)

また、明らかに業務であっても個人名で問い合わせる方も多々いらっしゃいます。
決して恥ずかしいことではありませんので、堂々とco.jpドメインでメールくださいませ。
(実は、MODXは上場企業から個人サイト、ナイト産業まで幅広ーく深ーく活躍しています。>ω<b)

さて、実はロリポップさんに関しては以前から特有のクセがあり、何度か同じことをご案内しています。
以下のような内容をご案内する事が多いです。

  • MySQLのバージョンアップと共に、DBサーバが変わる。
    その際、config.inc.phpを手で修正する必要がある。
  • コントロールパネルよりWAF(Web Application Filter)を無効にする必要がある。

MODX Japanでは時間がかかってもなるべく返答するようにしていますので、解決した際は解決しましたメールを頂けると嬉しいです。
(じゃないと、『あの案件どーなりましたっけ?』と、後で身内チャットで問い合わせる事に…)

MODX Japanのサポート体制

MODX Japanは、以下の3つの方法でサポート受け付けています。

実質、3人程度でサポートを行っているのでなかなかパフォーマンスは出ませんが、実は日本人のグローバルコミッターやアンバサダーへ直接エスカレーションする事が出来るようにしています。
また、動作確認については『MicrosoftAzure』に始まり、『AmazonWebServices』や『さくらのサーバ』『ロリポップ』など、各ホスティングベンダーで随時テストをしています。

MODX Japanは少人数でコミュニティのコアを回すインフラ的なスタイルを取っています。
賛否両論あるかも知れませんが、今のところこれが上手く行っています。
特に、過去にセキュリティインシデントが発生した際に、小回が効く対応が出来た事が大きいと思います。
おそらく大規模なコミュニティだと、情報の扱いなどもとても難しくなっていたでしょう。

さいごに

製品や有償サポートを購入している場合を除いて、オープンソース・ソフトウェアの世界には「お客様」は居ません。
そのソフトウェアに関わる全員がユーザで、全員がデベロッパーです。
しかし、どうしても助けを求めなければならない時はあります。その時には、人として礼をわきまえた上で是非質問しちゃってください。

一つ、小話を。
僕の友人に、小学生の頃村井純教授に「何故TCPにはIPが付いて、UDPにはIPが付かないのか」と質問した人が居ます。
そうですよね、純粋に「TCP/IP」とはいうけど「UDP/IP」とは言わないので、確かに、と。
村井教授を知っている人からすると、「何を大それたことを......」と思ってしまいます。JUNETを作った『日本のインターネットの父』ですものね。
しかし、彼はとても貴重なチャンスを手にしています。
彼の事は中学時代から知ってますが、その後SFCで村井教授の生徒を経て、今はあるベンチャーのCTOとして活躍しています。

繰り返しますが、質問する事は恥でも何でもないのです。
無知を恐れず、堂々と質問しちゃってください。><b