« 自宅サーバを停止しています | トップページ | PlayStation Network 個人情報漏洩 #psnleaks について電話サポートで質問してみた »

2011/05/03

QCon Tokyo 2011 #qcontokyo に参加した

 

4月12日(火)に開催されたQCon Tokyo 2011に参加してきましたのでその感想などを。文中の敬称は畏れ多いですが「さん」で統一してます。

 

10:00 – 12:00 基調講演

基調講演はEric Evansさんと伊藤直也さんが行われたのですが、当日の朝、比較的大きい地震があり電車が止まってしまいましたのでほとんど参加できませんでした…特に私の一番の目当てであったEric Evansさんのお話が全く聞けなかったのは痛かったです。

伊藤直也さんのお話もほとんど聞けず。基調講演で記憶に残っているのは『グリーのサービスでは既にAndroid利用者数がiPhone利用者を超えている』という1点だけです。なんとなくそういったサービスを利用している人はAndroid?iOS?なにそれ?みたいな人が大半で、そういう人はAndroid端末よりiPhoneを選ぶだろうと考えていたので意外でした。

 

13:00 – 13:50 クラウドのデータアーキテクチャ―設計の原則 萩原 正義 さん(日本マイクロソフト株式会社)

クラウド(型)アーキテクチャを採用する上で最適化にはどういった考慮が必要になるか、というお話で、具体的にはMapReduceでの例、Columnar(カラム指向データベース())での例を説明されていました。Columnarの考え方は普通にRDBでも適用できるんじゃないかな、と思っていたところ、『RDBMSのオプティマイザをあまり舐めない方が良い 』みたいなこともお話しされていたので、そんな私の考えも「何を今さら」という感じなのでしょう。

他には、半導体レベル(FPGA、と説明されてたかな?この辺明るくないので聞き間違っているかも)での最適化の試みもある、というようなことに少し触れられていました。いわゆる業務SEでもそっち系の知識が求められる時代が来るのでしょうか、空恐ろしい…しかし、ある業務に最適化されたハードウェアと”クラウド”って相反するところがあるような。そこまでの最適化ではなく、MapReduceとかHadoopとか、そういったミドルウェア的プロダクトレベルの最適化になるんでしょうかね。

他の方のtweetでは本セッションは基本的な事項に留まっていた、というような意見もありましたが、ぶっちゃけ私ははてなのRDB vs KVS煽り合いホットエントリみたいなところで得た知識しかなかったので、MapReduceって何をするプロダクトなのか、というところから学べたので有意義でした。

 

14:05 – 14:55 品質検査技術のトレンド -レビューと測定・欠陥工学を中心に- 細川 宣啓 さん(日本アイ・ビー・エム株式会社)

申し訳ないことに当日まで細川さんのお名前を存じていなかったのですが、参加してみてびっくり、個人的に超大穴セッションでした。

以前会社に所属していたとき、その会社から品質管理専任としてプロジェクトに来られる方は、はソフトウェア開発スキルが低く、かといってプロジェクトマネジメントもできない方ばかりでした(ああ、これが大企業病の一症状なんだなあ、と思ったものです)。

そういった方たちの持っている品質管理スキルは結局開発者が持っているスキルのサブセットでしかなく、提案された方法も、既により効率的なやり方でやっていたり、手間を複雑にしてるだけだったり、開発者から見て安心・信頼できるとは言い難かったです。

細川さんは、レビュアが的確な指摘を行うために必要なものは経験だ、とおっしゃっていました。ではその経験はいつ得られるのかというと、現状では実際に自分で開発したとき、だけなのではないかと思います。自分が失敗し、それをどうリカバリしたり、あるいは本来どうすべきだったのか考えることでしか得られるようになっていない、ということです。そして、品質管理という立場では、自身が行ってきたことと発生した問題の因果関係が明確になりにくいため、開発者ほど真剣に失敗に取り組んでいない(つまり、開発者ほど大した経験が得られていない)ように感じます。

資料p.22以降にもある通り、細川さんは、品質管理の専門家となるための体系だった知識が未発達であり、この問題の対応策として、バグを世界規模で収集し類型化できるようなデータベースの構築に取り組んでいるとおっしゃっていました。私も、このような分野がシステム開発の一分野として発達すれば、前述したような品質管理者のスキル不足が解消され、専門家としてプロジェクトの中で活躍できるのではないかと考えます。

