Reader small image

You're reading from  Embracing DevOps Release Management

Product typeBook
Published inApr 2024
PublisherPackt
ISBN-139781835461853
Edition1st Edition
Concepts
Right arrow
Author (1)
Joel Kruger
Joel Kruger
author image
Joel Kruger

Joel Kruger is a senior DevOps professional and solutions architect with over 10 years of experience building CI/CD pipeline infrastructure in commercial and federal sectors. He is also an expert in employing container orchestration systems for automating computer application deployments at scale. He is a proponent of building reusable CI/CD pipeline configurations as downloadable and self-serve software factories. Joel is a very hands-on and customer-service-oriented person who loves to solve a challenge. Technology excites him, from cloud computing to embedded Raspberry Pi projects. He loves being creative with tech and is not afraid to get some hot solder in his shoelaces. Joel owns and operates his own corporation, dynamicVSM, as a freelance DevOps consultant and has experience architecting solutions that scale, reduce waste, and increase visibility. He works together with clients to help manage their value streams better.
Read more about Joel Kruger

Right arrow

Understanding the Basics of CI/CD

Continuous integration and continuous delivery (CI/CD) is a key strategy of DevOps release management. It automates the majority of manual human intervention that would traditionally be needed in order to produce a new software release or get new code into production. CI/CD comprises the integration tests, unit tests, regression tests, and the build and deploy phases. Infrastructure as code can be integrated into the CI/CD process too, automating the provisioning of cloud infrastructure, but can also include provisioning on-premises virtual infrastructure. With CI/CD pipelines, software development teams can make changes to code that are then automatically tested, pushed out for delivery, and deployed in any environment. As you can infer, CI/CD dramatically reduces downtime, ensuring that releases happen far quicker, are consistent from release to release, and occur much more frequently as well. Radical!

You can tailor pipelines to accomplish all...

The ABCs of CI/CD

CI/CD is the lifeblood of today’s software industry, powering the rapid creation and distribution of new programs. Tools that eliminate bottlenecks in integration and delivery are essential for the smooth operation of any CI/CD pipeline. Teams need a unified set of technologies to use in order to work collaboratively and efficiently on projects. Source control, testing tools, infrastructure modification, and monitoring tools are just some of the SDLC elements that can be unified with this framework.

With a well-architected CI/CD pipeline, businesses can quickly pivot to new trends in consumer demand and technological advancements. In contrast, it takes a long time for teams with traditional development strategies to implement customer-requested changes or to incorporate new technologies. In addition, by the time the company realizes it needs to pivot, consumer demand may have already shifted. This problem is addressed by DevOps release management because...

What is continuous integration (CI)?

Modern software development would not be possible without continuous integration (CI). The creation of modern software typically involves the collaboration of numerous developers who are geographically diverse, each of whom focuses on a particular component, feature, or aspect of a product. In order for you to bring a single, comprehensive product to release, it is necessary to merge all of these code changes. However, manually merging all of these changes is extremely impractical, and a painful chore, and when developers are working on many updates concurrently, there will inevitably be code changes that conflict with one another. However, continuous integration incentivizes developers to continuously push their code to the same version control system (VCS), providing a brilliant synergy that solves this problem. With the use of CI, you can continuously commit, build, and test your team’s code, a vital strategy as a DevOps release manager...

What is continuous delivery (CD)?

Continuous delivery (CD) refers to the process of automatically preparing code changes for release and deployment into a production environment. Continuous delivery is an essential component of DevOps release management and is often used in concert with continuous integration (CI).

Even at the tail end of the software development life cycle (SDLC), developers can successfully deploy most product code versions with the help of CI/CD pipelines, along with a version control system (VCS). Continuous delivery enables programmers to automatically test code changes using multiple lenses (not just unit testing) before releasing them to customers. In this way, developers can have faith in the quality of the build artifacts they’re deploying, as they will have been subjected to rigorous testing and found to be in compliance with industry standards. API testing, load testing, functional and UI testing, integration testing, compliance testing, and others...

