デプロイボット

slack-ruby-bot を使ってslack経由でBlue/Greenデプロイ出来るbotを作りました。

bot用フレームワークだと Pythonnode.js 製が多い気がするが社内の技術スタックを考慮してruby製のものを使ってみましたが比較的使いやすかったです。

連携

BitBucket, Slack, CircleCI, ElasticBeanstalk を連携することで実現しています。

Heroku

botを動かしているのはherokuです。

Heroku Teamsを使っているがHeroku TeamsだとFree Dynoが使えないということを今回知りました。

Free Dynoだけでいいなら無理にTeamsにしない方が良いかもしれません。

解決したい点

なぜ実装しようかと思ったかというと下記のような点を解決したかったからです。

  • すべて完了するまで最大30分近くネットが繋がっている必要があり、途中で接続が切れたりすると最初からやり直しになってしまうという状態だった。
  • デプロイのために各自の環境にセットアップが必要。
  • 各種手作業で行う箇所があった。
    • リリース完了報告
    • 作業経過報告
  • デプロイ担当者のネットワーク環境に依存している部分がある。

Fedexウィーク

プロトタイプ自体はFedexウィークという業務に直結しないタスクでも自由に行ってよいという制度の中で作成しました。

突貫工事の部分だったり他のプロジェクトに流用できるように設定ファイル経由にしたりと細かいところの調整に+1週間くらい業務タスクの合間に行ってやっと完成しました。

これから

今はデプロイだけを担当しているが他の事もやらせていきたいところです。

タイに戻った時に不安定なネット環境でもちゃんとデプロイが安定してできることを早く確認したいです。