はじめに
こんにちは。3年目のFlutterエンジニアです。
未経験でIT業界に入社し、これまで数多の壁を1つずつ登ってきたわけですが、振り返ってみるといくつか理解を厳かにしてきた知識たちがいっぱいいます。
この記事を読んでる半分くらいの人は、これに共感していただけるのではないでしょうか?
今回はそんな人のために、「CI/CD」について解説します。
この記事を読み終わった後には、CI/CDを一言で説明できるようになってると思うので、
時間がない方や、聞いたことあるけど説明ができないといった方はぜひ読んでいってください!
デプロイ
はじめから話がそれますが、CI/CDを理解するにあたって、デプロイについて理解しておく必要があります。ここについての理解がある方は、飛ばしてもらって大丈夫です。
デプロイとは…
を一言で表せたらよかったんですけど、デプロイって言葉は結構曖昧な使われ方をしているみたいなんですよね。
難しく書いている記事がたくさんありましたが、「開発環境で修正したソースを、ステージング環境や本番環境で利用できるようにする」とだけ覚えておけば何とかなります!
CI/CD
では、本題です。
CI/CDとは、継続的インテグレーション(Continuous Integration) と 継続的デリバリー(Continuous Deployment) を繋げた
ソフトウェア開発プロセスを自動化し、効率化するための手法
のことです!
はいうるさい。って感じですよね。
こういう文章っていろんなところに書かれてるけど、じゃあじゃあ何してんの?って思って毎回イライラします。
なので分割して簡潔に説明していきますね。
CIとは
CIと呼ばれる段階では、「自動テスト」が実施されます。
厳密に言うと、他にも行っている処理はありますが、これからデプロイされるソースに問題が発生しないかの確認を、自動的に実施することがここの目的です。
実行される処理
- コードのコミット・プッシュ
- 自動ビルド
- 自動テスト
- アーティファクトの保存
CDとは
CDと呼ばれる段階では、「デプロイ」が実施されます。
ここ処理は開発者が以下の状態から、どこまでを自動化するか選択することができます。
- 製品としてリリースする手前まで実施する
- 製品としてリリースするまで実施する
闇雲にデプロイを実施させるわけではなく、開発環境やチーム事情に合わせて設定させることが可能になります。
一言でまとめると
上記踏まえて、CI/CDについて聞かれたら、
「デプロイまでの一連の流れを自動的に実施してくれるやつ」
って答えておけばオールOKです◎笑
最後に
以上、最後まで読んでいただきありがとうございます。
難しそうだから避けてきたことも、蓋を開けてみれば説明するだけなら簡単だったりしますよね!(言うが易し)
今後も備忘録として上げていきます