sekaie engineers' blog

セカイエ株式会社が主催するエンジニア勉強会について

セカイエのデプロイ事情について

こんにちは

現在成長期を迎え、体重は 84kg になりました。佐々木です。

今日はセカイエアドベントカレンダー3日目です。

セカイエのデプロイ事情について紹介したいと思います。

qiita.com

今までのデプロイ

今のセカイエでのデプロイは、デプロイサーバにログインしてそこからシェルを実行してデプロイを行っていました。

問題点

今から上げる問題は、セカイエで毎週行っているエンジニア勉強会の最後の問題定義時間(雑談タイム)で挙げられていた問題点です。

その時の状況でシェル書き換え問題

デプロイにはいくつか種類があって、画像の同期が必要だったりとその時の状況によってシェルを書き換えて実行したりしています。

これではいつか事故が起きてしまう可能性があります。

デプロイ担当者問題

自分もサイトに修正を加えた時に直面したのですが、リリースフローがしっかりしていなくて混乱します。

その時の状況でリリースフローが変更したりすることが、混乱を招いてしまう原因となっています。

なので、デプロイはある程度サービスを理解しているエンジニアが担当しています。

デザインの簡単な修正だけでもデザイナーがエンジニアにお願いしてデプロイをしてもらっている状況です。

テストしてない問題

この流れで話す内容ではないので大変恐縮なのですが、セカイエではユニットテストなどが出来ていません。

逐一ページを閲覧し挙動を確認しながらテストもどきなことをして開発をしています

これが開発スピードを大きく下げている原因ともなっています。

モデルの変更などをした場合どこに影響があるのか。といったこともわからず大変な思いをしました。

簡易デプロイツール

と、まあ小さな問題が幾つか残っているのが今までのセカイエのデプロイ事情でした。

これらの問題を一つでも解決できるようにデプロイサービスを開発しています(現在進行形)

今日はこれを紹介させてください。

ダッシュボード

f:id:sekaie:20151202220231p:plain

ここは各プロダクトのデプロイ状況を閲覧出来るページです。

ただ様になってるから紹介したかっただけです←

デプロイジョブ

f:id:sekaie:20151202220536p:plain

このページはデプロイジョブの詳細を確認できるページです。

デプロイにはそれぞれデプロイの処理が定義されていて、それがどのような挙動をとったかを確認することができます。

これからのデプロイ

今日紹介したデプロイサービスはあくまで今までの手作業だったデプロイをサービス化したものになります。

まだリリースフローが決まっているわけではなく、問題として定義したテストなどがちゃんとできていない状況です。

ただ、このデプロイサービスを中心に CI やリリースフローの策定などを行っていける準備ができてきたと思います。

この辺がしっかり定まって形になったら、再度ブログで紹介できたらなと思っています。

おわりに

余談ですが、僕は分析基盤チームで主に分析ツールの開発をしています。

今回のデプロイツールは僕の守備範囲外ではあったのですが、エンジニア勉強会で話題に上がった問題を皆で解決していこう!といった空気がエンジニア内で生まれてきたのが一番の成果なのかなと思っています。

今日はセカイエアドベントカレンダー3日目でした。

明日の4日目担当は大西さんです。

ほな!