DEV Community

Cover image for 4 Attributes Of A Good CI/CD Pipeline

4 Attributes Of A Good CI/CD Pipeline

Milecia on July 23, 2019

It's odd to find a place that doesn't have some kind of continuous integration/continuous delivery pipeline setup. Using CI/CD is one of the ways b...
Collapse
 
netmailgopi profile image
Gopi Ravi

While I appreciate a fast pipeline, it's just not possible in lot of cases. A glregionalized global service or onebox deploys expecting certain percent of traffic to validate changes, constant bake time before deploying to subsequent regions etc.

Rule of thumb is it should be fast but being fast isn't always critical.

Collapse
 
_nicovillanueva profile image
Nico

Reliability > Speed

Collapse
 
markoa profile image
Marko Anastasov

Good post! I'd second what Pedro mention about reliability. A good pipeline always produces the same output for a given input, with no oscillations in runtime. Intermittent failures or slowdowns cause intense frustration among developers.

Collapse
 
travkinalex profile image
TravkinAlex

Great summary of why ci/cd is needed!
With some API & e2e tests added as steps after deployments, any team member can basically deploy to Prod solo - or maybe even continuous deployment may be an option!

Collapse
 
ramospedro profile image
Pedro

Very good points.

Two other things that I consider important (albeit pretty obvious) are:

  • Running jobs in parallel whenever possible
  • Be very reliable
Collapse
 
ajay_sf profile image
Ajay Singh

it seems to me that the faster you want your CI/CD pipeline to deploy, the harder it gets to design and execute comprehensive testing. Maybe that's why the term "test in production" is popping up more frequently.

Collapse
 
mrlarson2007 profile image
Michael Larson

One central point should also be that code gets integrated to contral branch every day. Other points are great!