読者です 読者をやめる 読者になる 読者になる

by shigemk2

当面は技術的なことしか書かない

Jenkinsプロジェクト現状報告とこれから #juc2012

Jenkins ユーザ・カンファレンス 2012 東京

プラグイン チケット インストール数もどんどん増えていってる
世界中の企業が使っていってる

新機能

UIとフロントエンドをちょくちょく変更

「コンソール出力」は1回のクリックだけでいい
設定の変更は「設定」から
画面遷移をせずに設定の保存が出来る
ドラッグ&ドロップで設定の変更も出来る

Jenkinsを再起動せずにプラグインをインストールできる

  • フロントエンドの現代化
    • ページロード時間の改善(キャッシュの改善、gzip圧縮ですべてをon)
    • ページ表示に要するリクエストを減らす
  • バックエンドの機能拡張
    • マルチ構成プロジェクトの改善
    • 並列ビルド
    • ディレクトリ共有
    • 動的に値が変化する軸
    • チェックアウト
  • REST APIの改善
    • APIトークン
    • JSONのインデントつき出力
    • treeパラメータによる出力データの選択
  • コマンドラインクライアントの改善
    • 通信路の暗号化
    • SSH公開鍵認証
    • 汎用sshクライアントによるCLI
  • その他色々な改善
    • Subversion1.7サポート
    • 40カ国語への地域化

プラグインを書きやすくする(そのためのRuby)

  • Rubyによるプラグイン開発
    • ツールによる開発環境の改善
  • プラグイン開発者向けの改善
    • GuiceによるIoCのコアへの取り組み
    • JUnit4によるテストハーネス
    • GroovyによるHTML生成
    • デバッガが使える
    • IDEによるコード補完が使える
    • Gradle JRebelのサポート

GitHubと連携して、自分のレポジトリを自動的にビルドする

Jenkins Enterprise by Couldbees

プロセスとプロジェクト運営体制の整備

  • 法人格の取得(Software in the Public Interst加盟)
  • 寄付金集め
  • JenkinsCIAプログラム
  • 暫定役員会
  • プロジェクト憲章の制定 不文律の明文化
  • 開発者ライセンス契約(CLA)

サーバインフラ&リリース
色々な団体にネットワークやサーバーをお願いする

長期サポートリリース 優良リリースを決める

ウェブアプリ特有のセキュリティ問題がJenkinsにもあるので、セキュリティ勧告を行う
RSSも使う

サーバー管理のOSS化
シェルアクセスが特権となっていたので、puppet化+オープンソース
pull request経由で誰でも変更を提案できるようにする

サーバの監視
世界各地に9つのミラー
自前DNSサーバ(puppet化)
サービスの外部委託

今後の展望

プラグイン開発者を助ける
拡張ポイントの拡充
プラグイン開発環境のせいび

    • wikiの記事の拡充
    • トレーニング講座を作る
    • サンプルの拡充
    • ツールにスケルトン生成機能
    • よくある問題の自動検証
      • HTMLのタグずれ、@Extensionの付け間違いなど

日本のユーザーにもっとプラグイン開発をしてもらうにはどうしたらよいのか

スイートスポットの拡大

  • より大規模環境で快適に
    • マスター間の通信経路の導入
    • 複雑なワークフローを簡潔に(DSLなど)
  • 導入を簡単に
    • BuildHiveからプロジェクト作成Wizardをスピンオフ(導入のしやすさがメリットだが、もっと導入しやすく)
    • 標準添付のプラグインの見直し
    • プラグインのセットやお勧めの使い方をコミュニティで共有したい

増えつづけるプラグインへ対応

  • プラグインに関する情報共有
    • レビュー、インストール数などを表示

中長期的な展望(計算機を湯水のように使いたい)

  • テスト実行の並列化を助けたい
  • 多数の計算機を跨ぐ作業を簡単にしたい
    • 負荷テスト、システムテストなど
  • それらを支える優れた可視化を提供する