Fortune 100 企業の 90 % が安全なソフトウェアの構築、拡張、配信に GitHub を使用している理由をご覧ください。
GitHub でジャーニーを開始する
CI/CD: 対象、理由、方法
リリースを加速するために自動ワークフローを構築する
CI/CD の説明
CI/CD がビルド、テスト、デプロイメントを自動化するため、コードの変更をより迅速に確実にリリースできます。
オートメーションは DevOps を成功させるためのコアとなる原理であり、CI/CD は重要なコンポーネントです。CI/CD は、継続的インテグレーションと、継続的デリバリーまたは継続的デプロイから構成されます。合体して、「CI/CD パイプライン」を形成します。これは、次のように DevOps チームが手動タスクを削減するのに役立つ一連の自動ワークフローです。
継続的インテグレーション (CI)
共有リポジトリ内でコード変更を自動的にビルドし、テストし、統合します。
継続的デリバリー (CD)
自動的にコード変更を本番にすぐに移行できる環境に承認のために提供します。
継続的デプロイ (CD)
コードの変更を顧客に自動的に直接デプロイします。
CI/CD パイプライン
継続的デリバリーと継続的デプロイ
CI/CD という場合、「CD」というのは通常、継続的_デリバリー_の意味で、継続的_デプロイ_の意味ではありません。違いは何でしょうか? 継続的デリバリーを使用する CI/CD パイプラインでは、オートメーションは開発者が本番環境にプッシュしたときに一時停止します。最終リリース前に、人間 (運用チーム、セキュリティ チーム、またはコンプライアンス チーム) が手動でサインオフする必要があり、遅延が増加します。一方、継続的デプロイでは、リリース プロセス全体が自動化されます。コードの変更は、必要なテストをすべてパスするとすぐに、顧客にデプロイされます。
継続的デプロイは、DevOps オートメーションの究極の例です。これは CI/CD を行う唯一の方法や「正しい」方法であるという意味ではありません。継続的デプロイは厳格なテスト ツールと成熟したテスト カルチャーに依存しているため、ほとんどのソフトウェア チームは継続的デリバリーから開始し、時間が経つとともに統合する自動テストを増加させます。
CI/CD のメリット
簡潔な答え: 速度。State of DevOps report レポートでは、CI/CD のデプロイを 208 倍の頻度で「マスター」した組織は、他の組織に比べてリードタイムが 106 倍速いことがわかりました。最もよく知られている CI/CD のメリットは開発の高速化ですが、継続的インテグレーションと継続的デリバリー パイプラインによってさらに多くのことが可能になります。
CI/CD の利点についての詳細はこちら開発速度
進行中にフィードバックすると、開発者は 1 回のリリースを待たず、それより頻繁に小さな変更をコミットできます。
安定性と信頼性
自動化された継続的テストによって、コードベースは常に安定していて、いつでもリリースできるようになります。
ビジネスの成長
手動のタスクから解放されると、組織は、イノベーション、顧客満足、および技術負債の返済にリソースを集中できます。
CI/CD ツールキットをビルドする
チームは、自動化されたプロセス、ステップ、ツールを組み合わせて、CI/CD を開発ワークフローの一部とします。
バージョン管理
継続的インテグレーション (CI) は、Git のようなバージョン管理システム (VCS) を使用してチームがコーディングのコラボレーションをしている、共有リポジトリの内部で開始されます。VCS はコードの変更を追跡し、その復旧を簡素化し、テスト実行とインフラストラクチャを管理するためのコードとしての構成をサポートします。
ビルド
CI ビルド ツールは自動的にファイルとコンポーネントをリリース アーティファクトにパッケージ化し、品質やパフォーマンスなどの必須要件についてテストします。必要なチェックをクリアしたら、CD ツールは、さらにテストしステージングするためにビルドを運用チームに送り出します。
レビューと承認
コード レビューをベスト プラクティスとして扱うことで、コード品質を改善し、コラボレーションを促進し、最高の経験を持つ開発者に対してもコミットする際の支援になります。CI/CD ワークフローでは、チームがコードのレビューと承認を行なったり、あるいはペア プログラミングのために統合開発者環境を活用したりします。
環境
CI/CD は、運用チームがアプリケーションを一般公開する場所に開発者がコードをビルドする環境内で、コードをテストしてデプロイします。環境には、多くの場合、セキュリティとコンプライアンスの必須要件を満たすために、それぞれ固有の変数と保護ルールがあります。
GitHub の DevOps ソリューション
CI/CD ワークフローの例
CI/CD は複雑である必要はなく、現在のワークフローに多数のツールを追加する必要もありません。mablでは、開発者は、mabl テスト スイートと GitHub Actions という 2 つの CI/CD インテグレーションのみを使用して、週に約 80 回本番環境にデプロイしています。仕組みは次のとおりです。 ✨
CI/CD ワークフローの例初期ビルドとユニット テストをトリガーするために開発者がプルリクエストを開く
承認されたコミットがプレビュー環境にデプロイされる
カスタムビルドの GitHub Actions が mabl CLI をインストールし、ヘッドレス テストを実行する
GitHub アプリケーションがプルリクエスト内にチェック結果をリアルタイムで提供する
承認されたコミットが、追加テストあるいは実稼働へのデプロイのために main ブランチにマージされる
CI/CD を成功させる要因
市場にはさまざまなツールやインテグレーションで溢れていますが、効果的な CI/CD ワークフローは全て、同じ成功の指標を有しています。
自動化
CI/CD は手動で行うことも_可能です_が、これは目指すところではありません。適切な CI/CD ワークフローは、ビルド、テスト、デプロイを自動化するため、コーディングに使用できる時間が増え、タスクは増えません。
透明性
ビルドが失敗した場合、開発者は誤りの内容と理由をすばやく判定できる必要があります。ログ、ビジュアルなワークフロー ビルダー、深く統合されたツールによって、開発者がトラブルシューティングし、複雑なワークフローを理解し、自分たちのステータスをチーム全体と共有することが容易になります。
スピード
CI/CD は、DevOps の全体的なパフォーマンス、特にスピードに寄与します。DevOps のエキスパートは、次の 2 つの DORA メトリックを使用してスピードを測定します。変更のリードタイム (本番用のコードがコミットされるまでの時間) とデプロイの頻度 (コードをコミットする頻度) です。
耐障害性
テストカバレッジ、可観測性ツール、フィーチャー フラグのような他のアプローチとともに使用すると、CI/CD でソフトウェアのエラー耐久性が向上します。DORA は、平均修復時間 (事象が解決されるまでの時間) と変更失敗率 (ソフトウェア ロールバックの回数) をトラッキングして、この安定性を測定します。
セキュリティ
オートメーションにはセキュリティが含まれます。勢いがある DevSecOps とともに、CI/CD パイプラインは今後も有効で、コードとアクセス許可の適切なチェックがあり、障害の監査、セキュリティ侵害、非コンプライアンス事象についての仮想証拠書類を提供します。
スケーラビリティ
CI/CD は単なるオートメーション化ではありません。スケーラビリティを確保することも重要です。堅牢な CI/CD 設定は、開発チームの拡大とプロジェクトの複雑化に伴って簡単に拡張できるはずです。これは、生産性と効率を維持しながら、ソフトウェア開発の労力が増大するのに伴って増加するワークロードを効率的に処理できるということです。
CI/CD でできること
DevOps チームが継続的な自動化をどのように実践しているかをご覧ください。
CI/CD ワークフローのビルドを開始する
始める準備ができている場合でも、まだ質問がある場合でも、私たちにお任せください。
デモを申し込む
DevOps とは?
スムーズで迅速なサービス提供を実現するために、カルチャー、プラクティス、そしてソフトウェア開発と IT 運用の間の隔たりをなくすツールについて理解し、DevOpsとは何かを学びましょう。
継続的インテグレーションの基礎について理解する
DevOps における継続的インテグレーションの基礎について学びましょう。継続的インテグレーションのプラクティスが、どのように複数のコントリビュータによるコードのマージ、ビルド、テストを合理化し、より迅速なソフトウェア開発とより高品質なリリースを促進しているのかについて詳しく説明します。
継続的デプロイの説明
DevOps 環境における継続的デプロイ (CD) の基本について詳しく説明します。CD はデプロイ プロセスを自動化し、テストに合格後、本番環境にコード変更が自動的にプッシュされるようにします。