日本オラクルの若手エンジニアに会って来た
@ntamaoki がうちの若手と飲みましょうよ、と言ってきたので、ほいほいそれに乗って日本オラクルの若手エンジニアに会ってきた。実のところ、ERPだAPPSだというのは、よくわからない。わたしはデータベースのエンジニアだったわけで、職種もコンサルとかではなく、サポートのさらに下のバックエンドのサポートだったわけで。
新社屋は素敵だった。二階の受付まで行って、諸般の事情で社内にははいれなくて残念。
まあ、それは、どーでもいい話なのだが、基盤系いいよ〜、RDBMSの開発おもしろいよ〜という話をお腹いっぱい話してきた。
バックエンドサポートの一日つーのは、出社してbugdb見て、自分の担当部分のバグをざっと見て、新しいバグがあれば、拾って、地味に回答を作る。パッチを作る場合もあるし、バグじゃなかったり、バグだったとしても、簡単なワークアラウンドがあったりして、それを回答したりという感じである。
地味に回答を作る。
もちろん正真正銘のバグもあって、そーゆー場合はパッチを作るのだけど、その前に、テストコードを書いて、再現させて、現象を確認する。わたしの担当はSQLだったので、オラクルのSQLについてはちょっとは知っていたし、文字コードがどうだこうだということももちろん理解していた。オラクルの文字コードの変態的な処理についての責任の一旦はわたしにもある。RDBMSの上半分(SQLとか)なんかは単なるアプリケーションなのでデバッグは簡単だ。メモリ管理とかトランザクション処理の部分(RDBMSの下半分)は現象の再現をするのも大袈裟なものが必要な場合があり、ものによっては客先でしか再現しないという難しいものもある。それに比べれば、SQLのバグなんていうのは楽勝である。
パッチを作って、自分の環境でバグを修正したことを確認し、short regressという簡易版のリグレッションテストを流し、それに通ると、メールでコードレビューを依頼する。コメントがあれば、それを反映するし、いいんじゃない、という素気ないコメントとか、特に問題がなければ、早速修正をチェックインする。毎日毎日、何十人ものRDBMSのカーネルエンジニアがそれぞれ独自のチェックインをするので、相互作用で、誰かの修正によって自分の修正に不具合が発生することがある。これはもうしょうがないのであるが、リグレッションテストを毎日毎日流すので、早期に発見される。チェックインした次の日のリグレッションテストの結果を見るのはいつも緊張感がただよった。リグレッションテストの差分は必ずしもバグの発生を意味しないのであるが、自分が関係する分野での差分に関しては、注意して検討しないといけない。リグレッションテストそのものは数千あって、何十台ものサーバマシンでひたすら実行する。
ソフトウェアを大規模な工場で作るようなイメージかもしれない。
基盤系の技術の進化というのは、上のファンシーな流行ものの技術と違って、ゆっくり流れていくので、毎日毎日新しい技術に追われるということはない。SQLの文法は毎日変化するわけではない。トランザクション処理のイロハが毎日変化するわけではない。従って、技術の積み重ねがモノを言う分野だし、10年たっても今勉強したことが役に立つ。
一方で、新しい技術分野というのも勿論日々どっかで生まれているわけで、それは思いもかけないところから出てきたりする。例えば、key-value-storeなんてのは古典的RDBMS技術とは違った地平線から出現したように見える。オラクルの中で仕事をしているとWeb2.0の現場で日々おこっている、スケーラビリティとの戦いや、技術的、運用的なハックから生まれるクレージーなアイデアを知る機会が少ないかもしれない。だけど、最先端の次の時代をブレークスルーする技術なんていうのは、そーゆー現場から生まれるような気もする。自分のレーダーをみがいていないと気がつくとレガシーなところにいたりする危険性は常にある。
基盤系の技術にかかわるということは、そーゆー様々なサービスとかアイデアとかをささえる技術にかかわるということなので、絶対なくなることはないと思うけど、常に新しいチャレンジというか勉強をして、切磋琢磨している必要はある。
日本という地域で基盤系の技術を生かす職場というのが少ないけれど存在するということについて、わたしは東京スゲーと思うし、勉強会を通じてのゆるいネットワークは日本の宝だと思う。ニッポンはじまったなと思う。
mixiとかgreeとかはてなとかpfiとか楽天とか、googleほどではないけど、現場で日々スケーラビリティとかの問題に汗を流している人がいて、そーゆー人達が新しい何かを生みだしている。
せっかくオラクルにいるんだから、proprietaryなシステムをしっかり勉強し、ぜひ、基盤系の技術に貢献してほしいと思うなあ。
なんてことを、よっぱらいの戯言をいつもどおり熱く語ってしまった。(ぐははは)
クラウドって何よ?
クラウドってバズワードが飛びかっている今日この頃、皆様いかがお過しですか。データセンターという箱を作って、経済対策だぁ〜みたいな。
日本に市町村はウィキペディアによれば、1782あるそうである。*1 住民向けサービスというのが、その数あるわけだ(多分)。そして、その住民向けサービスを提供する基幹システムというのが、その数あるわけだ(多分)。住民向けだけじゃなくて、市町村職員向けの、給与システムとかもいろいろあると思う。でもって、その手のシステムって、やはり地元のSIベンダーが受けているのかというと、やっぱし、大手ベンダーないしその子会社、関連会社が受けているのではないかと想像する。
約1800の同じようなシステムが日本全国にある。市町村の住民サービスは日本全国津々浦々同じようなものだから、それこそ、一つのシステムですんじゃうんじゃないかと思ったりもする。そーすると、いろいろな子会社関連会社でやっていた仕事が、例えば新規開発とか改修とか、あっと言う間になくなっちゃったりする。もちろん運用とかの仕事は残ったとしても。
だけど提供している価値が、その程度のものならば、同じものを1800別々に作るというのは、道路や橋や鉄道と違って、情報システムというのは使い回しがきくものの典型なのだから、無駄なのではないだろうか。悪き公共工事事業みたいなものではないのだろうか。地方公共団体の情報サービス支出がどのくらいあるのかは知らないが(数兆円規模か)、そのかなりの部分が重複開発投資だったとしたら、納税者の一人として無駄かなと思ったりする。
クラウドでデータセンター作って産業振興だなんて事を言っていたら、全国の無駄なシステムなくなって、売上激減で、公共団体向けの仕事が多い、地方の中小ベンダーの経営が厳しくなっちゃうとか。いいことなのか悪いことなのか。
全国に一個というのは、いくらなんでもアレなので、47都道府県、別途に作るとしても、そのシステムもオープンソースを中心に構築しちゃって、横展開を前提とするシステム開発にしちゃえばシステム開発コストも減ったりして。サービスの規模も、東京23区が一番大きいわけで、それでも800万ユーザくらいなので、その位の規模ならば、現状の技術で楽々処理できちゃったりして。
実情を知らない人間の戯言なので、皆様、間に受けないように。あ、外字問題に関しては一言あるのだけど、紙面が尽きたので、ここには書けない。
参考文献 http://d.hatena.ne.jp/mkusunok/20090308/hope 実効性あるクラウド振興へ向けた頭の体操/雑種路線でいこう