万本电子书0元读

万本电子书0元读

顶部广告

Learning Continuous Integration with Jenkins - Second Edition电子书

售       价:¥

30人正在读 | 0人评论 9.8

作       者:Nikhil Pathania

出  版  社:Packt Publishing

出版时间:2017-12-20

字       数:30.5万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:此类商品不支持退换货,不支持下载打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Speed up the software delivery process and software productivity using the latest features of Jenkins About This Book ? Take advantage of a Continuous Integration and Continuous Delivery solution to speed up productivity and achieve faster software delivery ? See all the new features introduced in Jenkins 2.x, such as Pipeline as code, Multibranch pipeline, Docker Plugin, and more ? Learn to implement Continuous Integration and Continuous Delivery by orchestrating multiple DevOps tools using Jenkins Who This Book Is For The book is for those with little or no previous experience with Agile or CI and CD. It’s a good starting point for anyone new to this field who wants to leverage the benefits of CI and CD to increase productivity and reduce delivery time. It’s ideal for Build and Release engineers, DevOps engineers, SCM (Software Configuration Management) engineers, developers, testers, and project managers. If you’re already using Jenkins for CI, you can take your project to the next level—CD. What You Will Learn ? Get to know some of the most popular ways to set up Jenkins ? See all the new features introduced in the latest Jenkins, such as pipeline as code, Multibranch pipeline, and more ? Manage users, projects, and permissions in Jenkins to ensure better security ? Leverage the power of plugins in Jenkins ? Learn how to create a CI pipeline using Jenkins Blue Ocean ? Create a distributed build farm using Docker and use it with Jenkins ? Implement CI and CD using Jenkins ? See the difference between CD and Continuous Deployment ? Understand the concepts of CI In Detail In past few years, agile software development has seen tremendous growth. There is a huge demand for software delivery solutions that are fast yet flexible to numerous amendments. As a result, Continuous Integration (CI) and Continuous Delivery (CD) methodologies are gaining popularity. This book starts off by explaining the concepts of CI and its significance in the Agile. Next, you'll learn how to configure and set up Jenkins in many different ways. The book exploits the concept of "pipeline as code" and various other features introduced in the Jenkins 2.x release to their full potential. We also talk in detail about the new Jenkins Blue Ocean interface and the features that help to quickly and easily create a CI pipeline. Then we dive into the various features offered by Jenkins one by one, exploiting them for CI and CD. Jenkins' core functionality and flexibility allows it to fit in a variety of environments and can help streamline the development process for all stakeholders. Next, you'll be introduced to CD and will learn how to achieve it using Jenkins. Through this book's wealth of best practices and real-world tips, you'll discover how easy it is to implement CI and CD using Jenkins. Style and approach The book uses a simple Maven project to demonstrate the implementation of CI and CD using Jenkins. This step-by-step guide shows you how to implement CI/CD and can be used as a template to perform CI/CD in your projects.
目录展开

Title Page

Second Edition

Copyright

Learning Continuous Integration with Jenkins

Second Edition

Credits

About the Author

About the Reviewer

www.PacktPub.com

Why subscribe?

Customer Feedback

Preface

What this book covers

What you need for this book

Who this book is for

Conventions

Reader feedback

Customer support

Downloading the example code

Downloading the color images of this book

Errata

Piracy

Questions

Concepts of Continuous Integration

Software Development Life Cycle

Requirement analysis

Design

Implementation

Testing

Evolution

Waterfall model of software development

Disadvantages of the Waterfall model

Advantages of the Waterfall model

Agile to the rescue

The twelve agile principles

How does the Agile software development process work?

Advantages of Agile software development process

The Scrum framework

Important terms used in the Scrum framework

How does Scrum work?

Sprint Planning

Sprint cycle

Daily Scrum meeting

Monitoring Sprint progress

Sprint Review

Sprint Retrospective

Continuous Integration

Agile runs on CI

Types of projects that benefit from CI

Elements of CI

Version control system

Branching strategy

GitFlow branching model

CI tool

Self-triggered builds

Code coverage

Code coverage tools

Static code analysis

Automated testing

Binary repository tools

Automated packaging

Benefits of using CI

