Skip to content

Instantly share code, notes, and snippets.

@pwim
Created Sep 14, 2012
Embed
What would you like to do?
kaigi room 1 log
ryopeko has left IRC (Remote host closed the connection)
kurko has joined (~textual@flets-b188.hbb.jp)
itochan is now known as itochan_off
ukstudio has left IRC (Ping timeout: 240 seconds)
shyouhei
sorah: squaleにいるのでそっちまはまかせた
volpe_hd28v has left IRC (Ping timeout: 240 seconds)
znz_ has left IRC (Ping timeout: 240 seconds)
znz_ has joined (~znz_@flets-b188.hbb.jp)
webgyo has left IRC (Quit: Leaving...)
ryopeko has joined (~ryopeko@flets-b188.hbb.jp)
webgyo has joined (~webgyo@p20062-ipngnfx01sapodori.hokkaido.ocn.ne.jp)
itochan_off is now known as itochan
makimoto has joined (~makimoto@flets-b188.hbb.jp)
h_hiro has left IRC (Ping timeout: 240 seconds)
igaiga has joined (~igaiga@flets-b188.hbb.jp)
sandinis_ has joined (~sandinist@flets-b188.hbb.jp)
pwim has left ()
You have left the channel
You have joined the channel
pwim has joined (~pwim@flets-b188.hbb.jp)
Mode: +nst
Created at: Sep 12, 2012 1:04 PM
Mikho^
session starting, please return to your seats
yokolet has joined (~yokolet@flets-b188.hbb.jp)
sorah has joined (~sorah@flets-b188.hbb.jp)
sorah
=================
pwim
I'm from cookpad
sorah
Hello, I'm Tateno from COOKPAD.
willnet has left IRC (Remote host closed the connection)
volpe_hd28v has joined (~volpe_hd2@flets-b188.hbb.jp)
pwim
This is my github account
sorah
a.k.a. id:secondlife, hotchpotch
pwim
I love these
kurko has left IRC (Quit: Computer has gone to sleep.)
agrimm has joined (~agrimm@flets-b188.hbb.jp)
sorah
I like idol group BiS
pwim
I love this group
sorah
I've bought a box of CD
sorah
Please remember the idol group BiS exists
pwim
as part of a promotion I bought lots of their CDs
drbrain has joined (~drbrain@flets-b188.hbb.jp)
pwim
What changed in cookpad in the last year?
sorah
what's happened between 2011 to 2012
pwim
From a dev perspective
sorah
see previous talk at RubyKaigi 2011 for before
pwim
This is the biggest change
Mikho^
2012: updated rails version
pwim
Talking about the process of upgrading
sorah
Upgraded Rails 3.0 in 2012
sorah
How upgraded
sorah
Q. Do we have to upgrade?
Mikho^
how did we upgrade this largescale application
pwim
We need to use libraries
pwim
Which use new version
pwim
So if we don't upgrade, we can't use
sorah
Ride on new rails (y/n)
sorah
y!
pwim
How did we do it?
Mikho^
so how did we upgrade
sorah
How we did
sorah
upgrade gems
pwim
First getting all the specs to pass
sorah
then, make spec can run
pwim
This was at the beginning
sorah
yeah, Many failures
sorah
Fix the failures steady.
sorah
Very Puzzley
pwim
Like wacking moles
sorah
like a puzzle
pwim
Fix one, another breaks
itochan is now known as itochan_off
pwim
We made an Rspec team
pwim
I was working on auto escaping html
pwim
This is an example of it
sorah
Did a fix to correspond auto html escape feature
sorah
rails_xss plugin to make Rails 2.3 to same behavior (auto html escape enabled)
pwim
Sashimi
sorah
No problem with Rails 2.3 + rails_xss = No problem with Rails 3.0?
sorah
Want to know differnce of html escape
sorah
other difference: id, timestamp, etc…
sorah
Use word-diff
pwim
So, then we got specs to like this
sorah
try in production
pwim
The next challenge was performance
yokolet
performance measure tools: ab and JMeter
sorah
Ruby 1.8.7: 200% slow
sorah
REE 1.8.7 (without tcmalloc): 180% slow
pwim
Not fast enough!
pwim
Can't relase
yokolet
it's time to profile
Mikho^
not enough speed, time to profile
pwim
Everytime, the bottle neck was somewhere else
Mikho^
the slowest part changes all the time
pwim
So Garbage Collector?
sorah
Maybe GC?
pwim
We switched from passenger to unicorn
sorah
graceful restart is useful, but unicorn doesn't make changes to performance
yokolet
OobGC implementation is interesting
yaotti has joined (~yaotti@flets-b188.hbb.jp)
sorah
GC during request happens often
Mikho^
do gc only after completing the user request
pwim
The above is without patch
pwim
Below with
kurko has joined (~textual@flets-b188.hbb.jp)
pwim
So this is an eample of how things changes
sorah
response time become faster
pwim
So even faster than rails 2.3
sorah
performance problem is solved
Mikho^
this solved the performance issue
pwim
We wrote an article in here
sorah
my co-worker writes about performance at WEB+DB PRESS Vol.70
pwim
Almost ready to release
sorah
- Final check
sorah
How to solve problems can't find in test
sorah
Throw requests in production to Rails 3.2 server
pwim
We used em-proxy
pwim
so requests went to both versions
sorah
s/3.2/3.0
pwim
but result was only returned from 2.3
sorah
Make rails 3.0 server readonly, because rails 3.0 server maybe make a problem on DB
pwim
Looked for errors
pwim
so all tests are passing
sorah
rake spec is now passed!
willnet has joined (~willnet@flets-b188.hbb.jp)
pwim
We made a demo server for users
yaotti has left IRC (Ping timeout: 240 seconds)
pwim
So we let some percentage of the users use Rails 3
pwim
Problem
sorah
then we saw unexpected behavior
pwim
Serializing is different between versions
pwim
Strange errors with MySql
sorah
difference of serialization, strange queries to MySQL master, Javascript errors
pwim
JS errors popped up
pwim
Now we were ready to release
pwim
We use EC2
sorah
we're in AWS then, so
pwim
So were able to create a duplicate cloud of servers
pwim
just needed to change the proxy
pwim
no downtime
sorah
prepare many rails 3.0 servers,
pwim
this lets us rollbakc instantly
pwim
We released a year ago
sorah
if we found big problem, switch back to old servers
pwim
No big problem!
pwim
That was my birthday!
sorah
Release date is my birthday
pwim
Created a strong memory for his 30th birthday
sorah
Recommend to release something at birthday, it'll be memory
pwim
(Sara = plate in japanese)
sorah
Q. Sara Framework?
pwim
Like twitter bootstrap
pwim
Why not just use bootstrap?
sorah
Q. why reimplement?
sorah
A. COOKPAD specific design
pwim
Ikeda joined our company
sorah
Ikeda-san made sara framework (joined this year)
pwim
Design is like cookpad
sorah
engineers now can use COOKPAD design easily by applying simple CSS
pwim
We released android apli
pwim
from native to html5
pwim
why html?
Mikho^
doesn't look so different
sorah
A. Rails engineers can work on Android
pwim
we use js bridge for native functions
sorah
A. Same feature on smartphone web
pwim
there are merits to both approaches
sorah
fluentd
pwim
but for cookpad, we think html was the right choice
sorah
Collect all Rails app servers by few lines of ruby
pwim
this is my presentation about flentd
pwim
also wrote an article
sorah
See my past talk / Software Design for detail
pwim
We started using git hub enterprise
pwim
every month, 350 pull requests
sorah
GitHub:Enterprise
pwim
lots of ruby committers in our pull requests
pwim
more code review because of GH
pwim
There will be a LT about it tomorrow
pwim
Tests were taking longer and longer
kbaba1001 has left IRC (Remote host closed the connection)
sorah
@mrkn talks about Distributed CI in Sunday
pwim
We presented chanko last year
sorah
No time to describe these things
makimoto has left IRC (Remote host closed the connection)
sorah
Many changes between 2011 to 2012
pwim
We will soon be upgrading to 3.2
sorah
Thank you
kbaba1001 has joined (~kbaba1001@flets-b188.hbb.jp)
sorah
1 question accepted
sorah
Question?
pwim
It took 2 months to upgrade from 2.3 to 3.0
sorah
Q. How long take to upgrade 2.3 → 3.0; A. 2 months
atgw has left IRC (Ping timeout: 240 seconds)
willnet has left IRC (Remote host closed the connection)
sorah
========
agrimm has left IRC (Quit: agrimm)
sorah
Break time - next session starts at 5:15pm
sorah
ANNOUNCEMENT
shuji_w6e has left IRC (Remote host closed the connection)
yokolet has left IRC (Remote host closed the connection)
itochan_off is now known as itochan
sorah
Registration of the party will close at the end of this break time
Mikho^
registration for the konshinkai is taking a break
igaiga has left IRC (Remote host closed the connection)
ryopeko has left IRC (Remote host closed the connection)
willnet has joined (~willnet@flets-b188.hbb.jp)
shuji_w6e has joined (~shuji_w6e@flets-b188.hbb.jp)
sorah
LAST CHANCE to REGISTER THE PARTY
volpe_hd28v has left IRC (Remote host closed the connection)
sorah
Last session in Room B about Ruboto is cancelled,
sorah
Masui-san will extend his talk.
willnet has left IRC (Remote host closed the connection)
miio has left IRC (Remote host closed the connection)
sorah
-- ANNOUNCEMENT END --
sorah
Break time: Next session starts at 5:15pm
sorah has left IRC (Remote host closed the connection)
willnet has joined (~willnet@flets-b188.hbb.jp)
kbaba1001 has left IRC (Ping timeout: 240 seconds)
volpe_hd28v has joined (~volpe_hd2@flets-b188.hbb.jp)
znz_ has left IRC (Read error: Connection reset by peer)
smcchoi has left IRC (Remote host closed the connection)
sorah has joined (~sorah@flets-b188.hbb.jp)
drbrain has left IRC (Ping timeout: 240 seconds)
sorah has left IRC (Remote host closed the connection)
niku has left IRC (Remote host closed the connection)
shuji_w6e has left IRC (Ping timeout: 240 seconds)
znz_ has joined (~znz_@flets-b188.hbb.jp)
drbrain has joined (~drbrain@flets-b188.hbb.jp)
mohya has left IRC (Remote host closed the connection)
ryopeko has joined (~ryopeko@flets-b188.hbb.jp)
yokolet has joined (~yokolet@flets-b188.hbb.jp)
yokolet has left IRC (Remote host closed the connection)
mohya has joined (~mohya@flets-b188.hbb.jp)
shuji_w6e has joined (~shuji_w6e@flets-b188.hbb.jp)
smcchoi has joined (~smcchoi@flets-b188.hbb.jp)
miio has joined (~miio@flets-b188.hbb.jp)
okkez_ has left IRC (Ping timeout: 240 seconds)
sorah has joined (~sorah@flets-b188.hbb.jp)
volpe_hd28v has left IRC (Read error: Connection reset by peer)
kurko has left IRC (Quit: Computer has gone to sleep.)
yaotti has joined (~yaotti@flets-b188.hbb.jp)
sorah
================
yokolet has joined (~yokolet@flets-b188.hbb.jp)
volpe_hd28v has joined (~volpe_hd2@flets-b188.hbb.jp)
Mikho^
声はきこえますか?
Mikho^
みなさんこんにちは
sorah
こんにちはみなさん
Mikho^
これからある秘密について話します
h_hiro_ has joined (~h_hiro_@flets-b188.hbb.jp)
Mikho^
この三つのことはつながっています
niku has joined (~niku@flets-b188.hbb.jp)
agrimm_ has joined (~agrimm@flets-b188.hbb.jp)
moro has left IRC (Ping timeout: 240 seconds)
Mikho^
竹の教訓
Mikho^
弱く見えるものは実は強い
sorah
github.com を使うことができない人がいる、セキュリティポリシーとか…
itochan is now known as itochan_off
Mikho^
githubをどこでもインストールしたいが・・
Mikho^
開発者やレポシトリーがない
drbrain has left IRC (Ping timeout: 240 seconds)
shyouhei
(sorry, I'm online now)
drbrain has joined (~drbrain@flets-b188.hbb.jp)
shyouhei
一種のVM
shyouhei
なんだけど
shyouhei
究極的にはただtarを展開してるだけ
shyouhei
なのでreplicateが容易
suzuki has joined (~suzuki@flets-b188.hbb.jp)
volpe_hd_ has joined (~volpe_hd2@flets-b188.hbb.jp)
shyouhei
デプロイにはhubotを使っている
Mikho^
その仮想マシーンは起動したら毎回同じ
shyouhei
なので、お客さんのマシンにsshしたりしないよ
suzuki has left IRC (Quit: Leaving)
suzuki has joined (~suzuki@flets-b188.hbb.jp)
shyouhei
githubライセンス+githubパッケージ
shyouhei
バージョンアップするときの話ですね
shyouhei
githubパッケージだけ更新すればいい
shyouhei
なのでサーバ止めなくていい
agrimm_ has left IRC (Quit: agrimm_)
shyouhei
これもhubotでやりますよ
volpe_hd28v has left IRC (Ping timeout: 240 seconds)
yokolet has left IRC (Remote host closed the connection)
shyouhei
(卜部はhubotに詳しくないが、hubouっていうのがGithub enterpriseのサーバで動いていて、それがgithubの最新のコードを引っ張ってくるのだろうと思われる)
yokolet has joined (~yokolet@flets-b188.hbb.jp)
sorah
hubotはIRCトカノbotなので、GHPを作るのにhubot使ってるってことじゃないかな
shyouhei
Github enterpriseは
sorah
違うかな
Mikho^
shyouhei
ブラックボックスじゃなくて
shyouhei
もうすこしグレー
shyouhei
たとえばログ
shyouhei
rsyslog
shyouhei
で転送できる
itochan_off is now known as itochan
shyouhei
snmpで監視することもできる
17:26 shyouhei
VMにログインしなくても監視はできるけど
shyouhei
作業が必要なら、
Mikho^
必要なことはすべてVMの外から手に入れる
shyouhei
adminユーザーもある
shyouhei
exportとかの作業はadminで行う
Disconnected
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment