Microsoft MVP for Windows Server System
カブドットコム証券
システム統括情報技術課課長代理
谷口 有近氏

著者紹介
 1977年生まれ。2000年東海大学教養学部卒業。同年某ソフトハウスに入社し,コミュニティの形成を目的としたWebアプリケーション・システムのリッチ・クライアント環境の開発に従事。2001年5月カブドットコム証券に入社し現在に至る。Windows Server Systemの構築・設計・運用を中心に,ネットワークの運用や顧客問い合わせ,調査などに忙しい毎日を送る。趣味はドライブとアカペラ・バンドで,渋谷近辺でライブ活動も。
 

 私が勤務するカブドットコム証券は,窓口用の店舗を持たないオンライン取引専業証券会社です。私の仕事を理解いただくために,まずは当社のトレーディング・システムの処理実績を紹介したいと思います。

 当社のオンライン証券取引サイトには,1日に平均2万人のお客様がログインされます。当然,お客様には個別のページを送信します。株価は1分1秒で変化するので,同じお客様でも2回目の要求であれば,別の数字を記載したページを送信します。このような動的なページ生成は,最も負荷が高い時間帯(午前9時少し前から午前9時30分まで)で,毎秒600リクエスト程度です。少なく感じるかもしれませんが,これは1分間で3万6000ページ,1時間では216万ページ相当になります。キャッシュが意味をなさない動的ページ生成のみでこの数ですから,なかなかの数字ではないでしょうか。

 Webサーバーに着信したこれらの要求は,フロントでの基本的な処理をした後に,証券取引システムの根幹が含まれるビジネス・ロジックの集合体であるアプリケーション・サーバー群に送られます。基本的な設計は3階層モデルであり,フロント・レイヤーはIIS(Internet Information Services)とASP(Active Server Pages),ビジネス・ロジックはCOM+によるコンポーネントの実行環境,データ・ストレージ・レイヤーは「SQL Server」で実装しています。

 SQL Serverには,32CPUを利用できるWindows Server 2003, Datacenter Editionの64ビット・エディション(Itanium)を採用し,クラスタリング構成としています。1台(インスタンス)のSQL Serverで処理する要求(バッチ・リクエスト)は,ピーク時に毎秒4000件を超える勢いで,各機能別に計3台の SQL Serverが存在します。なお当社のシステム構成は,Webサイトに詳しく記載されています。

98%以上がWindows Server
 当社のシステムの特徴は,基幹系を含めた全体の98%以上がWindows Serverであり,しかも自社で運用・管理していることです。また,システムの開発も,基本的には社内主導です。オンライン証券の多くは,バックオフィス・システムに野村総合研究所や大和総研の証券システムを採用し,フロント・システムをアウトソースしています。しかし当社は,コストとサービスの競争力を向上させるために,パッケージ製品を積極的に利用し,それらを社内人員が中心にプログラムを書いて結合させることで,迅速で小回りの効くシステム開発を実現しています。

 システム部門の正社員は12名で,大きく開発系とインフラ系に分かれます。トレーディング・システムを内製しているため,開発業務やアプリケーションの運用を担当する人員に9名を割り当てています。残りの3名で,200台を超えるサーバーやネットワーク,データベース・システムの運用管理,従業員用端末の管理,CTIシステムの設計・運用,電源・空調の設計・運用までをこなしています。

 ここでようやく私自身の紹介になります。私の仕事は,Windows Serverインフラやネットワークの設計と運用管理,アプリケーションの運用,新技術をベースにしたパイロット開発——です。かつては,ベンチャー系ソフトハウスでインターフェース寄りの開発をしていました。その経験もあって,お客様や社員からの「パソコンが動かない」といった問い合わせにも対応しています。つまりは,多くのシステム管理者と同じように便利屋さんでもあります。「一家に一人いると便利よね」とは私の姉の弁です。

 私の頭からは「効率的な運用」というテーマがいつも離れません。そんな私が普段考えていることを,今回と次回のコラムで紹介しましょう。まずは,開発という世界に対して私が抱いている思いを述べ,次号では,マイクロソフトのOS環境に対する改善提案を述べる予定です。

良い開発者はインフラを知る開発者
 マイクロソフトは現在,システムの基盤となる技術や仕組みを,開発者にとって隠ぺいさせる方向に動いています。隠した方がシステム開発が簡単になり,それだけ開発環境として魅力的になると考えているからです。

 しかし,果たしてこのような方向性は無条件に正しいのでしょうか。システムを円滑に運用する上でどこまでその概念が通用するのか,いつも疑問を抱きます。

 無自覚な開発者が書いたコードが原因で,RDBMSでデッド・ロックが発生してアプリケーションのスループットが落ちたり,負荷分散環境を意識できずにデータの整合性に問題が発生したり,SQLインジェクションを可能とするセキュリティ・ホールができてしまったりすることは,非常によくある話です。

 これらのトラブルは,開発者がシステムの規模やハードウエア構成,サーバー構成,アプリケーション構成を理解していれば防げるものばかりです。つまり良い開発者とは,インフラからアプリケーションまでを横断的に理解している開発者なのです。これは実際に大規模システムの開発に携わっている人であれば,賛同していただけると思います。

 開発者は,システムやそこで稼働するアプリケーションが提供するサービスの運用,そしてインフラの物理的構成を理解している方が,より理想的なコードを書けます。逆にシステム管理者も,ソース・コードの意味やそれを書く手間,コードがOSやコンポーネント,データベースに対して行うアクションやそれに伴うインパクトなどを理解している方が,アプリケーションをホストする仕組みを作る上で理想的な構成を検討できます。

 このように,アプリケーションからインフラまでを横断的に統括する立場のことを「アーキテクト」と呼ぶそうです。しかし,アーキテクトだけが全体を意識すればいいとは思いません。システムを横断的に理解していれば,現状の問題点を把握した上で,システムの急な設計変更に対して柔軟に対応できます。セキュリティに対する要件も厳しくなっている今日,インフラの面倒を見られて,サービスの意味も理解できる人材は,企業経営にインパクトがあるといってよいでしょう。

 しかし現状を見てみると,インフラ理解の重要性が軽視されているように感じます。その象徴が,システム管理という仕事に対する視線です。私はシステム管理を生業としていますが,この職種が「希望する職種」としてランキングが低めであることに寂しさを感じます。インフラを理解できるシステム管理者ほど,企業経営に対してインパクトがあり,かつ先進的な世界を見つめられる業務は他にありません。運用が地味な職業だと言われるのは,それが実際に地味だからではなく,理解が進んでいないからです。

 開発効率が改善され,運用が簡単になることは確かにすばらしいことです。しかし実際のところ,大規模開発で力を発揮するのは,telnetを使ってWebサーバーのポート80番にコマンドを投げてHTTPヘッダーの応答内容を理解したり,レイヤー3スイッチにログインして,流れているデータ量をコマンドで確認したり,CPU負荷率90%で稼働するサーバーがどのような勢いで冷却ファンを回転させているのかを体験したりする——こういった一見地味な経験によって積み上げられたインフラの理解だと感じています。ある意味非効率な経験かもしれませんが,開発者の方には改めて「インフラを知る重要性」を訴えたいと思います。


(日経Windowsプロ2005年11月号より)



Microsoft MVPとは…
 Microsoft MVP(Most Valuable Professional)とは,MS製品のユーザー会やメーリングリストなどでユーザーのサポートをしている人の中でも,特に貢献度が高いとMSが認定したプロフェッショナル。Windows ServerやSQL Serverなど部門ごとに認定されている。