Linux導入事例 (4)
クボタシステム開発
Linuxプラットフォームを軸に
システム構築とサービス提供に果敢に取り組む
クボタシステム開発株式会社(以下クボタシステム)は、株式会社クボタの情報システム部門が独立してできたシステム・インテグレータである。同社はこれまで、多くのSI案件やホスティングサービスにLinuxを積極的に採用してきた。そのポリシーには、Linuxだからこそ信頼性の高いシステムやサービスが提供できるという信念がある。今回は、クボタシステム開発の取り組みから、なぜLinuxを採用するのかというテーマを追求してみる。
Linuxプラットフォームを中心に
サービス展開
クボタシステムは、この12月から「@Serverサービス」とネーミングされたASPサービスをスタートした。これは、従来のようにあらかじめ用意されているアプリケーションの利用をユーザーにASPで提供するものではなく、顧客に合わせてカスタムアプリケーションを作成して、ASPの形態で提供しようというものだ。
ビジネスシステムセンター ITチーム 課長代理 日原偉氏 |
このような形態でASPサービスを提供する理由について、クボタシステム ビジネスシステムセンター ITチーム 課長代理 日原偉氏は「ホスティングやASPは、やはり圧倒的にキャリアが強い分野。だが、彼らはSIerではありません。われわれの強みはSIができることです。このSIerの強みを生かして、われわれにしかできないサービスを提供したいのです」と語る。
この@Serverサービスのプラットフォームには、基本的にLinuxを採用している。同社は、以前から顧客が自分のドメインでメールサーバやWebサーバを持つことができるホスティングサービスも提供してきたが、このプラットフォームにもLinuxを採用している。このホスティングサービスは12月でサービスラインナップが変更され、現在「vServerサービス」「rServerサービス」として提供されている(サービス内容は後述)。同社はこれらのホスティングサービスと@Serverサービスを合わせて「Intelligent Network Gadget Site(INGsite)」というネーミングでサービスを提供中だ。これらのサービス内容は同社のホームページに詳しく紹介されているが、プラットフォームがLinuxだとは明記されていない。必ずしもLinuxプラットフォームでのサービスしか提供しないわけではないというのがその理由だが、顧客に対してはLinuxを採用していることを前向きに説明している。
高度なスキルがLinux採用の
メリットを最大限に高める
さて、上記のINGsiteに限らず、ユーザーにLinuxの採用を説明するとシステムの信頼性やスケーラビリティの面で心配の声が出るという。こういった質問を持つユーザーに対して日原氏は「Linuxなら逆に安心です」と回答することにしている。その理由を「メーカー製のOSを採用すると何らかのトラブルや疑問にぶつかったときに、“それは仕様です”とか“米国に問い合わせます”といわれます。つまり、まともな回答が得られたことがありません。しかし、Linuxは問い合わせるところがありません。だからすべてわれわれが責任を持ちます」と説明しているという。
INGsiteの紹介ページ(http://www.kubota.ne.jp/index.html)。クボタシステムのもう1つの重要なポリシーはすべてを内部で作るということだ。エンジニアのスキルが向上するだけでなく、それによって、システムの細部までを把握することができ、信頼性の向上につながる |
問題のたらい回しがなく、全部自分たちで解決するという力強い言葉にユーザーは納得するというのだ。しかし、問題のすべてを自分たちで解決するには非常に高いスキルが必要になる。「カーネルのチューニングやバグの修正はすべてわれわれ自身でやっています」(日原氏)。Linuxはソースコードを隅々まで読むことができる。それらを理解し、かつ自分たちにそのソースコードに手を加えることのできるスキルがあるなら、ブラックボックスの部分が多いメーカー製のOSを採用するよりも確実というわけだ。
次に、PCサーバでは将来の拡張性に不安があるといわれた場合は、PCサーバでも複数台で負荷分散を行えば問題ないと説明するという。「データベースの分散は、Linux版のOracleを採用します。さらに、OS(Linux)に負荷分散を任せるのではなく、アプリケーションサーバの入り口でロードバランサーを使い、ハードウェア的に負荷分散を行う」(日原氏)という説明をすることで、たいていのユーザーは納得してくれるという。このような説明の上でも納得してもらえない場合のみ「ではSolarisでいきましょう」という結論に持っていくことにしている。
隅々まで知り尽くすポリシーが
信頼性を支える
日原氏は、Linuxのカーネルバージョンには、枯れていて安定したものを採用するのは当然、ディストリビューションの選定にも十分な注意を払っている。「導入前の評価を重要視しています。さらに、カーネルは安定版といわれているものしか使わないし、バグトラッキングを必ず行います。パッチは必ずあてますし、自分たちで見つけたバグは必ず修正します。とにかく、Linuxの情報に関して常にアンテナを張っているのが最大のポイント」(日原氏)。
さらに、必要な部分には積極的に手を入れている。インターネットサーバの場合は、膨大なユーザーからのアクセス負荷が問題となるため、共有メモリやプロセステーブルのサイズは必ずチューニングしている。例えば、プロセステーブルを大きくすれば、POPサーバにアクセスが集中することでプロセス数の制限を超えメールが取り出せない事態は避けられる。
また、データベースサーバの場合は、データベース用の共有メモリのサイズを広げるなどの工夫をしている。さらには、ftpの信頼性を上げるためにエラー処理に手を加えていたり、そのほかにはApacheにも手を加えているという。
システム構築ではノウハウの蓄積をウリにしている。例えばある案件でのPostgreSQLを使った3層のWebシステムでは、PerlやPHPを使っていない。PostgreSQLにはCのライブラリを呼び出せるLigPQがあるが、これを使うとPHPを使うよりも格段にパフォーマンスがよく、体感的にはOracleより速い。そのためCで書いている。通常、1からCで書くのは時間がかかるが、これまでの開発で蓄積したライブラリをうまく活用しているため、短期間での開発が可能になっているという。「例えば画面から入ってくる16進コードをエンコードする機能をライブラリ化しています。LibPQのコーリングシーケンスを文書でまとめているので、生産効率は落ちません」(日原氏)。ノウハウの蓄積はかなりのもので「もしかすると、データベースを使った業務アプリケーションという範囲で考えると、Perlに引けを取らない水準までライブラリがそろってきていると思います」と日原氏は語る。ここまでライブラリを蓄積できた背景には、あらゆる案件が終了すると、日原氏が中心となって整理してライブラリ化を行ってきたという努力がある。
技術は人に蓄積される
「Linuxで自信を持ってお客様に提供できるシステムを構築するには、スキルが必要です。ですが、いつの間にかできるようになっていましたね」(日原氏)
日原氏がまとめる部隊は、開発と運用を含めて10名弱の少数精鋭である。小人数の方が全体をコントロールしやすく、うまくいくのだという。もちろん、小人数で開発ができている理由に、個々人のスキルが非常に高いという点もある。「個々人のスキルと、いままでの資産が重要です。ノウハウは外に汎用化して出すこともできないし、ドキュメントにもなりにくいところ」(日原氏)
同氏がここまでLinuxにこだわる理由は一言で「安い」からだという。FreeBSDでもよかったのだが、ずっとLinuxを使いたい理由は「慣れてしまったから」だという。「一番苦労したのはWindows NT自身のメモリリークの問題。あれは本当に苦労したし、結局解決できなかった。Linuxであれば全部自分たちで問題が解説できます」(日原氏)
全部自分たちでできるLinuxだからこそ、コツコツとノウハウを蓄積することはさらに重要だ。「ディストリビューションにredhat系を使っています。ディストリビューション間では、やはり安定性が違う。ディレクトリ構成が違ったりするものもあって、そういった違いに工数をかけたくありません」(日原氏)
クボタシステムはISO9001を取得している。「こういった信頼性も売りにしたい」(日原氏)。信頼性をウリにするという意味では、SIerとしは珍しくSLA(Service Level Agreement)契約を実現している。これも、全部自分たちで解決できる自信とノウハウがなければできないことだ。
新しい分野への取り組みも怠っていない。IA-64の評価、メインフレームでのLinuxの運用。さらに、運用部隊ではNICから日本語ドメイン対応のDNSモジュールの評価版をダウンロードし、すでに評価実験を開始している。
◆
筆者は以前、あるコンピュータメーカーに取材したとき、ある技術者から「オープンソースのよいところは、皆が同じ土俵に上がれること」という意見を聞いたことがある。皆で同じ技術を共有することで初めて、本当の意味での技術力の差というものが表に出てくる。それによって、SIerや技術者個人への正当な評価が実現する。さらに、ひいてはそれがITに対する全体的なスキルの向上にもつながる、と考えられないだろうか。
■クボタシステムLinux採用事例 前述したINGsiteには、「vServer」「rServer」「@Server」という3つのサービスラインナップがある。 vServerサービス rServerサービス
このコンフィグレータはrServerに限らず、すべてのサービスで採用されている。 @Serverサービス このサービスが対象とする業種は、製造業が中心になるという。「われわれが一番ノウハウを持っている分野は、やはりクボタの宿命として製造業。数々のシステム構築のノウハウがあるので、業務のコンサルティングから行うことができる」(日原氏)。特に、同社はWeb上でのPDFを使った帳票実現にノウハウの蓄積がある。「例えば、不動産のお部屋紹介のような、中身の絵だけを入れ替えればよいフォーマルなシステムの開発はすぐにできる」(日原氏) クボタシステムは、実はJavaにおいてもかなりのノウハウの蓄積を行っている。「ある企業の基幹システムをJava Beansで構築した実績を持ち、このBeansの数は日本屈指だと思う」(日原氏)。それらのBeansは汎用的に作られているので「Tomcatでも、さほど開発効率が悪いわけではない。ソフトウェア部品の再利用で、本来3カ月かかったシステム構築のリードタイムを1カ月に短縮するといったことを実現し、顧客満足度を上げて競争力にする」(日原氏)。 顧客ごとのシステム構築は、後にノウハウになる。業務ノウハウは守秘義務があるのでほかの顧客に横展開できないが、ソースの流用はできる。もともとソフトウェアの部品化をポリシーに開発を行うので、流用が現実的なものとなるわけだ。本来のシステム構築ほど顧客から多くの開発費はとれないが、1つの開発経験が会社の資産として蓄積されるという大きなメリットがあり、経験を積み重ねるほどシステム開発のリードタイムが短縮でき、開発コストも小さくなる。また、顧客としては、本来よりも安価な価格で自社用のシステムが実現し、さらには運用も任せることができるというメリットがある。 現在はrServerが主力だが、将来的には@Serverを主力にしたいとしている。また、@ServerにはオプションとしてEasyEDIが用意されており、これは大規模なEDIまでいかなくても、Excelのシートを使って見積もりをやり取りしたいケースなどに適用できるものだ。その他にはオンラインショッピングを容易に構築できる「ショッピングシステム」、Web環境で帳票を実現する「プリントオプション」などがあらかじめ用意されている。 こうしたオプションの用意もそうだが、案件ごとに蓄積されるノウハウをベースに、システムテンプレートのようなものをつくっていきたいと日原氏は考えている。「お客様は白紙の状態で自分たちの欲しい仕様はわからないのですが、ある程度土台があると、それに対して"それは違う""こういうものが欲しい"ということができるものなのです。そして、そうして出来上がったものはお客様にとって満足度が高いのです」「そうしたシステムテンプレートをいくつか用意して、お客様のシステムをたとえば1週間という短期間で実現できるようにしてみたい」(日原氏) この@Serverの背景には「開発スタイルを変えてみたいという夢があります。」と日原氏は語る。「たとえば自動車業界では、研究所、本社、工場、ディーラーと完全に分業制になっています。ですが、ソフトウェアの世界はそうはなっていません。工場や営業所の区別のないゴミ箱のような状態です。ですから、ソフトウェアの世界でも完全分業制を実現したいのです」。 開発がWeb中心の時代になりつつある今、世間ではコンサルティング、営業、設計、プログラミング、運営全てに造詣が深いプロデューサーが求められている。しかし日原氏は、他の業界では分業されているのに、ソフトの世界は全部一人でできなければならないというのはおかしいというのだ。ソフトウェアの部品化を進め、既存の部品を使ってユーザーに対して営業する。そんなかたちでシステムを提供できるようになれば「ある程度の知識をもつ自動車ディーラーの営業マンがお客様を説得できるように、ソフトの世界でもプロデューサーは全部を深く知らなくてもお客様が満足できるシステムの提案ができるはずです」(日原氏)という。 「そういう世間をあっと言わせるようなプロデューサーを輩出したい。そのための土壌を我々が提供したいと思っています」(日原氏) |
「Linux導入事例集」 |
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|