- CI/CDツールの利用で開発生産性が向上
- 今年4月、英国の開発者分析企業SlashDataとグローバルなオープンソースコミュニティContinuous Delivery Foundation(CDF)が発表した「State Of Continuous Integration & Continuous Delivery Report」の調査結果
- CI/CDツール(マネージドまたはセルフホスティング)を使う開発者は、そうでない開発者と比べて、コード変更のリードタイム、サービス復旧時間、デプロイ頻度で高い成果を出す可能性が高い
- この3つは、開発者生産性を判断するDORAの主要指標の一部
- CI/CDツールを使わない開発者は、これを使う開発者よりも成果が低い可能性が高い
- マネージドとセルフホスティングのCI/CDツールを両方使う開発者は、コード変更のリードタイム、サービス復旧時間、デプロイ頻度で最も優れた成果を示した
- SlashDataとCDFによると、コード変更のリードタイムが1日未満の開発者は、マネージドとセルフホスティングのCI/CDツールを両方使う開発者(24%)が最も多い
- マネージドCI/CDツールのみを使う開発者(22%)、セルフホスティングCI/CDツールのみを使う開発者(17%)、CI/CDツールを使わない開発者(13%)が続く
- コード変更のリードタイムが1カ月以上の開発者は、CI/CDツールを使わない開発者(40%)が最も多く、セルフホスティングCI/CDツールのみを使う開発者(33%)、マネージドCI/CDツールのみを使う開発者(30%)、マネージドとセルフホスティングのCI/CDツールを両方使う開発者(19%)の順
- サービス復旧時間が1時間未満の開発者は、マネージドとセルフホスティングのCI/CDツールを両方使う開発者(25%)が最も多かった
- セルフホスティングCI/CDツールのみを使う開発者(17%)、マネージドCI/CDツールのみを使う開発者(15%)、CI/CDツールを使わない開発者(11%)が続く
- サービス復旧時間が1週間以上の開発者は、CI/CDツールを使わない開発者(32%)が最も多く、セルフホスティングCI/CDツールのみを使う開発者(29%)、マネージドCI/CDツールのみを使う開発者(25%)、マネージドとセルフホスティングのCI/CDツールを両方使う開発者(17%)の順
- SlashDataとCDFは、「マネージドとセルフホスティングのCI/CDツールを両方使えば、マネージドツールの利便性と標準機能、セルフホスティングツールのカスタム機能を組み合わせて効率を高められる」と説明
- この調査で、マネージドCI/CDツールはAzure Pipelines、AWS CodePipeline、セルフホスティングCI/CDツールはJenkins、TeamCityを指す
- 複数のセルフホスティングCI/CDツール利用で成果が低下
- 同じ種類の複数のCI/CDツールを使うと、デプロイ成果が低下する可能性がある
- セルフホスティングCI/CDツールを複数使う場合に、この現象が特に目立つ
- SlashDataとCDFの調査結果では、セルフホスティングCI/CDツールの数が増えるほど、コード変更のリードタイム、デプロイ頻度、サービス復旧時間が1カ月以上の低パフォーマーの比率が急増した
- 両機関によると、コード変更のリードタイムが1カ月以上の開発者は、セルフホスティングCI/CDツールを4つ使う開発者が最も多かった
- デプロイ頻度とサービス復旧時間がそれぞれ1カ月以上の開発者は、セルフホスティングCI/CDツールを5つ以上使う開発者が最も多かった
- 一方で、コード変更のリードタイムとサービス復旧時間がそれぞれ1日未満の開発者は、マネージドCI/CDツールを1つ使う開発者が最も多かった
- SlashDataとCDFは、セルフホスティングCI/CDツールの数が増えてサービス復旧時間に悪影響を与える主な原因として「相互運用性」の問題を指摘
- 複数のCI/CDツールを使うと、すべてのツールを適切に統合するのが難しい
- そのため、サービスに影響する問題を切り分けにくくなる可能性がある
- AIと機械学習、CI/CDとの統合が強化
- AIと機械学習はCI/CDパイプラインにさらに多く統合されている
- AIベースのCI/CDパイプラインは、問題のより迅速な検出を支援する
- これにより、開発チームやテストチームはトラブルシューティングやデバッグの時間を大幅に短縮できる
- AIはCIテスト環境の設定作業を自動化し、テストを高速化する
- これはCDパイプラインでのインテリジェントな自動化につながり、コードレビューやテストも自動化する
- AIと機械学習を適用してコードの脆弱性を確認する
- 予測分析は、CI/CDパイプラインで潜在的な問題や失敗を予測するために活発に使われると見込まれる
- この技術はデータ、統計アルゴリズム、機械学習を使う
- これにより、過去のビルド失敗パターンを分析し、デプロイパイプラインに影響する前にチームが問題を事前に把握して解決できるよう支援する
- その結果、より速く安定したデプロイが可能になる
- AIと機械学習は今後、CI/CDに広範かつ密接に適用される見通し
- GitOps、CI/CDでの影響力拡大
- GitOpsはCI/CDパイプラインに対してますます大きな影響力を持っている
- これは、バージョン管理、コラボレーション、コンプライアンス、CI/CDなどアプリケーション開発に用いるDevOpsのベストプラクティスを、インフラ自動化に適用する運用フレームワーク
- 多くの組織がCI/CDプロセスの一部としてGitOpsを実装している
- 開発者はGitOpsにより、Gitリポジトリをコードと設定のための唯一の信頼できる情報源(SSOT)として使える
- GitOpsは、インフラとアプリケーションのデプロイ全体にわたってバージョン管理された変更を促進し、コラボレーションを簡素化し、可視性を高める
- GitOpsはGitリポジトリ内にすべての設定とデプロイマニフェストを集中管理する
- GitOpsはGit中心のワークフローで増分更新を自動リリースし、開発者がクラスターを管理しながら、設定ミスなく効率的かつ安全にアプリケーションを提供できるよう支援する
- 速度、効率性、利便性を背景に、組織がDevOpsワークフローを簡素化し、IaCのベストプラクティスを導入するにつれて、GitOpsはCI/CDで広く使われるようになるだろう
- エッジコンピューティング受容の必要性が拡大
- CI/CDパイプラインでエッジコンピューティングを受け入れる必要性が高まっている
- エッジコンピューティングは、データが生成された現場またはその近くでデータをリアルタイム処理し、デバイスを動作させる
- これにより、データをリアルタイムに処理・分析する際のレイテンシが減り、アプリケーションをより効率的かつ高速に動作させる助けになる
- CI/CDパイプラインはエッジデプロイを受け入れられるよう適応すべきだという主張が出ている
- 例: 軽量なデプロイを作る、またはコンテナ化を活用してエッジデバイスにより簡単にデプロイする
- 開発チームがエッジデバイスに最新バージョンのプログラムやサービスを安定的に提供することが、これまで以上に重要になっている
- CI/CDパイプラインをエッジに接続すると、エッジアプリケーションに一貫性があり効率的な開発者体験を提供し、運用効率を高められる
- 早期フィードバックとともにアプリケーションをエッジへ自動デプロイしてテストし、より良い製品をより早く提供できる
- 一部のサービスはエッジデプロイをサポートしているが、CI/CDパイプラインを含む既存パイプライン向けの新しいツールやプラグインが登場する可能性は高い
1件のコメント
正直なところ、AIベースのCI/CDが通常のCI/CDと何が違うのか、よく分かりません……