0

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. debs, 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 debs 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

2 Answers 2

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

CI

CD

Ops

Youtube channels

Books

I hope this can helps

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.

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.