แจแแแแจแแแ แแแ แแแแแ: Weaveworks-แแก แแก แแแแแฎแแแแ แฌแแ แแแแแแแแแ แแแแแแแชแแแแแก แแแแ แชแแแแแแก แงแแแแแแ แแแแฃแแแ แฃแ แกแขแ แแขแแแแแแก แแ แแฉแแแแแแก, แแฃ แ แแแแ แจแแแซแแแแ แแแแฎแแ แชแแแแแแก แงแแแแแแ แแแฌแแแแแแแแ Kubernetes Flagger แแแแ แแขแแ แแก แแแแแงแแแแแแ. แแก แแแ แขแแแ แแแแ แแ แแก แแแฌแแ แแแ แแ แจแแแชแแแก แแแแฃแแแฃแ แแแแแ แแแแแก, แ แแแแแแแช แแแแฌแงแแ แแแแแแ แแแกแแช แแ แกแแจแฃแแแแแแก แแซแแแแก แแแแแแ แแก แกแแแแแฎแ.
แแแแแ แแแ แแฆแแแฃแแแ แกแแแแแ
แแฆแแก แฆแ แฃแแแแแแแ แแแแแแแชแแแแแก แจแแแฃแจแแแแแแก แแ แ-แแ แแ แงแแแแแแ แแแแ แแแแแฌแแแแ แแ แแก แแแแแแแแแแก แแแฉแฅแแ แแแ. แแแแ แแกแแ แแแกแแแแก แแแแแแแแ, แแแแแแแแแ แแแ แฃแแแ แแฃแจแแแแแ แแ แฅแแแแแ แกแ แฃแแแแ แแแแฃแแฃแ แแแแแแแชแแแแก, แ แแช แกแฎแแแแแกแฎแแ แแฃแแแก แกแแจแฃแแแแแแก แแซแแแแก แแ แแแ แแฃแแแ แแแฌแแ แแ แแแแ แแ แแแแแฎแแ แชแแแแแ แชแแแแแแแแแ แแแแแแแชแแแจแ.
แฎแแแแแแแ แแ แฃแคแ แ แฎแจแแ แ แแแแแแแแแ แแฅแแก แจแแแแแแ แฃแแแ แแขแแกแแแแแ:
- แแแแแ แแ แแแกแแแแก แแ แ แจแแแชแแ แแแฃแแแ.
- แแฎแแแ แคแฃแแฅแชแแแแ แฃแคแ แ แกแฌแ แแคแแ แแฆแฌแแแก แแแแฎแแแ แแแแแแก.
- แแแแฎแแแ แแแแแก แแแแแฎแแแฃแ แแแ แฃแคแ แ แกแฌแ แแคแแ แแฆแฌแแแก แแแแแแแแ แแแแก แแฃแแแก. แแก แแแจแแแแก, แ แแ แแฃแแแก แจแแฃแซแแแ แแแแแแขแแก แคแฃแแฅแชแแแแ แแ แแแแแแแ แแก แแ แแแแแแแแ แฃแคแ แ แกแฌแ แแคแแ.
- แแแแแแแแแ แแก แแแ แแแ แแแ แแแแ: แฃแคแ แ แกแแฎแแแแกแแ แแฃแจแแแแ แแแแแแแแ แแแแก แแ แแชแแกแจแ.
แแแแ แแ แ แแช แแแ แแแแ แแแแแจแแแแแแแก แกแแฎแจแแ แ, แแกแแแ แแแ แแแแ แแแแแแแชแแแก แกแแแแแแแแแ แแ แแแแฎแแแ แแแแแก แแแแแชแแแแแแแแ แฃแแ แงแแคแแแ แแแแแฅแแแแแแแก แจแแแกแแแ. แกแฌแแ แแ แแแแขแแ แแแแจแแแแแแแแแแ แแแแ แแชแแแแแกแ แแ DevOps แแฃแแแแแแกแแแแก แจแแฅแแแแ แแ แแชแแกแแแ แแ แแแ แแแ แแแแแแแแแแก แกแขแ แแขแแแแแแ แแกแ, แ แแ แแแแแแฃแแแแแ แแแแงแแแแแ แ แแกแแ แแ แแแฃแฅแขแแกแ แแ แแแแฎแแแ แแแแแแแกแแแแก. (แจแแแแซแแแแ แแแแแแ แแแขแ CI/CD แแแแกแแแแแแก แแแขแแแแขแแแแชแแแก แจแแกแแฎแแ
แแ แแแกแขแจแ แแแแแแฎแแแแแ Kubernetes-แจแ แแแแแแแแแแก แกแฎแแแแแกแฎแแ แกแขแ แแขแแแแแก, แแแ แจแแ แแก แแแซแ แแแ แแแแแแแแแแกแ แแ แฃแคแ แ แแแฌแแแแแ แแแแแแแแก, แ แแแแ แแชแแ แแแแแ แแก แแแจแแแแ แแ แแแแ แแแ แแแชแแแแ.
แแแแแแแแแแก แกแขแ แแขแแแแแแ
แแ แกแแแแแก แ แแแแแแแแ แแแแกแฎแแแแแแฃแแ แขแแแแก แแแแแแแแแแก แกแขแ แแขแแแแ, แ แแแแแแช แจแแแแซแแแแ แแแแแแงแแแแ แแฅแแแแ แแแแแแแแ แแแแแแแแแแ แ. แแแแแแแแแ, แจแแแซแแแแ แแแแญแแ แแแ แชแแแแแแแแแแก แจแแขแแแ แแแ แแแแฃแ แแแ แแแแจแ แจแแแแแแแ แขแแกแขแแ แแแแกแแแแก, แแ แแแแฎแแแ แแแแแแแก/แแแแแแขแแแแก แฅแแแฏแแฃแคแจแ, แแ แจแแแซแแแแ แแแแญแแ แแแ แแแแฎแแแ แแแแแก แจแแแฆแฃแแฃแแ แขแแกแขแแ แแแแก แฉแแขแแ แแแ แคแฃแแฅแชแแแก แจแแฅแแแแแแ. แกแแฏแแ แ.
แแแซแ แแแ (แแขแแแแแ แแแ, โแแแซแ แแแโ แแแแแแแแแ)
แแก แแ แแก แกแขแแแแแ แขแฃแแ แแแแแแแแแแก แกแขแ แแขแแแแ Kubernetes-แจแ. แแก แแแแแแแแ, แกแแแแแแแ, แแแแชแแแแแก แแแแแแก แแแแแแแชแแแก แซแแแแ แแแ แกแแแ แแแแแแแ แแฎแแแ แแแ แกแแแ - แแแแกแขแแ แฃแแ แจแแคแแ แฎแแแแก แแแ แแจแ.
Kubernetes แแแแแแแ, แกแแแแ แแฎแแแ แ แแแแแแ แแแแ แแฅแแแแ แกแแแฃแจแแแ (แจแแแแแฌแแแแก แแแ แแแแแงแแแแแแ
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: awesomeapp
spec:
replicas: 3
template:
metadata:
labels:
app: awesomeapp
spec:
containers:
- name: awesomeapp
image: imagerepo-user/awesomeapp:new
ports:
- containerPort: 8080
rollover แแแแแฎแแแแแก แแแ แแแแขแ แแแ แจแแแซแแแแ แแแแแแแแฃแแ แแงแแก manifest แคแแแแจแ:
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
template:
...
แฎแแแแฎแแ แจแแฅแแแ
แแ แฃแแแ แขแแแแกแ แขแแแแก แแแแแแแแแแกแแก, แซแแแแ แฆแแ แแแแ แแ แแแ แแฃแแแ แแฆแฃแแแแ แแ แแชแแแแแ แแฎแแแ:
แจแแกแแแแแแกแ แแแแแคแแกแขแ แแกแ แแแแแแงแฃแ แแแ:
spec:
replicas: 3
strategy:
type: Recreate
template:
...
แแฃแ แฏแ/แแฌแแแแ (แแฃแ แฏแ-แแฌแแแแ แแแแแแแแแ)
แแฃแ แฏ-แแฌแแแแ แแแแแแแแแแก แกแขแ แแขแแแแ (แแแแฏแแ แแแก แฌแแแแ/แจแแแกแแช แฃแฌแแแแแแ) แแแแชแแแก แแแแแแแชแแแก แซแแแแ (แแฌแแแแ) แแ แแฎแแแ (แแฃแ แฏแ) แแแ แกแแแแแก แแ แแแ แแฃแ แแแแแแแแแแก. แแ แแแ แแแ แกแแแก แแแแแฅแแแงแแแแแก แจแแแแแ, แ แแแฃแแแ แฃแ แแแแฎแแแ แแแแแแก แแฅแแ แฌแแแแแ แแฌแแแแแแ, แฎแแแ แแฃแ แฏแ แฎแแแแแกแแฌแแแแแแ QA แแฃแแแแกแแแแก แขแแกแขแแแแก แแแขแแแแขแแแแชแแแกแแแแก แชแแแแ แกแแ แแแกแแก แแ แแแ แแแแแ แ แแแ แขแแก แแแแแแแแแก แกแแจแฃแแแแแแ:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: awesomeapp-02
spec:
template:
metadata:
labels:
app: awesomeapp
version: "02"
แแฃแ แฏแ (แแฎแแแ) แแแ แกแแแก แขแแกแขแแ แแแแกแ แแ แแแกแ แแแแแจแแแแแก แแแแขแแแชแแแแก แจแแแแแ, แกแแ แแแกแ แแแแแแแก แแแกแแ แแ แแแแชแแแ แแฌแแแแ (แซแแแแ) แแแ แกแแ:
apiVersion: v1
kind: Service
metadata:
name: awesomeapp
spec:
selector:
app: awesomeapp
version: "02"
...
แแแแแ แ (แแแแแ แแก แแแแแแแแแ)
Canary Rollouts แแกแแแแกแแ แแฃแ แฏ-แแแแฌแแแแ แ แฃแแแแแแแก, แแแแ แแ แแฅแแก แฃแแแแแกแ แแแแขแ แแแ แแ แแแแแงแแแแแ
แแก แกแขแ แแขแแแแ แแแแแแงแแแแแ แแแจแแ, แ แแแแกแแช แกแแญแแ แแ แแฎแแแ แคแฃแแฅแชแแแแแก แแแแแชแแ, แ แแแแ แช แฌแแกแ, แแแแแแแชแแแก แฃแแแแ แแแฌแแแจแ. แแแแแแแแก แแ แกแ แแ แแก แแ แ แแแแฅแแแก แแแแแขแฃแ แ แกแแ แแแ แแก แจแแฅแแแ: แแ แแ แแแกแแฎแฃแ แแแ แแแแฅแแแก แงแแแแ แแแแฎแแแ แแแแแก, แฎแแแ แแแแ แ, แแฎแแแ แคแฃแแฅแชแแแแแ, แแแกแแฎแฃแ แแแ แแแแฎแแแ แแแแแแ แแฎแแแแ แแชแแ แ แฅแแแฏแแฃแคแก, แ แแก แจแแแแแแแช แฎแแแแ แแแแ แแฃแจแแแแแก แจแแแแแแแแก แจแแแแ แแแ. แแฃ แงแแแแแคแแ แ แจแแชแแแแแแแก แแแ แแจแ แแแแแก, แแฎแแแ แแแ แกแแ แแแแแแแแ แแ แชแแแแแแ แแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแแ.
แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแก แกแขแ แแขแแแแ แจแแแซแแแแ แแแแฎแแ แชแแแแแแก แแฅแกแแแฃแแแฃแ แแ Kubernetes-แแก แแแแแงแแแแแแ, แซแแแแ แซแแคแแแแก แฉแแแแชแแแแแ แแฎแแแ, แแแชแแแแแแ แแแกแแฎแแ แฎแแแแแ แแ แแแ แขแแแแ แกแแ แแแกแแก แฅแกแแแแก แแแแแงแแแแแ, แ แแแแ แแชแแ แแกแขแแ.
แแแแแแแแแ, แจแแแซแแแแ แแฅแแแแแ แแ แ แแแแกแฎแแแแแแฃแแ แแแแแคแแกแขแ Git-แจแ: แฉแแแฃแแแแ แแแ แแแแแคแแกแขแ แขแแแแ 0.1.0 แแ แแแแแ แแก แแแแแคแแกแขแ แขแแแแ 0.2.0. Istio แแแ แขแฃแแแฃแ แ แแแ แแแญแแก แแแแแคแแกแขแจแ แฌแแแแแแก แจแแชแแแแ, แจแแแแซแแแแ แแแแแขแ แแแแ แขแ แแคแแแแก แแแแแฌแแแแแ แแ แแ แแแแแแแแแแก แจแแ แแก:
Istio-แก แแแแแงแแแแแแ แแแแแ แแก แแแแแแแแแแก แแแแฎแแ แชแแแแแแแก แแแแแฏ-แแแแแฏ แกแแฎแแแแซแฆแแแแแแ แแฎ
แแแแแ แแก แแแแแแแแแ Weaveworks Flagger-แแ
Flagger แแแขแแแแขแแแแ แแแก แแแแแแ แแฃแจแแแแแก. แแก แแงแแแแแก Istio-แก แแ AWS App Mesh-แก แขแ แแคแแแแก แแแ แจแ แฃแขแแกแแแแก แแ แแแแแ แแแแกแแแแก, แฎแแแ Prometheus-แแก แแแขแ แแแแก แจแแแแแแแแก แแแกแแแแแแแแแแแแ. แแแ แแ แแแแกแ, แแแแแ แแก แแแแแแแแแแก แแแแแแแก แจแแแซแแแแ แแแแแแขแแก webhooks แแแฆแแแแก แขแแกแขแแแแก, แแแขแแแ แแแแก แขแแกแขแแแแก แแ แแแแแกแแแแ แ แกแฎแแ แขแแแแก แจแแแแฌแแแแแก แฉแแกแแขแแ แแแแแ.
Kubernetes-แแก แแแแแ แแแแกแ แแ แแฃแชแแแแแแแแแก แจแแแแฎแแแแแจแ, pods-แแแแก แฐแแ แแแแแขแแแฃแ แแแกแจแขแแแแ แแแแแ (HPA) แกแแคแฃแซแแแแแ, Flagger แฅแแแแก แแแแแฅแขแแแแก แแแแแแแฅแขแก (Kubernetes-แแก แแแแแแแแแ, ClusterIP แกแแ แแแกแแแ แแ Istio แแ App Mesh แแแ แขแฃแแแฃแ แ แกแแ แแแกแแแ) แแแแแ แแก แแแแแแแแแแก แแแกแแแแแแแแแแแแ แแ แแแแกแแฎแแ แชแแแแแแแแ:
แกแแแแแขแ แแแ แแแ แงแฃแแแก แแแแฎแแ แชแแแแแแ (แกแแแแแขแ แแแ แชแแแแ),Flagger แแแแแแแแ แชแแแแก แขแ แแคแแแก แแแแแ แแก แกแแ แแแ แแ แแ แแแ แแแแแฃแ แแ แแแแแแแแก แจแแกแ แฃแแแแแก แซแแ แแแแ แแแแแแแขแแ แแแก, แ แแแแ แแชแแ แฌแแ แแแขแแแฃแแ HTTP แแแแฎแแแแแแแก แแแแแคแแ แแแแ, แแแแฎแแแแแก แกแแจแฃแแแ แฎแแแแ แซแแแแแแ แแ แแแแแแแก แฏแแแแ แแแแแแ. KPI (Key Performance Indicators) แแแแแแแแก แกแแคแฃแซแแแแแ, แแแแแ แ แแ แแแ แแแแ แแ แแจแแแแ แแ แแแแแแแแก แจแแแแแแแ แแแแแฅแแแงแแแแฃแแแ Slack-แจแ. แแ แแ แแชแแกแแก แแฆแฌแแ แ แแ แแแแแแกแขแ แแ แแแ แจแแแแซแแแแ แแฎแแแแ แแแกแแแแจแ
แแฃแฅแ (แแแแแแฃแแ) แแ A/B แแแแแแแแแ
Stealth-แแก แแแแแแแแแ แแ แแก แแแแแ แแก แกแขแ แแขแแแแแก แแแแแ แแ แแ แแแ แแแชแแ (แ แแแแแแแแแช, แกแฎแแแแ แจแแ แแก, Flagger-แกแแช แจแแฃแซแแแ แแแฃแจแแแก). แกแขแแแกแแกแ แแ แแแแแ แแก แแแแแแแแแแก แจแแ แแก แแแแกแฎแแแแแแ แแกแแ, แ แแ แกแขแแแกแแก แแแแแแแแแ แแฎแแแ แฌแแแ แแฎแแ แแก แแ แแ แ แฃแแแแ แแฎแแ แแก, แ แแแแ แช แแแแแ แแก แแแแแแแแแ.
แแ แแแแแแแแแแก แแแแแ แแ แแ แกแแฎแแแแ A/B แขแแกแขแแ แแแ. แแแแก แแแชแแแแ, แ แแ แแฎแแแ แคแฃแแฅแชแแ แฎแแแแแกแแฌแแแแแ แแแฎแแแก แงแแแแ แแแแฎแแแ แแแแแกแแแแก, แแก แจแแกแแแแแแแแก แแแ แแฎแแแแ แจแแแฆแฃแแฃแ แแแฌแแแก. แ แแแแ แช แฌแแกแ, แแ แแแแฎแแแ แแแแแแแ แแ แแชแแแ, แ แแ แแกแแแ แแ แแแ แแแแแแ แแแ แขแแกแขแแ แแแ (แแฅแแแแ แแแแแแแแแแ แ, แขแแ แแแแ "แแแคแแ แแแก แแแแแแแแแ").
แคแฃแแฅแชแแแแแแฃแ แ แแแแแแ แแแแแแแแก แแแแแงแแแแแ (แคแฃแแฅแชแแแก แแแแแ แแแ) แแ แกแฎแแ แแแกแขแ แฃแแแแขแแแแ, แจแแแแซแแแแ แแแแแงแฃแ แ แแแแแแแ, แแฃ แ แแแแ แฃแ แแแแ แแแแแ แแแแฎแแแ แแแแแแ แแฎแแ แแแฎแแกแแแแแแแแแ, แแ แแแ แแฃ แแ แ แแกแแแ แฉแแ แแฃแแแแ แแแกแจแ, แแ แแแแฉแแแแ แแฃ แแ แ แแแแแแแก แแแแแแแแแแแ แแแแฎแแแ แแแแแก แแฎแแแ แแแขแแ แคแแแกแ แแ แกแฎแแ แกแแฎแแก แแแขแ แแแ.
Flagger แแ A/B แแแแแแแแแ
แฌแแแแแ แแแคแฃแซแแแแฃแแ แแแ แจแ แฃแขแแแแชแแแก แแแ แแ, Flagger-แก แแกแแแ แจแแฃแซแแแ แขแ แแคแแแแก แแแแแงแแแแ แแแแแ แแก แกแแ แแแ แแ HTTP แแแ แแแแขแ แแแแก แกแแคแฃแซแแแแแ. A/B แขแแกแขแแ แแแแกแแก, แจแแแแซแแแแ แแแแแแงแแแแ HTTP แกแแแแฃแ แแแ แแ แฅแฃแฅแแแแ แแแแฎแแแ แแแแแแแก แแแแแ แแขแฃแแ แกแแแแแแขแแก แกแแแแแแแ. แแก แแแแกแแแฃแแ แแแแ แแคแแฅแขแฃแ แแ แฌแแแ แแแแแแแชแแแแแก แจแแแแฎแแแแแจแ, แ แแแแแแแช แกแแญแแ แแแแแ แกแแกแแแก แแแแแแจแแ แแแแก แกแแ แแแ แแแ (แกแแกแแแก แแแแจแแ แ). แแแแแขแแแแแ แแแคแแ แแแชแแ แจแแแแซแแแแ แแฎแแแแ Flagger-แแก แแแแฃแแแแขแแชแแแจแ.
แแแขแแ แ แแแแแแแ แแแแก แแแแแฎแแขแแแก
PS แแแแ แแแแแแแกแแแ
แแกแแแ แฌแแแแแแฎแแ แฉแแแแก แแแแแแ:
- ยซ
Ingress แแแแขแ แแแแ แแแแก แแแแแฎแแแแ แแ แจแแแแ แแแ Kubernetes-แแกแแแแก "; - ยซ
werf - แฉแแแแ แแแกแขแ แฃแแแแขแ CI / CD-แกแแแแก Kubernetes-แจแ (แแแแแฎแแแแ แแ แแแแแ แแแแแ แแจแ) "; - ยซ
แจแแฅแแแแแ แแ แแแแแแแแกแแ แแแแแ แขแแแแก แแแแ แแกแแ แแแกแแแ werf-แแ แแ GitLab CI-แแ "; - ยซ
แ แ แแ แแก GitOps? ".
แฌแงแแ แ: www.habr.com