Upgrade to Pro — share decks privately, control downloads, hide ads and more …

退屈なことはバッチにやらせよう

Ff1e356e879c9a03c73e7891cb9d63a6?s=47 mako_makok
February 24, 2021

 退屈なことはバッチにやらせよう

Ff1e356e879c9a03c73e7891cb9d63a6?s=128

mako_makok

February 24, 2021
Tweet

Transcript

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

  2. 自己紹介 • 名前: 小林允(@mako_makok) • 所属: 株式会社ラクス • 楽楽勤怠のバックエンドエンジニア •

    たまにフロントエンドもやる • Spring Boot/Java/Kotlin/TypeScript/React
  3. 生産性を上げるためには • 生産性を上げるためにはやらなくていいことはやらないようにする • ルーチンは自動化しよう ◦ 毎日の天気を調べる、新刊の情報を収集する、etc... • 自動化といえばバッチ

  4. どのscheduler使うか問題 • Rundeck • 各種CI ◦ Github Actions ◦ Circle

    CI ◦ Jenkins • cron • heroku scheduler • FaaS ◦ Lambda ◦ Cloud Functions and more...
  5. どのscheduler使うか問題 • サーバー立てるのはカロリーが高すぎる • できればサーバレスでやりたい

  6. どのscheduler使うか問題 • Rundeck • 各種CI ◦ Github Actions ◦ Circle

    CI ◦ Jenkins • cron • heroku scheduler • FaaS ◦ Lambda ◦ Cloud Functions and more...
  7. どのscheduler使うか問題 heroku scheduler

  8. どのscheduler使うか問題 • Rundeck • 各種CI ◦ Github Actions ◦ Circle

    CI ◦ Jenkins • cron • heroku scheduler • FaaS ◦ Lambda ◦ Cloud Functions and more...
  9. どのscheduler使うか問題 • 定期実行するだけならGithub Actions と Circle CIどっちでもいい ◦ よりお手軽なGithub Actions

    • Lambda と Cloud Functions ◦ FirestoreなどのNoSQLを利用できるので永続化層が必要そうな バッチもかける ◦ CIツールよりも豊富なトリガー
  10. 天気を通知する • ユーザー数1(自分) • 天気を取得するAPIを叩く • それを整形してSlackに通知 • 2API叩くだけなのであんまり複雑なことしなくてもできそう •

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

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

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

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

  15. Github Actionsのメリット • リポジトリで管理できる • cronを実行するだけだったらあまり難しい設定はいらない • 好きな言語でかける • サーバー管理がいらない

    • ちょっとしたスクリプトを定期実行したいケースに向いてる • もちろんCI, CDにも https://github.com/mako-makok/weather-notificator
  16. まとめ • ちょっとしたバッチなどはCIツール使うと便利 • 複雑なことしたくなったらFaaSを検討してみてもいいかも