Progressive delivery refers to a set of techniques that enable teams to gradually roll out changes to users, minimizing risk and allowing for quick rollbacks if necessary. In this example, we'll explore how to implement progressive delivery for Backstage using Argo CD, which is a Kubernetes-native continuous delivery tool.
Progressive Delivery, Backstage, Argo CD, Kubernetes, Continuous Delivery, DevOps
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: backstage-app
namespace: argocd
spec:
source:
repoURL: 'https://github.com/your-org/backstage.git'
targetRevision: HEAD
path: 'path/to/backstage'
destination:
server: 'https://kubernetes.default.svc'
namespace: backstage
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
# Define progressive delivery rollout strategies here
rollouts:
- name: 'backstage-rollout'
strategies:
canary:
steps:
- setWeight: 20
- pause: { duration: 15m }
- setWeight: 50
- pause: { duration: 15m }
- setWeight: 100
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?