Looking for Feedback on My CI/CD Deployment Strategy

0
1
Asked By TechWizard97 On

Hey everyone! I'm a junior DevOps engineer working at a startup that sells management software for clients to host on their own servers. We want to automate the deployment of updates for our clients, ensuring that their setups don't have internet access since we connect to them via VPN.

My idea is to create a continuous deployment system modeled after Kubernetes, involving a central control plane and agents that run on each client's infrastructure. The control plane would keep track of the deployment states, versions, and the latest release for each application. It will also handle webhooks from our Git server to prepare the information needed for agents to pull updates.

The agents will communicate with the control plane to check for new versions and will have secure endpoints for interactions. Since direct access to our registries isn't possible, the control plane will manage temporary access for the agents to retrieve image updates.

I'm curious to hear your thoughts on this setup. Any suggestions or simpler alternatives?

3 Answers

Answered By JohnnyTechTalk On

Definitely interesting! However, I wonder if there’s a clear audit trail for each action the agent takes, and if clients can audit this without taking your word for it. It's also worth considering whether they need to approve certain changes, like upgrades, beforehand. And just in case something goes wrong, do you have any emergency protocols ready?

Answered By CodeDancer42 On

This is an interesting approach! Just keep in mind some challenges: what if a client doesn't allow ingress into their network? Also, how will agents report their version and state back to the control plane? If something goes wrong during an upgrade, will the agent have a plan to remedy the situation itself? Maybe consider how quickly you can roll back if there's a major issue too. And if an agent gets compromised, what's the risk? Have you thought about replicating images to customer registries instead of using temporary credentials? We've used similar models and faced these challenges too!

Answered By DevOpsNinja11 On

I think your idea is solid, but I’m curious why you’d give temporary access to images. You could use access tokens that allow them to pull images as needed, limiting potential risks. Also, just throwing it out there: have you looked into GitOps tools like ArgoCD or FluxCD? They could simplify the agent's job by pulling their desired state from a Git or OCI repository.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.