I'm currently interning at a tech company, and we're transitioning an existing product that's serving big industries from a Windows desktop environment to a Linux server running microservices with Docker. My question is about how to set up Jenkins: should I install it directly on the distro, or would it be better to run it as a Docker Swarm service? Considering this is for a production environment, do you think Swarm can handle everything, or should I go ahead and switch to Kubernetes?
3 Answers
Since you're dealing with a major existing product, going with something you can manage is key. I'd suggest starting with Docker Swarm since you might need manageable complexity at this stage. I've handled big Jenkins deployments on Kubernetes that spun up tons of workers, but that requires a good understanding of the context and goals of your Jenkins instance. What does your Jenkins need to accomplish?
Honestly, just starting with a Docker Swarm service could be the way to go. There are also other CI tools like Drone CI or Woodpecker CI that have good worker models for scaling. I've run multiple projects using Docker Compose effectively for CI without jumping straight onto Kubernetes. Plus, Swarm might be simpler for now to get your feet wet before diving into the complexities of K8s.
You should definitely consult with your senior engineers first. They might have specific expectations about your understanding of these complex setups. If they expect you to already know all this stuff, then you really might want to consider if this is the right place for you.
Thanks for the heads up! I’ll definitely talk to them and see what they think.
Great advice, I'll explore those options and see how they fit into our plan.