nanapi勉強会 vol6 - エンジニアとデザイナーの協働 に行ってきた!
http://nanapi.doorkeeper.jp/events/18274
Time Schezdule
時間 テーマ 発表者
19:00〜19:30 開場・受付開始 -
19:30〜19:40 挨拶 株式会社nanapi和田
19:40〜20:00 プロダクト開発を最適化するためにやめた4つのこと 株式会社nanapi 小島 泰洋
20:00〜20:20 Coineyのチーム文化 コイニー株式会社 松本 隆応
20:20〜20:40 未定 株式会社VASILY 村田 卓朗
20:40〜21:00 Qiita/Qiita:Teamの開発 Increments株式会社 小西 智也
以下個人的まとめ。
※個人の主観が入っているので、必ずしも発表内容を反映しているわけではない部分があります。予めご了承ください。また修正がある場合は即座に修正させていただきます。
19:40〜20:00 プロダクト開発を最適化するためにやめた4つのこと 株式会社nanapi 小島 泰洋
nanapiの4人目のエンジニア
@kozyty
nanapodというpodcastをやっている メンバーをゲストに呼んだ雑談が主。
kozytyがおくる、nanapiのpodcast “nanapod”はじめました。 | kozyty.com
今日はemosiの話。知らん。
会議をやめた
- その変わり席を隣にして蜜にコミュニケーションするようにした
カンバンをやめた
- Pivotal+Slackを使ってる
できるだけ開発をやめた
- 外部サービスにあるものは全面的に頼るようにした
- 辺に最適化してしまうのを避けれるようになる
エンジニア、という型にハマるのをやめた
- 開発以外のプロダクトに関する部分に集中するようにした
20:00〜20:20 Coineyのチーム文化 コイニー株式会社 松本 隆応
Coineyは今は30人くらいに一気に増えた。デザイナーの人。
完璧主義による衝突
完璧なデザイン vs 理想のコード
本質のクオリティが低下する。無駄な部分に注力してしまう。プライドがある。変なものを出すのは恥ずかしい。
→100%をやめる。70%でいいとする。
作業は少なく、仮説検証を早目にやる
無駄な作り込みをして、現場で混乱が発生した。
UIなど遷移を増やすと開発コストもかさむし、単純作業も増える。
まずは現場を見て、それでUI・機能をつくって仮設を検証する
役割を意識しすぎる
助けてって悲鳴を上げている人がいても、領域を区分しすぎてしまって誰も助けない事象が発生してしまう。誰かが助けると思うのではなく、全員が互いに問題を共有して解決していくことが重要。
そのためには、自分自身の肩書を捨てることが重要。
20:20〜20:40 株式会社VASILY 村田 卓朗
(題名、ぎりぎりまで未定だったので、最初のスライド見逃してわからなかった。なんだっけ?)
エンジニア。 現在はAndroidエンジニアの統括。
iQonの開発者。めっちゃ優秀やん(一時期ベンチマークしていたのでわかる)。
昔
ディレクターの役割がすごい多くて、デザイナーはデザイン、エンジニアはコーディングと、ボールが偏っていた。
またディレクターがHubになっているので、コミュニケーションもディレクターに集中してしまう。
今
ディレクターがやっていたことを他に流して、デザイナーとエンジニアの役割を拡張する。
- ディレクター
- ビジネス・接客交渉
- スケジュール管理(全体かな)
- デザイナー
- デザイン
- ユースケース
- アンケート
- アンケート作成
- スケジュール管理(自身の)
- エンジニア
- コーディング
- ユースケース
- アンケート
- 数値管理
- スケジュール管理(自身の)
互いのコミュニケーションコストが下がって、エンジニアとデザイナーとのコミュニケーションが増えた。
リリースまでのフロー
昔
→デザイン→開発→リリース
これだと動かしてみてからダメな部分に気づくことが多かった。
今
→デザイン →開発 →リリース
デザインと開発の期間を被せた。早めに問題がわかるようになった。 軌道修正が早くなった。
最後にどれだけ磨き上げるかが重要。
Qiita/Qiita:Teamの開発 Increments株式会社 小西 智也
Qiitaのデザイナの方。開始から3.5年。
Qiita系はデザイナ2人、エンジニア3名で行っている。
文化
- HRT(謙虚、尊敬、信頼)
- ちーむぎーくで紹介されていたやつ
- 属人性の排除
- Focus
詳しくはこちら!
QiitaやKobitoを作る開発チームの文化 - Qiita Blog
体制
常に見直す。
基盤
- Githubを全体で使う
- デザイナーも4000コミットくらいしている
- デザイナーもpull-reqしている
- エンジニアとデザイナのコミュニケーション用でありデザイナーとデザイナーでもやりとりしてる
- Slack
- Qita::Team
- 日報
- 今後の方針などの重いやつも書いている
- なおかつドッグフーディング
他
- スクラム(みたいなやつ)
- 課題の追求
- 入社仕立てのr7kamuraくんがぶっこんで来て議論が一日中続くこともあった(良い意味で)
- 検証サイクル(ユーザーヒアリング)
ポジションをとる
全員がお伺いを立てて物事が進まないことがある。なので個人が意見を主張して物事を進めていく。
まずは何か思ったら身近な人に話してみる。他のメンバーの意見を聞く。
意見を主張すると軋轢が生まれるかもしれないが、むしろウェルカム。
Mac Book Proについての小並感
僕が買ったのは下のマック。
以下小学生並みの感想
- 今までMBA11だったけどそれと比較して
- 当たり前だがちょっと重い
- だがバックパックを買ったので持ち運びは楽勝
- だがしかしオフィス内で移動するときはちょっと手から滑りそうになって怖い
- キーボード
- 当たり前だがちょっと重い
- 13インチRetina
- 背景がすごく綺麗、すごくすごーく綺麗、すごーry
- あとは地味な変化しか感じない正直
- デフォルトのディスプレイの設定だとMBA11インチよりも表示領域がすくなるなるの謎
- 解像度が高いためかドラック時に描画で引っかかる
- Retina対応してないソフトやサイトだと画像がものすごく残念になる
- Yosemite
たまにMBA11インチ触ると落ち着く症状が出ている以外は基本的には快適です。
気になるAdvent Calendar 2014
- Xamarin Advent Calendar 2014 - Qiita
- WebGL Advent Calendar 2014 - Qiita
- Swift Advent Calendar 2014 - Qiita
- Slack Advent Calendar 2014 - Qiita
- Ruby on Rails Advent Calendar 2014 - Qiita
- Ruby Advent Calendar 2014 - Qiita
- Oculus Rift Advent Calendar 2014 - Qiita
- Machine Learning Advent Calendar 2014 - Qiita
- h2o Advent Calendar 2014 - Qiita
- Elasticsearch Advent Calendar 2014 - Qiita
- Docker Advent Calendar 2014 - Qiita
- AWS Advent Calendar 2014 - Qiita
- Ansible Advent Calendar 2014 - Qiita
- Excel Advent Calendar 2014 - Qiita
ん、Excel?
各企業ノベルティシール剥がし選手権
退職したので社用PCを返すときに僕は固まりました。
私物のステッカー等は、はがして返却すること
((((;゚Д゚))))ガクガクブルブル
(((((((( ;゚Д゚))))))))ガクガクブルブルガタガタブルブル
ちょっと控えめに貼っていたにしろこれはつらい・・・。
曇りなき眼で剥がし始める
一番はがしやすいやつから行きましょう。
まずはコロプラ
え!?
えぇ!?
そういうタイプなの!?
綺麗に残ってる。
うん、綺麗だ。
いきなりこれでは先が思いやられる。。。
あとまわしだ、次はNiigata.pm
うえーい!はがしやすい良いシール!これは再利用できそうなので取っておこう。
お次はtwelvesouthさん
あ、これは…これはだめなやつだ…爪をやられたので次…
次はgithubと見せかけたcakeのシールです。
これは!思った通りだ!小さい時にタンスに貼っちゃうシールと同じタイプのやつだ!!
ぐはっ!
うん、やめよう、、、これは道具の登場を待とう、、、
よっしゃ!幻のサービス「なみっく」は一瞬で剥がせたぜ!!
剥がしたあとも綺麗!完璧!
Co-Workはどうかなぁ?
しゃっっっあああああ!!
よし、次はここをせめるぜ。
まずはお父さん
うん、だよね、、、いいよ、もういいからお父さんは
チームラボはどうかなぁ?
お
綺麗に剥がれた!さすがチームラボ!
うん、最近は安定しているTwitter!さすが!
お次はpixiv!
さくっと
いったぜ!!
お次は天下のAWSですよ!
あ、これは、まさか、、、
あ、やっちゃった、、、タンスだ、、、
AWSのことは忘れてオロさん行きましょう。
おろ?
おろォォォォォォ!!!!
涙を拭いて次に行きましょう(´;ω;`)
mobageは?
OK!
次はBeatRobo
いける!
HTML5はOK!
フォースク行こう!
あれ、いやな予感?
綺麗に剥がれた!そもそもこのシール紙じゃないっぽい!!
enchantJSはぁ?
おっけーくまー!!(・(ェ)・)
ふう、一旦めぼしいのは剥がした。
これからはさっきの積み残し処理だ、、、
Zippoとカッター
まずはZippoだけ塗ってシールを弱らせる
ちょっとまってからー
はい無理〜!!
とここで援軍のカッター攻撃が炸裂!!
刃を水平に保つのが重要です!
一応剥がれた!
ピッカピカ!!!
タンスも〜?
この通り!
cakeも〜
ごりごり
スパーン!!!
見ためピカピカ!(?)
ラストのコロプラさん!!!
おや?
おやおやぁ!!
剥がすのがおもしろい!!
綺麗さっぱり剥がれました。
以上、探しやすさの目安にどうぞ〜
株式会社ガイアックスを退職しました。
株式会社ガイアックスという最近ではソーシャルサポート系で稼いでいる会社を昨日(2014/10/31)退職しました。
(超短期間も含め)在籍していた人で有名な方だと、「Zごろう」さんとか「Xろん」さんとか「Cよんご」さんとか「Aまちゃん」さんとか 最近だとPerl界で超有名な大型フリー素材新人のpapixくんとか、現JPA理事の肥後さんがいたりして なんだかんだエンジニア界隈でも露出している良い会社だと思います。
また最近世間を騒がせている「Mむらい」さんや「TOM」もガイアックス出身です。面白いですね!!
退職した理由
単純にプライベートでやってたプロジェクトがいい感じにノッてきたのでそれに専念したかったからです。
つまり起業が理由です。
ガイアックスのやっている事業ドメインと関係ないプロダクトだったこともあり、 そのへんはまったく後腐れなく送り出してもらえる運びとなりました。
前職について
新卒で入った会社だったのでかなりできないところから育てていただきました。
Webアプリケーションの基本的な部分は内定時代の研修で結構ご迷惑をかけながらも 学ばさせていただいて、なんとか一人でPerlのWebアプリケーションをかけるようになり、 その後の新人研修ではAndroidアプリを一人一つつくれるところまでやりました。
その後はコミュニティサイトをつくったりFacebookアプリをつくったりブログをつくったりiPhoneアプリAndroid、運用改善ツールをめっちゃ導入したりしてました。
またマインド的にエンジニアも数字が見れないとだめだということで、 社長自らの経営講座を実施してくれたり、他の営業の方々からビジネスの話を聞く機会もありました。
そんな感じで起業できる人材を多く育てていて、 最後の方は新規事業に従事していたのですが、 エンジニアしながら営業をやったりマーケティングにも携わることができました。
人によるかもしれませんが、エンジニアに集中したい同期はそのままエンジニア専任になっていたし、 自分みたいに事業の営業も経験するなど
「その人自身がいきたい方向へ行くのをアシスト」
してくれる素晴らしい会社でした。
つながり
退職となってから一番うれしかったのは、今まで一緒に働いた人がちゃんと僕と連絡をとってくれようとしたことです。
入社当時の同期の一部とはこれからも一緒ということもあるし、一緒に開発をした仲間というよりも戦友のような人も自分がやめると聞いて駆けつけてくれたり、メッセージを送ってくださったりしてくれて本当に嬉しかったです。
今後もこの縁を途切れさせずにまた一緒に働ける日が来ると嬉しいなと思いました。
これから
Webアプリ、スマフォアプリが書けるようなったのでこれからはIoTという文脈で マイコンの組み込みをやったり回路をつくったりCADでメカの設計ができるようになれればと思います。
まずはスマフォとのマイコンのインターフェイスあたりから攻めてますがかなり楽しいです。
半導体チップの英語のデータシート(仕様書)を眺めながらプログラミングするのは、 研究時代の論文を見ながら実装するのに似ていて先進的なことをやっている気持ちになれてワクワクします。
常に新しいことを学びながらものをつくる。
自分はこういうことが合っているなぁと実感しながら過ごす日々です。
最後に
自分をここまで成長させてくれた前職には本当に感謝しています。 僕が入ったのはだいぶ過渡期の時でしたが、 最終的には朝礼でほろりもしてしまうくらいのいい会社になりました。
今まで本当にお世話になりました。
ありがとうございました。
Mac初期構築メモ 2014
初期設定
- トラックパッド
- 大体有効に
- ドック
- サイズは小さく
- 拡大にチェックを入れて中くらいに
- ミッションコントロール
- ホットコーナー
- 左上…アプリケーションウィンドウ
- 左下…Mission Control
- 右下ディスプレイをスリープさせる
- ホットコーナー
- キーボード
- キーボードタブ
- F1, F2などのすべてのキー〜って書いてある部分をチェック
- 修飾キーからCaps LockをControlに変更
- ショートカットタブ
- Spotlight検索フィールドを表示は⌘スペースに変更
- 入力ソースの前の入力ソースを選択は^スペースに変更
- キーボードタブ
- アクセシビリティ
- ズーム機能をオン
- スクロールジェスチャと修飾キーを使ってズームにチェックを入れ⌘に設定
アプリケーション
- Chrome
- ブックマーク同期、複数ユーザー設定しているとすぐに環境ができて便利
- Slack
- チームとのチャット
- Skype
- いろんな人とチャット
- Astro
- Facebookメッセージだけを見れるので気が散らない
- Alfred
- 高機能なランチャー。カンペ機能が好き。
- Pocket
- あとで読む
- Better Touch Tool
- Win7みたいに画面をドラッグして横に寄せる
- ShiftIt
- ショートカットを使ってウィンドウの横詰め、全画面などが可能
- Dropbox
- Evernote
- LINE
- Karabiner
- HHK mode
- key repeat tuning
- MBPならOption_RをFnにして、Fn+F1系を明るさ・ボリューム調整にチェック
- Spotify
- Google IME
- 環境設定から円マーク入力時にバックスラッシュになるように設定
- Android File Transfer
- 主にKindle用
- ChromeCast
- ClipMenu
- 色々貼り付けられて便利
開発用アプリケーション
- iTrem2
- 何はともあれこれがないと始まらない
- Xcode
- iOSエンジニアなら
- Dash
- ドキュメント用
- Colors
- 画面上の色を採取してRGBで取得できる
- Gyazo & Gifzo
- 画面の静止画、動画のキャプチャ
- Skitch
- 画面キャプチャとモザイク、説明線、コメントなどの追加
- KeyCastr
- 画面に今入力しているキーを教示できる。技術系プレゼン時のデモ用。
- LightBlue
- Buletooth機器に接続できる。BLEモジュールのデバッグ用。
- Reflector
- iPhoneをつないで画面錠に表示できる
- Sequel Pro
brew アプリケーション
Install Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew list ansible doxygen htop-osx libtool openssl rlwrap apple-gcc42 dvm hub libusb ossp-uuid rrdtool asciidoc elasticsearch icu4c libusb-compat packer sane-backends aspell emacs imagemagick libxml2 pango snappy autoconf fontconfig influxdb libxslt pcre sqlite automake fontforge ino libyaml pdftohtml terminal-notifier bazaar freetype ios-sim little-cms peco tesseract boot2docker gauche irssi little-cms2 phantomjs the_silver_searcher bsdmake gd jasper lua picocom tig cabextract gdb jp2a macvim pidof tmux cairo gdbm jpeg massren pixman tree casperjs gettext jq maven pkg-config vim chromedriver git leptonica mecab plenv watch cmake git-flow leveldb mecab-ipadic postgresql wget codemod glib libevent memcached proctools wine convmv gnu-getopt libffi mercurial protobuf winetricks cscope go libgpg-error mobile-shell pstree xmlto ctags gobject-introspection libgphoto2 mongodb qt xz curl-ca-bundle gradle libicns mysql readline zsh docbook graphviz libksba ncftp reattach-to-user-namespace docbook-xsl gts libpng netpbm redis docker harfbuzz libtiff nkf ricty
Font
http://sourceforge.net/projects/sourcecodepro.adobe/
homebrewを使ってiTerm2でRicty for powerline設定した - Qiita
CLI Tools
brew install git brew install zsh brew install reattach-to-user-namespace brew install tmux brew install wget brew install hub brew install tig brew install sqlite brew install ansible brew install tree brew install watch brew tap laurent22/massren brew install massren # http://qiita.com/yu_suke1994/items/b9fa651d77aed2eae339 brew tap supermomonga/homebrew-splhack brew install cscope brew install lua brew install --HEAD cmigemo-mk brew install --HEAD ctags-objc-ja brew install macvim-kaoriya --HEAD --with-lua --with-cscope brew linkapps or # https://github.com/splhack/macvim/releases curl https://raw.githubusercontent.com/kazuph/dotfiles/master/install.sh | sh git clone https://github.com/junegunn/fzf.git ~/.fzf ~/.fzf/install
Install Programming Language
brew install go go get github.com/motemen/ghq brew install node brew install rbenv ruby-build brew install libtool libxslt libksba openssl libyaml readline rbenv install 2.1.4
おまけ
MBPのダンボールにおにぎり4つ入ってた
ISUCON2014予選でがんばってきた
去年に引き続きISUCON予選に参加しました。
チーム名は「/^o^\マッミョサーン」で最終スコアは26890でした。チームメイトはid:kazupyongと@kokonokaです。
18時過ぎた時点での管理画面での順位は24位でした。
一日目チームはベンチマークツールに致命的なバグがあってそれで高スコアを出していたチームがいたみたいですが、こっちは普通にworkload 18くらいでフィニッシュしました。
言語はrubyで、今回特にミドルウェアの変更・追加は一切行いませんでした。
スコアの上がり方はこんな感じ。
前半はずっとinputと最初の一手の実装に時間を使ってしまっていて、全体の時間を有効に使えませんでした。このへんは完全なる実力不足ですね><
やったこと
初期準備
まずはいつものように公開鍵を配ってメンバー全員がsshで入れるように。
その後bitbucketでレポジトリをつくってpush。そこからアプリケーションを眺めて全容を把握。DBの構造とapp.rbを一通り眺めてbenchを流して見るって感じ。
初期スコアは1200くらい。
それが終わったらまずはmysqlのスロークエリを出します。
my.cnf
[mysqld] slow_query_log=ON slow_query_log_file=/tmp/mysql-slow.log long_query_time=0
pt-query-digestが便利なのでそれもインストール。
sudo yum -y install perl-DBI perl-DBD-MySQL perl-Time-HiRes sudo yum -y install perl-IO-Socket-SSL sudo rpm -ivh http://www.percona.com/redir/downloads/percona-toolkit/2.2.10/RPM/percona-toolkit-2.2.10-1.noarch.rpm pt-query-digest /tmp/mysql-slow.log > ptqd.log
こんな感じでスロークエリを解析しました。
ヤバイやつからワーストでランキングされて見れるので機械的に上から改善して行ってもほぼ問題ないと思います。
またnginxでaccess.logも出しました。レスポンスタイム含めてLTSVで出しましたが、特にLTSVである意味はなかったと思ってます。
/etc/nginx/nginx.conf
log_format ltsv 'host:$remote_addr\t' 'user:$remote_user\t' 'time:$time_local\t' 'req:$request\t' 'status:$status\t' 'size:$body_bytes_sent\t' 'referer:$http_referer\t' 'ua:$http_user_agent\t' 'taken:$request_time'; access_log /tmp/access.log ltsv;
アクセスログのレスポンスタイムなども集計できるスクリプトをつくって以下みたいに出力してました。
NGINX REPO sum[sec] ave[msec] count URL 40 69 591 POST/login 18 18820 1 GET/report 7 79 100 GET/mypage 4 4 1183 GET/stylesheets/bootstrap.min.css 4 4 1183 GET/images/isucon-bank.png 3 3 1183 GET/stylesheets/bootflat.min.css 3 3 1083 GET/ 2 2 1183 GET/stylesheets/isucon-bank.css count status_code 5912 200 591 302 4 304
これを見るととりあえずlogin時のPOSTでレスポンスタイムの総時間が40秒となっていて他のページよりも割合的に時間がかかっているので、ここを修正すればいいことがわかります。 去年のISUCONと同じ集計スクリプトを使いまわしていたので楽でした。
login時のボトルネック外し
ログイン時にログイン成功・失敗の情報を毎回login_logにINSERTしていたこと、そしてそこからSELECTして過去の失敗履歴を算出しているクエリがワーストクエリだったことを受けて、まずはその部分で複雑なSELECTを実行しないように、専用のテーブルを作成しました。
ログイン失敗時にはそのテーブルにipとuser_idをINSERT or UPDATEして失敗数をCountして行き、ban or lockされているかはそのテーブルからシンプルにSELECTするだけでいいように変更していきました。 作業する度にスコアが徐々に上がり、1200→3000→4500となり、workloadをこの辺でいじり始めて7000ほどになり、最後にlogin_logが必要なくなったのでINSERTしてる部分も削除してスコアが1万を越えました。
終了2時間前くらいでやっとインデックスを貼る
別に最初から貼ってもいいですが、login_logなどは使わなくなることが戦略的にわかっていたので、無視して続けていました。
ここで自分たちで追加したbanとlockを管理するテーブルにおけるクエリが、スロークエリのランキグの上位を占めていたので、INDEXを貼ったら1万5千くらいまでになりました。
my.cnfのチューニング
id:kazupyongさんの秘伝のタレを豆乳!2000くらい寄与した気がします。
cannot assign requested address
このへんでベンチツールが悲鳴を上げるようになりました。直感的にulimitかなって思ったのですがとりあえず何も変わらず、最終的にtcpかなーって言ったらid:kazupyongさんが記事を発見して解決してくれました。さすが!
参考記事
http://d.hatena.ne.jp/download_takeshi/20091013/1255443592
http://blog.ybbo.net/2013/05/27/tcp%E3%81%AEtime_wait%E3%82%92%E7%84%A1%E3%81%8F%E3%81%99%EF%BC%81/
workload調整
workload 4くらいでずっと来ていたのを一気に12や18とかに増やして行き、いい場所を探しました。結果的にこれで2万くらいになりました。
nginxによる静的ファイルのキャッシュ化
どの時点でやったか忘れましたが、この変更では数百くらいしかスコアがあがらなかった認識です。
打つ手をなくし1時間くらいぶらぶらする
新規にテーブルを作成してカウントする方法は元々安牌で、時間があればmemcachedにしようと思っていたのですが、結果的に最後でバグるのを怖れ動けずにいました。
この時点でやったら1万くらい上がっていたかも?
またこの時点で、レスポンスタイムの総計が一番大きいのがGET /となっていたので、これを解決しようとも考えていました。
原理的にはクッキーに値を埋め込んで、nginx側でif文で振り分けURLをリライトすればnginx側だけでキャッシュしたページを捌けるので速くなるだろうと踏んでいましたが、
「え、それどう設定すればいいの(^q^)」ってなって断念。
普段からやってないことはやっぱりできないですね、、、
ラスト20分、思いつきの一手
GET /改善したい!って思って、超雑にrubyの変数を使ってerbのレンダリング結果をキャッシュするようにしました。unicornで10プロセス立ち上がっているので、正直効率悪いのですが、これとworkloadの調整で最後に20000から27000くらいまであがりました。
app.rb
get '/' do - erb :index, layout: :base + if flash[:notice] == "This account is locked." + $html_l ||= erb :index, layout: :base + elsif flash[:notice] == "You're banned." + $html_b ||= erb :index, layout: :base + elsif flash[:notice] == "Wrong username or password" + $html_w ||= erb :index, layout: :base + elsif flash[:notice] ||= "You must be logged in" + $html_y ||= erb :index, layout: :base + else + $html ||= erb :index, layout: :base + end end
はぁー、nginx力あげたい。
終わりに
正直自分たちのレベルでやりたいことは全部やってしまっていて、できると思った実装は全部実現しただけでも良かったのですが、まだまだ実力不足ということを思い知らされました。
実力があれば、
- テーブル増やしてカウントの対応をやったあと、memcached/redisでさらに高速化できた→実装速度不足
- tcp周りで意外に時間を消費した→Linuxのカーネルパラメータ周りの設定経験不足
- MySQLだけでもhandlersocketが使えた?→知らん、経験不足
- nginxの設定だけで出すべきGET /を振り分け→一度でも勉強していればすぐできた
- 他、気づいてない部分での高速化
などできたのかなと思います。
また過去の経験からhtopやdstatは使ってるとかっこいいけど、パフォーマンスを上げることについてはなんら寄与しない
って思っていましたが今回もそうでした。強いて言うならhtop叩いてcpuが暇してればworkloadの変更の時ってことくらいですね。
測定からボトルネックを探し、そこに集中して改善作業を続けるってことは完全に実践できたと思うので、あとは
- 測定力そのものを上げる→自分たちが気づいてないボトルネックがあるはず
- 改善力を上げる→自分たちが実装できないことがたくさんあったはず
ということで、来年へ向けて刃を研いで行きたい所存です。
運営の方へ
楽しいISUCONをありがとうございます。
来年もまた実力を上げてリベンジしたいと思います。
来年はworkloadで何も変なことが起こらないといいですね★
お疲れ様でしたm( )m