振り返り的なやつです。
作った
no_excl_open
LD_PRELOADをつかって、ファイルを作成する際の O_EXCLを取り除いてみるもの。
詳しくは YAPC::Okinawa 2018 前夜祭で喋った
relaxlogs
daemontoolsで動かしているデーモンのログをもう少し長くとりたいということで書いたもの。lestrratさんのfile-rotatelogsをコマンドにしたものとも言える
wsgate-server
なんらかの汎用的な認証を通して、MySQLに繋ぎたいということで書いていたもの。WebSocketはインターンにきていた優秀な若者がだしたアイディアからきている。
wsgate-client
wsgate-serverのclient。そういえば某productionでMySQLに対してコンテナから接続するために動き始めている。
この2つに関してはblog書いていた。
mackerel-plugin-linux-process-status
プロセス単位のCPU使用率をとるために書いた。statusと言いつつCPU使用率しかとれないので名前負けしている。
とあるリリースでMySQLのCPU使用率があがっていたが、昼間に気づかずアクセスの上がる夜間にサービスに影響がでてしまった障害があり、影響が出てしまう前に検知するためにつくった。
サーバのCPU使用率で十分じゃないかと思うが、backupやログの圧縮でCPU使うことがあり、単純な監視では誤検知が多くなりそうということで、この監視プラグインを作成した。現在は全てのMySQLサーバに導入済み。
sabo
毎日0時に動くとある処理に、複数のDBからデータをmysqldumpなどでかき集めて、処理に適したフォーマットに変換して、S3にアップロードするというものがあるのだが、その際にネットワークを使いすぎて、サービスに影響が出ているかもしれないということで作った。(サービスへの影響は別の原因だったわけだが)
throttleというコマンドがあり、これはpipeで挟み込むことで処理の速度を制限するものがある。production環境でも巨大なログの転送などで利用している。
cgroupsを使うというアイディアもチームで話をしたときにあったが、ピンポイントで帯域制限ができるthrottle形式でやってみた。
MAX_BW=100M WORK_DIR=/tmp/sabo_for_dump mkdir -p /tmp/sabo_for_dump mysqldump -h backup1 db table1 | sabo --max-bandwidth $MAX_BW --work-dir $WORK_DIR > /tmp/sabo_for_dump/table1.sql & mysqldump -h backup2 db table2 | sabo --max-bandwidth $MAX_BW --work-dir $WORK_DIR > /tmp/sabo_for_dump/table2.sql & wait
saboはwork-dir内にファイルをつくり、flockをかける。一定間隔でwork-dir内のflockがかかったファイルの数を数え、max-bandwidthをそれで割る。
なので、2つのmysqldumpのうち、一つが終われば残った方は最大の帯域が使えるようになるということ。production環境でも落としてくるデータのサイズはバラバラなので、等しく帯域制限をかけてしまうと無駄が多くなる。
名前は「みいつけた」からとった。
motarei
Dockerコンテナを雑に動かして、さらにHot Deployしたいと思って書いたもの。blogも書いていた。
motarei + server starterという環境でproductionで某某が動き始めている。
ところで、productionで動かし始めて気づいたことではあるが、go版のserver starterには、新しいプロセスが正しく起動してなくても、古いプロセスを止めてしまうという問題があった。
こちらは修正済みになる。
Fix worker exiting detection by kazeburo · Pull Request #17 · lestrrat-go/server-starter · GitHub
ちなみに名前は「みいつけた」からとった。
--
6/7がGo言語、のこり一つがC言語。 社内のrepoにしかないものでもGo言語が増えている。Perlで書くのはmackerelの監視プラグインぐらいだ。
喋ってきた
気づいたら後半は喋ってない
2月 Developers Summit
インフラチームからSREへ / SRE in Mercari Developers Summit 2018
3月 YAPC::Okinawa 2018 ONNASON
沖縄楽しかった!
3月 MANABIYA Teratail developer days
7月 July Tech Festa 2018
--
仕事ではSREに新メンバーが増え、MySQL、検索、データセンターのプロジェクトなどチームとしてできることがかなり広がってきました。その一方で北海道での地震の影響、外部のネットワークトラブル、データベースへの負荷などお客様にご迷惑をおかけしてしまうこっとも多くありました。お客様に信頼性や価値を届けるためにできることはまだまだあると考えており、来年以降も取り組んでいきます。
そろそろ「SREは死んだ、これからはXXXだ」みたいなトークやりたい