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.
- 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.