2012年10月21日日曜日

rakuten tech conf2012に行って来た


rakuten tech conf2012に行って来たのでメモ。
参加者に外国籍の方が多く、セッションも英語だったので、USでのOOWとかに雰囲気近かったです。コスプレな人がいたのは最近の流行だろうか?
意欲的なエンジニアにはいい場所になってると思いました。大変なところもありそうですが。

セッション資料などに興味あるかたはこちらへ。

三木谷さんのKeynoteは主にGlobal化の状況、英語公用化の状況と効果、技術への取り組みの話でした。
英語化で、英語圏から楽天へ入社する人が増えたというのは気づきでした。後のセッションでデメリットもありそうな雰囲気を感じたこともありますが、国を超えるときの壁も解消されるとか、技術者が海外へ行く抵抗感が減るとか、全体にメリットのほうが大きそう。
AgileやBigDataへの取り組みを具体的に進めるイメージがあって、実行中というのがすばらしい。いい場所を作ってるなあ。

Jenkinsの川口さんのセッションはCIの背景、現状、将来という感じ。
マルチコア化によるCPU性能の向上、仮想化技術、Cloudの一般化と進む中、計算のCost/Perfは下がり、人のコストは変わらない。自動化しましょう。
支援するのは各レイヤーのProgrammablity。VM層のAPI、SW/MW層はchefなどで構築は自動化できる。テスト対象のデバイスの増加に対応するSaaSも出てきた(Cloudbees)。
Jenkinsのメリットは、OSS、構築利用の容易さ、600を超えるPlugin、実績、など。100台を超えるサーバの自動化にも使えるし、Pluginの開発も簡単。
便利な使い方として、多段でJenkinsを使うValidated merge、継続的デリバリでの利用、可視化、ビルドのラベル付けなどがある。
将来はBPMN Workflowを組み込む。DSLはGroovy。
"システムを構成する色んな層、要素をGlueする"のが重要。CIツールという枠を超えて、システム管理の中心に置くのを目指してる感じですね。
並列プログラムのテストや障害テストも楽になったりしないかなあと思ったりする。

北川さんのData scienceのセッションは、"ユーザをHappyにする"目的に沿った取り組みや効果の紹介。一番QAが多かったですね。後ろで"Finish"の紙を持ったスタッフさんが焦ってるのが少しおかしかった。
各部門のデータが専門チーム(8人くらい)に集まる体制にしていて、各部門にフィードバックをかけている。組織の壁なくこれができているだけで素晴らしい。
ユーザの動線をEntryからActionまで見てどういうユーザか判断し、その目的にあった体験ができたか分析する。各目的にあったリコメンド、検索など機能の評価や強化に使うらしい。
Amazonとの差別化は非常に重視していて、Simple,Cool,Lowest priceに対しておもてなし、売り手の思い、楽しみを感じさせるのが目標。
QAでは個人情報ってどうするの?とか分析結果をダイレクトにサービスに反映させたりは?とかの気になる点から、内輪な感じの話まで色々でした。
当然、もっと色々やってるから聞きたいことがあれば聞きにきて、とのことでした。羨ましい。

佐々木さんのRakuten PaaS(RPaaS)のお話。PaaSの位置づけやRPaaSの目標、サービス化で苦労した点などなどでした。
ゴールは楽天の開発者が簡単に開発できるPaaSで、楽天のサービスを簡単に使えるのが大前提。承認フローのある程度の簡素化という話もありました。
ベースはCloud Foundryを使って、色々拡張。というかCloudFoundryはKernelとRuntimeとして位置づけていて、Fluentdを使ったログ収集やBillingなど、まだ色々足りない点は多いという認識。今後PluginなどをOSSにしてフィードバックをかけ、成熟させていくようです。
5月にリリースして、安定稼動中。実績も出てきているようですが、まだ新技術への警戒感はあるっぽい。
苦労したのは、新規技術で情報も人も足りない、アプリのアーキテクチャが既存と変わる、チーム作り、企業のポリシーとの整合性、などで今も取り組み中。
ソフトウェアバージョンなどは、PaaSにあわせてもらうか現行のままIaaSに乗せるかで対応。テスト自動化とかとあわせれば、移行コストもある程度下がるという感じかな?

もう1つ参加したけど、ちょっと伏せておく。大分人の出入りもあったようだし文化も変わったろうし、悩む人もいるよね。
元SIerとしては"でもコード書けるしいいんじゃないかな"と思ったり。
ちなみにご自分で環境を変えて、前向きに変化に対応されてきたようでした。

2012年10月8日月曜日

MacBook Airにredmineを入れてみる


タスク管理用にMacBook Airにredmineを入れてみたメモです。
OSX初めてなので、ついでに慣れようと思い、調べながらやっています。
インストーラがあるそうなので、そっちの方が簡単かもしれません。
  • Xcode

必要なかったかも。App Storeからインストール。まあ、いずれ使うでしょう。
  • brew

こちらを参考にさせて頂きました。
yumのようなものらしい。
  • MySQL

こちらを参考にさせて頂きました。

http://dev.mysql.com/downloads/mysql からバイナリ取得。
OSX 10.6までなのがちょっと気になりますが。DMGはディスクイメージと読むらしい。

/etc/init.d以下のスクリプトに対応する操作は、システム環境設定-その他-MySQLからでき、本体は/Library/StartupItems/MySQLCOM/以下のようです。
起動なら/Library/StartupItems/MySQLCOM/MySQLCOM start、とか。
公式の注意事項はこちら。
  • Ruby

ヘッダがないとか色々起きたので、結局1.9.3-p194を入れました。
こちらを参考にさせて頂きました。
  • Imagemagick

brew install imagemagick
で入れました。
  • ユーザ、グループ作成

redmine用のユーザ、グループを作ります。useraddなどの代わりにdsclコマンドを使う。
こちらなどを参考にさせて頂きました。
LDAPでユーザ管理するときの感覚ですが、違和感が。

  • MySQLのライブラリ

redmineを起動するユーザの.bash_profileに以下の行追加します。
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
  • Redmine

今回いれたのはバージョン2.1.2です。
だいたいここに書いているとおり進めて、ところどころ引っかかりました。

・bundle installで失敗
jsonのところで失敗してました。Rubyのバージョンあげました。
・rmagick
Imagemagickを先に入れて対処。
・RAILS_ENV=production rake db:migrateでエラー
DYLD_LIBRARYを設定して対処。

webrick経由での起動を確認したので、とりあえずここまで。
あとはapache経由でアクセスする設定などですが、
こちらを参考にさせて頂こうと思います。

リンク先の皆様、ありがとうございました。