Hands-on Pipeline as Code with Jenkins
eBook - ePub

Hands-on Pipeline as Code with Jenkins

CI/CD Implementation for Mobile, Web, and Hybrid Applications Using Declarative Pipeline in Jenkins (English Edition)

Ankita Patil

Share book
  1. English
  2. ePUB (mobile friendly)
  3. Available on iOS & Android
eBook - ePub

Hands-on Pipeline as Code with Jenkins

CI/CD Implementation for Mobile, Web, and Hybrid Applications Using Declarative Pipeline in Jenkins (English Edition)

Ankita Patil

Book details
Book preview
Table of contents
Citations

About This Book

A step-by-step guide to implementing Continuous Integration and Continuous Delivery (CICD) for Mobile, Hybrid, and Web applications Key Features

  • Understand how and when Continuous Integration makes a difference
  • Learn how to create Declarative Pipeline for Continuous Integration and Continuous Delivery
  • Understand the importance of Continuous Code Inspection and Code Quality
  • Learn to publish Unit Test and Code Coverage in Declarative Pipeline
  • Understand the importance of Quality Gates and Build Quality Description
    The main objective of the book is to create Declarative Pipeline for programming languages such as Java, Android, iOS, AngularJS, NodeJS, Flutter, Ionic Cordova, and.Net. The book starts by introducing all the areas which encompass the field of DevOps Practices. It covers definition of DevOps, DevOps history, benefits of DevOps culture, DevOps and Value Streams, DevOps practices, different Pipeline types such as Build Pipeline, Scripted Pipeline, Declarative Pipeline, and Blue Ocean. Each chapter focuses on Pipeline that includes Static Code Analysis using SonarQube or Lint tools, Unit tests, calculating code coverage, publishing unit tests and coverage reports, verifying the threshold of code coverage, creating build/package, and distributing package to a specific environment based on the type of programming language. The book will also teach you how to use different deployment distribution environments such as Azure App Services, Docker, Azure Container Services, Azure Kubernetes Service, and App Center.By the end, you will be able to implement DevOps Practices using Jenkins effectively and efficiently. What you will learn
  • Use Multi-Stage Pipeline (Pipeline as a Code) to implement Continuous Integration and Continuous Delivery.
  • Create and configure Cloud resources using Platform as a Service Model
  • Deploy apps to Azure App Services, Azure Kubernetes and containers
  • Understand how to distribute Mobile Apps (APK and IPA) to App Center
  • Improve Code Quality and Standards using Continuous Code Inspection Who this book is for
    This book is for DevOps Consultants, DevOps Evangelists, DevOps Engineers, Technical Specialists, Technical Architects, Cloud Experts, and Beginners. Having a basics knowledge of Application development and deployment, Cloud Computing, and DevOps Practices would be an added advantage. Table of Contents
    1. Introducing DevOps
    2. Introducing Jenkins 2.0 and Blue Ocean
    3. Building CICD Pipeline for Java Web Application
    4. Building CICD Pipeline for Android App
    5. Building CICD Pipeline for iOS App
    6. Building CICD Pipeline for Angular Application
    7. Building CICD Pipeline NodeJS Application
    8. Building CICD Pipeline for Hybrid Mobile Application
    9. Building CICD Pipeline for Python Application
    10. Building CICD Pipeline for DotNet Application
    11. Best Practices About the Author
    Mitesh is a DevOps engineer. He is in love with the DevOps culture and concept. Continuous improvement is his motto in life with existing imperfection. His primary focus is on the improvement of the existing culture of an organization or a project using Continuous Integration and Continuous Delivery. Ankita is a DevOps evangelist. She is a continuous learner and practitioner of Agile and DevOps. As a change agent, she always tries to bring change in an organization to get maximum benefits of DevOps. So, she wants to share her knowledge and make sure IT professionals are trained and empowered to make those changes.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on ā€œCancel Subscriptionā€ - itā€™s as simple as that. After you cancel, your membership will stay active for the remainder of the time youā€™ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlegoā€™s features. The only differences are the price and subscription period: With the annual plan youā€™ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, weā€™ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Hands-on Pipeline as Code with Jenkins an online PDF/ePUB?
Yes, you can access Hands-on Pipeline as Code with Jenkins by Ankita Patil in PDF and/or ePUB format, as well as other popular books in Computer Science & Computer Engineering. We have over one million books available in our catalogue for you to explore.

Information

Year
2021
ISBN
9789389898606

CHAPTER 1

Introducing DevOps

