harukazepc’s blog

インターネッツとAndroidなどが大好きです。あとは日々のことなど。

福岡Rubyビジネス拠点推進会議 平成21年度総会

福岡に出張してきました。福岡Rubyビジネス拠点推進会議(F-Ruby)総会と、F-Ruby&RBC合同イベント「フクオカRubyDays」Vol.1 への参加です。

最初に、参加した感想を言うと、「フクオカに来てよかったよ!」

特にいわゆるユーザ企業や自社サービス開発者などとしては。JRubyの適用事例や楽天の取り組みのオーバービュー(これまでの楽天の発表で一番わかりやすかったです)、カカクコムのRuby導入についての詳細(体制やつまづいた点など)とか、これはちょっとここだけの話だったらもったいない、と、ここに書き記す感じです。

総会議事など

F-Rubyの概要/取り組みはこちらから。以下メモ。予算面など、本気度がすごい。

  • 目標
    • 福岡をRuby世界No.1拠点に
  • 課題
    • 技術者育成
  • 今後
  • 取り組み
    • フクオカRuby大賞(初年度7カ国20件、国内58件)
    • 人材育成(入門から応用までの講座を実施)
    • シリコンバレーミッション(サンマイクロ/アドビなど6社訪問。21名参加)
    • フクオカRubyビジネスフォーラム(国内外300名)
  • 今後
    • 東京プレゼンテーション(福岡企業と東京企業のマッチング)
    • Rubyギャラリー(会員企業のショーケース)
    • F-Rubyホームページ再構築(4カ国語/上記ショーケース/SNS他)
  • 予算
    • 県負担700万強+緊急雇用対策費2.8億。すごいな。

JavaRubyの融合による開発イノベーション」by Thomas Enebo (サン・マイクロシステムズ)

JRuby のThomas Eneboによるデモ含めたプレゼン。JRuby による実例(サービス/プロダクト)の紹介があり、具体的に提示/列挙されてインパクトがあった。(自分的には一番欲しいと思っていた情報)

JRubyの良さ(APIVMといったJavaの蓄積など)は、実務でJRubyを実際に利用したり、javaでの開発/運用をやっている/いたことを思うに、すごいメリット感は感じているのだけど、一部バッチなどでは使う気になるけど、まだまだサービス全体で、とまで踏ん切れなかった。けどやっぱこういう事例が出ると違うよね。

大体はJavaAPI(標準およびそれぞれのプロジェクトで過去に開発した資産)の流用が主目的。実際多岐にわたるライブラリがそのまま使えたり、過去の資産の流用も可能ってのが、やっぱでかい。

