Breaking Down the Wall Between Continuous Integration/Continuous Delivery

21 Nov 2018 9:00am, by

CloudBees sponsored this story, as part of an ongoing series on “Cloud Native DevOps.” Check back through the month on further editions.

A DevOps-managed production pipeline deployed on cloud native platforms has more than lived up to the hype.

Based on microservices usually running on containers, organizations are now able to deploy application infrastructures at rocket ship-paced speeds. One of the key results is how it has become more common for DevOps to schedule several releases a day, as opposed to when code updates and release cycles previously took weeks or even months to complete in the not-so-distance past.

Continuous integration/continuous delivery (CI/CD) also certainly plays a key role in what DevOps teams have been able to achieve as they shift away from on-premise and virtual machine environments and take advantage of the stateless environments on offer on the cloud. And as cloud native DevOps matures, we will also continue to see advances and improvements in the production cycle in a number of ways. One such example is how DevOps can leverage microservices to merge CD and CI.

“We found that to go fast, you need to get rid of these CI/CD blocks that we’d often didn’t think about before,”  James Strachan, senior architect at CloudBees, the project lead on Jenkins X, said during the recently held  DevOps World | Jenkins World 2018 in Nice, France.

In many ways, merging CI/CD is critical to achieving continuous delivery “as the ultimate goal of DevOps,” Torsten Volk, an analyst for Enterprise Management Associates (EMA), said.   “Developers need to constantly be able to ship out new code and instantly receive production feedback, simply by making the new code available to a small subset of end users. Observing the behavior of this new code enables developers to further fine-tune their application or microservice, based on real-life user requirements,” Volk said. “At the same time, developers receive instant feedback in terms of how their new code impacted performance, reliability, and ideally also cost.”

Merging CI with CD with DevOps also means better and tight security.

“By lifting this artificial separation between CI and CD, IT operators can centrally address continuous security and compliance as the central pain points of today’s line of business,” Volk said. “This should happen through the implementation of security and compliance as code to centrally define and enforce requirements in terms of code and infrastructure configuration, data handling, and overall deployment architecture.”

Successfully merging CI and CD is also contingent on incorporating specific tools into the pipeline. Automation, of course, tops the list of essentials. A developer who also deploys on clusters, for example, will likely see microservices on the cloud “grow like wildfire,” Strachan said. “And so fairly soon you need to do some kind of automation to keep track of all these things and test them.”

Hidden Bottlenecks

Putting development on hold as different teams along the production pipeline do their work represents an area for improvements in the CI/CD development cycle. For organizations with a limited number of testing environments, for example, a non-essential update or a four-hour long test might prevent an urgent code fix from being completed. This scenario serves as a concrete example of how ow merging “CD with CI can remove these kinds of bottlenecks,” Strachan said.

“You really want to do is you want to move your CD into your CI, Strachan said. “Previously, people often thought ‘I need a deployment tool, so I’ll do Spinnaker. I need a CI tool, so I’ll do Jenkins.’”

Instead, when merging CD with CI, the processes are completed in parallel, which “creates a dynamic preview environment for each pull request that gets deployed into its own separate dynamic environment,” Strachan said.

It is thus possible for tasks such as security scanning or vulnerability checking, and other tests in parallel, so “if one person is working on an urgent P1 fix to fix a memory leak, and then someone else is figuring out what icon to use on the homepage, one process can take week while another one can go right through,” Strachan said. “And once the pull request is green, you can almost go straight to production,” Strachan said.

The merging of CD with CI for cloud native deployments also involves combining the roles of development and operations. “For a lot of people, DevOps means a full stack development and shifting everything left,” Brian Dawson, a DevOps evangelist at CloudBees, said.

“So, whether it’s cloud-native development or not, it means giving access to ephemeral cloud infrastructure providing a developer with the tools that they need to test and allow the developer just to commit code and go straight to production.”

HSBC’s move to rely, in part, on CI/CD tooling “rebuild the bank from within” as a way to revolutionize the way that HSBC deliver to their customers,” serves as a case example, Cheryl Razzell, global head of platform digital operations for HSBC Operations, said. “This required building many of the processes largely from scratch and assembling the teams to build the infrastructure. We rebuilt some Jenkins masters and realized that we want to stabilize the environment,” Razzell said. “There was another tool in the CI/CD platform that was then failing so we had to work our way through the stack to rebuild the stack so we entirely built a new digital infrastructure for our CI/CD platform.”

As the lines between development and deployment merge as CI/CD becomes geared for the cloud, developers may also assume many operations-related roles. “As there is more of a focus on CI/CD for cloud deployments, the developer’s job also often involves testing, automation, deployment and monitoring, Nitzan Shapira, co-founder and CEO, at Epsagon said. “The developer is actually the one now deploying and updating who has access to the system. And if the design of the microservices is good, a small team of developers can be in charge of the service and maybe inside the team, someone will have of all that is more like operations but it’s still going to be a developer who does that,” Shapira said. “The developers are in charge of the production and I really like this idea because it really fits the model or the modernization and they move to the cloud and making developers let’s say, more empowered and have more impact in the organization.”

Feature image via Pixabay.

This post is part of a larger story we're telling about cloud native DevOps.

Notify me when ebook is available

Notify me when ebook is available

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.