Slide 1

Slide 1 text

confidential ©KitchHike Inc. GitHub Actions を導入した経緯 Takuma Yamamoto 株式会社キッチハイク 2022.06.09

Slide 2

Slide 2 text

confidential ©KitchHike Inc. BIOGRAPHY あなたは誰ですか? ● バックエンド: Ruby on Rails ● フロントエンド: React ● アプリ: React Native 2 技術スタック SNS ●  https://github.com/tamago3keran ●  https://twitter.com/yamataku3831 ●  https://qiita.com/tamago3keran ● サウナ ● 韓流ドラマ ● アニメ ... 趣味 Takuma Yamamoto Work at KitchHike, Inc. From Miyazaki

Slide 3

Slide 3 text

confidential ©KitchHike Inc. Continuous Integration TODAY’s TOPIC 3 弊社が GitHub Actions 導入に至った経緯を紹介 Continuous Delivery GitHub Actions を使用して、RubCop や ESLint によるソース コードの静的解析や、 RSpec や Jest による自動テストなど、 効率的な開発を行っています。 GitHub Actions を使用して、React Native で作成したモバイ ルアプリをアプリストアに自動送信・申請しています。

Slide 4

Slide 4 text

confidential ©KitchHike Inc. TODAY’s GOAL GitHub Actions 導入のきっかけに 導入へのきっかけ ご自身で開発しているプロダクトに導入 してみようかなと、考えるきっかけにな れば嬉しいです。 導入事例を知る どういった背景や経緯で導入し、結果ど ういうメリットを享受できたのかについ て、紹介します。

Slide 5

Slide 5 text

confidential ©KitchHike Inc. What is GitHub Actions? そもそも GitHub Actions とは何ですか? 5

Slide 6

Slide 6 text

confidential ©KitchHike Inc. GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub. INTRODUCTION 6 GitHub 製の CI/CD ツール GitHub上のアクションなどをフックして、ビル ド・テスト・デプロイを自動化できる、GitHub 製の CI/CD ツールのことです。 引用元: https://github.com/features/actions

Slide 7

Slide 7 text

confidential ©KitchHike Inc. Continuous Integration コードの静的解析やテストなどの自動実行 7

Slide 8

Slide 8 text

confidential ©KitchHike Inc. Wercker のサービス終了がきっかけ BACKGROUND 8 引用元: https://devcenter.wercker.com Important Notice: Wercker service will be shutdown on October 31st, 2022 . We recommend you to use OCI DevOps service. Thank you for using Wercker. 他サービスへの 移行を検討することに...

Slide 9

Slide 9 text

confidential ©KitchHike Inc. 他 CI サービスを調査して費用を比較検討 INVESTIGATION 9 GitHub Actions CircleCI AWS CodeBuild OS メモリ CPU 1ヶ月の固定額 1ヶ月の無料時間枠 1ヶ月あたり有料で賄う時間 1分あたりの料金 1ヶ月の支払額($) Linux 7GB 4 $5(= 1+4) 100分 11,900分 $0.01 $124 Docker / Linux 8GB 4 $19(= 15+4) 2,750分 9,250分 $0.012 $130 Linux 7GB 2 $4 3,000分 9,000分 $0.008 $76 ※ 弊社の場合、CI 実行にかかる時間は 1ヶ月で約12,000分 程度だったので、その前提で計算しています。 ※ OS とメモリを可能な限り近い条件にして比較しています。 ※ AWS CodeBuild は AWS CodePipeline との併用を前提とし、その利用料を固定額に含めています。 ※ AWS CodeBuild は US East(N. Virginia) リージョンで計算しています。 ※ AWS CodeBuild と CircleCI は別途 GitHub の利用が必要なので Pro プランの固定費も含めています。 ※ https://qiita.com/tamago3keran/items/c16a25bb4bead6b15ac8

Slide 10

Slide 10 text

