My Account Log in

1 option

Learning Continuous Integration with Jenkins : An End-To-end Guide to Creating Operational, Secure, Resilient, and Cost-effective CI/CD Processes / Nikhil Pathania.

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Pathania, Nikhil, author.
Language:
English
Subjects (All):
Jenkins (Software development tool).
Computer software--Reliability.
Computer software.
Computer software--Reusability.
Computers, Pipeline.
Physical Description:
1 online resource (396 pages)
Edition:
Third edition.
Place of Publication:
Birmingham, England : Packt Publishing Ltd., [2024]
Biography/History:
Pathania Nikhil: Nikhil Pathania is a tech expert with deep knowledge in the Software Development Lifecycle (SDLC) domain. His professional identity is shaped by his specialization in Agile methodologies, DevOps practices, cloud technologies, and container solutions. His significant contributions, particularly in implementing CI/CD frameworks at multinational corporations, underline his expertise in optimizing complex software development processes. In his current role as a solutions architect at Arla Foods, Nikhil spearheads innovative projects in software development and data analytics, reflecting his keen insight into technological advancements and their practical applications.
Summary:
Integrate Jenkins, Kubernetes, and more on cloud into a robust, GitOps-driven CI/CD system, leveraging JCasC, IaC, and AI for a streamlined software delivery process Key Features Follow the construction of a Jenkins CI/CD pipeline start to finish through a real-world example Construct a continuous deployment (CD) pipeline in Jenkins using GitOps principles and integration with Argo CD Craft and optimize your CI pipeline code with ChatGPT and GitHub Copilot Purchase of the print or Kindle book includes a free PDF eBook Book Description This updated edition of Learning Continuous Integration with Jenkins is your one-stop guide to implementing CI/CD with Jenkins, addressing crucial technologies such as cloud computing, containerization, Infrastructure as Code, and GitOps. Tailored to both beginners and seasoned developers, the book provides a practical path to mastering a production-grade, secure, resilient, and cost-effective CI/CD setup. Starting with a detailed introduction to the fundamental principles of CI, this book systematically takes you through setting up a CI environment using Jenkins and other pivotal DevOps tools within the CI/CD ecosystem. You'll learn to write pipeline code with AI assistance and craft your own CI pipeline. With the help of hands-on tutorials, you'll gain a profound understanding of the CI process and Jenkins' robust capabilities. Additionally, the book teaches you how to expand your CI pipeline with automated testing and deployment, setting the stage for continuous deployment. To help you through the complete software delivery process, this book also covers methods to ensure that your CI/CD setup is maintainable across teams, secure, and performs optimally. By the end of the book, you'll have become an expert in implementing and optimizing CI/CD setups across diverse teams. What you will learn Understand CI with the Golden Circle theory Deploy Jenkins on the cloud using Helm charts and Jenkins Configuration as Code (JCasC) Implement optimal security practices to ensure Jenkins operates securely Extend Jenkins for CI by integrating with SonarQube, GitHub, and Artifactory Scale Jenkins using containers and the cloud for optimal performance Master Jenkins declarative syntax to enrich your pipeline coding vocabulary Enhance security and improve pipeline code within your CI/CD process using best practices Who this book is for This book is for a diverse audience, from university students studying Agile software development to seasoned developers, testers, release engineers, and project managers. If you're already using Jenkins for CI, this book will assist you in elevating your projects to CD. Whether you're new to the concepts of Agile, CI, and CD, or a DevOps engineer seeking advanced insights into JCasC, IaC, and Azure, this book will equip you with the tools to harness Jenkins for improved productivity and streamlined deliveries in the cloud.
Contents:
Cover
Title Page
Copyright and Credits
Contributors
Table of Contents
Preface
Part 1 The Concepts
Chapter 1: The What, How, and Why of Continuous Integration
What is continuous integration?
Defining continuous integration
Key principles of continuous integration
How to practice continuous integration
Using a version control tool
Verifying every code commit for build errors
Performing unit testing
Static code analysis
Employing a binary repository manager
Orchestrating using a CI/CD tool
Parallelizing through distributed builds
Why is continuous integration crucial?
A faster time to market (TTM)
Improved software quality
Highly secure applications
Cost-effective system
Summary
Questions
Answers
Further reading
Part 2 Engineering the CI Ecosystem
Chapter 2: Planning, Deploying, and Maintaining Jenkins
Technical requirements
Planning your Jenkins setup
Understanding the Jenkins server architecture
Jenkins system requirements
Evaluating Jenkins deployment scenarios
Understanding JCasC
Deploying your Jenkins setup
Deploying Jenkins on a managed Kubernetes cluster
Deploying Jenkins to a cloud instance
Maintaining your Jenkins setup
Following a structured approach to upgrades
Implementing backup strategies for Jenkins build data
Chapter 3: Securing Jenkins
Configuring user authentication and permissions
Registering Jenkins on Azure AD
Installing the Jenkins plugin for Azure AD
Configuring Azure AD settings in Jenkins
Configuring user permissions in Jenkins
Understanding CSRF protection in Jenkins
Using Jenkins Credentials
Types of credentials
Scope of credentials
Securing secrets in JCasC
Questions.
Answers
Chapter 4: Extending Jenkins
Connecting Jenkins to a version control system
Installing the Jenkins plugin for GitHub
Creating a personal access token on GitHub
Creating a secret text credential inside Jenkins
Creating a username and password credential inside Jenkins
Configuring the GitHub plugin
Connecting Jenkins to SonarQube
Deploying an Nginx Ingress controller for SonarQube
Deploying a SonarQube server using a Helm chart
Deploying an Ingress file for SonarQube
Installing the Jenkins plugin for SonarQube
Creating a global analysis token on SonarQube
Configuring the SonarQube plugin
Connecting Jenkins to Artifactory
Deploying an Nginx Ingress controller for Artifactory
Deploying an Artifactory server using a Helm chart
Deploying an Ingress file for Artifactory
Installing the Jenkins plugin for Artifactory
Creating a user in Artifactory
Configuring the Artifactory plugin
Chapter 5: Scaling Jenkins
Understanding Jenkins' distributed build architecture
An overview of the master-agent model
Methods for building a distributed farm
Creating on-demand build agents on Kubernetes
Understanding the Kubernetes plugin configuration
Creating on-demand build agents on Azure
Installing the Jenkins Azure VM Agents plugin
Creating an Azure service principal in Azure
Creating an Azure service principal credential inside Jenkins
Configuring the Azure VM Agents plugin
Part 3 Crafting the CI Pipeline
Chapter 6: Enhancing Jenkins Pipeline Vocabulary.
Technical requirements
Building vocabulary for pipeline code
Introducing Jenkins pipeline code
Understanding the components of Declarative Pipelines
Managing complexity using nested stages
Using built-in tools to construct pipeline code
Introducing the Declarative Directive Generator
Introducing Jenkins Snippet Generator
Chapter 7: Crafting AI-Powered Pipeline Code
Introducing AI, language models, and ChatGPT
Guidelines for effective interaction with ChatGPT
Describing your pipeline requirements
Running your pipeline code
Troubleshooting your pipeline code
Refining your code
Constructing a pipeline code using ChatGPT
Understanding the limitations of ChatGPT
Chapter 8: Setting the Stage for Writing Your First CI Pipeline
Understanding the software project for CI
Understanding the architecture
Understanding the source code
Understanding the backend code
Understanding the frontend code
Understanding the database code
Creating a repository on GitHub for your project
High-level CI design
Source code considerations
High-level CI pipeline design
Creating a webhook on the repository
Setting up a project in SonarQube
Using Artifactory as a Docker registry
Creating a Kubernetes Secret on AKS
Chapter 9: Writing Your First CI Pipeline
Writing CI pipeline code
Configuring Jenkins agent settings
Performing static code analysis
Performing a SonarQube quality gate check
Building and publishing images to Artifactory
Publishing build info to Artifactory
Publishing testing results to Jenkins
CI in action.
Creating a Multibranch Pipeline Job in Jenkins
Visualizing the CI pipeline run and test results
Visualizing the SCA report and code coverage
Visualizing build artifacts
Part 4 Crafting the CD Pipeline
Chapter 10: Planning for Continuous Deployment
Understanding Continuous Deployment
Universal CI with master-only CD
Universal CI and CD
Understanding GitOps
Planning Continuous Deployment
High-level Continuous Deployment design
Exploring the Helm chart of our web application
Setting up staging and production environments
Installing Argo CD
Creating applications in Argo CD
Integrating Jenkins with Argo CD
Chapter 11: Writing Your First CD Pipeline
Writing CD pipeline code
Updating Jenkins agent settings
Configuring pipeline options and the environment
Update Staging Helm Chart Configuration
Verify Staging Deployment Health
Run Performance Testing
Update Production Helm Chart Configuration
Verify Production Deployment Health
CD in action
Verifying changes on the Helm chart
Verifying the deployment in staging and production
Visualizing performance testing results
Chapter 12: Enhancing Your CI/CD Pipelines
Using GitHub Copilot to write pipeline code
Enabling GitHub Copilot
Using Copilot to write pipeline code
Choosing between Copilot and ChatGPT
Using Jenkins Shared Libraries
Writing a Jenkins Shared Library
Configuring a Shared Library inside Jenkins
Using the Shared Library inside your pipeline
Discarding old builds in Jenkins
Catching security vulnerabilities early in code
Installing JFrog Xray.
Scanning for vulnerabilities through a CI pipeline
Adding the Jenkins build to the scans list
Visualizing the vulnerability report using Xray
Index
Other Books You May Enjoy.
Notes:
Description based on print version record.
ISBN:
9781835081129
1835081126
OCLC:
1420910033

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account