#リリースにかかわる環境と作業と自動化
コンテナに切り替えて、効果が高くなる事例としてリリースの自動化作業である。
CI/CD/CDP 環境を作成して、生産性が高い環境をつくっていこう
まずは『CI/CD/CDP』の違いを、明確にしていこう
概要図
単語
-
リリースにかかわる4環境環境
- 開発/ビルド環境
- 開発テスト環境
- ステージング環境
- 本番環境
-
自動化
- 自動パッケージング/イメージ
- 1 継続的インテグレーション(CI)
- 2 継続的デリバリー(CD)
- 3 継続的デプロイメント(CDP)
1 継続的インテグレーション(CI)
ソフトウェア開発のプロセスを自動化することで開発者がソースコードをコミットし、共有しているリポジトリにマージされることでビルドとテストが自動的に実行される手法
- CIに大事なことは
- コンパイルやイメージ化の作業を自動でできるようにすること、テストを自動化すること
- 環境
- スタブ等を用意して、内部結合試験まで作成
- メリット
- バグが早期に発見できる
- テスト、デモ、リリースの目的で「現在の」ビルドを常に利用可能にする
- 単体テストが失敗した場合やバグが発生した場合に戻す場合は、少数の変更のみ
- 更新が自動化でキル
2 継続的デリバリー(CD)
いつでも確実にソフトウェアをリリースできる状態にする。デリバリーの側面を自動化するアプローチ
- CDに大事なことは
- テストの自動化
- 環境
- サービスバーチャライゼーションもしくは、外部用結合検証環境を利用できるようにする
- メリット
- ソフトウェアの配信の効率が上がる
- 開発者の生産性を向上
- バグを短時間で発見して対処できる
- 更新を迅速に配信できる
3 継続的デプロイメント(CDP)
継続的デリバリーと継続的デプロイは密接に関連する概念で同一にされる場合もあります。商用環境にいきなりリリースする自動化の最終型になります。
- メリット
- 商用を運用した状態でのリリースという、複雑化されて不明確になる個所を明確にできる。
- 難度
- コンテナ環境やマイクロサービス環境でないと導入が難しい
## 自動化するためにはテストも自動化
いろんなテストがあるが、それぞれの箇所で必要なテストを設定することが大事です。
一回だけのでリリースならコンテナ使わなくていい!!
コンテナ開発環境が整ってない場合、コンテナを使わなくてよい。
よくあるパターンでwordpressを商用リリースする場合は、開発環境もステージング環境もない場合、そこにコンテナ化するメリットはないです。!!
#最後に
開発環境もステージング環境も本番環境もつくらないといけない、何度も作り直さないといけない場合は、手動でやっている余裕はないです。そこを考えたコンテナ開発環境です。段階的に自動パッケージング、CI、CD、CDP を導入して継続的開発環境を作ってください。