<p>Of course the information is endless, so I'll give you just one link to a series I found to be very good to <a href="https://codefresh.io/devops/enterprise-ci-cd-best-practices-part-1/" rel="nofollow noreferrer">combine the high level with the practice</a>.</p>
<p>Note 2 things though:</p>
<ul>
<li>Reading a book usually gives you a more ordered understanding. Starting with one of the foundational is a good point. Like the ones mentioned here.</li>
<li>There are several approaches around git to choose from: gitFlow, GitHub Flow, GitLab flow, Trunk based development. You need to &quot;sew&quot; the best for the specific team.</li>
</ul>

CC BY-SA 4.0
2022-02-02T10:12:28.823Z
2022-02-02T10:12:28.823Z
Moshisho
<p>to have a complete guide about CI/CD I think is not possible.. there is too much about processes, tools and customizations. Also the changes are fast and it should be updated every month.</p>
<p>The short answer is:<br />
I have recently performed a complete CI/CD process in an enterprise environment using some of what you just told:</p>
<ul>
<li>devs pushing on gitlab (java, react) using gitflow plugin</li>
<li>jenkins pipelines for every app automatically starts for dev environment doing unit tests, static code tests (sonarqube), integration tests (postman/soapui), updating artifacts on Nexus (mvn), and the pushing the deployment artifacts on the ArgoCD repo.</li>
<li>ArgoCD manages then the K8S cluster resources</li>
</ul>
<p>Long answer:<br />
I use a few books as basic referrals, then I follow some youtube channel and I read specific articles to keep me updated.</p>
<p>I'll try to make here a starter list:</p>
<p><strong>Version Control</strong></p>
<ul>
<li><a href="https://nvie.com/posts/a-successful-git-branching-model/" rel="nofollow noreferrer">https://nvie.com/posts/a-successful-git-branching-model/</a></li>
<li><a href="https://dzone.com/storage/assets/14796507-dzone-refcard-339-gitops-essentials-2021.pdf" rel="nofollow noreferrer">https://dzone.com/storage/assets/14796507-dzone-refcard-339-gitops-essentials-2021.pdf</a></li>
<li><a href="https://about.gitlab.com/resources/ebook-version-control-best-practices/" rel="nofollow noreferrer">https://about.gitlab.com/resources/ebook-version-control-best-practices/</a></li>
</ul>
<p><strong>CI</strong></p>
<ul>
<li><a href="https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#understand-build-context" rel="nofollow noreferrer">https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#understand-build-context</a></li>
<li><a href="https://www.jenkins.io/doc/book/pipeline/pipeline-best-practices/" rel="nofollow noreferrer">https://www.jenkins.io/doc/book/pipeline/pipeline-best-practices/</a></li>
<li><a href="https://geekflare.com/kubernetes-security-scanner/" rel="nofollow noreferrer">https://geekflare.com/kubernetes-security-scanner/</a></li>
</ul>
<p><strong>CD</strong></p>
<ul>
<li><a href="https://www.gspann.com/resources/blogs/continuous-delivery-for-kubernetes-with-gitops-and-argo-cd/" rel="nofollow noreferrer">https://www.gspann.com/resources/blogs/continuous-delivery-for-kubernetes-with-gitops-and-argo-cd/</a></li>
</ul>
<p><strong>Ops</strong></p>
<ul>
<li><a href="https://www.digitalocean.com/community/tech_talks/getting-started-with-managed-kubernetes-day-2-operations" rel="nofollow noreferrer">https://www.digitalocean.com/community/tech_talks/getting-started-with-managed-kubernetes-day-2-operations</a></li>
</ul>
<p><strong>Youtube channels</strong></p>
<ul>
<li><a href="https://www.youtube.com/c/DevOpsToolkit" rel="nofollow noreferrer">https://www.youtube.com/c/DevOpsToolkit</a></li>
<li><a href="https://www.youtube.com/c/Digitalocean" rel="nofollow noreferrer">https://www.youtube.com/c/Digitalocean</a></li>
<li><a href="https://www.youtube.com/c/Devopsdotcom" rel="nofollow noreferrer">https://www.youtube.com/c/Devopsdotcom</a></li>
<li><a href="https://www.youtube.com/c/Rawkode" rel="nofollow noreferrer">https://www.youtube.com/c/Rawkode</a></li>
<li><a href="https://www.youtube.com/c/KodeKloud" rel="nofollow noreferrer">https://www.youtube.com/c/KodeKloud</a></li>
<li><a href="https://www.youtube.com/c/MarcelDempers" rel="nofollow noreferrer">https://www.youtube.com/c/MarcelDempers</a></li>
</ul>
<p><strong>Books</strong></p>
<ul>
<li>Practical Guide to Continuous Delivery</li>
<li><a href="https://www.goodreads.com/book/show/113934.The_Goal" rel="nofollow noreferrer"> The Goal: A Process of Ongoing Improvement </a></li>
<li>Production Kubernetes: Building Successful Application Platforms</li>
</ul>
<p>I hope this can helps</p>

