BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Jenkinsが安定性、操作性、クラウドネイティブ対応性に注力

Jenkinsが安定性、操作性、クラウドネイティブ対応性に注力

原文(投稿日:2018/09/09)へのリンク

Jenkinsプロジェクトチームは、安定性に関する問題と、Kubernetesなどプラットフォームの実行サポートの改善に活動の重点を分割することを決定した。前者が後方互換性のない変更の問題やリリースモデルの変更、事前構成されたインストールの拡充などを扱うのに対して、後者は既存のJenkins Xプロジェクトと同じラインで活動する予定である。

現在のJenkinsは、大規模で複雑なパイプライン処理において不安定な場合がある。一部のデプロイメントにおいて、リソースの問題やプラグインのアップグレードのため、再起動の必要が頻繁に発生していると、Jenkinsの作者でCloudBeeのCTOであるKohsuke Kawaguchi氏は説明する。設定が不安定になり、プラグイン管理やビルドジョブの設定変更に理解不能な影響が及ぶ場合があるためだ。システムダウンを回避したいシステム管理者は、 いきおい変更の実施を躊躇することになる。何か重要なことを実行しようとすると、Jenkinsは設定の必要なコンポーネントの数があまりに多いため、エンドユーザエクスペリエンスが複雑化する。十分なテストカバレッジが得られないため、Jenkinsの開発自体の速度も低下している。既存および新規開発者からのコントリビューションが、長期を要するレビューによる影響を受けると同時に、将来的なコントリビューション活動の障害となる可能性もあるのだ。

これらの問題に対処するための提案のひとつは、リリースモデルを変更し、後方互換性を確保する立場を取ることだ。Jenkins World 2017 Contributor SummitでKawaguchi氏は、Jenkinsがアウトオブボックスで動作する部分と、管理者による設定の必要な部分との境界を設定した。HipChat/Slack統合の設定、Webhook統合、Eメール通知用のSMTP等システム全体の設定が後者に含まれる。さらに氏は、“コアおよび多数の重要なプラグインを基盤として取り入れ”て、Jenkinsを事前設定することによる、セットアップ時間の短縮を提案したJenkins 2.0モデルは継続するが、後方互換性を損なう変更が導入される可能性がある。

Jenkins Cloud Native SIGが推進するクラウドネイティブなJenkinsの提案では、Kubernetesなどクラウドネイティブなプラットフォーム上でのJenkinsの実行を取り上げている。同じ方向性の既存プロジェクトであるJenkins Xプラットフォームでは、新たなツールセットのコアとしてJenkinsを使用している。クラウドネイティブJenkinsは、将来的にJenkins Xの開発を支援する方向に向かうことになる、とKawaguchi氏は言う。このバージョンのJenkinsは、基本面から異なるアーキテクチャを採用する可能性が高い — 各機能部分が分離したマイクロサービスとなり、現在のビルドワーカに代わって関数が使用され、サービスはKubernetesのカスタムリソースを通じて対話するようになる。現在ファイルシステムに格納されているデータは、クラウドストレージサービスに移行するJenkins Configuration as Code(JCasC)プロジェクトは、Jenkinsマスタノードに宣言的設定を使用することで、設定に関する問題の一部を解決しようとするものだ。さらに、Jenkins Evergreenプロジェクトは、“CIおよびCDワークロードの実現に直接利用できるような、事前に構築された部品集をエンドユーザに提供”する。このEvergreenは、それ自身の自動更新機能も備えている。これら2つのプロジェクトは、クラウドネイティブ構想において重要な位置を占めるものだ。Gitlab CIなどのような他のCIソリューションにも、マネージドKubernetesサービスとの統合機能を備えるものがある。

Jenkins Xでは、ソースコードリポジトリ上の特定のポイントから構築され、共同動作するサービスの集合体を表す環境(Environment)というコンセプトを用いることにより、Kubernetesへのマイクロサービスのデプロイメントを可能にする。環境はDev、Staging、Productionを始めとする任意のリリースステージから生成することが可能で、Kubernetesのネームスペースにマップされる。Jenkins Xでは、環境の管理や切り替え、Jenkinsプラットフォーム自体のアップグレードが可能な、jxというコマンドラインツールを提供している。現時点ではMacOSとLinux上で動作し、AWS、GKE、Azureなど主なクラウドプロバイダをサポートする。

同様なサポートを備えたCIツールがすでに多数出回っていることから、これらの活動が遅きに失したと考えるユーザもいる。しかし、Jenkinsには巨大なユーザベースがあることから、新規ユーザ以外にもメリットを享受するユーザはいるはずだ。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT