大規模のシステムでインフラからバックエンドまで問題なく戦える状況を維持して平和に過ごしたい。
現状そこそこ大規模なシステムで下はインフラ・ネットワークからバックエンドやフロントエンド、必要な時はアプリまで手を出して動いているので、あらゆる分野に深い知見と技術がある状況を維持して平和に過ごしたい。
cookpad.com のデプロイにおいて SSH + Capistrano でのデプロイが、台数の関係から負荷的に限界にあったところで開発したツールです。
Hashicorp の Serf (当時 Consul はありませんでした) を利用してサーバへ要求を送信、またサーバーへコードを push するのではなくサーバーが S3 等から pull する設計、そして CI 通過後に先行してデプロイに備えるようにする仕組みなどで、デプロイを 20 分〜 30 分程度から平均 10 秒未満に短縮しました。
https://speakerdeck.com/sorah/scalable-deployments-how-we-deploy-rails-app-to-150-plus-hosts-in-a-minute
https://github.com/sorah/mamiya
クックパッドの国際展開サービスである cookpad.com/uk のインフラストラクチャを担当しています。(現時点で引き続き携わっています)
バックエンド等も新規開発、また展開先の国々の地理的な関係から、AWS の東京 (ap-northeast-1) ではなく us-east-1 リージョンで新規にインフラを構築する案件でした。
クックパッドでは 2010 年から長く AWS を利用しているので、2015〜16 年頃に蓄積した経験や知見を踏まえ、モダンなインフラを AWS 上に構築しています。
現在は Docker 化や Amazon Aurora 移行、また世界各国からのパフォーマンス改善のために動的コンテンツへの CDN を導入など、このプロジェクトに必要なインフラ面のあらゆる事を担当しています。
また、国際展開という事もあってざまざまなバックグラウンド(母国・文化)の人と英語で対話する機会が多く、貴重な経験をしています。
クックパッドにおける「開発基盤」の開発、構築、運用の業務をしています。今は主担当からは外れていて、本番環境を含めたSRE業務が中心になっていますが。
開発基盤業務では開発者が素早く快適に開発ができるように取り組むことが中心になります。下記のようなことをやっていました。
このプロジェクト詳細は公開されていません
機械学習とかやったほうがいいんだろうなーとは思いつつ、まあ自分が得意とする低いレイヤーの技術に長けていれば問題ないかなと思って静観をしている。
おそらくマイクロマネジメントされるのが苦手で、転がっている課題や隠れた課題を自分の時間を自由に利用して勝手にどんどん解決することを許してくれる職場は快適。