リーン開発を実現するため、「みらい翻訳」が取り組む、マイクロサービス化とデプロイ改善【デブサミ2022】
【18-C-3】リーンな開発を目指す第一歩 ~マイクロサービス化とGitHub Actionsを活用したデプロイ改善~
リードタイム短縮で行われたデプロイ改善――ブランチ戦略の見直しとCI/CDツールの置き換え
SREチームの川村氏にバトンタッチして、セッションが続けられた。川村氏の講演テーマはリリースプロセスにおけるデプロイ改善。リリースのリードタイムを短縮することで開発者の負担を減らし、よりリーンな開発を目指せるようにするために行われたのが、ブランチ戦略の見直しとCI/CDツールの置き換えである。
Mirai TranslatorのアプリケーションのソースコードはGitHubで管理し、ブランチ戦略としては git-flowをベースにしている。Mirai Translatorではベーシックやエンタープライズなど複数のプランが用意されており、プランごとにVPCレベルでリソースが分かれる構成になっている。さらに、ステージング環境と商用環境があり、それぞれの環境ごとにプランのリソースが存在する。商用環境のコピーがステージング環境にある状況である。そしてプランと環境ごとにGitHubのリポジトリにリリースブランチが存在し、ブランチごとにビルドとデプロイを行っているのだ。

プラン・環境ごとにブランチが分かれているためコードベースが環境ごとに異なり、ブランチごとのコミットを気にしなくてはならないという問題がある。ほかにも、リリースブランチごとにビルドを行う、プルリクエストを作るなどの負担が生じる。そして、プランが増えるとその分デプロイの負担も増えていくため、リリースの負担がどんどん増えていくのである。
これらの課題を解消するために、次の3つの変更が行われた。
- 単一のリリースブランチからデプロイできるようにブランチ戦略を変更
- リリースブランチでビルドした成果物もプラン・環境ごとに単一にした
- デプロイはすべてのプランおよび環境で同一の成果物を使用する
リリースブランチは単一にして、同じ成果物を各プラン環境にデプロイするように変更したのである。合わせてデプロイ用にChatOpsも開発し、ステージ環境と商用環境のデプロイタイミングが異なるのでその制御の手段として、Slackからのコマンド実行でデプロイを行えるようにした。

2つ目がCI/CDツールの置き換えである。CI/CDの実装をより柔軟に行いデプロイの効率化や処理の追加・変更を素早く行うため、CI/CDツールをCircleCIからGitHub Actionsに置き換えた。GitHub Actionsの利点としては、ソースコードをGitHub上で管理しているためGitHub上でデプロイまで完結できること、ワークフローの細分化や再利用性が良いのでコードのメンテナンスがしやすいことがある。ほかにもOpen ID Connectをサポートしているため、 GitHub側でAWSのデプロイをするときに使用するクレデンシャル情報の管理が不要になるなどがある。
ツールを変更するにあたっての難易度について川村氏は「CircleCIとGitHub Actionsのワークフローの定義が、どちらもyamlでしたので、移行の難易度はそんなに高くなかったと考えています」と話した。
こうした改善により、リリースのリードタイム短縮とデプロイ安全性向上が実現した。まだ商用リリースがされていないが、リリースのリードタイム短縮は5日から2日に短縮される見込みである。デプロイの安全性向上については改修で単一の成果物を使用するようになったため、環境ごとのビルドや環境差分を気にする必要がなくなっている。今回の取り組みで改善は終わりではない。今後はデプロイとリリースの分離やアプリケーションのインフラのコンテナ化などを行い、リリースのサイクルの高速化などを目指していく。川村氏は「それ以外にもやりたいことはいろいろ山積みの状態です」と語った。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- Developers Summit 2022 レポート連載記事一覧
- この記事の著者
-
森 英信(モリ ヒデノブ)
就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