confidential ©KitchHike Inc. GitHub Actions が最も安い費用で運用できる ADVANTAGES 10 GitHub Actions CircleCI AWS CodeBuild OS メモリ CPU 1ヶ月の固定額 1ヶ月の無料時間枠 1ヶ月あたり有料で賄う時間 1分あたりの料金 1ヶ月の支払額($) Linux 7GB 4 $5(= 1+4) 100分 11,900分 $0.01 $124 Docker / Linux 8GB 4 $19(= 15+4) 2,750分 9,250分 $0.012 $130 Linux 7GB 2 $4 3,000分 9,000分 $0.008 $76 ※ 弊社の場合、CI 実行にかかる時間は 1ヶ月で約12,000分 程度だったので、その前提で計算しています。 ※ OS とメモリを可能な限り近い条件にして比較しています。 ※ AWS CodeBuild は AWS CodePipeline との併用を前提とし、その利用料を固定額に含めています。 ※ AWS CodeBuild は US East(N. Virginia) リージョンで計算しています。 ※ AWS CodeBuild と CircleCI は別途 GitHub の利用が必要なので Pro プランの固定費も含めています。 ※ https://qiita.com/tamago3keran/items/c16a25bb4bead6b15ac8

Slide 11

Slide 11 text

confidential ©KitchHike Inc. Continuous Delivery アプリストアへの送信・申請を自動化 11

Slide 12

Slide 12 text

confidential ©KitchHike Inc. セキュリティ面を考慮してオフィスのマシンでのみ申請 BACKGROUND 1 12 アプリ申請するためには「証明書」が保存されている端末で Archive する必要があります。ただし、証 明書を開発メンバー全員が所持していると、流出するリスクを高めてしまいます。よって、「証明書」 をオフィスのマシンにだけ保存するようにしました。 それに伴って、アプリ申請がオフィスのマシンに依存するような状態になっていました。

Slide 13

Slide 13 text

confidential ©KitchHike Inc. コロナがきっかけで出社しづらい状況に BACKGROUND 2 13 コロナがきっかけで出社しづらくなり、オフィスに足を運ばなくてもアプリ申請できる状態にする必要 がありました。 様々なサービスを調査し、 GitHub Actions が最も低コストで運用できることがわかったので、導入を 決めました。

Slide 14

Slide 14 text

confidential ©KitchHike Inc. アプリのデータ送信・申請をクラウド上で行えるようになった CHANGE 14 GitHub Actions を使用することで、アプリビルドだけでなく、作成されたデータをアプリストアに送信 し、申請する処理まで、GitHub がホスティングしている仮想マシンで行えるようになりました。 After Before 証明書 証明書

Slide 15

Slide 15 text

confidential ©KitchHike Inc. アプリ申請に GitHub Actions を導入したメリット ADVANTAGES 15 コロナでオフィス出社しづらくなりました が、GItHub Actions の導入により、場所を 問わずアプリ申請が可能になった。 証明書も GitHub で管理することで、開発 者全員に配布する必要がなく、セキュリ ティ的にも安心。 他作業に集中できる 手動でアプリ申請する場合は、ひとつひと つコマンドを打ったり、ボタンをぽちぽち していました。 GitHub Actions の導入により、PR を作成 するだけで、自動で申請までされるように なり、その間他作業に集中できるようにな りました。 ヒューマンエラーの防止 オフィス外から申請できる PR を作成するだけで、自動でアプリ申請ま でされるようになったことで、人間が作業 しなくてよくなったので、ヒューマンエ ラーの発生を防げます。

Slide 16

Slide 16 text

confidential ©KitchHike Inc. Summary GitHub Actions 導入メリットのまとめ 16

Slide 17

Slide 17 text

confidential ©KitchHike Inc. GitHub Actions 導入のメリットをまとめると... SUMMARY 17 ● 他サービスと比べると安い費用で CI/CD の運用ができる ● アプリ申請に必要な証明書を開発メンバーのローカルに保存しなくてよいので安全 ● マシンに依存せず、どこからでもアプリ申請を行うことができる ● 申請作業が自動化されることで、その間他タスクに集中することができる ● 人間が手動で作業を行わなくて良いので、ヒューマンエラーを未然に防げる

Slide 18

Slide 18 text

confidential ©KitchHike Inc. Recruitment 弊社のサービス概要 18

Slide 19

Slide 19 text

confidential ©KitchHike Inc. RECRUITMENT We are Hiring! 19 キッチハイクでは、食と暮らしを豊かにしてい く、そんな活動を仕事として取り組みたいエン ジニアを募集しています。 キッチハイク 採用 https://www.wantedly.com/companies/kitchhike

Slide 20

Slide 20 text

confidential ©KitchHike Inc. ご静聴ありがとうございました! 20