うーんJRuby派になりたくなってきた(?)

  • Thomas Enebo
  • what is jruby
    • "just ruby"
    • ネイティブスレッド
  • why jruby
    • java is everywhere
    • java platform maturity
      • stable/fast/excellent technologies
      • gc, speed, nativethread, many tools
  • projects using jruby ... JRuby製プロジェクト/サービス
    • google app engine
    • kenai.com
    • auktionskompaniet.com
    • pons.eu
      • 多言語辞書
      • 検索回数=百万/day
      • reasn: huge amounts of cached memory, Lucene java lib.
    • trisano
      • インフルエンザ感染状況サイト
      • reason: 過去の .war , javaのバックグラウンド(ノウハウ?
    • gardermoen airport
      • 空港の給油システム(「そんなとこで使われてるのはコワイw」って言ってた)
      • JRuby wrapping SWT, タッチスクリーン lib
      • reason: Java lib.
    • github:fi (github.com)
      • run your own github.com server at work (ローカル環境でのgithub?)
      • reason: source obfuscation, os portability
  • まとめ

楽天におけるRuby活用の今と未来」by 安武 弘晃 (楽天)

楽天Ruby。その取り組み/選択の歴史のオーバービューでした。

「あえて一般サービスへ投入」「検証の結果問題ない」といった、結果で示す、という姿勢は、個人的に大事にしたいと思っている事でもあり、あー楽天もかっこいいな、なんてw

技術で勝負→ならばRuby、という選択は、さらにウェブとの相性(RailsといったFWや、元々の言語設計、ライブラリ群のラインナップ)もあり、やはり間違ってない選択なのかも、と。後述のカカクコムさんも同じような選択/選定経緯だし。

  • Rubyの社内事例
  • 日本初世界へ
  • あえて一般サービスへ投入
    • 生産性(他言語1.3-3倍)
    • セキュリティ(内部監査&外部監査OK)
    • パフォーマンス(問題無し)
    • 運用性(社内ツールが使用できた
  • 複数プロジェクトでruby活用
    • dairy 2,000,000アクセス規模でも無事稼働
    • 画面編集ツール(csv->html)
    • daity 6,000,000アクセスのドランザクションサービスも
    • パフォーマンス>ruby会議スライド(cakeが200req/secくらいから悪くなる、の件)
  • ROMA&fairy
  • 楽天の場合
    • 5年間で50倍
    • 5000万会員
    • 日商40億
  • ROMA
    • key/valueストア
    • RDBより高速、アクセスも簡単
    • スケール可能
    • 耐障害性が高い
  • fairy
  • 社内実績を出した後、OSS化予定
  • なぜ自社で?
  • 国際展開/世界へ
    • 日本から世界へ
    • us rakuten(linkshare)
      • roma活用
      • ボストン関連会社のエンジニアもrubykaigi参加
    • 人材戦略
  • インドでなぜITがのびたか?
    • 経済格差
      • 日本より高いケースもある
      • 道路が無く工場がない
      • そこでソフトウェア産業が伸びた(伝送装置のみあればよい
      • ITは地域を、その場所を活性化させる→福岡!?

「カカクコムにおけるRubyの取り組みと今後の展望」 by 宮島 壮洋 (カカクコム)

カカクコムさんのプレゼン、大変おもしろかった(興味深かった)です。

同じフィールドにおける、実例や選択の経緯、今後など、福岡来てよかったー!な感じでした。
時系列に沿ったRuby採用の歴史など、そうなのかーそうだったのかーとうなりまくりでした。

しきりに言われていた、「うちは技術のない会社と言われてきた」「そこに立ち向かいたかった(見返したかった)」「まだまだだけど、言えるようになってきた」ってのは、すごい自分の会社の状況や個人的に目指してるとこでもあり。がんばろう!

実際の本番導入の話では、やはりチューニング不足(特にDB)が問題になったようで。これもどこもおんなじなんだなー。

TDDできてない、ってのは安心した一面(おいおい)もあるけど、やっぱやらんとだねー。

  • グループで10サイト
    • アクセス数 = グループ月間総ページビュー:約10億
  • システム構成は3つ
  • カカクコムでのRubyの歴史
    • 2007/3 食べログリニューアルで導入検討
    • 2007/4 Ruby導入決定、開発開始
    • 2007/7 開発完了
    • 2007/8-10 新システム導入に何度か失敗
    • 2007/9 eiga.com稼働
    • 2007/10 食べログ新システム稼働
    • 2008/5 okyuu.comリリース
    • 2009/6 rails2.3バージョンアップ完了
  • Ruby導入経緯
    • 現行システム破綻
    • 開発担当がOSSを得意としてたのでOSSにしたい
      • PHPでいいかも
    • 世の中がRuby/Railsに流れていた
      • 大規模は不向き?
    • 必要な要素を検証
      • パフォーマンス/冗長構成など問題なし
    • 基礎モジュールやプロトタイプを作った
      • きれいにかける/メンテナンス性が抜群
  • Ruby導入
    • 200機能(画面)を3人がフルスクラッチで3ヶ月
      • しかも3人ほぼRuby初心者
    • デザイナー1名が直接テンプレートをコーディング
      • 生産性が非常に高い
    • その後メモり肥大化、パフォーマンス低下
      • 教科書通りのコーディング+テスト
    • 本番環境の大量のデータ、高負荷に耐えられず
      • MySQLのパフォーマンス低下(innodb)
      • マルチコアCPUでのMySQLの安定性がない
      • MySQL関連の問題がほとんど
  • 導入メリット
    • コード量が圧倒的に少ない
    • 可読性が高いため、ドキュメントいらず
      • 新人教育もやり易い
    • デザイナーと分業が可能
      • 直接テンプレートを記述>生産性向上
    • 注目度が高い
      • 日本最大級のRailsサイト ... 世界でも指折り
    • 会社の技術力が評価され、採用がしやすくなる
      • rubyをやりたい、というエンジニアが応募する
  • 導入デメリット
    • Rails特有のデメリットは少ないが、大規模化にはまだ不向きな点がある
    • 自社でモジュール改修実施、など
    • バージョンアップが大変 ... コア部分をいじってると特に・・・
      • 2.3バージョンアップは大変だった
    • マシンパワーを食う
      • 1mongrel 200MB
      • CPUも使用率が高め
      • 食べログでは約30台の高スペックサーバーを使用
  • 現状と課題
    • 1億PVに耐えているが、完全なスケーラブルな設計ではない
    • TDDできてない
    • 社内勉強会は開催している
      • 自社サイト間での連携が少ない(コードなど)
    • 定期的なリファクタが必要
      • コーディングスタイルが開発担当によって様々
      • controllerの肥大化
  • 社外活動
  • 今後の予定
    • 引き続きruby/rails採用
      • 新規/既存拡張はruby (or php)
    • もっと社外に情報公開/OSS貢献したい
    • 地方や海外との技術交流/共同開発
      • 下請け、でなく、対等な関係で
  • まとめ
    • ruby/railsでのサイトリニューアル効果は大きかった
      • アクセス数の増大
      • 開発スピード
      • メンテナンス性向上
      • ドキュメント省略化
    • ruby/railsでの大規模サイト運営は「普通に」できる
    • webサイトでのruby/rails導入メリットは大きい
      • スピード優先
    • 今後もつかっていくよ

RBCさん、TISさんのプレゼンもありましたが、F-Rubyへの話やこれまでの発表内容が主だったようなので、掲載は見送ります。

翌日、午前中は、まつもとさんのライブコーディングという、実体はまつもとさんQA大会?。

午後は、RBCRubyクラウド勉強会でした。

午後のやつは、参加者のバックボーンばらばら(システム、営業、その他から、Rubyへのスキルも)だった&「Hadoop=分散処理」となってしまい、分散処理の中のある分野、とうまく説明できた方が全体がうまく勧められたのでは、と思いました。

というわけで、充実した福岡の2日間でした!

寿司、刺身、イカ!、ラーメン、寿司、うまい!福岡うまーい!!!

おわり

© harukazepc️