1. ゆるITエンジニア道場
  2. プロダクト開発でよく使うCI/C..
2025-10-14 09:05

プロダクト開発でよく使うCI/CDの中身を紹介

riddle です。

一般的なWeb開発(モバイル、フロント、バックエンド、インフラ)で使っている CI/CD の種類について紹介します!


--------------------------------------------------------------


riddle : https://x.com/riddle_tec

ひびの : https://x.com/nasustim


番組へのお便りはこちら:https://forms.gle/gp78XNFgERDFDkb88

サマリー

CICDはプロダクト開発において重要な役割を果たし、テストやデプロイの自動化を実現します。彼らはモバイル、フロントエンド、バックエンド、インフラの各領域におけるCICDの具体的な実践方法を詳しく紹介します。

CICDの基礎
こんにちは、シニアソフトウェアエンジニアのriddleです。このポップキャストでは、IT業界のいろんな話やリアルをお届けします。
今回はですね、一般的なウェブ開発における我々が用意しているCICDのツールだったりだとか、その方法みたいなところをご紹介したいと思います。
CICD皆さん導入してますかね。あるとないとでは運程の差ということで、いろんなものを整備していきたいところです。
今回はですね、モバイルとフロント、バックエンド、インフラっていうそれぞれの領域でどのようなものを用意するかっていうのを、いろいろご紹介できればと思います。
今回はですね、ちょっと前提としてですね、GitHubで説明させてください。使うCICDツールは何でもいいんですけれども、一応タブアクションで説明しようと思います。
さて、CICDなんですけれども、CIっていうのは継続的なインテグレーションっていうところでテストをしたりとか、コードの品質を保つようなものによく使われますね。
で、CDというのは継続的なデプロイのことを指しまして、実際に環境にですね、作ったものをデプロイする、適応するみたいなところに使われます。
でですね、CIとCDがどういう時に使うかというとですね、GitHubにおいてはプルリクエストを作った時に動くのがCI、そのプルリクエストがマージされて、いわゆるメインのブランチですね。
そこに入った時に動くものがCDという感じで運用されることが多いです。それぞれプルリクのトリガーとプッシュのトリガーって言い方をすることが多いですけれども、まずはその対別を認識してみてください。
でですね、その上でモバイルの話からしていくと、いや、まず共通的な話をしますね。基本的にプルリクを出したら、まあそのコードの品質を担保したいのでテストが行われますと。
プルリクトリガーですね。あとはリンカーとかフォーマッターといったような、いわゆるプロジェクトで定めているコーディング規約にのっとっているかとか、変な書き方になっていないかみたいなことをチェックする
CIが流れます。また最近はAIのレビューアーとかもいますので、こちらもプルリクのトリガーで動いていろいろコメントをしてくれたりということはあるかなと思いますね。
こちらはですね、コミットをつぶる度に毎回新しいCIのジョブが動き出すので、毎回毎回新しい結果が出力されて、そのCIの結果が全部通った上で他の人のレビューを受けてアップルだったら
マージして ok みたいなことを運用することが多いかなと思います。 なのでこのテストとかリントフォーマットっていうのはモバイルだろうがフロントだろうが
バックエンドインフラだろうがどこでも基本的には存在することが多いかなと思いますね。 ちょっとインフラが特殊でテラフォームとか
IAC ツールを使っている場合はですね、本番環境に適応した際にどういった変更が走るのかっていう差分
通常ディフって呼んだりしますが、そういった結果をプルリクに貼ることが多いですね。 これはなんかチェックというかレビューアーのためにこういう変更入るんだよ
みたいなことを視覚化してあげているというような感じですね。 同じくKubernetesを使っている場合もKubernetesのマニフェストのディフみたいなものを実際に表示してあげる
みたいなこともあります。ではですね、ほとんどプルリクトリガーの方は共通的なのでプッシュトリガー
要するにマージされた後にどういうCDが動くのかをご紹介します。 モバイルの場合はですね、基本的にiOSとAndroidのビルドをそれぞれ走らせまして
ビルドをするとですね、それぞれのOSに対応したパッケージが出来上がるんですけれども そちらをですね配信ツールの方に投げます。
例えばAppleだとテスト用であればテストフライトというところに投げますし AndroidだとAndroidのプレイストアに開発機能があるのでそっちに投げます。
もしくはですね、サードパーティー製のそういう配信ツールもありまして 例えばGoogleクラウドで使えるFirebaseのアップディストリビューションみたいなところに投げることもありますし
配信してですね、そこからダウンロードできるみたいな感じになっていますね これがモバイルは多いかなと思いますね。本番の時はですね
本番のApp StoreにアップしたりとかGoogleプレイストアにアップしたりみたいなところがあったりとかするので そこにアップロードしてですね
審査などもありますので審査の必要な項目をCDで埋めることもあったりとか なかなかないんですけれども
配信までしてしまうということもあったりします。これがモバイルですね。 続いてフロントですね。フロントのCDはこれもフロントの提供の仕方によるんですけれども
例えばそうだな、AWSのS3みたいなところで配信しているような場合においては CDのタイミングで静的なファイルをビルドしてそれをS3に置いておしまいみたいなこともありますし
コンテナイメージを生成するような場合であればロッカービルドみたいなことをしてですね それをイメージのレジストリに格納でそれを使って実際にホスティングするみたいな
サーバーとして起動するみたいなこともありますね。そういった形でCDすることが多いかなと思います。 続いてバックエンドです。バックエンドはですね
使うプラットフォームによるんですけれども クラウドランとかECSみたいなコンテナベースでかつオーケストレーションをクラウドベンダー側がやってくれるようなケースに関しては
イメージを作ってロッカープッシュみたいな感じでイメージレジストリに飛ばした後に ECS側の設定変えて見るべきイメージのリビジョン変えて
そうすると新しいリビジョンで起動するのでそれで終わりみたいな感じですね あとはデータベースのマイグレーションをCDのパイプラインに組み込む場合は先にアプリケーションが起動する前に
マイグレーションを走らせてアプリ起動するみたいなことを組んだりすることもありますね 間にメンテナンス入れたり入れなかったりみたいなこともあると思いますが
インフラとGitOpsの活用
クバネテスの場合はGitOpsという概念がありまして これ何かというとですね
CDのちょっと発展的な感じなんですけれども とあるミドルウェアがいましてそのミドルウェアが指定された
Gitリポジトリの特定のブランチの状態をずっと見張ってるんですね そこにプルリクがマージされたりコミットが積まれたりするとですね
その変更を検知してその状態になるようにサーバーに対していろいろ設定変更してくれるんですね
これがGitOps通常Git駆動の開発デプロイというところでGitOpsと呼ばれます ほとんどのケースの場合はクバネテスで使われることが多くてですね
クバネテスの上にArgo CDとかFluxみたいなミドルウェアを入れまして そいつがGitを参照してGitのマニフェストの状態とクバネテス上のPodの状態を
イコールにしてくれるというような感じですね なのでこちらはちょっと何か経路が違いますがそういうCDもあります
はい最後はインフラかな インフラはですね単純でIAC使っていれば
フォームのアプライとかクラウドフォーメーションの適用とか CDKの適用とかプルミの適用みたいなことがあるかなと思いますね
マージするとインフラリソースが変更されたり作られたりっていう感じでしょうか 昔はアンシブルみたいなものを使って実際にそのEC2とか
VMの中に入り込んでOSの設定変えるみたいなこともありましたので マージのタイミングでそういったものが走ってOSの設定変更するっていうこともあるかなと思いますね
はいってことですね今回はモバイルからインフラまで幅広くCIやCDでどんなことをやってるのかということを簡単にご紹介しました
結構ね多岐に渡るんでいろいろこうやってると個人的には面白かった分野ではありますね
だいたい自分は一人で全部このCI CDパイプラインを組むことが多いので割とこうなんだろう
後半な知識が求められて楽しいなという感じですね 何が一番大変かっていうとモバイルが一番大変なんですけどモバイルはもうなんか
iOSのビルドとか結構めんどくさかったりとか年一で証明書のバージョン切ったり バージョンじゃない証明書が切れたりするので非常にめんどくさいですし
アンドロイドとかもね結構なんかミニマムのバージョンが制限されたりとか結構あったり 些細なことで動かなくなったりするんで結構維持が大変な
思い出がありますそれに対してフロントバックエンドインフラは割と単純で扱いやすいですね はい最初からいろいろやるとね結構CI CDやったやり慣れてない方とかは
結構大変だと思うんですけれども まあ整備したらねこれないともう考えられないみたいな感じがあるので
まあ一番効果の高いところからどんどんやって皆さんの作業をどんどん楽にしていきましょう このポッドキャストはハッシュタグITで皆様からの感想やコメント募集しております
またチャンネルの概要欄にGoogleフォームのリンクもありますのでそちらからのご投稿も大歓迎です ありがとうございました
09:05

コメント

スクロール