ā€œThere is always room for improvement.ā€
ā€” Anonymous
In the waterfall model, all activities in application lifecycle phases are implemented serially and only once! Why do you need an extensive documentation? Isnā€™t it a pain? No testing/verification and validation are performed until an application is ready. Requirements change over time and because of that, all the work that is documented needs to be changed! Expectations change and hence the application changes over time based on the market, technical evolution, and other factors such as demands! Failures are detected too late and issues come at a time that is no point of return! In such a scenario, the Happy Team becomes a MYTH!
To deal with the known issues of the traditional development approach, Agile development methods came into the picture. Integrative and incremental development of features brings customer feedback into the development. Customers know what they are going to get after each iteration. It is not an approach where things are considered serially. A lot of communication and effective collaboration (arguably) takes place between stakeholders to understand the requirements or explain expectations. All stakeholders are continuously involved. To meet the speed of the incremental and iterative model, automation is necessary to speed up things concerning application lifecycle management activities. Here comes the challenge; manual processes bring delay in such an incremental and iterative approach. With agile, all issues and inefficiencies are magnified like never before.
The question is how to automate? Can we start using some tools directly that automates application lifecycle management activities? Is there something more to automation than just tools?
The answer is Yes!
DevOps, Continuous Practices, or DevOps Practices! DevOps is a culture transformation! It helps to bring about change and adopt a change smoothly. We will understand how issues and inefficiencies are magnified and how DevOps practices implementation help in the digital transformation or cultural transformation.

Structure

In this chapter, we will discuss the following topics:
  • What is DevOps?
  • Benefits of DevOps
  • DevOps and Value Streams
  • DevOps practices implementation using tools
    • Continuous Code Inspection
    • Continuous Integration (CI)
    • Cloud computing and containers
    • Artifact management
    • Continuous delivery
    • Continuous testing
    • Continuous deployment
  • Conclusion
  • Questions and exercises

Objectives

After studying this unit, you should be able to:
  • Understand the concept of DevOps
  • Discuss the types of Continuous practices such as Continuous Integration and Continuous Delivery
  • Understand the importance of the mindsets of people, processes, and tools
  • Discuss the different DevOps practices

What is DevOps?

DevOps is a disruptive shift in how to manage the mindsets of people, way of working, and the Application Lifecycle Management Cycle. It is a process of transforming culture rather than implementing tools or a tool-specific approach. DevOps is all about culture transformation using a combination of people, processes, and tools. DevOps is known to be associated with practices such as continuous code inspections, continuous integration (CI), continuous delivery (CD), continuous testing, continuous monitoring, continuous feedback, continuous improvement, and continuous innovation. Now, DevOps practices also accommodate Infrastructure Provisioning in the cloud, Infrastructure as a Code, Configuration Management, and Pipeline as Code too. In this chapter, we will see what the DevOps culture is, how vision, people, processes, and tools help in culture transformation, and the benefits of implementation of continuous practices. Before going ahead with defining DevOps, letā€™s have a quick look at DevOps history.

DevOps history

This flow is based on my exploration and experience. Thatā€™s how I realized how we started our DevOps culture transformation:
Figure 1.1: DevOps history
Now, letā€™s define DevOps. It is a part of the quality-related discussion in organizations.
In simple language, DevOps is all about effective collaboration and communication between different stakeholders such as development, operations, quality, and security teams for better quality, and faster time to market. There are no set of guidelines or methodologies available for DevOps practices implementation:
Letā€™s first understand the responsibilities of the Dev and Ops teams before defining DevOps:
Dev
Ops
  • Write robust applications using design patterns and best practices
  • Maintain code quality and standards
  • Write practical unit tests and utilize active test-driven development
  • Verifying behavior of an application
  • Automated provisioning and de-provisioning of environments
  • Scaling up/down, in/out
  • Manage Infrastructure as a Code (IaC) to maintain version and visibility
  • Configuration management, monitoring and measurements
Table 1.1: Dev and Ops
Based on the existing culture, the implementation roadmap may differ from one organization to another as NO two organizations can have the same culture.
DevOps is a culture that consists of continuous practices that help to achieve faster time to market for an application with the highest quality by Continuous Improvement and Continuous Innovation by involving people, processes, and tools.

NOTE

What is DevOps not?
  • DevOps is not a methodology.
  • DevOps is not a tool.
  • DevOps is not a technology.
  • DevOps is not a framework.
  • DevOps is not a process.
  • DevOps is not scripting.
  • DevOps is not automation only.
  • DevOps is not a set of design patterns where problems and solutions are well defined.
The organization culture can be affected by cognitive biases as it is all about changing culture, and hence, resistance is inevitable. In this chapter, we will take a look at some cognitive biases and their solutions at some intervals with no specific context.
DevOps practices implementation needs visibility. It requires a vision. It also requires transparency and acceptance of the AS-IS scenario. Hence, it is important to assess the ground situation in the organization and derive a roadmap for effective adoption of the roadmap of this cultural transformation journey.
DevOps transformation depends on the following three major aspects:
  • People
  • Processes
  • Tools
Letā€™s understand each aspect in more detail.

People

DevOps is all about people, processes, and tools. It is important to note that people still have a high priority. People have a different notion about what DevOps is, but some are not even aware of it. People are tightly coupled with the existing culture and hence, transformation is difficult.
Each organization has a different culture and different set of practices exists, and hence, it is challenging to change things until people change their attitude and mindset.
Here are the following ...

Table of contents