CC BY-SA 4.0
2021-10-21T09:15:35.243Z
2021-10-21T09:15:35.243Z
tuxErrante
<p>I'm new to the community, and I looked around a bit but didn't find a good point to start from. I have a specific problem I want to solve, but while trying to think of a solution I realized I need a better devops background, and I couldn't find a resource to help me with that.</p>
<p>So, I'll lay out my specific question, and after that I'll summarize what are the main areas of knowledge I'm hoping to get a better understanding on...</p>
<p>I have a CI pipeline that works something like this:</p>
<ol>
<li>Developer: push code to source control (bitbucket server)</li>
<li>Jenkins: poll SCM and run pipeline</li>
<li>Jenkins pipeline: build artifacts from code, set environment, and test (pytest)</li>
<li>Upon success and demand - manually pack the artifacts into a release</li>
</ol>
<p>Now, most of the things here are done without any dedicated tools.</p>
<p>e.g.</p>
<ol>
<li>python wheels are created but not stored anywhere (though I do have a dockerized <code>pypi</code> server - I just don't have an automated flow that uploads and updates the wheels there)</li>
<li>I want to have more artifacts, e.g. <code>deb</code>s, binaries, libraries, etc. (I now have them stored inside local storage) and I want them better stored, better sorted and maintained, and more accessible (thought of Jfrog artifactory here)</li>
<li>I want the entire environment creation to be handled by proper tools (called from the Jenkins pipeline?), and not scripts I've written (thought of <code>tox</code> for creating the python environment, but it's not enough, as I also need to be able to create docker environments, and I also need to control <code>dpkg</code> as I have <code>deb</code>s I create and install. Maybe <code>chef</code> or <code>ansible</code> can do the trick. [I do use <code>ansible</code> from time to time to configure all hosts on my network, but that's basically for silly things like changing a few config files here and there])</li>
</ol>
<p>My general question is - is there a guidebook for how to create a proper CICD system, that would be able to at least point me in the right direction? Some of the problems I encounter I fix manually, and I'm sure there are a lot of best practices and best tools for the job I'm missing out of ignorance...</p>
<p>Thanks</p>

<jenkins-pipeline><cicd><build-pipeline>
Recommended starting guide on CICD
CIsForCookies
# Recommended starting guide on CICD

(Asked by: username_0 on 2021-10-20)

I'm new to the community, and I looked around a bit but didn't find a good point to start from. I have a specific problem I want to solve, but while trying to think of a solution I realized I need a better devops background, and I couldn't find a resource to help me with that.

So, I'll lay out my specific question, and after that I'll summarize what are the main areas of knowledge I'm hoping to get a better understanding on...

I have a CI pipeline that works something like this:

1. Developer: push code to source control (bitbucket server)
2. Jenkins: poll SCM and run pipeline
3. Jenkins pipeline: build artifacts from code, set environment, and test (pytest)
4. Upon success and demand - manually pack the artifacts into a release

Now, most of the things here are done without any dedicated tools.

e.g.

1. python wheels are created but not stored anywhere (though I do have a dockerized `pypi` server - I just don't have an automated flow that uploads and updates the wheels there)
2. I want to have more artifacts, e.g. `deb`s, binaries, libraries, etc. (I now have them stored inside local storage) and I want them better stored, better sorted and maintained, and more accessible (thought of Jfrog artifactory here)
3. I want the entire environment creation to be handled by proper tools (called from the Jenkins pipeline?), and not scripts I've written (thought of `tox` for creating the python environment, but it's not enough, as I also need to be able to create docker environments, and I also need to control `dpkg` as I have `deb`s I create and install. Maybe `chef` or `ansible` can do the trick. [I do use `ansible` from time to time to configure all hosts on my network, but that's basically for silly things like changing a few config files here and there])

My general question is - is there a guidebook for how to create a proper CICD system, that would be able to at least point me in the right direction? Some of the problems I encounter I fix manually, and I'm sure there are a lot of best practices and best tools for the job I'm missing out of ignorance...

Thanks

**Tags:** jenkins-pipeline, cicd, build-pipeline


---

## 2 answers

### Answer by username_1 on 2022-02-02. Score: 1

Of course the information is endless, so I'll give you just one link to a series I found to be very good to [combine the high level with the practice](https://codefresh.io/devops/enterprise-ci-cd-best-practices-part-1/).

Note 2 things though:

* Reading a book usually gives you a more ordered understanding. Starting with one of the foundational is a good point. Like the ones mentioned here.
* There are several approaches around git to choose from: gitFlow, GitHub Flow, GitLab flow, Trunk based development. You need to "sew" the best for the specific team.


---

### Answer by username_2 on 2021-10-21. Score: 1

to have a complete guide about CI/CD I think is not possible.. there is too much about processes, tools and customizations. Also the changes are fast and it should be updated every month.

The short answer is:  
I have recently performed a complete CI/CD process in an enterprise environment using some of what you just told:

* devs pushing on gitlab (java, react) using gitflow plugin
* jenkins pipelines for every app automatically starts for dev environment doing unit tests, static code tests (sonarqube), integration tests (postman/soapui), updating artifacts on Nexus (mvn), and the pushing the deployment artifacts on the ArgoCD repo.
* ArgoCD manages then the K8S cluster resources

Long answer:  
I use a few books as basic referrals, then I follow some youtube channel and I read specific articles to keep me updated.

I'll try to make here a starter list:

**Version Control**

* <https://nvie.com/posts/a-successful-git-branching-model/>
* <https://dzone.com/storage/assets/14796507-dzone-refcard-339-gitops-essentials-2021.pdf>
* <https://about.gitlab.com/resources/ebook-version-control-best-practices/>

**CI**

* <https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#understand-build-context>
* <https://www.jenkins.io/doc/book/pipeline/pipeline-best-practices/>
* <https://geekflare.com/kubernetes-security-scanner/>

**CD**

* <https://www.gspann.com/resources/blogs/continuous-delivery-for-kubernetes-with-gitops-and-argo-cd/>

**Ops**

* <https://www.digitalocean.com/community/tech_talks/getting-started-with-managed-kubernetes-day-2-operations>

**Youtube channels**

* <https://www.youtube.com/c/DevOpsToolkit>
* <https://www.youtube.com/c/Digitalocean>
* <https://www.youtube.com/c/Devopsdotcom>
* <https://www.youtube.com/c/Rawkode>
* <https://www.youtube.com/c/KodeKloud>
* <https://www.youtube.com/c/MarcelDempers>

**Books**

* Practical Guide to Continuous Delivery
* [The Goal: A Process of Ongoing Improvement](https://www.goodreads.com/book/show/113934.The_Goal)
* Production Kubernetes: Building Successful Application Platforms

I hope this can helps


---