セッション内容の本筋からは逸れますが、ソフトウェアはバージョンが上がる度(つまり機能が増える度)に品質は下がる、とおっしゃっていました。また、後述Twitter社のEvan Weaverさんは、Twitter社で働いている時間のうち半分はコードを削減するのに費やしてきた、と語っていらっしゃいました。ソフトウェアを成長させていくには、過去のコードに対しても大きな労力が実際には必要であるということです。にもかかわらず、典型的な請負型契約ではそういったことは行えない、といった問題についても、品質管理分野が発達すれば解消されるのかな、と考えたりもしました。

 

15:10 – 16:00 サービスのスケーラビリティと無停止のためのインメモリ技術 杉 達也 さん(日本オラクル株式会社)

Oracle社が買収する前の、Tangosol社時代のCoherenceを少し触った経験があるので、回顧目的で参加しました。私の目的は達成されたわけなんですけれども、技術セッションというよりOracle社のCoherenceプリセールス活動的な色が非常に濃かったので、他の聴衆の皆さんが満足されたのかは非常に疑問が残りました。

前述した萩原さんクラウドアーキテクチャに関するお話を聞いているときに感じていたのですが、Coherenceも自分の欲しいデータがローカルに無い(正確には、有るとは限らない)点やKeyの性質でValueを分散させる点などが似通っているのではないでしょうか。従って、KVSの考え方が応用できたり、また、最適化の際にはKVS的な考慮が必要だったりすると思っています。せっかく世間でクラウドが流行っているのだからそういう点からアプローチすれば良いのに、と感じました(繰り返しになりますが、KVSちゃんと知ったの当日が初めてなので誤解しているかもしれませんが)。

そういえばJavaSpacesという仕様があって、その実装プロダクトであるGigaspacesと比較されることがしばしばありましたし、詳しくは知らないのですがGemstoneやTerracottaといった同等のプロダクトもあるようです。本セッションではJavaEEとの親和性の高さを強調していらっしゃったので、そういった機能でCoherenceと他社プロダクトを差別化する、ということなんでしょうかね。

 

16:15 – 17:05 Performance Engineering at Twitter Evan Weaver さん(Twitter社)

PDFになってしまったセッション資料を見ると色々とはみ出してて不恰好に見えますね…実際の資料は、PDFの最後のページ(28ページ目)が最初に映され、説明が進む度にシームレスに各項目がズームインされる、といった形で、超カッケー感じでした。Preziで作成されたものらしく、こちらのサイトで見られる作品で、どんなものだったかイメージがつかめるかと思います。

一番時間が割かれたのはは、こちらにあるTwitter社の記事についてのことでした。Matz' Ruby ImplementationやRuby Enterprize Edition(RubyにEnterprize Editionなんてものがあるのも本セッションに参加して初めて知りましたが、サイトを見るとGC改良に力を入れているようです)では満足のいくGCパフォーマンスが得られず、自社で改良することにした(Project Kiji)ところ、良い結果が得られた、ということでした。JVMで採用されているような世代別GCを実装したそうです。

セッションの初めの方ではjemalloctcmallocについても触れられていました。が、ちょうど話されていることを直接英語で聞き取れないか奮闘していたため(無駄な努力でしたが)内容分かりません…マルチスレッド環境下ではjemallocの方がパフォーマンスが良い、ということだった、かも。

TwitterサービスはRubyからJVM言語(JavaやScala)に移行している部分もありますが、JVMも大きなオブジェクトのGC管理においては満足のいくパフォーマンス管理が得られていないようです。また、今からTwitterを構築するとしたらどんな言語を使いますか、という質問に対してはJRubyも回答に入っていたことから、Rubyの言語仕様(や言語仕様の決まり方)自体に問題があると考えているわけではないのかな、と思いました。

 

17:20 – 18:10 ドメイン駆動設計においてレガシーシステムを扱うための戦略 Eric Evans さん

残念ながら途中までしか参加できませんでした…dddcommunity.orgのEscaping Legacy while Avoiding Strategic Trapsというエントリに見覚えのある図が出ていましたので、これと似た内容だったのかもしれません。

途中まで参加した内容と、上記リンク先のビデオ(英語は聞き取れないのでスライドからの想像ですが)から想像するに、書籍エリック・エヴァンスのドメイン駆動設計の第4部「戦略的設計」を中心にお話しされたのではないかと思っています。この部分は翌日開催されたDDDチュートリアルの後半でも、寸劇を採り入れるなど時間をかけて解説されていましたのでこの部分重要!ってことなんでしょうね。

 

