Answers: <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>
  
Answers: CC BY-SA 4.0
Answers: 2022-02-02T10:12:28.823Z
Answers: 2022-02-02T10:12:28.823Z
Answers: Moshisho
Answers: <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>
  
Answers: CC BY-SA 4.0
Answers: 2021-10-21T09:15:35.243Z
Answers: 2021-10-21T09:15:35.243Z
Answers: tuxErrante
Body: <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>
  
Tags: <jenkins-pipeline><cicd><build-pipeline>
Title: Recommended starting guide on CICD
UserDisplayName: CIsForCookies
ThreadText: # 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
  
  
  ---
  
  