A Google Product Management Lead on What CI/CD Really Means
The term CI/CD can mean many things to many people, sometimes only referring in general terms to software development and deployment. Too often, it is buried in marketing speak, with only vague connotations in relation to CI/CD’s true meaning: as a way to combine continuous integration (CI) and continuous delivery (CD).
Michael Winser, product management lead for Google’s Cloud Build, described what CI/CD means for Google as well as the term’s meaning for the software industry. He discussed that and the emergence of continuous integration and continuous delivery and their combination during the past decades, for this latest episode of The New Stack Makers podcast, hosted by Alex Williams, founder and editor-in-chief of The New Stack.
CI and CD are increasingly used interchangeably as software is deployed at scale, Winser said. “The terms get used together because the lines are a little bit blurry depending upon how you’re building your software, what kind of software you’re doing and you might have different processes,” Winser said. “But the way I think about it is ultimately CI is an automated approach towards verification, towards correctness of your software at the time of merging it.”
For CI, a software developer works on a particular feature on his or her workstation in what Winser calls “the virtuous edit compile debug phase.” “They’re sitting there just working on it, getting it right and then they feel like, ‘okay, I got this feature ready,’ now, [before merging] it into the broader whole,” Winser said. “Whether it’s to a single repo or part of a network of repos or whatever, they’re saying ‘my change is ready to go up and become part of our project’ and the practice that can choose integration is built on the idea that you need to test things at that time. You want what’s in the software repo to be correct and so you have a set of tests and acceptance criteria that you need to have every piece of software pass in order to be considered correct in the repo.”
CD is all about delivery and deployment, Winser said “We’ve got the software that has been going through the various processes and now we’re ready to push it out the door and deliver it to end users.” Winser said.
Years ago, software deployment involved “literally just copying the bits onto a floppy and then sending them to the golden manufacturing process and so forth,” Winser said. “Now, we’re delivering software a hundred of times a week, maybe even more.”
Automation, of course, “is key,” Winser said. “If we do things by hand, if there’s any kind of manual intervention required and so forth, those all create opportunities for problems or for errors and then we get back to scale,” Winser said.
After automatically deploying software and the test start “looks good,” Winser’s team expands the release to the broader audience or “we might automatically roll back if we find problems and continuous delivery is essentially a second loop,” Winser said. “From a customer’s point of view, by using these tools, they’re all just work flows and automation that a team puts together and hopefully, that’s the developer focus on delivering business value as fast and securely as possible,” Winser said.
Software development and deployment have obviously undergone some radical changes since Winser became involved with software in 1984, and what has changed the most is “how we can bring scale,” Winser said. “It’s not that we’re breaking Moore’s Law but we’re running around it and when you talk about developers…productivity is one of the things that matters that most,” Winser said.
In this Edition:
2:49: How does Google Cloud look at CI/CD?
6:18: What are some of these processes that you’re seeing used that are proving effective when people are trying to think about CI/CD?
15:03: What are some of the lessons for getting it right? For CI/CD in this cloud-native context, what would be some of the bullet points?
18:35: So, for those customers out there, how do they avoid boiling the ocean when starting with CI/CD?
22:39: What are some of the tools Google Cloud provides for CI/CD?
25:52: What makes Google Cloud Build stand out?