角待ちは対空

おもむろガウェイン

ISUCON8予選の感想

今年は勝てるという自信があったけど結局負けました。

isucon.net

反省をするならば

  • アプリケーションを見た時点で自分ならこう作るなというイメージが沸かなかった
    • ので、悪いのがアプリケーションコードなのかDBのスキーマなのか判断つかずに闇雲な改善策を取ってしまた
    • そしてその改善策がビックバンリリース的で、さらに結局失敗した
  • 自分はコードを書くのがそんなに早くない、というか遅いので、早い人がいるのであれば任せたほうがいいなと思ってしまった

一番最初のボトルネックを潰すのにあんまり良いアイデアが浮かばず、かつ自分の消極性からメンバーに頼り切りにしてしまったのが良くなかった。 僕個人の能力も足りてないし、チームとして成果でリカバリしようという姿勢もなかった。

試合終了後に冷静に自分ならどう作るかを考えたとき、「まぁ予約だとかキャンセルはイベント全部記録しておいて今の状態を知りたいならば頭からイベント再生するよな」といういわゆるイベントソーシングの考えに至ったけど、時すでに遅しという感じだった。 改めて見るとアプリケーションコードはダメダメだけど、DBのスキーマはそのような意図のスキーマになっていたので初手としては上記の考えに従って改善していればよかったと思う。実際はそれでもボトルネックの解消にはならないのでキャッシュする等の次の施策が必要になるのかもしれないけど、そこにすらたどり着けなかった。

初手逆走してしまうと厳しい。小さい逆走ならともかく大きく逆走のも良くなかった。 これは普段のソフトウェア開発と同じで、小さくリリースしましょうとか一人に大きなタスクを押し付けないとか基本的なことの積み重ねなので、つまり普段やってることが全然いかせてないか普段からできていないかのどちらかということになる。

毎年今年は勝てるでしょという謎の自信のもとに参加して負けるわけだけど、今年は特に打ちのめされた。

来年も開催されるのであれば今度こそ予選勝ち抜きたい。


最後になりましたが、運営の皆さまお疲れ様&ありがとうございました。

今週は疲れた

今週は社会人になってから一番いろいろあった週だった気がする。

台風でベランダの非常時に破る壁が破壊されたり、地震の対応でCentOS5で動いてるアプリケーションをDebian8で動かせるようにしたりwgetでスクレイピングしたり。

思えば週の前半はAmazon Elasticsearch ServiceとFilebeat試して喜んでいた。激動でした。

CloudFormation 再入門

CloudFormation、これ書くのマジで??と思って極力書かない方向に進んでたけど、そろそろ手でポチポチ作ってると怒られる雰囲気になってきたので学び直した。

github.com

今気づいたけど略称はCFnだった。

特に構築するものがなかったので「Amazon Web Services 基礎からのネットワーク&サーバー構築」読みながら同じもの作った。(嘘、途中でもうこれ以上同じもの作っても実り無いなってとこでやめた)

blog.a-know.me

この記事と同じアイデアです。


リソースの定義ファイルとしてはCFnでいいんだけどやっぱりもう一層上の何かがほしい気がする。ほしい気がするんだけど何がほしいのか自分でもわかっていない。aws-cdkかといえば多分そんなことはない。補完効かせられるvscode拡張はほしい。

まぁなんか自分でもう少し複雑なもの作ってみないとわからないなぁという結論に至った。けど、そんなにAWS使う仕事してないのでつくる機会もあんまりないのが厳しいところ。この職業、作りたいものがないっていうのは結構危機的状況だと思う。


「Amazon Web Services 基礎からのネットワーク&サーバー構築」良い本だと思った。本自体はCFn全く関係なくて、基礎からのネットワーク&サーバー構築を解説している。インスタンス立てる前にネットワーク設計してるところが良い。AWSは特に初手インスタンス立ててしまいがち。

こういう本は解説通りやっていってもいいけど、ちょっと違うことやると意味をちゃんと理解してないと進めなくなるので、そういう意味ではCFnで同じことするのはいいやり方なんじゃないかなと思った。

とはいえ、自分はターゲット層ではない。よくいう新卒の頃に読みたかった本。

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版