継続的デベロップメント

継続的デベロップメントとは

継続的デベロップメントは「アジャイルと同様にソフトウェア開発の方法論として始まりました。この手法では、大きな一括バッチでソフトウェアを改善するのではなく、更新を連続的に、一つずつ行い、ソフトウェア・コードが完了し、テストが完了した後、すぐに顧客に提供できるようにします。

組織全体で継続的デベロップメントの導入に成功した企業は、多くの場合、劇的な戦略的利益を見出します。」ハーバード・ビジネス・レビュー誌ではこのように説明されています。

継続的ソフトウェア開発とは

継続的インテグレーション(CI)と継続的デリバリー/デプロイメント(CD2とも呼ばれる)は、継続的ソフトウェア開発(CSD)と呼ばれる開発プロセスを構成します。TechTargetの指摘によると、CSDは反復性、自動化、迅速なデリバリーなど、アジャイル・ソフトウェア開発と多くの特徴を共有しています。継続的な改善の考え方に焦点を当てたCSDについて、TechTargetは「計画、顧客へのデリバリー、フィードバックの収集、フィードバックへの対応のサイクル」と説明しています。

継続的デベロップメントのセキュリティを確保する方法

  • 自動化は継続的デベロップメントの鍵。自動化できるあらゆる部分を自動化します。また、『DevOpsSec: Securing Software Through Continuous Delivery』の著者Jim Birdは以下を実践することを推奨しています。
  • CI/CDパイプラインで脅威モデリングを実行する。設定と管理策の弱点、および監査やログ記録のギャップを探します。
  • ソース、ビルド・アーティファクト・リポジトリ、CI/CDサーバーをホストするシステム、および構成管理、ビルド、デプロイメント、リリース・ツールをホストするシステムを強化する。
  • キー、資格情報などの機密データが保護されていることを確認する。スクリプト、ソースコード、プレーン・テキスト・ファイルから機密データを切り出し、監査済みのセキュアなシークレット・マネージャーを使用します。
  • ソースおよびバイナリ・リポジトリへのアクセスをセキュリティで保護し、監査する。
  • ツールチェーン全体にアクセス制御を実装する。
  • 改ざんを防ぐため、バイナリやその他のビルド成果物に署名するようにビルド手順を変更する。
  • すべてのシステムが本番環境の一部として監視されていることを確認する。