Freedom from long integrations

Metrics

Catching issues faster

Rapid development

Spend more time adding features

Summary

Installing Jenkins

Running Jenkins inside a servlet container

Prerequisites

Installing Java

Installing Apache Tomcat

Enabling the firewall and port 8080

Configuring the Apache Tomcat server

Installing Jenkins on the Apache Tomcat server

Installing Jenkins alone on an Apache Tomcat server

Setting up the Jenkins home path

Installing a standalone Jenkins server on Windows

Prerequisites

Installing Java

Installing the latest stable version of Jenkins

Starting, stopping, and restarting Jenkins on Windows

Installing a standalone Jenkins server on Ubuntu

Prerequisites

Installing Java

Installing the latest version of Jenkins

Installing the latest stable version of Jenkins

Starting, stopping, and restarting Jenkins on Ubuntu

Installing a standalone Jenkins server on Red Hat Linux

Prerequisites

Installing Java

Installing the latest version of Jenkins

Installing the latest stable version of Jenkins

Starting, stopping, and restarting Jenkins on Red Hat Linux

Running Jenkins behind a reverse proxy

Prerequisites

Installing and configuring Nginx

Configuring the firewall on a Nginx server

Starting, stopping, and restarting the Nginx server

Securing Nginx using OpenSSL

Creating an SSL certificate

Creating strong encryption settings

Modifying the Nginx configuration

Enabling the changes and testing our Nginx setup

Configuring the Jenkins server

Adding reverse proxy settings to the Nginx configuration

Running Nginx and Jenkins on the same machine

Running Jenkins on Docker

Prerequisites

Setting up a Docker host

Setting up the repository

Installing Docker

Installing from a package

Running the Jenkins container

Running a Jenkins container using a data volume

Testing the data volume

Creating development and staging instances of Jenkins

Prerequisites

Creating an empty data volume

Copying data between data volumes

Creating the development and staging instances

Summary

The New Jenkins

The Jenkins setup wizard

Prerequisites

Unlocking Jenkins

Customizing Jenkins

Creating the first admin user

The new Jenkins pipeline job

Prerequisite

Creating a Jenkins pipeline job

The Global Tool Configuration page

Jenkins pipeline Stage View

Declarative Pipeline syntax

Basic structure of a Declarative Pipeline

The node block

The stage block

Directives

Steps

Jenkins pipeline syntax utility

Prerequisite

Installing the Pipeline Maven Integration Plugin

Creating a Jenkins pipeline using the pipeline syntax utility

Multibranch pipeline

Prerequisite

Adding GitHub credentials inside Jenkins

Configuring Webhooks on GitHub from Jenkins

Create a new repository on GitHub

Using a Jenkinsfile

Creating a Multibranch pipeline in Jenkins

Re-register the Webhooks

Jenkins Multibranch pipeline in action

Creating a new feature branch to test the multibranch pipeline

Jenkins Blue Ocean

Installing the Jenkins Blue Ocean plugin

View your regular Jenkins pipeline in Blue Ocean

Creating a pipeline in Blue Ocean

Summary

Configuring Jenkins

The Jenkins Plugin Manager

Updating Jenkins plugins

Installing a new Jenkins plugin

Uninstalling or downgrading a Jenkins plugin

Configuring proxy settings in Jenkins

Manually installing a Jenkins plugin

Jenkins backup and restore

Installing the Periodic Backup plugin

Configuring the Periodic Backup plugin

Creating a Jenkins backup

Restoring a Jenkins backup

Viewing the backup and restore logs

Upgrading Jenkins

Upgrading Jenkins running on Tomcat Server

Upgrading standalone Jenkins running on Windows

Upgrading standalone Jenkins running on Ubuntu

Upgrading Jenkins running on a Docker container

User administration

Enabling/disabling global security on Jenkins

Enabling/disabling computers to remember user credentials

Authentication methods

Delegating to a servlet container

Jenkins' own user database

LDAP

Unix user/group database

Creating new users inside Jenkins

People page

User information and settings in Jenkins

Authorization methods

Anyone can do anything

Legacy mode

Logged-in users can do anything

Matrix-based security

Project-based Matrix Authorization Strategy

