ついこのあいだHerokuの新しい機能としてChatOpsがpublic betaでリリースされました。
メルカリでGolangでSlackのbotを作った記事があって、そういうのHeroku版で欲しいな自分で作ろうかなと思っていた矢先のリリースだったので、「なんだよーせっかく作ろうと思ったのにー!」と軽く落ち込んだのですが、使ってみるとHeroku良いじゃん愛してるっていう気分になりました。今回はその機能の紹介というか感想みたいな事を書きます。
詳しくは上のリンク先に詳しく書いてあるのですが、簡単に説明すると Slackと連携してdeployとかpromoteが出来るよと言うものでした。Herokuのpipeline機能を使っているとこのあたり結構うれしいです。
今までもダッシュボード上でぽちぽちやれば簡単にできたのですが、herokuのダッシュボードはあまりレスポンスが良くなくUXが悪いと感じていたので、Slack上でコマンドを打てばdeployされるというのはストレスの軽減になってかなりうれしいです。
コマンドとしては上の記事からの流用なのですが、
deployは、
/h deploy パイプライン名/ブランチ名 to パイプラインのステージ名
で行えます。もうちょっとわかりやすく書くと、
/h deploy my-pipeline/master to staging
とやると my-pipeline
という名前のパイプラインに紐付いているリポジトリの master
ブランチが staging
環境にデプロイされます。
ダッシュボード上でやるとアプリケーションに入ってdeployタブに入ってブランチ選択してdeployみたいな感じになると思うのですが、それが1コマンドで出来るのは素晴らしいですね。
promoteは、
/h promote パイプライン名 from プロモート元のステージ名
で行えます。これももうちょっとわかりやすく書くと、
/h promote my-pipeline from staging
とやると my-pipeline
という名前のパイプラインの staging
にある slug
が production
に promote
されます。とても便利です。
deployやpromoteされた後の経過はSlackのThreadの機能で通知されるのも面白かったです。
出はじめたときはこの機能はなかったと思うのですが、見逃していたのかも知れません。経過がSlackのタイムラインを埋め尽くすことなく控えめにThreadに追記していくというスタイルに好印象を持ちました。
思えばSlackのThread機能って会話に使うには結構不便だと感じていました(Threadでの会話は結構気づかない事が自分は多いです)。でもこういう用途で使うのであればかなりアリですね。Slackは元々人が会話するためにThreadを開発したのではなくbotとのインテグレーションで活用して欲しいという気持ちがあったのかも知れません(妄想ですが)。
以上簡単な紹介と感想でした。まだpublic betaということもあり、いろいろ変わってくるかも知れませんが十分に使える機能だと感じました。HerokuはCIが出来たりChatOpsが出来たりとHerokuだけで全てがまかなえる未来を作ろうと頑張っているのが凄いですね。願わくはTokyo Regionを一刻も早く普通に使えるようにしてくれると日本のユーザとしてはうれしい限りなのですが。