GitOps
GitOps
ぎっとおぷす
システムの構成やインフラストラクチャのあるべき状態を宣言的なコードとしてGitのリポジトリに置き、リポジトリの内容を唯一の正とする運用の方法。変更はプルリクエストでレビューしてから取り込み、実行環境の側のツールがリポジトリと実際の状態の差を検出して自動的に合わせる。変更の履歴が残り、切戻しも容易になる。
Related
関連キーワードの用語
DevOps(開発と運用の連携)にセキュリティを統合した開発手法。開発ライフサイクルの全段階でセキュリティを自動化・組み込み、CI/CDパイプラインにSAST、DAST、SCAなどのセキュリティテストを統合して、迅速かつ安全なリリースを実現する。
コンテナイメージを保管し、バージョンを示すタグを付けて管理・配布するためのサービス。開発者がビルドしたイメージを登録(プッシュ)し、実行環境が取得(プル)してコンテナを起動する。公開のDocker Hubのほか、組織内専用のプライベートレジストリがあり、登録時の脆弱性スキャンやイメージへの署名で安全性を確保する。
コンテナどうしや、コンテナと外部との間の通信を実現するためのネットワークの仕組み。ホスト内に仮想的なブリッジを作る方式や、複数のホストにまたがるコンテナをオーバーレイネットワークで結ぶ方式がある。Kubernetesでは、CNIという共通の仕様に沿ったプラグインでコンテナにアドレスを割り当て、ネットワークポリシーで通信を制限する。
セキュリティ、コンプライアンス、運用上のルールを、文書ではなく機械が評価できるコードとして記述し、自動的に適用・検査する手法。IaCのコードやクラウドの設定が「公開設定のストレージを作らない」などのルールに反していないかを、CI/CDのパイプラインや実行環境で自動的に確かめ、違反を早い段階で防ぐ。
テストの実行、結果の判定、報告をツールやスクリプトで自動的に行うこと。何度も繰り返す回帰テストを短時間で正確に実施でき、継続的インテグレーションのパイプラインに組み込んで変更のたびにテストを流す。自動化したテストの保守にも手間がかかるので、効果の大きいテストから自動化する。
ソースコードの変更を起点に、ビルド、テスト、セキュリティの検査、デプロイといった一連の工程を自動的に順に実行する仕組み(CI/CDパイプライン)を整えること。手作業による誤りと待ち時間をなくし、変更を短い間隔で安全に本番環境へ届ける、DevOpsの基盤となる。
