Slide 1

Slide 1 text

退屈なことは バッチにやらせよう ~ Github Actions編 @mako_makok 2021/02/24 生産性向上 Tips LT会

Slide 2

Slide 2 text

自己紹介 ● 名前: 小林允(@mako_makok) ● 所属: 株式会社ラクス ● 楽楽勤怠のバックエンドエンジニア ● たまにフロントエンドもやる ● Spring Boot/Java/Kotlin/TypeScript/React

Slide 3

Slide 3 text

生産性を上げるためには ● 生産性を上げるためにはやらなくていいことはやらないようにする ● ルーチンは自動化しよう ○ 毎日の天気を調べる、新刊の情報を収集する、etc... ● 自動化といえばバッチ

Slide 4

Slide 4 text

どのscheduler使うか問題 ● Rundeck ● 各種CI ○ Github Actions ○ Circle CI ○ Jenkins ● cron ● heroku scheduler ● FaaS ○ Lambda ○ Cloud Functions and more...

Slide 5

Slide 5 text

どのscheduler使うか問題 ● サーバー立てるのはカロリーが高すぎる ● できればサーバレスでやりたい

Slide 6

Slide 6 text

どのscheduler使うか問題 ● Rundeck ● 各種CI ○ Github Actions ○ Circle CI ○ Jenkins ● cron ● heroku scheduler ● FaaS ○ Lambda ○ Cloud Functions and more...

Slide 7

Slide 7 text

どのscheduler使うか問題 heroku scheduler

Slide 8

Slide 8 text

どのscheduler使うか問題 ● Rundeck ● 各種CI ○ Github Actions ○ Circle CI ○ Jenkins ● cron ● heroku scheduler ● FaaS ○ Lambda ○ Cloud Functions and more...

Slide 9

Slide 9 text

どのscheduler使うか問題 ● 定期実行するだけならGithub Actions と Circle CIどっちでもいい ○ よりお手軽なGithub Actions ● Lambda と Cloud Functions ○ FirestoreなどのNoSQLを利用できるので永続化層が必要そうな バッチもかける ○ CIツールよりも豊富なトリガー

Slide 10

Slide 10 text

天気を通知する ● ユーザー数1(自分) ● 天気を取得するAPIを叩く ● それを整形してSlackに通知 ● 2API叩くだけなのであんまり複雑なことしなくてもできそう ● Github Actions を利用する

Slide 11

Slide 11 text

Github Actionsの利用手順 ● Repositoryに.github/workflows/*.ymlを配置するだけ

Slide 12

Slide 12 text

Github Actionsの利用手順 ● Repositoryに.github/workflows/*.ymlを配置するだけ 毎日9時に実行

Slide 13

Slide 13 text

Github Actionsの利用手順 ● Repositoryに.github/workflows/*.ymlを配置するだけ 見えちゃダメそう なやつはsecret に

Slide 14

Slide 14 text

Github Actionsの利用手順 webpack && node dist/main.js

Slide 15

Slide 15 text

Github Actionsのメリット ● リポジトリで管理できる ● cronを実行するだけだったらあまり難しい設定はいらない ● 好きな言語でかける ● サーバー管理がいらない ● ちょっとしたスクリプトを定期実行したいケースに向いてる ● もちろんCI, CDにも https://github.com/mako-makok/weather-notificator

Slide 16

Slide 16 text

まとめ ● ちょっとしたバッチなどはCIツール使うと便利 ● 複雑なことしたくなったらFaaSを検討してみてもいいかも