そんなわけで始めも終わりも中途半端になってしまいましたが、その辺は他の方のblogで補完を、ということで、検索してヒットしたblogのリンクを載せてみました(実際にはもっと多くの方が感想を書かれていると思いますが、私が検索できた範囲で…)。

 

最後に。『QCon Tokyo 2011 にご来場いただいた方の中から希望者全員に「日経コンピュータ」(通常 19,800円)もしくは、「日経SYSTEMS」(通常13,800円)の年間購読を無料でプレゼントいたします。』というのがあったのですが、申し込み用紙出すのをすっかり忘れていました…

« 自宅サーバを停止しています | トップページ | PlayStation Network 個人情報漏洩 #psnleaks について電話サポートで質問してみた »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/18902/51567637

この記事へのトラックバック一覧です: QCon Tokyo 2011 #qcontokyo に参加した:

« 自宅サーバを停止しています | トップページ | PlayStation Network 個人情報漏洩 #psnleaks について電話サポートで質問してみた »

other sites

  • follow us in feedly
  • github
  • stackoverflow

ソフトウェアエンジニアとして影響を受けた書籍

  • Christain Bauer: HIBERNATE イン アクション

    Christain Bauer: HIBERNATE イン アクション
    理論と実践が双方とも素晴らしい製品であるHibernate。本書はそのプロダクトを書名に冠していますが、Hibernateを使うつもりがなく、ORマッピングの解説書として読むにしても十分な良書です。Second EditionとしてJava Persistence With Hibernateという書籍も出版されていますが、残念ながら現在のところ 和訳はされていません。-インアクションは2.xの、Java Persistence-は3.1の頃のものなので、最新版とはちょっと違うところもあることに注意。 (★★★★★)

  • アンドリュー・S・タネンバウム: 分散システム 原理とパラダイム 第2版

    アンドリュー・S・タネンバウム: 分散システム 原理とパラダイム 第2版
    クライアント/サーバシステムを構築する上で必要となる知識が総論されてます。Web技術者も、フレームワーク部分を開発するのであれば必読。 (★★★★★)

  • Joel Spolsky∥著: ジョエル・オン・ソフトウェア

    Joel Spolsky∥著: ジョエル・オン・ソフトウェア
    前述の書籍「ソフトウエア開発プロフェッショナル」をより砕いたもの、という感じでしょうか。 前書きではプログラマでなくSE向けの本のように書かれているが、プログラマが読んでも面白い本であると思われます。 SEになった新人(あるいはそういう会社に入る/入りたての人)にとっては、これからどういったことが仕事を遂行していく上で起こりえるのか、どのように考えて行なっていけばいいのか決定する助けになると思います。 元は″Joel on Software″というブログの記事で、web上でも一部日本語で読めます。 http://japanese.joelonsoftware.com/ (★★★)

  • ドナルド・C・ゴース,ジェラルド・M・ワインバーグ: ライト、ついてますか

    ドナルド・C・ゴース,ジェラルド・M・ワインバーグ: ライト、ついてますか
    問題解決(一昔前のの流行語で言うところの『ソリューション』)能力は、システムエンジニアのスキルとして備えるべきもののうちのひとつです。しかし、これは難しい。学校で出されるテストと違い、唯一の、(問題提出者が想定している)解を求めるだけが「問題解決」では無いからです。そもそも、何が問題なのか、それは本当に問題なのか、それは本当に解決すべき問題なのか、その問題解決方法は正しいのか、などを解決しなければ、「その解は正しいのか」に辿りつくことができません。この本の最も良いところのひとつは、本があまり厚くないこと。すぐに読めるし、何回も読み返す気になるでしょう。 (★★★★★)

  • スティーブ・マコネル: ソフトウエア開発プロフェッショナル

    スティーブ・マコネル: ソフトウエア開発プロフェッショナル
    コードコンプリートで有名なスティーブマコネルの著書。新人SEに読んで欲しい。個人として業界の中でどうあるべきか、組織としてどうあるべきか、SEのプロ意識とは?SEの心構え概論、といったところでしょうか。また、業界における資格の重要性についても説かれています。この業界では資格が特に軽んじられる傾向がありますが、この傾向はどんな弊害をもたらすのか、将来的にこの業界は資格に対してどのような姿勢で臨んでいくべきなのか。日経BP社では(他の出版社もだが)最近、似たような類いのあまり面白くない書籍が乱出版されていますが、この本は別格だと思うので安心して購入して欲しいと思います。 (★★★★★)

無料ブログはココログ