More Related Content
Similar to 10年モノ熟成Perlとの付き合い方 (6)
More from Masaki Nakagawa (9)
10年モノ熟成Perlとの付き合い方
- 14. YAPC::Hokkaido 2016 SAPPORO
熟成した問題
☃ 独自WAF利用とその聖域化問題
❄ メンテナンスやアップデートが行き届かず
❄ 手の入れ方がわからず運用でカバー
❄ 秘伝のタレ化
☃ 掃除不足によるゴミ屋敷問題
❄ 不要なソースコードが残ったまま
❄ 不要なファイルが残ったまま
❄ 次第に影響範囲が不明になり消せなくなるパターン
13
- 16. YAPC::Hokkaido 2016 SAPPORO
背景理解
☃ とにかくコードを読む
❄ (個人的に)Perl でよかった
☃ 疑問や経緯はわかるまで全部聞く
❄ 今目の前にある事象は、過去の決定の積み重ね
❄ 当時は何らかの意図や判断が必ずある
☃ 「システムに歴史あり」
❄ ここまで事業を支えてきた事実をリスペクトする
❄ その上で諦めてきたことを知ろう
15
- 17. YAPC::Hokkaido 2016 SAPPORO
事実把握
☃ ログをどんどん出す
❄ 手がかりは多く、余れば後で捨てるだけ
❄ carp, croak → cluck, confess
❄ $logger->warn($@)
☃ リソースを監視する
❄ 推測するな、計測せよ
❄ CloudForecast 入れるところから始めた
16
- 19. YAPC::Hokkaido 2016 SAPPORO
[改善] パフォーマンスチューニング
☃ ログとリソースグラフのおかげ
☃ ログに DB の max connection エラーを発見
❄ DB チューニングで max connection 確保
☃ まだ HTTP リクエストがタイムアウトしてた
❄ TCP connection / HTTP がある値で頭打ちになってた
❄ ServerLimit, MaxClients 周りを設定
☃ 残るは DC 帯域が…(共用なので)
18
- 20. YAPC::Hokkaido 2016 SAPPORO
[改善] TV露出の対応
☃ TV (地上波) で取り上げられると即死(30分落ち)
☃ 「来週ヒルナンデスに出ます」という死の宣告
☃ 画像が豊富でページ当たりの転送量が…
❄ とりあえず CloudFront 載せよう
☃ アセットが世代管理されてないからキャッシュが…
❄ mod_ext_filter っぽいのを書いた
☃ CGI プロセスが膨大に…
❄ SpeedyCGI (!) を引っ張りだした
❄ 参照系はことごとく静的に HTML 化
19
- 23. YAPC::Hokkaido 2016 SAPPORO
なぜ革新なのか
☃ ワクワク感が出る
❄ 楽しさはモチベーションの源泉
❄ 「やるからには面白く、工夫して」© 2016 @ikasam_a
☃ 本当は色々狙ってる
❄ 大きな変化を伴わないと解決できない問題に向き合う
❄ 今ある他の課題も一緒に解決できる方法を考える
❄ 両立できる施策をしれっと狙う
♨ 理想(革新)だけ追っても色んな意味で難しい
22
- 24. YAPC::Hokkaido 2016 SAPPORO
まとめ
☃ アイランドではおやつにローストビーフが出ます
☃ 10年過ぎると色んなところに地雷がありますが、こうなる
に至った当時の判断背景が必ずあります
☃ ここまで継続させてきた先駆者の実績をリスペクトしま
しょう
☃ 背景を理解した上で事実を知れば、どうやって対応して
いけばよいのか見えてきます
23