What is continuous testing?

By now, you should have a firm grasp on the importance of automated testing, at least based on the number of times the subject has been mentioned. The emphasis on how important automated testing is to DevOps release management cannot be overstated.

Continuous testing is a practice within the broader context of CI/CD that contributes to software quality throughout the development life cycle. Using carefully curated automated testing strategies, continuous testing ensures that software development teams get real-time feedback, allowing them to rapidly eliminate as many potential risks and flaws as possible and as soon as possible, spanning the entire software development life cycle. Furthermore, teammates will be properly equipped to continuously gain new insights into their products and ways that they can be improved.

However, implementing continuous testing in your organization is not a straightforward process because you must come up with a testing...

The DevOps transformation of Capital One

In 2010, Capital One acknowledged their customers’ preferences for online and mobile banking. In light of this, executive leadership decided to enhance the business’s technological capabilities and establish a culture that would attract and grow a workforce of highly skilled technologists with a knack for collaborative development. Prudently, Capital One prioritized the recruitment of these hearty souls and made sure they were working closely with relevant decision-makers who consummately understood the business requirements. Shortly after, the company embraced agile software development techniques that eventually became the basis for implementing DevOps release management at the company.

Promptly addressing customer feedback has always been the top concern at Capital One. Therefore, DevOps emerged as the logical option for development teams to attain accelerated development and deployment cycles. Between 2012 and 2020, Capital...

Summary

This concludes Chapter 6. In our discussion, you’ve learned the basics of CI/CD from a release manager’s perspective. You now grasp how continuous integration incentivizes developers to continuously push their code to source control repositories, unifying their work into a single release. From there, we’ve reviewed why continuous delivery is such a powerful companion to continuous integration. Then, we examined all of the appropriate stages of a continuous delivery pipeline, and how it differs from a continuous deployment pipeline. Furthermore, you have become familiar with GitOps, a contemporary DevOps strategy that amplifies the concept of continuous deployment by introducing pull-based deployment tactics. Finally, we’ve examined continuous testing, the premier quality assurance strategy for any DevOps-centric software organization.

In the next chapter, you will be shown how to build a docker image containing a simple web application that deploys...

Questions

Answer the following questions to test your knowledge of this chapter:

  1. Can CI/CD pipelines be used to automate more than just the activities required for releasing and deploying software?
  2. Why do software development teams need a unified set of technologies to work with in order to attain peak productivity?
  3. What is the benefit of increasing commit frequency?
  4. What is a continuous integration server and what does it do?
  5. What is the primary difference between continuous delivery and continuous deployment?
  6. What are the five primary phases of a continuous delivery pipeline?
  7. What is GitOps and how is it different from DevOps?
  8. What is the distinction between automated testing and continuous testing?
  9. What is the best way for software developers to detect and fix bugs or defects in their code before it ever gets committed in the first place?
  10. What do canary deployments have in common with continuous testing?
lock icon
The rest of the chapter is locked
You have been reading a chapter from
Embracing DevOps Release Management
Published in: Apr 2024Publisher: PacktISBN-13: 9781835461853
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Author (1)

author image
Joel Kruger

Joel Kruger is a senior DevOps professional and solutions architect with over 10 years of experience building CI/CD pipeline infrastructure in commercial and federal sectors. He is also an expert in employing container orchestration systems for automating computer application deployments at scale. He is a proponent of building reusable CI/CD pipeline configurations as downloadable and self-serve software factories. Joel is a very hands-on and customer-service-oriented person who loves to solve a challenge. Technology excites him, from cloud computing to embedded Raspberry Pi projects. He loves being creative with tech and is not afraid to get some hot solder in his shoelaces. Joel owns and operates his own corporation, dynamicVSM, as a freelance DevOps consultant and has experience architecting solutions that scale, reduce waste, and increase visibility. He works together with clients to help manage their value streams better.
Read more about Joel Kruger