開発
最高に手離れのいいSlack botを開発してしまった話
Shoma Saito
みなさんSlackとかで定時に通知するbotってどこにデプロイしてますかね?
AWS系の方々、適当なサーバーでcronを回す方々、様々なデプロイ方法があると思います。
でもそれって手離れがいいですかね?
実際、こうゆうふうに動いてるよ〜という図とか、これがアカウント名とパスワードだからこれ使って入ってね〜とか、めんどいですよね。
実はBitbucket Pipelineを使うと簡単にデプロイ、保守することが出来るんですね、これが。
実際に動いているもの
Eyes, JAPAN には、アルバイトが希望のシフトを申告して許可をもらってから出勤するというシステムがあり、そのサービス上で今日来るアルバイトが見れるのですが、毎回ログインするのもめんどいしカレンダーを見るのもめんどいので、朝イチで出勤するアルバイトの一覧を出すbotを開発しました。
※こんなかんじ
使ったもの
- Go (1.9)
- Bitbucket Pipeline
以上で動きます。
仕組み
Bitbucket Pipelineの紹介ばかりになってしまいますが、あれから変更点が結構多く、新規機能もどんどん開発されているんですね。
その中でもScheduled pipelinesという機能があります。
こんな感じで、ブランチ、ymlファイルに書かれたどのスクリプトを実行するか、どのスケジュールで実行するか、を選ぶだけでそのスクリプトが実行できます。
このプロジェクトの場合は簡単なものなので、ymlファイルの中身はこのようになってます。
このcustomからschedulerというスクリプトを実行しています。
何が嬉しいか
まず第一にデプロイ先を考えなくて良くなりました。
Bitbucketが提供しているサービスで完結してしまうので、変な連携をしなくて済みます。
そしてREADME等にPipelineで動いているよ〜と書いておけば、変にアカウントとパスワードはここに載ってるよ〜など書かなくて済むのでとても手離れがよくなりました。
何がだめか
特にだめなところはありませんが、しいて言えば個人等でやる場合、無料枠に気をつけることですかね。
Pipelineの制限がビルド時間50分/月なのでそれに気をつけたいですね。
ちなみにこのスクリプトはだいたい15~25秒程度なので無料枠でも全然大丈夫ですが、サービスが増えていくとどうでしょうね…
結論、
これが僕の考える一番手離れのいいデプロイです。