Answers: <p>GitLab is a solid good option for most of this (with the appropriate plan level - I don't think the CE one has everything).  It's a single-pane-of-glass for your code, security, CI/CD, metrics, etc.  You can create and deploy to kubernetes clusters from it.</p>
  
  <ul>
  <li>You can have multiple environments and it'll store the secrets for you to customize them.</li>
  <li>It will monitor your kubernetes apps and show deployment marks so you can see if they get better/worse performance wise before and after deployment.</li>
  <li>You can do multi project pipelines and actions in parallel to chain things together and get things done fast.</li>
  <li>It supports review apps and canary deployments.</li>
  <li>It has rollback buttons and tracks every release you do.  It also has a good API, so I assume you could hook up prometheus + alert manager and make the API trigger a rollback in response to an alert.</li>
  </ul>
  
  <p>Spinnaker has <a href="https://www.armory.io/" rel="nofollow noreferrer">https://www.armory.io/</a> if you're willing to pay a bit (not sure how much).  But that should make it easy to use / effective.</p>
  
  <p>I'm not amazingly fond of Jenkins, but it can do everything.  Its hard to maintain over time / with bigger projects and teams though.  But it can be customized to do anything.  You may want to look into <a href="https://jenkins.io/projects/blueocean/" rel="nofollow noreferrer">https://jenkins.io/projects/blueocean/</a> (the blue ocean plugin) for CD if you're leaning this way - it looks fairly impressive and I've heard good things.</p>
  
Answers: CC BY-SA 4.0
Answers: 2020-01-22T18:21:17.090Z
Answers: 2020-01-22T18:21:17.090Z
Answers: John Humphreys
Answers: <p>I believe that to manage the builds / deploys follows by the same Jenkins you can use Blue Ocean theme it's more friendly and you can track CI/CD.
  For infrastructure I suggest use Rundeck (Cron like with web gui) + Ansible + ARA Records Ansible to track the plays.</p>
  
Answers: CC BY-SA 4.0
Answers: 2020-01-14T17:32:28.120Z
Answers: 2020-01-14T17:32:28.120Z
Answers: Vader
Answers: <p>Depending on where your source code is located and how you are setting up the to be deployed containers, this can also be solved very nice in Azure DevOps:
  <a href="https://cloud.google.com/solutions/creating-cicd-pipeline-vsts-kubernetes-engine" rel="nofollow noreferrer">https://cloud.google.com/solutions/creating-cicd-pipeline-vsts-kubernetes-engine</a></p>
  
Answers: CC BY-SA 4.0
Answers: 2020-01-23T09:44:40.350Z
Answers: 2020-01-23T09:44:40.350Z
Answers: chris polzer
Body: <p>In our small startup (6 developers) and we use Google Kubernetes Engine + CircleCi (which deploys docker images to K8S with simple bash scripts). We have ~10 services, but we are growing. We use a simplified git-flow model. W plan to use in the future: terraform for infrastructure, helm charts for managing deployments.
  We want to have a possibility:</p>
  
  <ol>
  <li>(now) to track our releases in every environment </li>
  <li>(now) manually rollback / automatically rollback after seeing some alerts in grafana. Rollback must apply Django migrations first and then use the image from the previous deployment.</li>
  <li>(now) release a set of services in one go </li>
  <li>(future) use some more advanced development techniques like canary deployment</li>
  <li>(future) have some metrics regarding deployments (eg. build time)</li>
  </ol>
  
  <p>There are plenty of tools which could be used for this job and it's hard to choose</p>
  
  <ol>
  <li>Spinnaker -> it is said that it needs 3 engineers to maintain it, so probably it's too complex.</li>
  <li>Jenkins -> it's more CI/CD tool. </li>
  <li>Harness/Argo/Google Deployment/Team City/Code Fresh -> maybe one of those?</li>
  <li>Write a simple inhouse solution in Django -> the most flexible one, but also the most error-prone.</li>
  </ol>
  
  <p>What do you recommend?  </p>
  
Tags: <kubernetes><release-management><spinnaker>
Title: What is the best tool for the release management for Kubernetes in a small startup?
UserDisplayName: sacherus
ThreadText: # What is the best tool for the release management for Kubernetes in a small startup?
  
  (Asked by: username_0 on 2020-01-14)
  
  In our small startup (6 developers) and we use Google Kubernetes Engine + CircleCi (which deploys docker images to K8S with simple bash scripts). We have ~10 services, but we are growing. We use a simplified git-flow model. W plan to use in the future: terraform for infrastructure, helm charts for managing deployments.
  We want to have a possibility:
  
  1. (now) to track our releases in every environment
  2. (now) manually rollback / automatically rollback after seeing some alerts in grafana. Rollback must apply Django migrations first and then use the image from the previous deployment.
  3. (now) release a set of services in one go
  4. (future) use some more advanced development techniques like canary deployment
  5. (future) have some metrics regarding deployments (eg. build time)
  
  There are plenty of tools which could be used for this job and it's hard to choose
  
  1. Spinnaker -> it is said that it needs 3 engineers to maintain it, so probably it's too complex.
  2. Jenkins -> it's more CI/CD tool.
  3. Harness/Argo/Google Deployment/Team City/Code Fresh -> maybe one of those?
  4. Write a simple inhouse solution in Django -> the most flexible one, but also the most error-prone.
  
  What do you recommend?
  
  **Tags:** kubernetes, release-management, spinnaker
  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_1 on 2020-01-22. Score: 1
  
  GitLab is a solid good option for most of this (with the appropriate plan level - I don't think the CE one has everything). It's a single-pane-of-glass for your code, security, CI/CD, metrics, etc. You can create and deploy to kubernetes clusters from it.
  
  * You can have multiple environments and it'll store the secrets for you to customize them.
  * It will monitor your kubernetes apps and show deployment marks so you can see if they get better/worse performance wise before and after deployment.
  * You can do multi project pipelines and actions in parallel to chain things together and get things done fast.
  * It supports review apps and canary deployments.
  * It has rollback buttons and tracks every release you do. It also has a good API, so I assume you could hook up prometheus + alert manager and make the API trigger a rollback in response to an alert.
  
  Spinnaker has <https://www.armory.io/> if you're willing to pay a bit (not sure how much). But that should make it easy to use / effective.
  
  I'm not amazingly fond of Jenkins, but it can do everything. Its hard to maintain over time / with bigger projects and teams though. But it can be customized to do anything. You may want to look into <https://jenkins.io/projects/blueocean/> (the blue ocean plugin) for CD if you're leaning this way - it looks fairly impressive and I've heard good things.
  
  
  ---
  
  ### Answer by username_2 on 2020-01-14. Score: 0
  
  I believe that to manage the builds / deploys follows by the same Jenkins you can use Blue Ocean theme it's more friendly and you can track CI/CD.
  For infrastructure I suggest use Rundeck (Cron like with web gui) + Ansible + ARA Records Ansible to track the plays.
  
  
  ---
  
  ### Answer by username_3 on 2020-01-23. Score: 0
  
  Depending on where your source code is located and how you are setting up the to be deployed containers, this can also be solved very nice in Azure DevOps:
  <https://cloud.google.com/solutions/creating-cicd-pipeline-vsts-kubernetes-engine>
  
  
  ---
  
  