著者: Samantha Frost
企業利用のパフォーマンスおよびスケーラビリティにおけるゲームチェンジャー
ビルドオーケストレーターの分野では、Jenkinsは長らく多くのユーザーにとって頼りになる選択肢であり続けています。Jenkinsには幅広いタスクに対応できる柔軟性と機能性があり、開発者にとっても管理者にとっても強力なツールです。しかし、どんなツールにも言えることですが、特に大規模な運用を行う大企業にとっては、能力にも限界があります。絶えず限界近くまで利用しているうちに、パフォーマンスが低下したり、ソフトウェアデリバリーの問題が発生したりすることもまれではありません。
そこで朗報があります。高可用性/水平スケーラビリティに関する新機能が搭載された CloudBees Continuous Integration (CloudBees CI)が解決策となります。CloudBees CIは、Jenkinsのパワーに加えて、パフォーマンスおよびスケーラビリティを拡張するための設計がなされており、Jenkinsの企業ユーザーが直面する共通の課題に対処します。
大規模に運用するJenkinsユーザーが直面する共通の課題
CloudBees CIの価値を理解するために、まず、Jenkinsの大規模な運用を行う場合にユーザーが遭遇することが多い課題について説明します。
- ビルドに時間がかかる
継続的インテグレーションでは、コンテナーの利用が一般化しています。コンテナーは柔軟性と隔離性というメリットをもたらすいっぽうで、ビルドのたびに依存モジュールやその他のファイルをダウンロードする必要があるため、ビルド時間が非常に長くなり、開発サイクルをスローダウンさせる可能性があります。結果として、ソフトウェアのデリバリーが遅れたり、一時的エージェントの実行時間が長くなるためにコストが増大したりすることがよくあります。 - パイプラインのトラブルシューティングのためにリードタイム (LT) が長くなる
複雑なパイプラインのトラブルシューティングは時間がかかりうんざりするプロセスです。パイプラインが複雑化するにつれて、デバッグにかかる時間も増加します。これがソフトウェアをリリースするための時間を奪い、さらなる遅れにつながります。 - コントローラーの過負荷
Jenkinsは柔軟性があり、複雑なパイプラインを容易に処理できる能力があります。いっぽうで、大企業でよくある問題が、Jenkinsコントローラーの過負荷です。Jenkinsで何ができるかをチームが理解するにつれて、ますます多くのジョブがJenkinsで実行されるようになります。そのうちにコントローラーの負荷が増え、タスクを効率的に処理できなくなってしまいます。結果はどうなるでしょうか?起動が遅くなり、UIの反応が遅くなり、ビルドの実行時間が延び、ついにはJenkinsコントローラーとビルドプロセスがもろとも停止することさえあります。 - ダウンタイム
ダウンタイムは、それが非機能的な理由であれ通常のメンテナンスによるものであれ、ソフトウェアデリバリーライフサイクルを停滞させます。コードのビルドが行われず、CI/CDパイプラインが停止し、デリバリーが遅れます。
CloudBees CIの導入: 企業が求めるJenkinsのパフォーマンスの飛躍的向上
CloudBees CIは、上記のような課題に真っ向から対処するために作られています。ワークスペースのキャッシュ、パイプラインエクスプローラー、ビルドストームの防止、高可用性モードなどの機能の導入により、ビルド時間の短縮、すみやかなトラブルシューティング、コントローラーの効率性改善、アップタイムの最大化が図られています。
ビルド速度を向上させるワークスペースのキャッシュ
ワークスペースのキャッシュは、より効率的にコンテナーを利用する方法です。ビルドのたびにダウンロードを行うのではなく、前回までのビルドの成果物をキャッシュして再利用するので、ビルド時間が飛躍的に短くなり、よりすばやく開発者にフィードバックを返したり、ソフトウェアデリバリープロセス全体をスピードアップしたりすることが可能になります。
CloudBeesのワークスペースキャッシュ機能についての詳細:
ビルドストームを回避しながらリポジトリのベースラインを作成
この新しいビルド戦略は、ビルドを行わずにリポジトリのベースラインを作成することで、ビルドストーム(コントローラーの起動時の膠着状態)を防ぎます。このビルド戦略を利用すると、パイプライン作成時にはリポジトリの確認を行い、後で通常どおりビルドをトリガーできるので、すべてのパイプラインを一度に開始してコントローラーに大きな負荷をかけることがありません。
CloudBees Build Strategiesプラグインの詳細:
大規模なパイプラインのデバッグを容易にするCloudBees Pipeline Explorer
CloudBees Pipeline Explorerは、パイプラインのメンテナンスを担当する開発者や管理者に役立つ革新的なツールです。何万行というコードをかきわけて問題を探す代わりに、CloudBees Pipeline Explorerを使えば、エラーの場所をすばやく突き止めて修正できるため、中断やエスカレーションが少なくなります。
CloudBees Pipeline Explorerの詳細:
大規模運用での高パフォーマンスを実現する高可用性モードおよび水平スケーラビリティ
CloudBees CIの高可用性モードは、継続的なパイプライン運用において、予期しないエラーが発生した場合でも、ダウンタイムを短縮または完全になくします。高可用性モードは水平スケーラビリティももたらします。レプリカ間での作業負荷の共有を可能にし、過負荷状態のモノリシックなコントローラーを信頼性の高い安定したコントローラーに変えます。
CloudBees 高可用性モードの詳細:
まとめ
今日のハイペースなソフトウェアデリバリーの世界では、パフォーマンスとスケーラビリティが鍵となります。 今回ご紹介したCloudBees CIの新機能は、企業が求める高度なパフォーマンスのニーズを満たすために必要な強化をJenkinsにもたらします。ですから、開発者も、Jenkins管理者も、あるいはCloudBees CIユーザーも、今こそCloudBees CIでパフォーマンスをパワーアップするべき時です。
(この記事は、CloudBees社 Blog 「The biggest update for Jenkins® performance and scalability in over a decade with CloudBees CI」2023年9月14日の翻訳です。)
2023年10月17日加筆:CloudBees 高可用性モードの詳細にブログ記事へのリンクを追加しました。