Summary

Distributed Builds

Distributed build and test

The Jenkins Manage Nodes page

Adding Jenkins slaves – standalone Linux machine/VMs

Passing environment variables to Jenkins slaves

Passing tools' locations to Jenkins slaves

Launching a Jenkins slave via SSH

More about the active Jenkins slave

Adding Jenkins slaves – standalone Windows machine/VMs

Launching a Jenkins slave via Java Web Start

Adding Jenkins slaves – Docker containers

Prerequisites

Setting up a Docker server

Setting up the repository

Installing Docker using apt-get

Installing Docker using a .deb package

Enabling Docker remote API

Modifying the docker.conf file

Modifying the docker.service file

Installing the Docker plugin

Configuring the Docker plugin

Creating a Docker image – Jenkins slave

Adding Docker container credentials in Jenkins

Updating the Docker settings inside Jenkins

Summary

Installing SonarQube and Artifactory

Installing and configuring SonarQube

Installing Java

Downloading the SonarQube package

Running the SonarQube application

Resetting the default credentials and generating a token

Creating a project inside SonarQube

Installing the build breaker plugin for SonarQube

Creating quality gates

Updating the default quality profile

Installing the SonarQube plugin in Jenkins

Configuring the SonarQube plugin in Jenkins

Installing and configuring Artifactory

Installing Java

Downloading the Artifactory package

Running the Artifactory application

Resetting the default credentials and generating an API key

Creating a repository in Artifactory

Adding Artifactory credentials inside Jenkins

Installing the Artifactory plugin in Jenkins

Configuring the Artifactory Plugin

Summary

Continuous Integration Using Jenkins

Jenkins CI design

Branching strategy

The master branch

The integration branch

The feature branch

The CI pipeline

Toolset for CI

Creating the CI pipeline

Creating a new repository on GitHub

Using the SonarQube scanner for Maven

Writing the Jenkinsfile for CI

Spawning a Docker container – build agent

Downloading the latest source code from VCS

Pipeline code to perform the build and unit test

Pipeline code to perform static code analysis

Pipeline code to perform integration testing

Pipeline code to publish built artifacts to Artifactory

Combined CI pipeline code

Using a Jenkinsfile

Creating a Multibranch Pipeline in Jenkins

Re-registering the Webhooks

Continuous Integration in action

Viewing static code analysis in SonarQube

Accessing SonarQube analysis right from Jenkins

Viewing artifacts in Artifactory

Failing the build when quality gate criteria are not met

Summary

Continuous Delivery Using Jenkins

Jenkins CD design

Branching strategy

The release branch

CD pipeline

Toolset for CD

Creating a Docker image – performance testing

Adding Docker container credentials in Jenkins

Updating the Docker settings inside Jenkins

Creating a performance test using JMeter

Installing Java

Installing Apache JMeter

Starting JMeter

Creating a performance test case

Creating a thread group

Creating a sampler

Adding a listener

The CD pipeline

Writing the Jenkinsfile for CD

Revisiting the pipeline code for CI

Pipeline code to stash the build artifacts

Spawning a Docker container – performance testing

Pipeline code to start Apache Tomcat

Pipeline code to deploy build artifacts

Pipeline code to run performance testing

Pipeline code to promote build artifacts in Artifactory

Combined CD pipeline code

CD in action

Summary

Continuous Deployment Using Jenkins

What is Continuous Deployment?

How Continuous Deployment is different from Continuous Delivery

Who needs Continuous Deployment?

Creating a production server

Installing Vagrant

Installing VirtualBox

Creating a VM using Vagrant

Creating a Vagrantfile

Spawning a VM using Vagrant

Adding production server credentials inside Jenkins

Installing a Jenkins slave on a production server

Creating a Jenkins Continuous Deployment pipeline

A revisit to the pipeline code for CD

Pipeline code for a production Jenkins slave

Pipeline code to download binaries from Artifactory

Combined Continuous Deployment pipeline code

Update the Jenkinsfile

Continuous Delivery in action

Summary

Supporting Tools and Installation Guide

Exposing your localhost server to the internet

Installing Git on Windows/Linux

Installing Git on Windows

Installing Git on Linux

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部