Skip to content

Instantly share code, notes, and snippets.

@hongchaodeng
Last active May 6, 2021 13:49
Show Gist options
  • Save hongchaodeng/ccaa309d894ec858aba85f5168fbc790 to your computer and use it in GitHub Desktop.
Save hongchaodeng/ccaa309d894ec858aba85f5168fbc790 to your computer and use it in GitHub Desktop.
CD 跟 CI 为啥不用一套?
kind: Application
spec:
componnets:
- ... # 微服务组件
# policies are applied first and only once unless changed
policies:
- type: security
properties:
rbac: ...
sso: ...
audit: ...
secretBackend: vault
- type: deployment-insights
properties:
leadTime: enabled
frequency: enabled
mttr: enabled
- type: gitops
properties:
source: git-repo-url
branch: main
path: config/
- type: placement
properties:
clusters:
- name: a
replicas: "70%"
traffic: "70%"
- name: b
replicas: "30%"
traffic: "30%"
# workflow is used to customize the control logic.
# If workflow is specified, Vela won't apply resources in Components, but provide rendered resources for further actions.
# workflow steps are executed in order.
# Each step should have a "finish mark", e.g. in resource annotation `app.oam.dev/workflow-finish = succeed/fail`
workflow:
# blue-green rollout to prod
- type: blue-gree-rollout
properties:
targetEnv: prod
rolloutPlan:
partition: "50%"
# traffic shift
- type: traffic-shift
properties:
targetEnv: prod
rolloutPlan:
partition: "50%"
# promote/rollback
- type: rollout-promotion
propertie:
manualApproval: true
rollbackIfNotApproved: true
@hongchaodeng
Copy link
Author

  1. CD 有定制化需求,要跟公司的系统 (安全、灰度、服务治理、多集群、metrics) 深度集成。
  2. CD 跟 CI 往往不是一个团队,要自己做一套。
  3. CD 有复杂的发布 pipelines,比如在不同环境里轮流发布,类似于 Keptn 的 Multi-stage Delivery.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment