27 ืืื ืืื ืื ืืืืคึผื ืืึทื ืคืื ืื DevOpsConf 2019 ืงืึธื ืคึฟืขืจืขื ืฅ, ืืขืืืืื ืืื ืึท ืืืื ืคืื ืืขื ืคืขืกืืืืืึทื
ืืื ื ืื ืคึผืจืขืืขื ืืืจืื ื, ืืื ืืืขืจ ื ืืฆื (ืึทืืึธื ืืืงืื ื ืืื ืึท ืืึทืคึผ) ืืื ืจืืืฉื ืึท ืืืกืืืจืืฉื ืืืืืกืืึธืื ืคืื 1000 ืฉืืขืจื ืืืืฃ ืืืืืื - ืืืจ ืืึธืคื ืึทื ืื ืืจืึธืืื ื ืงืื ืคืื ืืืืขืจื ืืืขื ืืึทืื ืื ืืขืื ืืจืื ืืขืจ ืคึฟืึทืจ ืคืืืข DevOps ืขื ืืืฉืึทื ืืจื.
ืึทืืื, ืืึธืื ืก ืืึทืงืขื ืขื
ืืืืืืืขืจืื ื ืงืึธื ืฆื Kubernetes
ืื ืจืขืื ืืืขื ื ืื ืืขืจ ืืืื ืืืขืื ืืืขืจืฃ, ืึธืืขืจ ืืืขืื CI / CD ืืื Kubernetes, ืืืคึผืืืื ืึทื ืืื ืืืขืจ ืืืืืืืืืจื ืืื ืคึผืึทืงืืืืฉื ืืื ืืึธืงืงืขืจ ืงืึทื ืืืื ืขืจื (ืืื ืืึธื ืืขืจืขืื ืืืขืื ืืขื ืืื
ืืื ืงืืงื ืขืงืกืคึผืจืขืก ืืื Kubernetes?
- ืขืก ืืื ืึท ืืื ืจืืคึผืึทืืึทืืึธืจื ืืื ืื ืงืึธื ืืื ืื ืกืืจืึทืงืฉืึทื ื ืคึฟืึทืจ ืื ืื ืขืก. ืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ืืขืืืื ืืื ืึท ืืึธืงืงืขืจ ืืืื ืืื ืืื ืืจืืืก ืืื ืื ืืึธืงืงืขืจ ืจืขืืืกืืจื.
- ืืขืจ ืืขืืืืงืขืจ ืจืืคึผืึทืืึทืืึธืจื ืืืื ืึผืืื ืื ืกืืจืึทืงืฉืึทื ื ืืืืฃ ืืื ืฆื ืฆืขืืืืงืืขื ืืื ืืืืคื ืื ืึทืคึผืืึทืงืืืฉืึทื. ืืื ืื ืืืคึผืืืืืึทื ื ืืื ืข, ืื ืื ืกืืจืึทืงืฉืึทื ื ืืขื ืขื ืืขืฉืืงื ืฆื Kubernetes, ืืืึธืก ื ืขืื ืื ืืขืืืืื ืืืื ืคืื ืื ืจืขืืืกืืจื ืืื ืืึธื ืืฉืื ืขืก.
- ืคึผืืืก, ืขืก ืืขื ืขื ืืืืฉืึทืืืึทืื ืืขืกืฅ. ืขืืืขืืข ืคืื โโืื ืงืขื ืขื ืืืื ืืขืืื ืืืขื ืืจืืืกืืขืื ืึท ืืืื. ืืืจ ืงืขื ื ืืืื (ื ืึธื ืื ืืขืืืข ืืื ืกืืจืืงืฆืืขืก) ืฆืขืืืืงืืขื ืึท ืงืึธืคึผืืข ืคืื โโโโืื ืึทืคึผืืึทืงืืืฉืึทื (ืืื ืึท ืืึทืืื ืืขืจ K8s ื ืึธืืขื ืึธืืขืจ ืึท ืืึทืืื ืืขืจ ืงื ืืื) ืืื ืืืืคื ืืขืกืฅ ืืึธืจื.
- ืฆืื ืกืืฃ, ืืืจ ืืึทืจืคึฟื ืึท ืกื ืกืืกืืขื ืืืึธืก ื ืขืื ืืขืฉืขืขื ืืฉื ืคึฟืื ืืื (ืึธืืขืจ ืงืืืงืก ืืืืฃ ืื ืงื ืขืคึผืืขื) ืืื ืจืืคื ืึทืืข ืื ืืขืืืื ืืืืื ืกืืึทืืขืก: ืืืืขื, ืึทืจืืืกืืขืื, ืฆืขืืืืงืืขื, ืคึผืจืืืืจื.
ืืึธ ืืขื ืขื ืขืืืขืืข ืืืืืืืง ืืขืจืืช:
- ืืืืึทื ืืืจ ืืึธืื ืึท ืืืืืืึทืืึทื ืื ืคืจืึทืกืืจืึทืงืืฉืขืจ (ืืืืืึทืืึทื ืื ืคืจืึทืกืืจืึทืงืืฉืขืจ), ืื ืึทืคึผืืึทืงืืืฉืึทื ืืืื ืืืึธืก ืืื ืืขื ืืฆื ืืื ืึทืืข ืกืืึทืืขืก (ืกืืึทืืื ื, ืคึผืจืึธืืืงืฆืืข, ืขืืง.), ืขืก ืืื ืืืื ืืืื. ืืื ืืึธื ืืขืจืขืื ืืืขืื ืืขื ืืื ืืขืจ ืืขืืึทื ืืื ืืื ืืืืฉืคืืื.
ืืึธ . - ืืืืึทื ืืืจ ื ืึธืืืืื ืื ืื ืคืจืึทืกืืจืึทืงืืฉืขืจ ืืื ืงืึธื ืฆืืืึทื ื (ืืึทืง), ืื ืึทืคึผืืึทืงืืืฉืึทื ืงืึธื, ืื ืกืืจืึทืงืฉืึทื ื ืคึฟืึทืจ ืึทืกืขืืืึทืืื ื ืืื ืงืึทืืขืจ ืขืก ืืึธื ืืืื ืคึผืื ืงื ืืื ืืืื ืจืืคึผืึทืืึทืืึธืจื. ืคึฟืึทืจ ืืขืจ ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืืขื, ืืขื
ืืขืจ ืืขืืืืงืขืจ ืืึทืจืืื . - ืขืงืกืคึผืจืขืก ืงืืื (ืขืงืกืคึผืจืขืก) ืืืจ ืืืืฉืึทืืืึทืื ืืขื ืขืก ืืื ืืึธืก: ืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ืืขืืืขื ืคืืจืืืืื, ืืขืกืืขื, ืืืคืจืืื (ืืขืืืื ื ืืื ืข) ืืื ืึทื ืก ืขืก - ืขืงืกืคึผืจืขืก ืืื ืืขืืืขื. ืึธืืขืจ ืืื ืคืึทืงื, ืืขืจ ืืึทื ืืฆืขืจ ืืขืฅ ืืืึธืก ืืืจ ืจืึธืืื ืืืืก, ืงืืื ืืขืืึธืื ืืืขื ืืืจ ืืืืขืจืืขืืขืื ืขืก ืฆื ืคึผืจืึธืืืงืฆืืข, ืืื ืืืขื ืขืจ ืืื ืืืืืืช ืฆื ืืืื ืืึธืจื ืืื ืื ืคึผืจืึธืืืงืฆืืข ืืขืืจืืขื. ืึทืืื ืืื ืืืืืื ืื ืขืงืกืคึผืจืขืก ืงืืื ืขื ืืก ืืืืื ืืื ืื ืึทืคึผืขืจืืืฉืึทื ืึทื ืืื ืข (ืืืืคื), ืึธืืขืจ ืืขืจ ืืขื ืื, ืืคืืื ืืื ืืขื ืืึธืืขื ื ืืืขื ืื ืงืึธื ืืื ืึทืืืขืงืืขื ืืืขื ืคืื ืคึผืจืึธืืืงืฆืืข (ืจืืคึผืืืืกืื ื ืขืก ืืื ืึท ื ืืึทืข).
ืืึธืืืจ ืฆืืจืืงืงืืืขื ืฆื ืื ืืืืื ืขืงืกืคึผืจืขืก ืกืืขืืข ืืื ืงืืืขืจื ืขืืขืก: ืขืก ืืื ืืขืืืขื ืื ืืืขื ืืึทื ื ืื ืืืืื ืืืจื ืืื ืื, ืึธืืขืจ ืืืจื ืืืฉ ืึทืืขืืขื ืืืืก ืืขืื ืืื ืืขื ืคึผืจืึธืืืขื. ืืื ืคืึทืงื, ืืขื ืืืกืืขืจ ืืื ืืืฆื ืืขืจืืคึฟื GitOps (ืืืจ ืงืขื ื ืืืืขื ืขื ืืขืจ ืืืขืื ืืขื ืืขืจืืื ืืื ืื ืืขืืื ืงืขื ืืื ืืขืจ ืขืก
ืืืืขื ืืื ืข
ืขืก ืืืึธืื ืืืกืงืืืขื ืึทื ืืืจ ืงืขื ืขื ืจืขืื ืืืขืื ืืืืขื ืืึธืงืงืขืจ ืืืืืขืจ ืืื 2019, ืืืขื ืึทืืขืืขื ืืืืืกื ืืื ืฆื ืฉืจืืึทืื ืืึธืงืขืจืคืืืขืก ืืื ืืืืคื docker build
?.. ืืึธ ืืขื ืขื ืื ื ืืึทื ืกืื ืึทื ืืื ืืืึธืื ืืื ืฆื ืืึทืฆืึธืื ืืคืืขืจืงืืึทืืงืืึทื ืฆื:
- ืืืื ืืืึธื ืขื ืื ืื, ืึทืืื ื ืืฆื
Multi-ืืื ืข ืฆื ืืึธืื ืืื ืื ืืืื ืืืืื ืื ืึทืคึผืืึทืงืืืฉืึทื ืืืึธืก ืืื ืืึทืงืข ื ืืืืืง ืคึฟืึทืจ ืื ืึธืคึผืขืจืึทืฆืืข. - ื ืืืขืจ ืคืื ืืืึทืขืจืก ืืืื ืืืื ืืื ืึทืืืืื ืืืจื ืงืึทืืืืื ืื ื ืงืืืื ืคืื
RUN
-ืงืึทืืึทื ืื ืืืื ืฆื ืืืึทืืฉ. - ืึธืืขืจ, ืืึธืก ืืืกืืฃ ืคึผืจืึธืืืขืืก ืืืืึทืืื ื, ืืืืึทื ืืืขื ืื ืคึฟืึทืจืืึทืืืื ื ืงืจืึทืฉืื, ืืืจ ืืึธืื ืฆื ืืขืคึฟืื ืขื ืื ืจืขืื ืืึทืคึฟืขื ืคืื ืื ืงืืื ืืืึธืก ืืขืคึฟืืจื ืืขื ืคึผืจืึธืืืขื.
- ืคึฟืึทืจืืึทืืืื ื ืืืืงืืึทื ืืืืืืืง ืืืืึทื ืืืจ ืืืืื ืฆื ืืขืฉืืืื ื ืจืึธืืื ืขื ืืขืจืื ืืขื ืืื ืืขื ืื ืจืขืืืืืึทืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืจ ืืึธื ื ืืฉื ืืืขืื ืฆื ืจืืืืื ืืืคึผืขื ืืึทื ืกืื ืืื ืฉืคึผืจืึทื ืืืืืจืขืจืื ืืขืืขืจ ืืึธื ืืืขื ืืืจ ืืืืขื ืึท ืึทืคึผืืึทืงืืืฉืึทื.
- ืึธืคื ืคึฟืื ืืืื Git ืจืืคึผืึทืืึทืืึธืจื ืืืจ ืืึทืจืคึฟื ืคืืืข ืืืืืขืจ, ืืืึธืก ืงืขื ืขื ืืืื ืกืึทืืืื ืืืจื ืึท ืกืืื ืคืื Dockerfiles (ืึธืืขืจ ืืขืืืืกื ืกืืึทืืขืก ืืื ืืืื ืืขืงืข) ืืื ืึท ืืึทืฉ ืฉืจืืคื ืืื ืืืืขืจ ืกืึทืงืืืขื ืืฉืึทื ืคึฟืึทืจืืึทืืืื ื.
ืืึธืก ืืื ืืขืืืขื ื ืึธืจ ืืขืจ ืฉืคึผืืฅ ืคืื ืื ืืืกืืขืจื ืึทื ืึทืืขืืขื ืคืืืกืื. ืึธืืขืจ ืขืก ืืขื ืขื ืื ืืขืจืข ืคึผืจืึธืืืขืืก, ืกืคึผืขืฆืืขื:
- ืึธืคื ืืื ืืขืจ ืคึฟืึทืจืืึทืืืื ื ืืื ืข ืืืจ ืืึทืจืคึฟื ืขืคึผืขืก ืึธื ืงืืึทืคึผื (ืืืฉื, ืงืึทืฉ ืื ืจืขืืืืืึทื ืคืื ืึท ืืึทืคึฟืขื ืืื ืคืืืืง ืืื ืึท ืืจืื-ืคึผืึทืจืืื ืืืขืืืืืึทืืขืจ).
- ืืืจ ืืืืื Ansible ืึทื ืฉืืึธื ืฉืจืืืื ืืื ืฉืึธื.
- ืืืจ ืืืืื ืืืืขื ืึธื ืืึธืงืขืจ (ืคืืจืืืืก ืืึธื ืืืจ ืืึทืจืคึฟื ืึทื ื ืึธื ืืืืจืืืึทื ืืึทืฉืื ืืื ืืืึธืก ืืืจ ืืึทืจืคึฟื ืฆื ืงืึทื ืคืืืืขืจ ืึทืืฅ ืคึฟืึทืจ ืืขื, ืืืขื ืืืจ ืืึธืื ืฉืืื ืึท ืงืืืขืจื ืขืืขืก ืงื ืืื ืืื ืืืึธืก ืืืจ ืงืขื ืขื ืืืืคื ืงืึทื ืืืื ืขืจื?).
- ืคึผืึทืจืึทืืขื ืคึฟืึทืจืืึทืืืื ื, ืืืึธืก ืงืขื ืขื ืืืื ืคืืจืฉืืื ืขื ืืื ืคืึทืจืฉืืืขื ืข ืืืขืื: ืคืึทืจืฉืืืขื ืข ืงืึทืืึทื ืื ืคืื ืื Dockerfile (ืืืื ืืึทืืื-ืืื ืข ืืื ืืขื ืืฆื), ืขืืืขืืข ืงืึทืืืฅ ืคืื ืืขืจ ืืขืืืืงืขืจ ืจืืคึผืึทืืึทืืึธืจื, ืขืืืขืืข Dockerfiles.
- ืคืื ืื ืืขืจืืขืืืืื ืคึฟืึทืจืืึทืืืื ื: ืืืจ ืืืืื ืฆื ืืึทืืืขื ืืืื ืืื ืคึผืึธืืก ืืืึธืก ืืขื ืขื "ืขืคืขืืขืจืึทื" ืืืืึทื ืืืืขืจ ืงืึทืฉ ืคืืจืฉืืืื ืื, ืืืึธืก ืืืื ืขืก ืืึทืจืฃ ืืืื ืกืืึธืจื ืขืจืืขืฅ ืกืขืคึผืขืจืึทืืื.
- ืฆืื ืกืืฃ, ืืื ืืขืืืืกื ืื ืฉืคึผืืฅ ืคืื ืชืืืืช ืึธืืึทืืึทืืืง: ืขืก ืืืึธืื ืืืื ืืืขืึทื ืฆื ืืืื ืฆื ืื ืจืืคึผืึทืืึทืืึธืจื, ืืืคึผ ืขืืืขืืข ืืึทืคึฟืขื ืืื ืืึทืงืืืขื ืึท ืคืึทืจืืืง ืืืื, ืคืืจืืืืื ืืื ืึท ืคืืจืฉืืื ื ืคืื ืืื ืืื ืืืึธืก ืฆื ืืึธื ืจืืืืืง. ืึธืืขืจ, ืืื ืคึผืขืจืกื ืึทืื ืืื ื ืืฉื ืืืืขืจ ืึทื ืึทืืข ืื ื ืืึทื ืกืื ืงืขื ืขื ืืืื ืคืึธืจืืืกืืึธืื ืืืืฃ ืืขื ืืืขื.
ืืื ืืึธ ืืขื ืขื ืื ืคึผืจืึทืืืฉืขืงืก:
-
ืืึธืื / ืืืืืงืื - ืึท ืืืืืขืจ ืคืื Docker Inc (ืฉืืื ืื ืึทืืจืืืืื ืืื ืงืจืึทื ื ืืืขืจืกืืขืก ืคืื ืืึธืงืงืขืจ), ืืืึธืก ืืื ืืจืืื ื ืฆื ืกืึธืืืืข ืึทืืข ืื ืคึผืจืึธืืืขืืก; -
kaniko - ืึท ืืืืืขืจ ืคืื Google ืืืึธืก ืึทืืึทืื ืืืจ ืฆื ืืืืขื ืึธื ืืึธืงืขืจ; -
Buildpacks.io - CNCF ืก ืคึผืจืืืื ืฆื ืืึทืื ืึธืืึทืืึทืืืง ืืึทืืืฉ ืืื, ืกืคึผืขืฆืืขื, ืึท ืืฉืืงืึทืืืข ืืืืืื ื ืืื ืจืขืืึทืกืข ืคึฟืึทืจ ืืืึทืขืจืก; - ืืื ืึท ืืื ืื ืคืื ืื ืืขืจืข ืืืืืืึทืืื, ืึทืืึท ืืื
ืืืืืืึทื ,genuinetools/img ...
... ืืื ืงืืง ืืื ืคืืืข ืฉืืขืจื ืืื ืืึธืื ืืืืฃ ืืืืืื. ืืึธืก ืืืืกื, ืคึฟืื ืืืื ืืฒึทื, docker build
ืืืืืกืฅ ืืื ืงืขื ืขื ืืึธื ืขืคึผืขืก, ืึธืืขืจ ืืื ืคืึทืงื ืื ืึทืจืืืกืืขืื ืืื ื ืืฉื ืืึธืจ ืกืึทืืืื - ืืขืจืืืืึทื ืคืื ืืขื ืืื ืื ืคึผืึทืจืึทืืขื ืึทื ืืืืืงืืื ื ืคืื ืึธืืืขืจื ืึทืืืื ืงืึทืืขืงืืขืจื, ืืขืืขืจ ืคืื ืืืึธืก ืกืึทืืืื ืขืืืขืืข ืืืื ืคืื ืื ืคืจืืืืขืืขื.
ืคึฟืึทืจืืึทืืืื ื ืืื ืืืึธืจืฃ
ืึทืืื ืืืจ ืืึธืื ืฆื
ืื ืคืจืืืืขืืขื ืืื ืืืื ืืขื ืขื ืฉืืื ืืืคึผืืึทืืขื ืึทื, ืื ืคึผืึทืจืึทืืขื ืืืืขื ืืื ืืขืืืขื ืืืจืืืขืงืึธืื ืืื ืืขืจ ืืขืืืืงืขืจ ืืึทืืขืืึธืก, ืืื ืื ืืฉืื ืืืืืืืืื ืืื ืืขื ืืขื ืขื ืคึผืืึทื ื ืขื ืฆื ืืืื ืืขืขื ืืืงื ืืืจื ืื ืกืืฃ ืคืื ืื ืืืืขืจ.
ืกืืึทืืข ืคืื โโืืจืืืกืืขืื ืืื ืจืขืืืกืืจื (ืึทืจืืืกืืขืื)
ืื ืจ ืืื ื ืืขืงืืืื docker push
... - ืืืึธืก ืงืขื ืืืื ืฉืืืขืจ ืฆื ืืคึผืืึธืึทืืื ื ืึท ืืืื ืฆื ืื ืจืขืืืกืืจื? ืืื ืืขืืึธืื ืื ืงืฉืื ืขืจืืืืึทื: "ืืืึธืก ืงืืืืื ืืึธื ืืื ืฉืืขืื ืืืืฃ ืื ืืืื?" ืขืก ืขืจืืืืึทื ืคึฟืึทืจ ืื ืกืืื ืืืึธืก ืืืจ ืืึธืื ืืืืคืืึธื (ืึธืืขืจ ืื ืืขืจืข ืืื ืกืืจืึทืืขืืืข) ืืื ืงืืืขืจื ืขืืขืก, ืืื ืื ืืื ืืืกืืจืืข ืืื ืืจืืื ื ืฆื ืขื ืฉืืจ ืึทื ืืืึธืก ืืึทืคึผืึทื ื ืืื ืงืืืขืจื ืขืืขืก ืืืื ืืืึธืก ืืึทืคึผืึทื ื ืืื ืืื. ื ืึธื ืึทืืข, ืืื ืืื ืืื ืืืขืจ ืืืืื ืืงืืจ ืคืื ืืืช.
ืืืึธืก ืืื ืึทืืื ืฉืืืขืจ ืืื ืืขื? ืคืึทืจืืืืขืจื ืจืขืคึผืจืึธืืืกืืืืืืื: ืคื ื ื ืืขืื ื ืื ื ืืื , ืฐื ืก ืื ื ืื ื ื ืืืืจ , ืืืืืฒืืืขื (ืืืืืึทืืึทื), ืฆื ืึท ืืึธืงืงืขืจ ืืืื, ืืืึธืก ืืึธื ืืืื ืืขืืืืื ืื ืืขืืืข.
ืขืก ืืื ืืืื ืืืืืืืง ืคึฟืึทืจ ืืื ืื ืืึทืฉืืืืขื ืึธื ืืืื, ืืืืึทื ืืืจ ืืืืื ืฆื ืคึฟืึทืจืฉืืืื ืคืื ืืืึธืก ืืืขืจืืขืื ืื ืึทืคึผืืึทืงืืืฉืึทื ืคืืืกื ืืืง ืืื Kubernetes ืืื ืืขืืืขื ืืขืืืื (ืืขืจื ืึธื ืืืจ ืงืขื ืขื ืืึธื ืืืคืคืก ืืื ืขื ืืขื ืืื ืื).
ืืึทืืื ื ืกืืจืึทืืขืืืขืก
ืืขืจ ืขืจืฉืืขืจ ืืื ืคึผืฉืื ืืื ืืึทื. ืืืจ ืืึธืื ืึท ืจืขืืืกืืจื ืืื ืึท ืืืื ืืึทืื ืืื 1.0
. Kubernetes ืืื ืืื ืข ืืื ืคึผืจืึธืืืงืฆืืข, ืืื ืืึธืก ืืืื ืืื ืืคึผืืึธืึทืืขื. ืืื ืืื ืืืจ ืืึทืื ืงืึทืืืฅ ืืื ืืื ืขืืืขืืข ืคืื ื ืืืจ ืคืึทืจืืื ืื 2.0
. ืืืจ ืงืืืึทืื ืขืก ืืืื ืื ืื ืกืืจืึทืงืฉืึทื ื ืคืื ืื ืจืืคึผืึทืืึทืืึธืจื ืืื ืฉืืขืื ืขืก ืืื ืื ืจืขืืืกืืจื ืืื ืื ืงืืืืื 2.0
. ืืืจ ืจืึธืืื ืขืก ืืืืก ืฆื ืืื ืข ืืื, ืืืื ืึทืืฅ ืืื ืืื, ืืขืืึธืื ืฆื ืคึผืจืึธืืืงืฆืืข.
ืืขืจ ืคึผืจืึธืืืขื ืืื ืืขื ืฆืืืึทื ื ืืื ืึทื ืืืจ ืขืจืฉืืขืจ ืฉืืขืื ืื ืงืืืืื, ืืื ืืืืื ืืขืืึธืื ืืขืกืืขื ืืื ืจืึธืืื ืขืก ืืืืก. ืคืืจืืืืก? ืขืจืฉืืขืจ, ืขืก ืืื ืคืฉืื ืืืึทืืืฉืืงืึทื: ืืืจ ืึทืจืืืกืืขืื ืึท ืืืขืจืกืืข ืคืื โโืืืืืืืืืจื ืืืึธืก ืืืจ ืืึธืื ื ืืฉื ืืคืืื ืืขืกืืขื ื ืึธื (ืืืจ ืงืขื ืขื ื ืืฉื ืืึธื ืึทื ืืขืจืฉ, ืืืืึทื ืืื ืกืืจ ืฆื ืงืึธื ืืจืึธืืืจื, ืืืจ ืืึทืจืคึฟื ืฆื ืฉืืขืื ืึท ืงืืืืื). ืฆืืืืืื ืก, ืืขืจ ืืจื ืืื ื ืืฉื ืงืึทืืคึผืึทืืึทืืึทื ืืื Gitflow.
ืื ืจืืข ืึธืคึผืฆืืข ืืื ืืื commit + ืงืืืืื. ืืขืจ ืืขื ืฆืืืืึทื ืืื ืึท ืงืืืืื 1.0
; ืคึฟืึทืจ ืขืก ืืื ืจืขืืืกืืจื - ืึท ืืืื ืืืคึผืืืื ืฆื ืคึผืจืึธืืืงืฆืืข. ืืื ืึทืืืฉืึทื, ืื Kubernetes ืงื ืืื ืืื ืคืึธืจืืืกืืงืข ืืืืึทืืื ื ืืื ืกืืึทืืื ื ืงืึทื ืืืจื. ืืืืึทืืขืจ ืืืจ ื ืึธืืคืึธืืื Gitflow: ืืื ืื ืืืืคึผื ืฆืืืืึทื ืคึฟืึทืจ ืึทื ืืืืืงืืื ื (develop
) ืืืจ ืืึทืื ื ืืึทืข ืคึฟืขืึดืงืืืื, ืจืืืึทืืืื ื ืืื ืึท ืืืขืจืืขืื ืืื ืื ืืืขื ืืืคืืขืจ #c1
. ืืืจ ืงืืืึทืื ืขืก ืืื ืึทืจืืืกืืขืื ืขืก ืืื ืื ืจืขืืืกืืจื ื ืืฆื ืืขื ืืืขื ืืืคืืขืจ (#c1
). ืืื ืื ืืขืืืข ืืืืขื ืืืคืืฆืืจื ืืืจ ืจืึธืืื ืืืืก ืฆื ืคืึธืจืืืกืืงืข ืืืืึทืืื ื. ืืืจ ืืึธื ืื ืืขืืืข ืืื ืงืึทืืืฅ #c2
ะธ #c3
.
ืืืขื ืืืจ ืืืื ืืขืืขื ืึทื ืขืก ืืขื ืขื ืืขื ืื ืคึฟืขืึดืงืืืื, ืืืจ ืึธื ืืืืื ืฆื ืกืืืืืึทืืืื ืึทืืฅ. ืฉืึทืคึฟื ืึท ืฆืืืืึทื ืืื ืืื release_1.1
(ืืืืฃ ืืขืจ ืืึทืืข #c3
ืคืื develop
). ืขืก ืืื ื ืื ืืึทืจืคึฟื ืฆื ืืึทืืืขื ืืขื ืืขืืืื ื, ืืืืึทื ... ืืึธืก ืืื ืืขืืืขื ืืขืืื ืืื ืื ืคืจืืขืจืืืงืข ืฉืจืื. ืืขืจืืืขืจ, ืืืจ ืงืขื ืขื ืคืฉืื ืจืึธืืื ืขืก ืืืืก ืฆื ืกืืึทืืื ื. ืืืจ ืคืึทืจืจืืืื ืืึทืื ืืื #c4
ืืื ืกืืืืืึทืจืื ืจืึธืืื ืืืืก ืฆื ืกืืึทืืื ื. ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื, ืึทื ืืืืืงืืื ื ืืื ืึทื ืืขืจืืืื ืืื develop
, ืืื ืขื ืืขืจืื ืืขื ืืขื ืขื ืคึผืืจืืึทืืืงืื ืืขื ืืืขื ืคืื release_1.1
. ืืื ืขืืืขืืข ืคืื ื, ืืืจ ืืึทืงืืืขื ืึท ืงืึทืืื ืงืึทืืคึผืืืื ืืื ืืคึผืืึธืึทืืขื ืฆื ืกืืึทืืื ื, ืืืึธืก ืืืจ ืืขื ืขื ืฆืืคืจืืื ืืื (#c25
).
ืืขืจื ืึธื ืืืจ ืฆืื ืืืคืืืกื (ืืื ืฉื ืขื-ืคืึธืจืืืก) ืื ืืขืืืื ื ืฆืืืืึทื (release_1.1
) ืืื ืืขื. ืืืจ ืฉืืขืื ืึท ืงืืืืื ืืื ืื ื ืืึทืข ืืืขืจืกืืข ืืืืฃ ืืขื ืงืึทืืื (1.1
). ืืืขืจ ืืขื ืืืื ืืื ืฉืืื ืืขืืืืื ืืื ืื ืจืขืืืกืืจื, ืึทืืื ืืื ืกืืจ ื ืืฉื ืฆื ืืึทืืืขื ืขืก ืืืืืขืจ, ืืืจ ืคืฉืื ืืืืื ืึท ืฆืืืืื ืงืืืืื ืฆื ืื ืืืืืกืืื ื ืืืื (ืืืฆื ืขืก ืืื ืืึทืืก ืืื ืื ืจืขืืืกืืจื #c25
ะธ 1.1
). ื ืึธื ืืขื, ืืืจ ืจืึธืืื ืขืก ืฆื ืคึผืจืึธืืืงืฆืืข.
ืขืก ืืื ืึท ืฉืืขืจืื ื ืึทื ืืืืื ืืืื ืืืื ืืื ืืคึผืืึธืึทืืขื ืฆื ืกืืึทืืื ื (#c25
), ืืื ืืื ืคึผืจืึธืืืงืฆืืข ืขืก ืืื ืึทื ืืขืจืฉ (1.1
), ืึธืืขืจ ืืืจ ืืืืกื ืึทื "ืคืืืืงืื" ืืึธืก ืืื ืื ืืขืืืข ืืืื ืคืื ืื ืจืขืืืกืืจื.
ืืขืจ ืขืืขืก ืืืกืึธืจื ืืื ืึทื ืขืก ืืื ืงืืื ืฉืืืฆื ืคึฟืึทืจ ืฆืื ืืืคืืืกื ืงืึทืืืฅ, ืืืจ ืืึธืื ืฆื ืืขืฉืืืื ื ืคืึธืจืืืก.
ืืืจ ืงืขื ืขื ืืืื ืืืืืืขืจ ืืื ืืึธื ืึท ืงืื ืฅ ... ืืึธืืืจ ืงืืงื ืืื ืึท ืืืืฉืคึผืื ืคืื ืึท ืคึผืฉืื ืืึธืงืขืจืคืืืข:
FROM ruby:2.3 as assets
RUN mkdir -p /app
WORKDIR /app
COPY . ./
RUN gem install bundler && bundle install
RUN bundle exec rake assets:precompile
CMD bundle exec puma -C config/puma.rb
FROM nginx:alpine
COPY --from=assets /app/public /usr/share/nginx/www/public
ืืึธืืืจ ืืืืขื ืึท ืืขืงืข ืคึฟืื ืืื ืืืื ืื ืคืืืืขื ืืข ืคึผืจืื ืฆืืคึผ:
- SHA256 ืคึฟืื ืื ืืืืขื ืืืคืืฆืืจื ืคืื ืื ืืืืืขืจ ืืขื ืืฆื (
ruby:2.3
ะธnginx:alpine
), ืืืึธืก ืืขื ืขื ืืฉืขืงืกืึทืื ืคืื ืืืืขืจ ืืื ืืึทืื; - ืึทืืข ืืืื (
RUN
,CMD
ืืื ืืืื ืืืืืืขืจ.); - SHA256 ืคึฟืื ืืขืงืขืก ืืืึธืก ืืขื ืขื ืฆืืืขืืขืื.
... ืืื ื ืขืืขื ืื ืืฉืขืงืงืกืื (ืืืืืขืจ SHA256) ืคืื ืึทืืึท ืึท ืืขืงืข. ืืืก ืืกืืืข ืึทืืฅ ืืืึธืก ืืืคืืื ื ืื ืืื ืืึทืื ืคืื ืื ืืึธืงืงืขืจ ืืืื.
ืืื ืก ืืืื ืฆืืจืืง ืฆื ืื ืืืึทืืจืึทืืข ืืื ืึทื ืฉืืึธื ืคืื ืงืึทืืืฅ ืืืจ ืืืขืื ื ืืฆื ืึทืืึท ืกืืื ืึทืืฉืขืจื, ื.ื. ืคืึทืจืืื ืื ืืืืืขืจ ืืื ืกืืื ืึทืืฉืขืจื.
ืืืฆื, ืืืขื ืขืก ืืื ื ืืืืืง, ืืืฉื, ืฆื ืฆืื ืืืคืืืกื ืขื ืืขืจืื ืืขื ืคืื ืึท ืืขืืืื ื ืฆื ืืขื, ืืืจ ืงืขื ืขื ืืึธื ืึท ืคืึทืงืืืฉ ืฆืื ืืืคืืืกื ืงืึทืืื: ืขืก ืืืขื ืืึธืื ืึท ืึทื ืืขืจืฉ ืืืืขื ืืืืขื, ืึธืืขืจ ืื ืืขืืืข ืืกืืืข. ืืื ืืขืจ ืืขืืืืงืขืจ ืืืืขื ืืืืขื, ืืืจ ืจืึธืืืื ื ืื ืืืื ืฆื ืคึผืจืึธืืืงืฆืืข.
ืื ืืืกืึธืจื ืืื ืึทื ืืืฆื ืขืก ืืืขื ื ืื ืืืื ืืขืืืขื ืฆื ืืึทืฉืืืกื ืืืึธืก ืืื ืคืื ืืืขืจืืขืื ืืื ืืขืืืขื ืคึผืืฉื ืฆื ืคึผืจืึธืืืงืฆืืข - ืืฉืขืงืกืึทืื ืึทืจืืขื ืืืืื ืืื ืืืื ืจืืืืื ื. ืืขื ืคึผืจืึธืืืขื ืืื ืกืึทืืืื ืืืจื ืึทื ื ืึธื ืฉืืืืข ืืื ืืขืืึทืืึทืืึท - ืืื ืืืขื ืืึธืื ืืืจ ืืขืจ ืฉืคึผืขืืขืจ.
ืืึทืืื ื ืืื ืืืึธืจืฃ
ืืื ืืืขืจืฃ ืืขื ืขื ืืืจ ืืขืืึทื ืืขื ื ืึธื ืืืืืืขืจ ืืื ืืจืืืื ืืื ืฆื ืืึธื ืึท ืคืึทืจืฉืคึผืจืืืื ืืืืขื ืืื ืึท ืงืึทืฉ ืืืึธืก ืืื ื ืืฉื ืกืืึธืจื ืืืืฃ ืืืื ืืึทืฉืื ... ืึทืืื ืืืจ ืืืืขื ืฆืืืื ืืืืคึผืก ืคืื ืืึธืงืงืขืจ ืืืืืขืจ, ืืืจ ืจืืคื ืืื ืืื ืข ะธ ืืืื.
ืื werf Git ืจืืคึผืึทืืึทืืึธืจื ืกืืึธืจื ืืืืขื-ืกืคึผืขืฆืืคืืฉ ืื ืกืืจืึทืงืฉืึทื ื ืืืึธืก ืืึทืฉืจืืึทืื ืื ืคืึทืจืฉืืืขื ืข ืกืืึทืืขืก ืคืื ืื ืืืืขื (ืืืืืขืจ ืื ืกืืึทืืืจื, ืื ืกืืึทืืืจื, ืืืืืขืจ ืกืขืืึทืคึผ, ืกืขืืึทืคึผ). ืืืจ ืงืืืึทืื ืื ืขืจืฉืืขืจ ืืื ืข ืืืื ืืื ืึท ืืกืืืข ืืืคืืื ื ืืื ืื ืืฉืขืงืกืื ืคืื ืื ืขืจืฉืืขืจ ืกืืขืคึผืก. ืืขืจื ืึธื ืืืจ ืืืืื ืื ืืงืืจ ืงืึธื, ืคึฟืึทืจ ืื ื ืืึท ืืื ืข ืืืื ืืืจ ืจืขืืขื ืขื ืืืึทื ืืฉืขืงืกืื ... ืื ืึทืคึผืขืจืืืฉืึทื ื ืืขื ืขื ืจืืคึผืืืื ืคึฟืึทืจ ืึทืืข ืกืืึทืืขืก, ืืื ืึท ืจืขืืืืืึทื ืคืื ืืืึธืก ืืืจ ืืึทืงืืืขื ืึท ืกืืื ืคืื ืืื ืข ืืืืืขืจ. ืืขืจื ืึธื ืืืจ ืืึทืื ืื ืืขืฆื ืืืื, ืืืึธืก ืืืื ืึผืืื ืืขืืึทืืึทืืึท ืืืขืื ืืืึทื ืึธื ืืืื. ืืื ืืืจ ืคืึทืจืืื ืื ืืขื ืืืื ืืื ืคืึทืจืฉืืืขื ืข ืืืขืื (ืคืจืืื ืฉืคึผืขืืขืจ).
ืจืขืื ืึทื ื ืึธื ืืขื, ืึท ื ืืึทืข ืงืึทืืื ืืื ืืขืืืืื ืืื ืืืึธืก ืืืืื ืื ืึทืคึผืืึทืงืืืฉืึทื ืงืึธื ืืื ืคืืจืขื ืืขืจื. ืืืืก ืืืขื ืืขืฉืขื? ืคึฟืึทืจ ืงืึธื ืขื ืืขืจืื ืืขื, ืึท ืืึทืืข ืืืขื ืืืื ืืืฉืืคื ืืื ืึท ื ืืึทืข ืืื ืข ืืืื ืืืขื ืืืื ืฆืืืขืืจืืื. ืืืื ืืกืืืข ืืืขื ืืืื ืืืฉืืืกื ืืื ืื ืืฉืขืงืกืื ืคืื ืื ืึทืื ืืื ืข ืืืื ืืื ืื ื ืืึทืข ืืึทืืข. ื ื ืืึทืข ืืขืฆื ืืืื ืืืขื ืืืื ืืขืฉืืคื ืคืื ืืขื ืืืื. ืขื ืืขืืข ื ืึทืืืจ ืืืขื ืคึผืึทืกืืจื ืืื ืขื ืืขืจืื ืืขื ืืื ืื ืืขืจืข ืกืืึทืืขืก.
ืืืื, ืืื ืข ืืืืืขืจ ืืขื ืขื ืึท ืงืึทืฉ ืืืึธืก ืงืขื ืขื ืืืื ืกืืึธืจื ืืืกืืจืืืืืืื, ืืื ืื ืืืืืขืจ ืฉืืื ืืืฉืืคื ืืขืจืคืื ืืขื ืขื ืืคึผืืึธืึทืืขื ืฆื ืื ืืึธืงืงืขืจ ืจืขืืืกืืจื.
ืจืืื ืืงืื ื ืื ืจืขืืืกืืจื
ืืืจ ืืขื ืขื ื ืืฉื ืืขืจืขืื ืืืขืื ืืืืืืื ื ืืืึทืขืจืก ืืืึธืก ืคืืจืืืืื ืืึทื ืืืื ื ื ืึธื ืืืืกืืขืืขืงื ืืึทืืก - ืืึธืก ืืื ืึท ื ืึธืจืืึทื ืฉืืจืื ืคืื ืื ืืึธืงืงืขืจ ืจืขืืืกืืจื ืืื. ืืืจ ืจืขืื ืืืขืื ืึท ืกืืืืึทืฆืืข ืืืขื ืึท ืคึผืืึทืฅ ืคืื ืืึธืงืงืขืจ ืืึทืืก ืึทืงืืืืืึทืืืื ืืื ืืืจ ืคึฟืึทืจืฉืืืื ืึทื ืืืจ ื ืื ืืขืจ ืืึทืจืคึฟื ืขืืืขืืข ืคืื โโืืื, ืึธืืขืจ ืืื ื ืขืืขื ืคึผืืึทืฅ (ืืื / ืึธืืขืจ ืืืจ ืืึทืฆืึธืื ืคึฟืึทืจ ืขืก).
ืืืึธืก ืืขื ืขื ืื ืจืืื ืืงืื ื ืกืืจืึทืืขืืืขืก?
- ืืืจ ืงืขื ืขื ื ืึธืจ ืืึธื ืืึธืจื ืืฉื ื ืื ืจืืื. ืืื ืขืก ืืื ืืึทืงืข ืืจืื ืืขืจ ืฆื ืฆืึธืื ืึท ืืืกื ืคึฟืึทืจ ืขืงืกืืจืข ืคึผืืึทืฅ ืืื ืฆื ืึทื ืจืึทืืืึทื ืึท ืจืืืืง ืคึผืืึธื ืืขืจื ืคืื ืืึทืืก. ืึธืืขืจ ืืึธืก ืึทืจืืขื ืืืืื ืืื ืึท ืืืืขืจ ืคืื ื.
- ืืึทื ืฅ ืืึทืฉืืขืืืง. ืืืื ืืืจ ืืืกืืขืงื ืึทืืข ืื ืืืืืขืจ ืืื ืจืืืืื ืืืืื ืื ืืืฆืืืงืข ืืื ืื ืกื ืกืืกืืขื, ืึท ืคึผืจืึธืืืขื ืงืขื ืืืืคืฉืืืื. ืืืื ืืขืจ ืงืึทื ืืืื ืขืจ ืืื ืจืืกืืึทืจืืื ืืื ืคึผืจืึธืืืงืฆืืข, ืึท ื ืืึทืข ืืืื ืืืขื ืืืื ืืึธืืืื ืคึฟืึทืจ ืืื - ืืืื ืขืจ ืืืึธืก ืืื ื ืึธื ื ืืฉื ืืขืกืืขื ืืืจื ืืืขืจ ืขืก ืื. ืืึธืก ืงืืื ืื ืืขืืึทื ืง ืคืื ืืืืืืึทืืึทื ืื ืคืจืึทืกืืจืึทืงืืฉืขืจ.
- ืืืื-ืืจืื. ืืืื ืจืขืืืกืืจื ืื ืืขืืืืื ืฆื ืืืืคื - ืืืจ ืืคึผืืึธืึทื ืืืืืขืจ ืฆื ืื ืืขืจื. ืืขืจ ืืขืืืืงืขืจ ืคึผืจืึธืืืขื ืืื ืืื ืื ืคืจืืขืจืืืงืข ืืืคึฟื: ืืื ืืืึธืก ืคืื ื ืงืขื ืขื ืืืจ ืืืกืืขืงื ืื ืจืขืืืกืืจื ืืืึธืก ืืื ืื ืืขืืืืื ืฆื ืืืืคื?
- ืืื ืฆืืื. ืืืกืืขืงื ืึทืืข ืืืืืขืจ ืขืืืขืจ ืืื 1 ืืืืฉ? ืึธืืขืจ ืขืก ืืืขื ืืืฉืืืื ืืืื ืึท ืืื ืกื ืืืึธืก ืืื ื ืืฉื ืืขืจืืืึทื ืืืงื ืคึฟืึทืจ ืึท ืืืืฉ ...
- ืืึทื ืืืึทืื ืืึทืฉืืืืขื ืืืึธืก ืงืขื ืขื ืฉืืื ืืืื ืืืืกืืขืืขืงื.
ืขืก ืืขื ืขื ืฆืืืื ืืืืช ืืืืืึทืืึทื ืึธืคึผืฆืืขืก: ืืึธื ื ืื ืจืืื ืึธืืขืจ ืึท ืงืึธืืืื ืึทืฆืืข ืคืื โโโโืืืื-ืืจืื + ืืึทื ืืืึทืื. ืืื ืื ืืขืฆืืข ืคืึทื, ืืืจ ืืขื ืขื ืืขืจืขืื ืืืขืื ืื ืคืืืืขื ืืข: ืืืขื ืืืจ ืคึฟืึทืจืฉืืืื ืึทื ืขืก ืืื ืฆืืึทื ืฆื ืจืืื ืื ืจืขืืืกืืจื, ืืืจ ืืึทืื ืึท ื ืืึทืข ืืื ืืืืื ืึทืืข ื ืืึทืข ืืืืืขืจ ืืื ืืขื ืืึทื ื ืคืื, ืืืฉื, ืึท ืืืืฉ. ืืื ื ืึธื ืึท ืืืืฉ, ืืขื ืืืึธืก ืคึผืึธืืก ืืื Kubernetes ื ืึธื ื ืืฆื ืื ืึทืื ืจืขืืืกืืจื, ืืื ืึทืจืืืขืจืคืืจื ืืื ืืืื ืฆื ืื ื ืืึทืข ืจืขืืืกืืจื.
ืืืึธืก ืืขื ืขื ืืืจ ืืขืงืืืขื ืฆื werf? ืืืจ ืงืืืึทืื:
- ืืื ืงืึธืคึผ: ืึทืืข ืืึทืืก, ืึทืืข ืฆืืืืืื - ืึทืกืืืื ื ืึทื ืืืจ ืืึทืจืคึฟื ืึทืืฅ ืืืึธืก ืืื ืืึทืื ืืื ืืื ืืื ืื ืืืืืขืจ (ืืื ืืืื ื ืืฉื, ืืืจ ืืึทืจืคึฟื ืฆื ืืืกืืขืงื ืขืก ืืื ืืื ืืื);
- ืึทืืข ืคึผืึธืืก ืืืึธืก ืืขื ืขื ืืืฆื ืคึผืึทืืคึผื ืืืืก ืฆื ืงืืืขืจื ืขืืขืก;
- ืึทืื ืจืขืคึผืืืงืข ืกืขืฅ (ืืืึธืก ืืื ืืขืฆืื ืก ืืืคืจืืื), ืืื ืืืจ ืืืื ืคึผืืึทื ืฆื ืืืขืจืงืืงื ืืขืื ืจืืืืกืื ืืื ืืืืกืงืืืึทืื ืื ืืขืฆืืข ืืืืืขืจ ืืึธืจื.
... ืืื ืืึทืื ืึท ืืืืืืืืกื ืคืื ืืขื ืืึทื ื - ืึท ืจืฉืืื ืคืื ืืืืืขืจ ืืืึธืก ืืืจ ืืืขืื ื ืืฉื ืืืกืืขืงื. ืืืจ ืจืืื ืืืืก ืึทืืฅ ืึทื ืืขืจืฉ, ื ืึธื ืืืึธืก ืืืจ ืืขืคึฟืื ืขื ืืชืื ืืื ืข ืืืืืขืจ ืืื ืืืกืืขืงื ืืื ืืืื.
ืฆืขืืืืงืืขื ืืื ืข
ืคืึทืจืืึธืืืขื ืืขืงืืึทืจืึทืืืืืขื ืขืกืก
ืืขืจ ืขืจืฉืืขืจ ืคืื ื ืืืึธืก ืืื ืืืึธืื ืืื ืฆื ืฆืืขื ืืคืืขืจืงืืึทืืงืืื ืฆื ืืื ืื ืืืคึผืืืืืึทื ื ืืื ืื ืจืึธืืืึทืื ืคืื ืื ืืขืจืืืึทื ืืืงื ืืืื ืงืึทื ืคืืืืขืจืืืฉืึทื, ืืขืจืงืืขืจื ืืขืงืืึทืจืึทืืืืืื. ืืขืจ ืึธืจืืืื ืขื YAML ืืึธืงืืืขื ื ืืืกืงืจืืืืื ื Kubernetes ืจืขืกืืจืกื ืืื ืฉืืขื ืืืง ืืืืขืจ ืึทื ืืขืจืฉ ืคืื ืืขืจ ืจืขืืืืืึทื ืืืึธืก ืึทืงืฉืื ืคืืืกื ืืืง ืืื ืืขื ืงื ืืื. ืืืืึทื Kubernetes ืืืกืืฃ ืฆื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื:
- ืืืืขื ืืืคืืฆืืจื;
- ืืื ืกื ืืื ืคึฟืึธืจืืึทืฆืืข;
- ืคืืืข ืคืขืืืงืืึทื ืืืึทืืืขืก;
- ืึธืคึผืืืืืื ื ืืื ืงืจืึทื ื ืกืืึทืืืก;
- ืขื ืืขืจืื ืืขื ืืขืืืื ืืื ืึท ืืืื ืคืื ืื ืึทืจืืึทื ืืจืขืื ืืืขืืืึธืึธืง;
- ืืขืจ ืจืขืืืืืึทื ืคืื ืื ืึทืจืืขื ืคืื ืคืึทืจืฉืืื ืงืึทื ืืจืึธืืืขืจื (ืืื ืื ืกืงืขืืืฉืืืขืจ).
ืืขืจืืืขืจ, ืืืขื ืึท ื ืืึทืข ืืืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืื ืืจืืืก (ื ืืึท), ืืืจ ืงืขื ืขื ื ืืฉื ื ืึธืจ ื ืขืืขื ืืื ืึธืืืืขืจืจืืื ืื ืงืจืึทื ื, "ืืขืื" ืงืึทื ืคืืืืขืจืืืฉืึทื ืืื ืืื (ืืขืื). ืฆื ืืึธื ืืึธืก, ืืืจ ืืืขืื ืืึธืื ืฆื ืคืึทืจืืืืึทืื ื ืืึท ืืื ืื ืืขืฆืืข ืืขืืืขื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื (ืืขืฆื-ืืขืืืขื ืื) ืืื ืืขืื ืืืืฃ ืืขืื ืืืงืืืขื ืืึทืืข.
ืืขื ืฆืืืึทื ื ืืื ืืขืจืืคื 2-ืืืขื ืฆืื ืืืคืืืกื. ืขืก ืืื ืืขื ืืฆื, ืืืฉื, ืืื ืืขืื.
ืขืก ืืื ืืืื 3-ืืืขื ืฆืื ืืืคืืืกื, ืืืึธืก ืืื ืึทื ืืขืจืฉ ืืื ืืขื:
- ืคืึทืจืืืืืื ืืขืฆื-ืืขืืืขื ืื ะธ ื ืืึท, ืืืจ ืงืืงื ืืื ืืืึธืก ืืื ืืืืกืืขืืขืงื;
- ืคืึทืจืืืืืื ื ืืึท ะธ ืืขืื, ืืืจ ืงืืงื ืืื ืืืึธืก ืืื ืฆืืืขืืืืื ืึธืืขืจ ืืขืืืื;
- ืื ืกืึทืื ืืึทืืข ืืื ืืขืืืขื ืื ืฆื ืืขืื.
ืืืจ ืฆืขืืืืงืืขื 1000+ ืึทืคึผืืึทืงืืืฉืึทื ื ืืื ืืขืื, ืึทืืื ืืืจ ืึทืงืฉืื ืืขืื ืืื 2-ืืืขื ืฆืื ืืืคืืืกื. ืึธืืขืจ, ืขืก ืืื ืึท ื ืืืขืจ ืคืื ืคืจืืืืขืืขื ืืืึธืก ืืืจ ืืึธืื ืกืึทืืืื ืืื ืืื ืืืขืจ ืคึผืึทืืฉืึทื, ืืืึธืก ืืขืืคึฟื ืืขืื ืฆื ืึทืจืืขืื ื ืึธืจืืึทืื.
ืคืึทืงืืืฉ ืจืึธืืืึทืื ืกืืึทืืืก
ื ืึธื ืืื ืืืขืจ CI ืกืืกืืขื ืืืฉืขื ืขืจืืืฅ ืึท ื ืืึทืข ืงืึทื ืคืืืืขืจืืืฉืึทื ืคึฟืึทืจ Kubernetes ืืืืืจื ืืืืฃ ืืขืจ ืืืืึทืืขืจ ืืขืฉืขืขื ืืฉ, ืขืก ืืจืึทื ืกืืืฅ ืขืก ืคึฟืึทืจ ื ืืฆื (ืฆืืืืืื) ืฆื ืึท ืงื ืืื - ื ืืฆื ืืขืื ืึธืืขืจ kubectl apply
. ืืขืจื ืึธื, ืื ืฉืืื ืืืกืงืจืืืื N-ืืืขื ืฆืื ืืืคืืืกื ืึทืงืขืจื, ืฆื ืืืึธืก ืื Kubernetes API ืจืืกืคึผืึทื ืื ืึทืคึผืจืืืืื ื ืฆื ืื ืกื ืกืืกืืขื, ืืื ืึทื ืฆื ืืืื ืืึทื ืืฆืขืจ.
ืึธืืขืจ, ืขืก ืืื ืึท ืจืืืืง ืคึผืจืึธืืืขื: ื ืึธื ืึทืืข ืืขืจืึธืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ื ืืฉื ืืืื ืขื ืืขืจืึธืื ืจืึธืืืึทืื. ืืืื Kubernetes ืคืืจืฉืืืื ืืืึธืก ืขื ืืขืจืื ืืขื ืืึทืจืคึฟื ืฆื ืืืื ืืขืืืขื ืื ืืื ืึทืคึผืืืื ืขืก, ืืืจ ื ืึธื ืืึธื ื ืื ืืืืกื ืืืึธืก ืืขืจ ืจืขืืืืืึทื ืืืขื ืืืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืึทืคึผืืืืืื ื ืืื ืจืืกืืึทืจืืื ื ืคึผืึธืืก ืืื ืื ืคืจืึธื ืืขื ื ืงืขื ืืืื ืืขืจืึธืื, ืึธืืขืจ ื ืืฉื ืืื ืื ืืึทืงืขื ื, ืืื ืืืจ ืืืขืื ืืึทืงืืืขื ืคืึทืจืฉืืืขื ืข ืืืขืจืกืืขืก ืคืื ืื ืคืืืกื ืืืง ืึทืคึผืืึทืงืืืฉืึทื ืืืืืขืจ.
ืฆื ืืึธื ืึทืืฅ ืจืืืืืง, ืืขื ืกืืขืืข ืจืืงืืืืืขืจื ืึทื ื ืึธื ืืื ืง - ืึท ืกืคึผืขืฆืืขื ืืจืึทืงืขืจ ืืืึธืก ืืืขื ืืึทืงืืืขื ืกืืึทืืืก ืืื ืคึฟืึธืจืืึทืฆืืข ืคืื โโืื Kubernetes API ืืื ืืืขืจืฉืืงื ืขืก ืคึฟืึทืจ ืืืืึทืืขืจ ืึทื ืึทืืืกืืก ืคืื ืื ืคืึทืงืืืฉ ืฉืืึทื ืคืื ืืื ืื. ืืืจ ืืืฉืืคื ืึทื ืขืคึฟื ืืงืืจ ืืืืืืึธืืขืง ืืื Go -
ืื ืึธืคึผืคืืจืื ื ืคืื ืืขื ืืจืึทืงืขืจ ืืืืฃ ืื ืืืึธืจืฃ ืืืจืื ืืื ืงืึทื ืคืืืืขืจื ืืื ืึทื ืึทืืืืฉืึทื ื ืืืึธืก ืืขื ืขื ืืขืฉืืขืื ืืืืฃ ืืืคึผืืืืืึทื ืฅ ืึธืืขืจ ืกืืืืืคืืืกืขืฅ. ืืืืคึผื ืึทื ืึธืืึทืฆืืข - fail-mode
- ืคืืจืฉืืืื ืื ืคืืืืขื ืืข ืืื ืื ืื:
-
IgnoreAndContinueDeployProcess
- ืืืจ ืืืื ืึธืจืืจื ืื ืคืจืืืืขืืขื ืคืื ืจืึธืืืื ื ืืืืก ืืขื ืงืึธืืคึผืึธื ืขื ื ืืื ืคืึธืจืืขืฆื ืื ืืืคึผืืืืืึทื ื; -
FailWholeDeployProcessImmediately
- ืึท ืืขืืช ืืื ืืขื ืงืึธืืคึผืึธื ืขื ื ืกืืึทืคึผืก ืื ืืืคึผืืืืืึทื ื ืคึผืจืึธืฆืขืก; -
HopeUntilEndOfDeployProcess
- ืืืจ ืืึธืคื ืึทื ืืขืจ ืงืึธืืคึผืึธื ืขื ื ืืืขื ืึทืจืืขืื ืืื ืื ืกืืฃ ืคืื ืื ืืืคึผืืืืืึทื ื.
ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืขื ืงืึธืืืื ืึทืฆืืข ืคืื โโืจืขืกืืจืกื ืืื ืึทื ืึธืืึทืฆืืข ืืืึทืืืขืก fail-mode
:
ืืืขื ืืืจ ืฆืขืืืืงืืขื ืคึฟืึทืจ ืื ืขืจืฉืืขืจ ืืึธื, ืื ืืึทืืึทืืืืก (MongoDB) ืงืขื ื ืืฉื ืืืื ืืจืืื ื ืึธื - ืืืคึผืืืืืึทื ืฅ ืืืขื ืคืึทืจืืึธืื. ืึธืืขืจ ืืืจ ืงืขื ืขื ืืืึทืจืื ืคึฟืึทืจ ืืขื ืืึธืืขื ื ืคึฟืึทืจ ืขืก ืฆื ืึธื ืืืืื, ืืื ืื ืืืคึผืืืืืึทื ื ืืืขื ื ืึธื ื ืขืืขื ืึธืจื.
ืขืก ืืขื ืขื ืฆืืืื ืืขืจ ืึทื ืึทืืืืฉืึทื ื ืคึฟืึทืจ kubedog ืืื werf:
-
failures-allowed-per-replica
- ืื ื ืืืขืจ ืคืื ืขืจืืืืื ืคืืืก ืคึฟืึทืจ ืืขืืขืจ ืจืขืคึผืืืงืข; -
show-logs-until
- ืจืขืืืึทืืืืฅ ืื ืืึธืืขื ื ืืื ืืืึธืก ืืืึธืจืฃ ืืืืืื (ืืื ืกืืืึธืื) ืืึธืืก ืคืื ืึทืืข ืจืึธืืื ืืืืก ืคึผืึธืืก. ืื ืคืขืืืงืืึทื ืืืPodIsReady
(ืฆื ืืืื ืึธืจืืจื ืึทืจืืืงืืขื ืืืึธืก ืืืจ ืืืกืืึธืืข ื ืืฉื ืืืขืื ืืืขื ืคืึทืจืงืขืจ ืกืืึทืจืฅ ืฆื ืงืืืขื ืฆื ืื ืคึผืึธื), ืึธืืขืจ ืืืึทืืืขืก ืืขื ืขื ืืืื ืืืืืืง:ControllerIsReady
ะธEndOfDeploy
.
ืืืึธืก ืึทื ืืขืจืฉ ืืึธื ืืืจ ืืืขืื ืคืื ืืืคึผืืืืืึทื ื?
ืืื ืึทืืืฉืึทื ืฆื ืื ืฆืืืื ืฉืืื ืืืกืงืจืืืื ื ืงืืืืช, ืืืจ ืืืึธืื ืืื:
- ืฆื ืืขื ืืึธืืก - ืืื ืืืืื ืื ื ืืืืืง ืึธื ืขืก, ืืื ื ืื ืึทืืฅ ืืื ืึท ืจืืืขืจื;
- ืฉืคึผืืจ ืคึผืจืึธืืจืขืก, ืืืืื ืืืื ืื ืืจืืขื ืืขื ืื "ืฉืืืืื" ืคืืจ ืขืืืืืข ืืื ืื, ืืื ืืืืืืื ืฆื ืคืืจืฉืืืื ืืืืก ืืืจื ืืื ืืื;
- ืืึธืื ืึธืืึทืืึทืืืง ืจืึธืืืืึทืง ืืื ืคืึทื ืขืคึผืขืก ืืื ืคืึทืืฉ (ืืื ืืขืจืืืขืจ ืขืก ืืื ืงืจืืืืฉ ืฆื ืืืืกื ืื ืคืึทืงืืืฉ ืกืืึทืืืก ืคืื ืื ืืืคึผืืืืืึทื ื). ืื ืจืึธืืืึทืื ืืืื ืืืื ืึทืืึธืืืฉืข: ืึธืืขืจ ืขืก ืืืื ืืืจื ืฆื ืื ืกืืฃ, ืึธืืขืจ ืึทืืฅ ืงืขืจื ืฆื ืืืื ืคืจืืขืจืืืงื ืฉืืึทื.
ืจืขืืืืืึทืื ืคืื
ืคึฟืึทืจ ืืื ืื ืืื ืึท ืคืืจืืข, ืฆื ืื ืกืืจืืืขื ื ืึทืืข ืื ืืืกืงืจืืืื ื ืืึทื ืกืื ืืื ืคืึทืจืฉืืืขื ืข ืกืืึทืืขืก ืคืื ืขืงืกืคึผืจืขืก (ืืืืขื, ืึทืจืืืกืืขืื, ืฆืขืืืืงืืขื), ืึท ืกื ืกืืกืืขื ืืื ื ืืฆื ืืขื ืขื ืืขื ืื
ืึทื ืฉืืึธื ืึท ืืกืงื ื:
ืืื ืืขืจ ืืืืฃ ืคืื werf, ืืืจ ืืึธืื ืืขืืืื ืืื ืคึผืจืึธืืจืขืก ืืื ืกืึทืืืืื ื ืึท ืืจืืืก ื ืืืขืจ ืคืื ืคึผืจืึธืืืขืืก ืคึฟืึทืจ DevOps ืขื ืืืฉืึทื ืืจื ืืื ืืืึธืื ืืืื ืฆืืคืจืืื ืืืื ืื ืืจืืื ืงืื ืืคึผืืืช ืืขืคืจืืืื ืืขื ื ืืฆื ืืื ืงืึทืืฃ. ืขืก ืืืขื ืืืื ืืจืื ืืขืจ ืฆื ืืขืจืืจืืืื ืึท ืืื ืจืขืืืืืึทื ืฆืืืึทืืขื.
ืืืืืืืก ืืื ืกืืืืื
ืืืืืขื ืคึฟืื ืืขืจ ืคืึธืจืฉืืขืืื ื (~ 47 ืืื ืื):
ืคึผืจืขืืขื ืืืจืื ื ืคืื ืืขืจ ืืึทืจืืื:
ืคึผืก
ืื ืืขืจืข ืจืืคึผืึธืจืฅ ืืืขืื Kubernetes ืืืืฃ ืืื ืืืขืจ ืืืึธื:
- ยซ
ืึทืืืึธืกืงืึทืืื ื ืืื ืืืื ืคืึทืจืืืึทืืืื ื ืืื Kubernetes ยป (ืืืืืจื ืกืืึธืืืึทืจืึธืื; 27 ืืคืจืื 2019 ืืืืฃ "ืกืืจืืืง"); - ยซ
ืคืึทืจืืจืืืืขืจื ืืื ืืขืจืืึทื ื Kubernetes ยป (ืึทื ืืจืื ืคึผืึธืืึธืึธืื; 8 ืืคืจืื 2019 ืืืืฃ Saint HighLoad ++); - ยซ
ืืึทืืึทืืืืกืื ืืื ืงืืืขืจื ืขืืขืก ยป (ืืืืืจื ืกืืึธืืืึทืจืึธืื; 8 ื ืืืืขืืืขืจ 2018 ืืืืฃ HighLoad ++); - ยซ
ืืึธื ืืืึธืจืื ื ืืื ืงืืืขืจื ืขืืขืก ยป (ืืืืืจื ืกืืึธืืืึทืจืึธืื; 28 ืืื 2018 ืืื RootConf); - ยซ
CI / CD ืืขืกืืขืจ ืคึผืจืึทืงืืืกืื ืืื Kubernetes ืืื GitLab ยป (ืืืืืจื ืกืืึธืืืึทืจืึธืื; 7 ื ืืืืขืืืขืจ 2017 ืืืืฃ HighLoad ++); - ยซ
ืืื ืืืขืจ ืืขืจืคืึทืจืื ื ืืื Kubernetes ืืื ืงืืืื ืคึผืจืึทืืืฉืขืงืก ยป (ืืืืืจื ืกืืึธืืืึทืจืึธืื; 6 ืืื ื 2017 ืืื RootConf).
ืืงืืจ: www.habr.com