WEB+DB PRESS plusシリーズJenkins実践入門
~ビルド・テスト・デプロイを自動化する技術
~ビルド・
2011年11月11日紙版発売
川口耕介 監修,佐藤聖規 監修・著,和田貴久,河村雅人,米沢弘樹,山岸啓 著
A5判/336ページ
定価3,058円(本体2,780円+税10%)
ISBN 978-4-7741-4891-5
ただいま弊社在庫はございません。
書籍の概要
この本の概要
ビルドやテストを自動化し,問題発見を容易にして,品質の高いソフトを効率的に開発するためのツールとして,あのApache Software Foundationでも多くのプロジェクトで利用されているJenkins。
本書はインストールなどの基本から,JUnitによるテスト,カバレッジの取得,インスペクション,コードステップ数のカウント,分散ソースコード管理システムやバグトラッカーとの連携,メールやTwitterへの通知など,Jenkinsを実開発で使うためのポイントを解説。
さらに分散ビルド,成果物のデプロイ,Seleniumによる結合テストの自動化などの高度なトピック,バージョンアップ,チューニング,データ領域の変更,セキュリティへの配慮,バックアップとリストア,ログ管理など運用管理の方法もおさえました。
Jenkinsの生みの親・川口耕介氏も推薦の1冊。
こんな方におすすめ
- 開発プロジェクトの効率化・品質向上に興味のあるエンジニア
著者の一言
Jenkinsは,世界中で広く使われている継続的インテグレーションサーバです。拡張性が高く,日本語化が進んでおり,活発なコミュニティもあるお陰で,日本でもJenkinsの認知度は高いと思っています。しかし,実際に現場に適用しようと思った時に,拡張性・自由度の高さがかえって仇になって,「どうしたらいいのかわからない」という声もよく耳にします。ちょうど「レゴブロックが箱一杯にあるけれども,どうやったら家を作れるかわからない」というような状態です。
ソフトウェアを書く作業にはある種の才能,努力,時間が必要です。しかし,そのソフトウェアという「点」を普及させ,実際に世の中の役に立つ「面」に広げるのも別種の才能,努力,時間が不可欠です。海の向こうから,日本でJenkinsを点から面へ広げる上で,私はある種の手詰まりを感じていました。
NTTデータの佐藤さんのチームに声をかけていただいたのはそんな時でした。佐藤さんのチームではNTTデータの社内向けに開発環境やプロセスの整備を進めており,Jenkinsもその一環として使ってらっしゃるとのことでした。
本書は,そんな佐藤さんのチームがNTTデータの現場のプロジェクトと日々接する中で培った経験から生まれました。先進的な技術を現場に導入する ―― 実用的な,現場指向の本を生み出すために,これ以上優れた環境は考えられません。
本書には,そんな「点を面に広げる洞察」が溢れています。レゴブロックをこうやって組み立てればまずは家が建つ,という道筋がきちんと示されています。これをまずスタートにして,そこから読者が各自自分好みに部分部分を作り替えていける自由度はJenkinsが持っています。実際にJenkinsを仕事に組み込む上で,この本が役に立つと確信しています。
Jenkins プロジェクトリード
CloudBees, Inc. アーキテクト
本書に関するお知らせ
本書に関連する記事を公開しております。
この書籍に関連する記事があります!
- はじめに
- みなさん,ソフトウェア・システム開発の現場でこんなことに困っていませんか?
目次
- 本書の刊行に寄せて 川口耕介
- はじめに
第1章 継続的インテグレーションとJenkins
1.1 継続的インテグレーションとは
- 1.1.1 手動ビルドとビルドツールの限界
- 1.1.2 継続的インテグレーションと5つのメリット
- コラム 継続的インテグレーションはXPから生まれた
- 1.1.3 継続的インテグレーションの4つの疑問
- 1.1.4 とあるチームの結合テスト
1.2 継続的インテグレーションに必要なもの
- 1.2.1 必要となる6つのツール
- 1.2.2 必要となる2つの機能
1.3 Jenkinsとは
- 1.3.1 Jenkinsの6つのメリット
- 1.3.2 Jenkinsの歴史
- コラム Jenkinsコミュニティに参加する3つの方法
第2章 インストールと設定
2.1 Jenkinsをインストールする
- 2.1.1 Windows Server 2008にインストールする
- 2.1.2 CentOSにインストールする
- 2.1.3 Tomcatにインストールする
- コラム jenkins.warの簡単インストール
- 2.1.4 Subversionをインストールする
- コラム Subversionを始めるために最低限知っておきたい4つの概念
- コラム WindowsのSubversionクライアントツール「TortoiseSVN」
- 2.1.5 Subversionのリポジトリを作成する
2.2 Jenkinsの初期設定
- 2.2.1 ビルド結果をメール通知する
- 2.2.2 Maven/Ant/JDKを自動的にインストールする
- コラム Apacheの後ろでJenkinsを動かそう
第3章 ジョブを作ってビルドする
3.1 ジョブを作る
- 3.1.1 STEP1.新規ジョブを作成する
- 3.1.2 STEP2. ソースコード管理システムを設定する
- コラム 複数リポジトリからのチェックアウトを指定するには
- 3.1.3 STEP3.ビルドトリガを設定する
- コラム cronの設定書式
- コラム SubversionからJenkinsのビルドをトリガーする
- 3.1.4 STEP4. ビルドタスクを設定する
- 3.1.5 STEP5. ビルド後の処理を設定する
- コラム クエスチョンマーク
3.2 ビルドして結果を確認する
- 3.2.1 ビルドを実行する2つの方法
- 3.2.2 手動でビルドする
- コラム そのほかの方法でビルドするには
- 3.3 結果を確認する
- 3.3.1 ビルドの状態を確認する
- 3.3.2 ビルド結果画面を確認する
- 3.3.3 コンソール出力を確認する
- 3.3.4 ジョブを削除する
第4章 本番を想定して開発環境を準備する
4.1 開発を始める前に
- 4.1.1 モデルプロジェクト
- 4.1.2 Subversionにプロジェクトデータを登録する
- コラム trunk,branches,tagsとは
- 4.1.3 AntとJDKを設定する
- コラム ビルドツール/JDKを手動でインストールするには
- 4.1.4 Eclipseを準備する
- 4.1.5 プラグインをインストールする
- コラム 社外のネットワークに接続するときのHTTP Proxyの設定
4.2 ビルドしてみよう
- 4.2.1 手動でビルドしてみよう
第5章 JUnitでテストする
5.1 ユニットテストを自動化する意味
- 5.1.1 クライアント環境で実施しないメリット
- 5.1.2 なぜユニットテストを自動化すべきか
- 5.1.3 テストコードを作成する手間がかからないか
5.2 JenkinsでJUnitコードを実行する
- 5.2.1 ビルドスクリプトを設定する
- 5.2.2 ビルドを実行する
5.3 テスト結果を集計する
- 5.3.1 集計機能を利用する
- 5.3.2 失敗したテストの詳細を確認する
第6章 カバレッジを取得する
6.1 カバレッジの取得を自動化する意味
- 6.1.1 カバレッジとは
- 6.1.2 なぜJenkinsでカバレッジを取得するのか
6.2 Coberturaを実行する
- 6.2.1 ビルドスクリプトを設定する
- 6.2.2 ジョブを設定する
- 6.2.3 カバレッジ・レポートを確認する
- 6.2.4 テストを追加する
- 6.2.5 テスト追加後の結果を確認する
第7章 インスペクションを実施する
7.1 インスペクションを自動化する前に
- 7.1.1 Jenkinsでインスペクションを実施する意味
- 7.1.2 インスペクションに利用するツール
7.2 インスペクションを実行する
- 7.2.1 ビルドスクリプトを設定する
- 7.2.2 ジョブを設定する
- 7.2.3 警告を確認する
- 7.2.4 警告に従ってソースコードを修正する
第8章 コードステップ数をカウントする
8.1 コードステップ数をカウントする理由
- 8.1.1 コードステップ数からわかること
- 8.1.2 コードステップをカウントするためのツール
8.2 コードステップ数を測定する
- 8.2.1 ビルドスクリプトを設定する
- 8.2.2 ジョブを設定する
- 8.2.3 コードステップ数の推移グラフを確認する
- 8.2.4 レポートから状況を分析する
第9章 設定のポイント
9.1 ビルドの実行数を制御する
- 9.1.1 なぜビルド数を制御する必要があるか
- 9.1.2 同時ビルド数を設定する
9.2 セキュリティのためのユーザー管理
- 9.2.1 ユーザーを管理する
- コラム LDAPで接続できる代表的なソフトウェア
- コラム おすすめプラグイン「reverse-proxy-auth-plugin
- 9.2.2 権限を設定する
- コラム おすすめプラグイン「Jenkins Job Configuration History Plugin」
9.3 上流/下流プロジェクトの設定
- 9.3.1 下流プロジェクトの設定
- 9.3.2 上流プロジェクトの設定
- コラム おすすめプラグイン「Copy Artifact Plugin」
9.4 ビルド結果をさまざまな経路で通知させる
- 9.4.1 Email通知を拡張する
- 9.4.2 IRCに通知する
- 9.4.3 Twitterに通知する
- コラム スマートフォンからJenkinsを見てみよう
第10章 一歩進んだ活用法
10.1 分散ソースコード管理システムとの連携
- 10.1.1 集中管理型か? 分散管理型か?
- コラム ソースコード管理システムはどのように運用すればいいか
- 10.1.2 Mercurialと連携させる
- 10.1.3 Gitと連携させる
- コラム おすすめプラグイン「URL SCM plugin」
10.2 分散ビルドを実行する
- 10.2.1 分散ビルドが必要になる理由
- 10.2.2 マスターとスレーブとは
- 10.2.3 マスターとスレーブの4つの設定方法
- 10.2.4 スレーブサーバとしてWindowsを利用する
- 10.2.5 スレーブサーバとしてLinuxを利用する
- コラム おすすめプラグイン「Jenkins MSBuild Plugin」
10.3 成果物をデプロイする
- 10.3.1 手動デプロイから自動デプロイへ
- 10.3.2 War形式でデプロイする
10.4 結合テストを自動化する
- 10.4.1 テスト自動化ツールの課題と意義
- 10.4.2 Seleniumで自動的にテストを実行する
- コラム Selenium IDEでテストコードを効率的に生成する
- コラム システム管理ツールPuppet/Chefで自動化する範囲を拡大する
- コラム Continuous Deliveryとは?
10.5 バグトラッカーと連携させる
- 10.5.1 情報を共有すればバグ管理を強化できる
- 10.5.2 Tracと連携させる
- 10.5.3 Redmineと連携させる
- 10.5.4 JIRAと連携させる
第11章 より便利に使うために
11.1 プラグインを利用する
- 11.1.1 プラグインの探し方
- 11.1.2 プラグインをインストールする
- 11.1.3 プラグインをアップデートするには
11.2 プラグインを開発する
- 11.2.1 開発に必要なもの
- 11.2.2 開発環境を準備する
- 11.2.3 雛型プラグインを作成する
- 11.2.4 Eclipseで効率的に開発する
- 11.2.5 プラグインをデバッグする
11.3 成果物を管理する
- 11.3.1 成果物の保存設定を変更する
- 11.3.2 ファイル指紋で成果物の情報を追跡する
11.4 ビューをカスタマイズする
- 11.4.1 見たいジョブを埋もれさせないために
- 11.4.2 ビューを追加する
- 11.4.2 ビューを変更する
- 11.4.3 ビューを削除する
第12章 安定して利用するための5つの運用管理
12.1 Jenkinsログを確認する
- 12.1.1 問題解決の糸口はログにある
- 12.1.2 ログを確認するには
- 12.1.3 ログはどこに出力されるか
12.2 バックアップとリストア
- 12.2.1 JENKINS_HOMEのコピーが基本
- 12.2.2 BackupPluginでバックアップする
12.3 ディスク領域を管理/変更する
- 12.3.1 ディスク容量を管理する
- 12.3.2 JENKINS_HOMEを変更する
12.4 Jenkinsをチューニングする
- 12.4.1 ヒープ領域の利用状況を確認する
- 12.4.2 メモリ領域を拡張する
12.5 Jenkinsをバージョンアップさせる
- 12.5.1 自動アップグレードのメリットとデメリット
- 12.5.2 アップグレードの手順
- 12.5.3 ダウングレードの手順
参考文献
この本に関連する書籍
-
チーム開発実践入門──共同作業を円滑に行うツール・メソッド
本書はサービスやアプリケーションを開発する企業において,複数の人たちでチームを組んで開発を進めていく際に必要な考え方や使用するツール,またそれらをうまく使い...
-
[改訂]Trac入門――ソフトウェア開発・プロジェクト管理活用ガイド
Jenkins,Gitなどソフトウェアの開発工程を見直し,より生産性をあげる管理ソフトウェアを利用することが開発の流れになっています。本書では,その先駆けとなったTrac...
-
JUnit実践入門 ── 体系的に学ぶユニットテストの技法
本書では,JavaテスティングフレームワークのデファクトスタンダードであるJUnitの基本的な使い方から,拡張機能,テストパターンまでを網羅的に解説します。また,デー...
-
常時結合によるシステム開発効率化ガイド
大規模化・複雑化を続けるシステムのコード。ビルドやテスト,デプロイといった工程を手作業で行っていては,ビジネスのスピードに追いつくことができません。本書では...
-
Javaルールブック ~読みやすく効率的なコードの原則
「名前の付け方がバラバラでわかりづらい」「取りあえず動いているけど,どこかおかしい」……チームで開発にあたるプロジェクトでは致命的といえるそんな問題を解決する...
-
Subversion入門
本書は,バージョン管理システムとして現在広く使われているSubversionについて,初歩から解説した入門書です。Subversionクライアントの使い方から始まり,サーバの構...
-
Trac入門――ソフトウェア開発・プロジェクト管理活用ガイド
『ソフトウェア開発における必須のプロジェクト管理ツール・Trac』Tracは,もはやソフトウェア開発に欠かすことができないプロジェクト管理ツールです。基本的には,情...