werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

27 แƒ›แƒแƒ˜แƒกแƒก แƒคแƒ”แƒกแƒขแƒ˜แƒ•แƒแƒšแƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒจแƒ˜ แƒฉแƒแƒขแƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ DevOpsConf 2019 แƒ™แƒแƒœแƒคแƒ”แƒ แƒ”แƒœแƒชแƒ˜แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒ“แƒแƒ แƒ‘แƒแƒ–แƒจแƒ˜ ะ ะ˜ะข++ 2019, แƒ แƒแƒ’แƒแƒ แƒช โ€žแƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒกโ€œ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜, แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ“แƒ แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ โ€žwerf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI/CD-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜โ€œ. แƒ›แƒแƒ—แƒ–แƒ”แƒ แƒกแƒแƒฃแƒ‘แƒแƒ แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒฌแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒงแƒ•แƒ”แƒšแƒแƒก แƒแƒฌแƒงแƒ“แƒ”แƒ‘แƒ Kubernetes-แƒจแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒแƒกแƒ”แƒ•แƒ” แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒแƒ  แƒ˜แƒงแƒแƒก แƒจแƒ”แƒกแƒแƒ›แƒฉแƒœแƒ”แƒ•แƒ˜. แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒ”แƒก แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒ•แƒ”แƒ แƒค.

แƒžแƒ แƒ”แƒ–แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒฉแƒ•แƒ”แƒœแƒ›แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒแƒ› (แƒแƒ“แƒ แƒ” แƒชแƒœแƒแƒ‘แƒ˜แƒšแƒ˜ แƒ แƒแƒ’แƒแƒ แƒช dapp) แƒ›แƒ˜แƒแƒฆแƒฌแƒ˜แƒ แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒฃแƒš แƒ”แƒขแƒแƒžแƒก 1000 แƒ•แƒแƒ แƒกแƒ™แƒ•แƒšแƒแƒ•แƒ˜ GitHub-แƒ–แƒ” โ€” แƒ•แƒ˜แƒ›แƒ”แƒ“แƒแƒ•แƒœแƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ—แƒ แƒ›แƒ–แƒแƒ แƒ“แƒ˜ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ แƒ’แƒแƒฃแƒแƒ“แƒ•แƒ˜แƒšแƒ”แƒ‘แƒก แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒแƒก DevOps-แƒ˜แƒก แƒ‘แƒ”แƒ•แƒ  แƒ˜แƒœแƒŸแƒ˜แƒœแƒ แƒก.

werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒฌแƒแƒ แƒ›แƒแƒ’แƒ˜แƒ“แƒ’แƒ”แƒœแƒ— แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ•แƒ˜แƒ“แƒ”แƒ (~47 แƒฌแƒฃแƒ—แƒ˜, แƒกแƒขแƒแƒขแƒ˜แƒแƒ–แƒ” แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒคแƒ แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒฃแƒšแƒ˜) แƒ“แƒ แƒ›แƒ˜แƒกแƒ’แƒแƒœ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒแƒ›แƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ แƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—. แƒฌแƒแƒ“แƒ˜!

แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ Kubernetes-แƒจแƒ˜

แƒกแƒแƒฃแƒ‘แƒแƒ แƒ˜ แƒแƒฆแƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ werf-แƒ–แƒ”, แƒแƒ แƒแƒ›แƒ”แƒ“ CI/CD-แƒ–แƒ” Kubernetes-แƒจแƒ˜, แƒ แƒแƒช แƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒแƒ‘แƒก แƒ˜แƒ›แƒแƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ แƒจแƒ”แƒคแƒฃแƒ—แƒฃแƒšแƒ˜แƒ Docker แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒจแƒ˜. (แƒแƒ›แƒแƒ–แƒ” แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ” 2016 แƒฌแƒšแƒ˜แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)แƒ“แƒ K8s แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜ แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“ (แƒ“แƒแƒฌแƒ•แƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ 2017 แƒฌแƒ”แƒšแƒ˜).

แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ Kubernetes-แƒจแƒ˜?

  • แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก Git-แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒแƒ แƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒ“แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Docker แƒกแƒฃแƒ แƒแƒ—แƒจแƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Docker Registry-แƒจแƒ˜.
  • แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒกแƒแƒชแƒแƒ•แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ”แƒขแƒแƒžแƒ–แƒ” แƒ”แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ‘แƒ Kubernetes-แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒฆแƒ”แƒ‘แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒš แƒกแƒฃแƒ แƒแƒ—แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ›แƒแƒก.
  • แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒแƒ แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒก แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— (แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’) แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒแƒกแƒšแƒ˜ (แƒชแƒแƒšแƒ™แƒ” K8s แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜ แƒแƒœ แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜) แƒ“แƒ แƒ˜แƒฅ แƒฉแƒแƒแƒขแƒแƒ แƒแƒ— แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜.
  • แƒ“แƒแƒ‘แƒแƒšแƒแƒก, แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— CI แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒก Git-แƒ“แƒแƒœ (แƒแƒœ แƒฆแƒ˜แƒšแƒแƒ™แƒ–แƒ” แƒ“แƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—) แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒแƒœแƒ˜แƒจแƒœแƒฃแƒš แƒ”แƒขแƒแƒžแƒก: แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ, แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ, แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ, แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ.

werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ:

  1. แƒ˜แƒ›แƒ˜แƒขแƒแƒ›, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ (แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ)แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒขแƒแƒžแƒ–แƒ” (แƒ“แƒแƒ“แƒ’แƒ›แƒ, แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ แƒ“แƒ แƒ.แƒจ.), แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ”แƒ แƒ—แƒ˜. แƒแƒ›แƒแƒ–แƒ” แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒ“แƒ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒ— แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”. แƒแƒฅ.
  2. แƒ˜แƒ›แƒ˜แƒขแƒแƒ›, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒงแƒ•แƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒก (IaC)แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒ“แƒ˜, แƒ›แƒ˜แƒกแƒ˜ แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ”แƒ แƒ— แƒกแƒแƒชแƒแƒ•แƒจแƒ˜. แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ›แƒ”แƒขแƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ˜แƒฎ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ.
  3. แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒฏแƒแƒญแƒ•แƒ˜ (แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ) แƒฉแƒ•แƒ”แƒœ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒแƒกแƒ”: แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒจแƒ”แƒ˜แƒ™แƒ แƒ˜แƒ‘แƒ, แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ, แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ (แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ”แƒขแƒแƒžแƒ˜) แƒ“แƒ แƒ”แƒก แƒแƒ แƒ˜แƒก - แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒฎแƒ“แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ˜แƒ›แƒแƒก, แƒ แƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒฃแƒจแƒ•แƒ˜แƒ—, แƒแƒ แƒแƒ แƒ˜แƒก แƒ›แƒแƒจแƒ˜แƒœ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ˜แƒขแƒแƒœแƒ”แƒ— แƒ˜แƒ’แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜, แƒ“แƒ แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒแƒœ แƒจแƒ”แƒซแƒšแƒ แƒ˜แƒฅ แƒฌแƒแƒกแƒ•แƒšแƒ แƒ“แƒ แƒแƒ› แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒ› แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ. แƒแƒกแƒ” แƒ แƒแƒ›, แƒ›แƒ” แƒ›แƒฏแƒ”แƒ แƒ, แƒ แƒแƒ› แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒฏแƒแƒญแƒ•แƒ˜ แƒ›แƒ—แƒแƒ•แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒแƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ แƒ”แƒขแƒแƒžแƒ–แƒ” (แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ), แƒฃแƒคแƒ แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“, แƒ˜แƒ› แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜แƒช แƒ™แƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ™แƒแƒ“แƒ˜ แƒแƒ›แƒแƒ˜แƒฆแƒ”แƒก แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ (แƒ›แƒ˜แƒกแƒ˜ แƒแƒฎแƒšแƒ˜แƒ— แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒ).

แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ— แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒกแƒฅแƒ”แƒ›แƒแƒก Kubernetes-แƒจแƒ˜: แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ˜แƒ’แƒแƒœแƒ”แƒก แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ”แƒ , แƒแƒ แƒแƒ›แƒ”แƒ“ แƒคแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒแƒ“ แƒงแƒ•แƒ”แƒšแƒแƒ›, แƒ•แƒ˜แƒœแƒช แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก แƒจแƒ”แƒ”แƒฎแƒ. แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒแƒ› แƒจแƒแƒ‘แƒšแƒแƒœแƒก แƒแƒฎแƒšแƒ GitOps แƒฐแƒฅแƒ•แƒ˜แƒ (แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ”แƒขแƒ˜ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒ˜แƒก แƒฃแƒ™แƒแƒœ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒ“แƒ”แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒแƒฅ). แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒ”แƒขแƒแƒžแƒ”แƒ‘แƒก.

แƒกแƒชแƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ

ะšะฐะทะฐะปะพััŒ ะฑั‹, ั‡ั‚ะพ ะผะพะถะฝะพ ั€ะฐััะบะฐะทะฐั‚ัŒ ะฒ 2019 ะณะพะดัƒ ะฟั€ะพ ัะฑะพั€ะบัƒ Docker-ะพะฑั€ะฐะทะพะฒ, ะบะพะณะดะฐ ะฒัะต ัƒะผะตัŽั‚ ะฟะธัะฐั‚ัŒ Dockerfileโ€™ั‹ ะธ ะทะฐะฟัƒัะบะฐั‚ัŒ docker build?.. แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ˜แƒก แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒ›แƒ˜แƒœแƒ“แƒ แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ แƒ›แƒ˜แƒแƒฅแƒชแƒ˜แƒ:

  1. แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒœแƒ ะธะผะตะตั‚ ะทะฝะฐั‡ะตะฝะธะต, ะฟะพัั‚ะพะผัƒ ะธัะฟะพะปัŒะทัƒะนั‚ะต แƒ›แƒ แƒแƒ•แƒแƒšแƒกแƒแƒคแƒ”แƒฎแƒฃแƒ แƒ˜แƒแƒœแƒ˜แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ” แƒ“แƒแƒขแƒแƒ•แƒแƒœ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
  2. แƒคแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ“แƒ”แƒก แƒฏแƒแƒญแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— RUN- แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—.
  3. แƒ—แƒฃแƒ›แƒชแƒ, แƒ”แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒก แƒ›แƒแƒขแƒ”แƒ‘แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ แƒ˜แƒจแƒšแƒ”แƒ‘แƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ˜แƒžแƒแƒ•แƒแƒ— แƒกแƒฌแƒแƒ แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒฏแƒแƒญแƒ•แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ›แƒแƒช แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒ.
  4. แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒกแƒฃแƒ แƒก แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ’แƒแƒ›แƒแƒ•แƒแƒฅแƒ•แƒ”แƒงแƒœแƒแƒ— แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ•แƒœแƒแƒฎแƒแƒ— แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒกแƒฃแƒ แƒ— แƒแƒฆแƒแƒ“แƒ’แƒ˜แƒœแƒแƒ— แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒจแƒ˜ แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒ—.
  5. แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ”แƒ แƒ—แƒ˜ Git แƒกแƒแƒชแƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ“แƒแƒ˜แƒญแƒ แƒแƒก Dockerfiles-แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒ— (แƒแƒœ แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ”แƒขแƒแƒžแƒ”แƒ‘แƒ˜ แƒ”แƒ แƒ— แƒคแƒแƒ˜แƒšแƒจแƒ˜) แƒ“แƒ Bash แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒ— แƒ›แƒแƒ—แƒ˜ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒ˜ แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ˜แƒ—.

แƒ”แƒก แƒ˜แƒงแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ˜แƒกแƒ‘แƒ”แƒ แƒ’แƒ˜แƒก แƒ›แƒฌแƒ•แƒ”แƒ แƒ•แƒแƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒงแƒ•แƒ”แƒšแƒ แƒแƒฌแƒงแƒ“แƒ”แƒ‘แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ™แƒ”แƒ แƒซแƒแƒ“:

  1. แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒขแƒแƒžแƒ–แƒ” แƒ แƒแƒฆแƒแƒช แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒ—แƒแƒ–แƒ” (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฅแƒ”แƒจแƒ˜แƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ apt แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ›แƒฎแƒแƒ แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜).
  2. แฒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒœแƒแƒญแƒฃแƒญแƒ˜แƒ— แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“.
  3. แฒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Docker-แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” (แƒ แƒแƒขแƒแƒ› แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒชแƒ แƒฃแƒ™แƒ•แƒ” แƒ’แƒ•แƒแƒฅแƒ•แƒก Kubernetes แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ?).
  4. แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ’แƒ–แƒ˜แƒ—: แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ Dockerfile-แƒ“แƒแƒœ (แƒ—แƒฃ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒกแƒแƒคแƒ”แƒฎแƒฃแƒ แƒ˜แƒแƒœแƒ˜), แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒกแƒแƒชแƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” Dockerfiles.
  5. แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ: แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒจแƒ”แƒ•แƒแƒ’แƒ แƒแƒ•แƒแƒ— แƒœแƒ˜แƒ•แƒ—แƒ”แƒ‘แƒ˜ แƒ‘แƒแƒ“แƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช "แƒ”แƒคแƒ”แƒ›แƒ”แƒ แƒฃแƒšแƒ˜แƒ", แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒ—แƒ˜ แƒฅแƒ”แƒจแƒ˜ แƒฅแƒ แƒ”แƒ‘แƒ, แƒ แƒแƒช แƒ˜แƒ›แƒแƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ˜แƒก แƒกแƒแƒ“แƒ›แƒ” แƒชแƒแƒšแƒ™แƒ” แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜.
  6. แƒ‘แƒแƒšแƒแƒก แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒฌแƒ•แƒ”แƒ แƒ•แƒแƒšแƒ˜ แƒ“แƒแƒ•แƒแƒกแƒแƒฎแƒ”แƒšแƒ” แƒแƒ•แƒขแƒแƒ›แƒแƒ’แƒ˜แƒฃแƒ แƒ˜: แƒ˜แƒ“แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜ แƒฌแƒแƒกแƒ•แƒšแƒ, แƒแƒ™แƒ แƒ˜แƒคแƒ”แƒ— แƒ แƒแƒ˜แƒ›แƒ” แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒ›แƒ–แƒ แƒกแƒฃแƒ แƒแƒ—แƒ˜, แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒ˜ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒ˜แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ“แƒ แƒ แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒกแƒฌแƒแƒ แƒแƒ“. แƒ—แƒฃแƒ›แƒชแƒ, แƒ›แƒ” แƒžแƒ˜แƒ แƒแƒ“แƒแƒ“ แƒแƒ  แƒ•แƒแƒ  แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ˜ แƒแƒ› แƒ’แƒ–แƒ˜แƒ— แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒญแƒ•แƒ แƒ”แƒขแƒ.

ะ˜ ะฒะพั‚ ะตัั‚ัŒ ะฟั€ะพะตะบั‚ั‹:

  • แƒ›แƒแƒ‘แƒ˜/แƒ‘แƒ˜แƒšแƒ“แƒ™แƒ˜แƒขแƒ˜ โ€” แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ Docker Inc-แƒ˜แƒกแƒ’แƒแƒœ (แƒฃแƒ™แƒ•แƒ” แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Docker-แƒ˜แƒก แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒจแƒ˜), แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ;
  • แƒ™แƒแƒœแƒ˜แƒ™แƒ โ€” Google-แƒ˜แƒก แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— Docker-แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”;
  • Buildpacks.io - CNCF-แƒ˜แƒก แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ, แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒ›แƒแƒ’แƒ˜แƒ แƒ“แƒ, แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ แƒคแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒ‘แƒแƒ–แƒ˜แƒ—;
  • แƒ“แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒกแƒฎแƒ•แƒ แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ‘แƒฃแƒšแƒ“แƒแƒฐแƒ˜, genuinetools/img...

...แƒ“แƒ แƒœแƒแƒฎแƒ”แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒ•แƒแƒ แƒกแƒ™แƒ•แƒšแƒแƒ•แƒ˜ แƒฐแƒงแƒแƒ•แƒ— GitHub-แƒ–แƒ”. แƒแƒœแƒฃ, แƒ”แƒ แƒ—แƒ˜ แƒ›แƒฎแƒ แƒ˜แƒ•, docker build แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ“แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ แƒแƒฆแƒแƒชแƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜ แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ” แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ - แƒแƒ›แƒ˜แƒก แƒ“แƒแƒกแƒขแƒฃแƒ แƒ˜แƒ แƒแƒšแƒขแƒ”แƒ แƒœแƒแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ™แƒแƒšแƒ”แƒฅแƒชแƒ˜แƒแƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒ’แƒแƒœ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒฌแƒงแƒ•แƒ”แƒขแƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒœแƒแƒฌแƒ˜แƒšแƒก.

แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ แƒ•แƒ”แƒ แƒคแƒจแƒ˜

แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ— แƒ•แƒ”แƒ แƒค (แƒแƒ“แƒ แƒ” แƒชแƒœแƒแƒ‘แƒ˜แƒšแƒ˜ แƒ›แƒแƒกแƒฌแƒแƒœแƒก dapp) โ€” แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒคแƒšแƒแƒœแƒขแƒ˜แƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ˜แƒกแƒ’แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒฌแƒ”แƒšแƒ˜แƒ แƒ•แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ—. แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ 5 แƒฌแƒšแƒ˜แƒก แƒฌแƒ˜แƒœ แƒ“แƒแƒ˜แƒฌแƒงแƒ Bash แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒ”แƒ‘แƒ“แƒœแƒ”แƒœ Dockerfiles-แƒ˜แƒก แƒแƒฌแƒงแƒแƒ‘แƒแƒก แƒ“แƒ แƒ‘แƒแƒšแƒ 3 แƒฌแƒšแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒจแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ Git แƒกแƒแƒชแƒแƒ•แƒ˜แƒ—. (แƒฏแƒ”แƒ  Ruby-แƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ ะฝะฐ Go, ะฐ ะทะฐะพะดะฝะพ ะธ ะฟะตั€ะตะธะผะตะฝะพะฒะฐะปะธ). แƒ แƒ แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ˜แƒก แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ˜ แƒฌแƒงแƒ“แƒ”แƒ‘แƒ แƒ•แƒ”แƒ แƒคแƒจแƒ˜?

werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

แƒšแƒฃแƒ แƒฏแƒจแƒ˜ แƒจแƒ”แƒคแƒ”แƒ แƒ˜แƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ, แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒ˜ แƒแƒ’แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒšแƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒจแƒ˜, แƒฎแƒแƒšแƒ แƒงแƒ•แƒ˜แƒ—แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ˜ แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ แƒ–แƒแƒคแƒฎแƒฃแƒšแƒ˜แƒก แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ” แƒ˜แƒ’แƒ”แƒ’แƒ›แƒ”แƒ‘แƒ.

ะกั‚ะฐะดะธั ะฟัƒะฑะปะธะบะฐั†ะธะธ ะฒ registry (publish)

แƒแƒ•แƒ™แƒ แƒ˜แƒคแƒ”แƒ— docker push... - แƒ แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ แƒ—แƒฃแƒšแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜ แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ? แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ: "แƒ แƒ แƒขแƒ”แƒ’แƒ˜ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒ แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ”?" แƒ”แƒก แƒฌแƒแƒ แƒ›แƒแƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒ˜แƒ› แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜แƒ—, แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ’แƒ˜แƒขแƒคแƒšแƒแƒฃ (ะธะปะธ ะดั€ัƒะณะฐั ัั‚ั€ะฐั‚ะตะณะธั Gitโ€™ะฐ) ะธ Kubernetes, ะฐ ะธะฝะดัƒัั‚ั€ะธั ัั‚ั€ะตะผะธั‚ัั ะบ ั‚ะพะผัƒ, ั‡ั‚ะพะฑั‹ ะฟั€ะพะธัั…ะพะดัั‰ะตะต ะฒ Kubernetes ัะปะตะดะพะฒะฐะปะพ ั‚ะพะผัƒ, ั‡ั‚ะพ ะดะตะปะฐะตั‚ัั ะฒ Git. ะ’ะตะดัŒ Git โ€” ะฝะฐัˆ ะตะดะธะฝัั‚ะฒะตะฝะฝั‹ะน ะธัั‚ะพั‡ะฝะธะบ ะฟั€ะฐะฒะดั‹.

แƒ แƒ แƒแƒ แƒ˜แƒก แƒแƒ›แƒแƒจแƒ˜ แƒ แƒ—แƒฃแƒšแƒ˜? แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒก แƒ’แƒแƒœแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒแƒ“แƒแƒ‘แƒ: แƒ’แƒ˜แƒขแƒจแƒ˜ แƒฉแƒแƒ“แƒ”แƒœแƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ˜แƒ— แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜แƒ (immutable), แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ แƒฉแƒ”แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ”.

แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒฌแƒแƒ แƒ›แƒแƒจแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ, แƒ˜แƒ›แƒ˜แƒขแƒแƒ›, แƒ แƒแƒ› แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ’แƒแƒ•แƒ˜แƒ’แƒแƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜ commit-แƒ“แƒแƒœ แƒแƒ แƒ˜แƒก แƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ Kubernetes-แƒจแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ (แƒ›แƒแƒจแƒ˜แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ›).

แƒกแƒขแƒ แƒแƒขแƒ”แƒ’แƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒจแƒ•แƒœแƒ

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ แƒ’แƒ˜แƒขแƒ˜แƒก แƒ“แƒฆแƒ”. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜ แƒ แƒแƒ’แƒแƒ แƒช 1.0. Kubernetes-แƒก แƒแƒฅแƒ•แƒก แƒกแƒชแƒ”แƒœแƒ แƒ“แƒ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ, แƒกแƒแƒ“แƒแƒช แƒ”แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒแƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ. Git-แƒจแƒ˜ แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ“แƒ แƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒ—แƒ”แƒ’แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ— 2.0. แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ— แƒ›แƒแƒก แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒ“แƒ แƒ•แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ— แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜ แƒขแƒ”แƒ’แƒ˜แƒ— 2.0. ะ’ั‹ะบะฐั‚ั‹ะฒะฐะตะผ ะฝะฐ stage ะธ, ะตัะปะธ ะฒัั‘ ั…ะพั€ะพัˆะพ, ะฟะพั‚ะพะผ ะฝะฐ production.

werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒฏแƒ”แƒ  แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒ”แƒ— แƒขแƒ”แƒ’แƒ˜ แƒ“แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒ•แƒชแƒแƒ“แƒ”แƒ— แƒ“แƒ แƒ’แƒแƒ•แƒแƒ‘แƒ แƒขแƒงแƒ”แƒšแƒ”แƒ— แƒ˜แƒ’แƒ˜. แƒ แƒแƒขแƒแƒ›? แƒฏแƒ”แƒ  แƒ”แƒ แƒ—แƒ˜, แƒ”แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜แƒ: แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒชแƒ”แƒ›แƒ— แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฏแƒ”แƒ  แƒแƒ  แƒ’แƒแƒ›แƒแƒ’แƒ•แƒ˜แƒชแƒ“แƒ˜แƒ (แƒกแƒฎแƒ•แƒแƒ’แƒ•แƒแƒ แƒแƒ“ แƒแƒ  แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒจแƒ”แƒกแƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒขแƒ”แƒ’แƒ˜). แƒ›แƒ”แƒแƒ แƒ”แƒช, แƒ”แƒก แƒ’แƒ–แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ“แƒ˜ Gitflow-แƒ—แƒแƒœ.

แƒ›แƒ”แƒแƒ แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ - git commit + tag. แƒกแƒแƒ›แƒแƒ’แƒ˜แƒกแƒขแƒ แƒ แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒก แƒแƒฅแƒ•แƒก แƒขแƒ”แƒ’แƒ˜ 1.0; แƒ›แƒแƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜ - แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, Kubernetes แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒก แƒแƒฅแƒ•แƒก แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒ“แƒแƒ“แƒ’แƒ›แƒ˜แƒก แƒ™แƒแƒœแƒขแƒฃแƒ แƒ”แƒ‘แƒ˜. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒงแƒ•แƒ”แƒ‘แƒ˜แƒ— Gitflow: แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜ (develop) แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒแƒฎแƒแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก, แƒ แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“แƒแƒช แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒแƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜แƒ— #c1. แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ— แƒ›แƒแƒก แƒ“แƒ แƒ•แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ— แƒ›แƒแƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜ แƒแƒ› แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (#c1). แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜แƒ— แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒคแƒแƒ แƒ—แƒแƒ•แƒ”แƒ‘แƒ— แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒ•แƒแƒก. แƒฉแƒ•แƒ”แƒœ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก #c2 ะธ #c3.

แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒ˜แƒ•แƒฎแƒ•แƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒ, แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก. แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜ Git-แƒจแƒ˜ release_1.1 (แƒ‘แƒแƒ–แƒแƒ–แƒ” #c3 แƒกแƒแƒฅแƒแƒ แƒ—แƒ•แƒ”แƒšแƒแƒก develop). แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ... แƒ”แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ แƒฌแƒ˜แƒœแƒ แƒ”แƒขแƒแƒžแƒ–แƒ”. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ•แƒแƒคแƒแƒ แƒ—แƒแƒ•แƒแƒ— แƒ˜แƒก แƒ“แƒแƒ“แƒ’แƒ›แƒแƒ–แƒ”. แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ— แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก #c4 แƒ“แƒ แƒแƒœแƒแƒšแƒแƒ’แƒ˜แƒฃแƒ แƒแƒ“ แƒ’แƒแƒแƒคแƒแƒ แƒ—แƒแƒ•แƒแƒก แƒ“แƒแƒ“แƒ’แƒ›แƒ. แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”แƒแƒ‘แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ develop, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒฃแƒšแƒแƒ“ แƒฎแƒ“แƒ”แƒ‘แƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ release_1.1. ะ’ ะบะฐะบะพะน-ั‚ะพ ะผะพะผะตะฝั‚ ะฟะพะปัƒั‡ะฐะตะผ ัะพะฑั€ะฐะฝะฝั‹ะน ะธ ะฒั‹ะบะฐั‡ะตะฝะฝั‹ะน ะฝะฐ staging ะบะพะผะผะธั‚, ะบะพั‚ะพั€ั‹ะผ ะผั‹ ะดะพะฒะพะปัŒะฝั‹ (#c25).

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ•แƒแƒ”แƒ แƒ—แƒ”แƒ‘แƒ— (แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒฌแƒ˜แƒœแƒกแƒ•แƒšแƒแƒก) แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒขแƒแƒขแƒ˜ (release_1.1) แƒ›แƒแƒกแƒขแƒ”แƒ แƒจแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒ”แƒ— แƒขแƒ”แƒ’แƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒ— แƒแƒ› commit-แƒ–แƒ” (1.1). แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒแƒฆแƒแƒ  แƒจแƒ”แƒ•แƒแƒ’แƒ แƒแƒ•แƒแƒ— แƒ˜แƒ’แƒ˜, แƒฉแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒ›แƒ”แƒแƒ แƒ” แƒขแƒ”แƒ’แƒก แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒกแƒฃแƒ แƒแƒ—แƒก (แƒแƒฎแƒšแƒ แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒขแƒ”แƒ’แƒ”แƒ‘แƒ˜ แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜ #c25 ะธ 1.1). แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒคแƒแƒ แƒ—แƒแƒ•แƒแƒ— แƒ˜แƒ’แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜.

ะ•ัั‚ัŒ ะฝะตะดะพัั‚ะฐั‚ะพะบ, ั‡ั‚ะพ ะฝะฐ staging ะฒั‹ะบะฐั‡ะตะฝ ะพะดะธะฝ ะพะฑั€ะฐะท (#c25), แƒ“แƒ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜ แƒ”แƒก แƒ แƒแƒฆแƒแƒชแƒœแƒแƒ˜แƒ แƒแƒ“ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ (1.1), แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒชแƒ˜แƒ—, แƒ แƒแƒ› "แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ แƒแƒ“" แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜แƒ“แƒแƒœ.

werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒ˜แƒœแƒฃแƒกแƒ˜ แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒ› แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒฌแƒ˜แƒœแƒกแƒ•แƒšแƒ.

แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒฃแƒคแƒ แƒ แƒจแƒแƒ แƒก แƒ“แƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒฎแƒ แƒ˜แƒ™แƒ˜... แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ Dockerfile-แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒก:

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) ะพั‚ ั‚ะฐะบะพะณะพ ั„ะฐะนะปะฐ. ะญั‚ะพ แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก Docker แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒก.

werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

แƒ“แƒแƒ•แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ— แƒ“แƒ˜แƒแƒ’แƒ แƒแƒ›แƒแƒก แƒ“แƒ แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒแƒกแƒ”แƒ— แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒก, แƒ”.แƒ˜. แƒ›แƒแƒœแƒ˜แƒจแƒœแƒ”แƒ— แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜ แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜แƒ—.

werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

แƒแƒฎแƒšแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ›แƒแƒกแƒขแƒ”แƒ แƒ–แƒ”, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ: แƒ›แƒแƒก แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ. แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜แƒ— แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒขแƒแƒœแƒ— แƒกแƒฃแƒ แƒแƒ—แƒก แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜.

แƒ›แƒ˜แƒœแƒฃแƒกแƒ˜ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒแƒฎแƒšแƒ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ˜แƒ›แƒ˜แƒก แƒ“แƒแƒ“แƒ’แƒ”แƒœแƒ, แƒ—แƒฃ แƒ แƒ แƒกแƒแƒฎแƒ˜แƒก แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒฅแƒœแƒ แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ˜แƒšแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜ - แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—. แƒ”แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ›แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒ”แƒœแƒ˜แƒ— แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ— - แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒก แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒ—.

แƒ›แƒแƒœแƒ˜แƒจแƒ•แƒœแƒ werf-แƒจแƒ˜

Werf-แƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒคแƒ แƒ แƒจแƒแƒ แƒก แƒฌแƒแƒ•แƒ”แƒ“แƒ˜แƒ— แƒ“แƒ แƒ•แƒ”แƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ build-แƒ˜แƒก แƒ’แƒแƒกแƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒšแƒแƒ“ แƒฅแƒ”แƒจแƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜ แƒ”แƒ แƒ— แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒ–แƒ”... แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ— แƒแƒ แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก Docker แƒกแƒฃแƒ แƒแƒ—แƒก, แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒ— แƒ•แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ—. แƒ”แƒขแƒแƒžแƒ˜ ะธ แƒกแƒฃแƒ แƒแƒ—แƒ˜.

werf Git แƒกแƒแƒชแƒแƒ•แƒ˜ แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก build-แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ  แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒฆแƒฌแƒ”แƒ แƒก แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ”แƒขแƒแƒžแƒ”แƒ‘แƒก (แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒแƒ›แƒ“แƒ”, แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ, แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ›แƒ“แƒ”, setup). แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ”แƒขแƒแƒžแƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒก แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒกแƒแƒฌแƒงแƒ˜แƒก แƒ™แƒแƒ“แƒก, แƒแƒฎแƒแƒšแƒ˜ แƒ”แƒขแƒแƒžแƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒแƒ–แƒ” แƒ•แƒ˜แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ— แƒ›แƒ˜แƒก แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒก... แƒ”แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ›แƒ”แƒแƒ แƒ“แƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒคแƒ”แƒฎแƒฃแƒ แƒ–แƒ”, แƒ แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“แƒแƒช แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ”แƒขแƒแƒžแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒก. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒกแƒฃแƒ แƒแƒ—แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ›แƒ˜แƒกแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒจแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒแƒ› แƒกแƒฃแƒ แƒแƒ—แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ’แƒ–แƒ˜แƒ— แƒ•แƒกแƒ•แƒแƒ›แƒ— (แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒ˜ แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ—).

werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

แƒ“แƒแƒ•แƒฃแƒจแƒ•แƒแƒ—, แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒ˜ commit, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ. แฒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ? แƒ™แƒแƒ“แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒžแƒแƒขแƒฉแƒ˜ แƒ“แƒ แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ“แƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ”แƒขแƒแƒžแƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜. แƒ›แƒ˜แƒกแƒ˜ แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒซแƒ•แƒ”แƒšแƒ˜ แƒ”แƒขแƒแƒžแƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒกแƒ แƒ“แƒ แƒแƒฎแƒแƒšแƒ˜ แƒžแƒแƒฉแƒ˜แƒก แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜. แƒแƒ› แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒ“แƒแƒœ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒ˜ แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒกแƒฃแƒ แƒแƒ—แƒ˜. แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒฅแƒชแƒ”แƒ•แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒ แƒ”แƒขแƒแƒžแƒ”แƒ‘แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“.

แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, แƒ”แƒขแƒแƒžแƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒก แƒฅแƒ”แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒแƒ“แƒ”แƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒแƒ“ แƒ“แƒ แƒ›แƒ˜แƒกแƒ’แƒแƒœ แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜ แƒแƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ Docker Registry-แƒจแƒ˜.

werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜แƒก แƒ’แƒแƒฌแƒ›แƒ”แƒœแƒ“แƒ

แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ•แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘แƒ— แƒคแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒจแƒšแƒแƒ–แƒ”, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฉแƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒแƒ แƒฉแƒ แƒฌแƒแƒจแƒšแƒ˜แƒšแƒ˜ แƒขแƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ - แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ—แƒแƒ•แƒแƒ“ Docker Registry-แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒ•แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘แƒ— แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒแƒ–แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฃแƒแƒ›แƒ แƒแƒ•แƒ˜ Docker แƒขแƒ”แƒ’แƒ˜ แƒ’แƒ แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒ•แƒ”แƒกแƒ›แƒ˜แƒก, แƒ แƒแƒ› แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜ แƒแƒฆแƒแƒ  แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒก แƒ˜แƒ™แƒแƒ•แƒ”แƒ‘แƒ”แƒœ (แƒแƒœ/แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฎแƒ“แƒ˜แƒ— แƒ›แƒแƒก).

แƒ แƒ แƒแƒ แƒ˜แƒก แƒ“แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒ แƒแƒขแƒ”แƒ’แƒ˜แƒ”แƒ‘แƒ˜?

  1. แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒ  แƒ’แƒแƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ. แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ›แƒแƒ แƒ—แƒšแƒแƒช แƒฃแƒคแƒ แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒ แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒ˜ แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒชแƒแƒขแƒ แƒ’แƒแƒ“แƒแƒ˜แƒฎแƒแƒ“แƒ, แƒ•แƒ˜แƒ“แƒ แƒ” แƒขแƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒแƒฃแƒ แƒ–แƒแƒฃแƒ แƒ˜แƒก แƒแƒ›แƒแƒฎแƒกแƒœแƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒ›แƒแƒ›แƒ”แƒœแƒขแƒแƒ›แƒ“แƒ”.
  2. แƒกแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ. แƒ—แƒฃ แƒฌแƒแƒจแƒšแƒ˜แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒกแƒฃแƒ แƒแƒ—แƒก แƒ“แƒ แƒแƒฆแƒแƒ“แƒ’แƒ”แƒœแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒก CI แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒ˜แƒจแƒ•แƒแƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ. แƒ—แƒฃ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜, แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒฎแƒแƒšแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒฉแƒแƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ - แƒ˜แƒกแƒ”แƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฏแƒ”แƒ  แƒแƒ แƒแƒ•แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ˜. แƒ”แƒก แƒ™แƒšแƒแƒ•แƒก แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ˜แƒ“แƒ”แƒแƒก.
  3. แฒšแƒฃแƒ แƒฏแƒ˜ แƒ›แƒฌแƒ•แƒแƒœแƒ”. แƒ”แƒ แƒ—แƒ›แƒ แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ›แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ - แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ— แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒก แƒ›แƒ”แƒแƒ แƒ”แƒจแƒ˜. แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ˜แƒœแƒ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒ—: แƒ แƒ แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒแƒ— แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ›แƒแƒช แƒ“แƒแƒ˜แƒฌแƒงแƒ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ?
  4. แƒ“แƒ แƒแƒ—แƒ แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜. แƒฌแƒแƒจแƒแƒšแƒแƒ— 1 แƒ—แƒ•แƒ”แƒ–แƒ” แƒซแƒ•แƒ”แƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒกแƒฃแƒ แƒแƒ—แƒ˜? แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ”แƒ แƒ—แƒ˜ แƒ—แƒ•แƒ”แƒ แƒแƒ  แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒšแƒ...
  5. แƒฎแƒ”แƒšแƒ˜แƒ— แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ— แƒ แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฃแƒ™แƒ•แƒ” แƒฌแƒแƒ˜แƒจแƒแƒšแƒแƒก.

แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒแƒ แƒ˜ แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜: แƒแƒ  แƒ’แƒแƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒแƒ— แƒแƒœ แƒšแƒฃแƒ แƒฏ-แƒ›แƒฌแƒ•แƒแƒœแƒ” + แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒ แƒฎแƒ”แƒšแƒ˜แƒ—. แƒแƒ› แƒฃแƒ™แƒแƒœแƒแƒกแƒ™แƒœแƒ”แƒš แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ•แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ–แƒ”: แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ’แƒ”แƒกแƒ›แƒ˜แƒ—, แƒ แƒแƒ› แƒ“แƒ แƒแƒ แƒ’แƒแƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒแƒ— แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜, แƒฅแƒ›แƒœแƒ˜แƒ— แƒแƒฎแƒแƒšแƒก แƒ“แƒ แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒ›แƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒแƒฎแƒแƒš แƒกแƒฃแƒ แƒแƒ—แƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ”แƒ แƒ—แƒ˜ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜. แƒ“แƒ แƒ”แƒ แƒ—แƒ˜ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒœแƒแƒฎแƒ”แƒ—, แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒžแƒแƒ“แƒšแƒ”แƒ‘แƒ˜ แƒ™แƒ•แƒšแƒแƒ• แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒซแƒ•แƒ”แƒš แƒ แƒ”แƒ”แƒกแƒขแƒ แƒก แƒ“แƒ แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒ”แƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜แƒช แƒแƒฎแƒแƒš แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜.

แƒ แƒ แƒ›แƒ˜แƒ•แƒ”แƒ“แƒ˜แƒ— แƒ•แƒ”แƒ แƒค? แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ—:

  1. Git head: แƒงแƒ•แƒ”แƒšแƒ แƒขแƒ”แƒ’แƒ˜, แƒงแƒ•แƒ”แƒšแƒ แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜ - แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒช Git-แƒจแƒ˜แƒ แƒ›แƒแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒจแƒ˜ (แƒ“แƒ แƒ—แƒฃ แƒแƒ แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒ˜แƒก แƒ—แƒแƒ•แƒแƒ“ Git-แƒจแƒ˜ แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ•แƒจแƒแƒšแƒแƒ—);
  2. แƒงแƒ•แƒ”แƒšแƒ แƒฏแƒ˜แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒแƒ›แƒแƒขแƒฃแƒ›แƒ‘แƒฃแƒšแƒ˜แƒ Kubernetes-แƒจแƒ˜;
  3. แƒซแƒ•แƒ”แƒšแƒ˜ ReplicaSets (แƒ แƒแƒช แƒแƒฎแƒšแƒแƒฎแƒแƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒ“แƒ), แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒ•แƒ’แƒ”แƒ’แƒ›แƒแƒ•แƒ— Helm-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒ“แƒ แƒ˜แƒฅ แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒแƒก.

โ€ฆ ะธ ะดะตะปะฐะตะผ ะธะท ัั‚ะพะณะพ ะฝะฐะฑะพั€ะฐ whitelist โ€” ัะฟะธัะพะบ ะพะฑั€ะฐะทะพะฒ, ะบะพั‚ะพั€ั‹ะต ะผั‹ ะฝะต ะฑัƒะดะตะผ ัƒะดะฐะปัั‚ัŒ. ะ’ัั‘ ะพัั‚ะฐะปัŒะฝะพะต ะฒั‹ั‡ะธั‰ะฐะตะผ, ะฟะพัะปะต ั‡ะตะณะพ ะฝะฐั…ะพะดะธะผ ัะธั€ะพั‚ัะบะธะต stage-ะพะฑั€ะฐะทั‹ ะธ ัƒะดะฐะปัะตะผ ะธั… ั‚ะพะถะต.

แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ”แƒขแƒแƒžแƒ˜

แƒกแƒแƒœแƒ“แƒ แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒฃแƒšแƒแƒ‘แƒ

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒžแƒฃแƒœแƒฅแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒ›แƒ˜แƒœแƒ“แƒ แƒ’แƒแƒ•แƒแƒ›แƒแƒฎแƒ•แƒ˜แƒšแƒ แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒแƒ แƒ˜แƒก แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒฃแƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ. แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒฃแƒ แƒ˜ YAML แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฆแƒฌแƒ”แƒ แƒก Kubernetes แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒก, แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒกแƒ’แƒแƒœ. แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› Kubernetes แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒก:

  1. แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜;
  2. ัะปัƒะถะตะฑะฝัƒัŽ ะธะฝั„ะพั€ะผะฐั†ะธัŽ;
  3. แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ;
  4. แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜แƒ—;
  5. แƒ“แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ•แƒ”แƒ‘ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜;
  6. แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก (แƒ“แƒ แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก) แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜.

ะŸะพัั‚ะพะผัƒ, ะบะพะณะดะฐ ะฟะพัะฒะปัะตั‚ัั ะฝะพะฒะฐั ะบะพะฝั„ะธะณัƒั€ะฐั†ะธั ั€ะตััƒั€ัะฐ (แƒแƒฎแƒแƒšแƒ˜), แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ•แƒ˜แƒฆแƒแƒ— แƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”, โ€žแƒชแƒแƒชแƒฎแƒแƒšแƒ˜โ€œ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ›แƒแƒกแƒ—แƒแƒœ (แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ). แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒ’แƒ•แƒ˜แƒฌแƒ”แƒ•แƒก แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ‘แƒแƒšแƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒ— (แƒ‘แƒแƒšแƒ-แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜) แƒ“แƒ แƒ’แƒแƒ“แƒแƒแƒฎแƒ•แƒ˜แƒ”แƒ— แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒแƒฉแƒ˜.

แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒก แƒ”.แƒฌ แƒแƒ แƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ. แƒ˜แƒ’แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฐแƒ”แƒšแƒ›แƒจแƒ˜.

แฒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ, ะบะพั‚ะพั€ั‹ะน ะพั‚ะปะธั‡ะฐะตั‚ัั ั‚ะตะผ, ั‡ั‚ะพ:

  • แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ แƒ‘แƒแƒšแƒ-แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ ะธ แƒแƒฎแƒแƒšแƒ˜, แƒ•แƒฃแƒงแƒฃแƒ แƒ”แƒ‘แƒ— แƒ แƒ แƒฌแƒแƒจแƒšแƒ˜แƒšแƒ˜แƒ;
  • แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒ˜ ะธ แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ, แƒ•แƒฃแƒงแƒฃแƒ แƒ”แƒ‘แƒ— แƒ แƒ แƒ“แƒแƒ”แƒ›แƒแƒขแƒ แƒแƒœ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ;
  • แƒจแƒ”แƒฏแƒแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒแƒฉแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ— 1000+ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก Helm-แƒ˜แƒ—, แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒ•แƒชแƒฎแƒแƒ•แƒ แƒแƒ‘แƒ— 2-แƒ›แƒฎแƒ แƒ˜แƒ• แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒ—. แƒ—แƒฃแƒ›แƒชแƒ, แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ แƒ˜แƒ’แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒ•แƒแƒ’แƒ•แƒแƒ แƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒแƒขแƒฉแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒช แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒฐแƒ”แƒšแƒ›แƒก แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒจแƒ˜.

แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜

แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœแƒ˜ CI แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒฌแƒแƒ แƒ›แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒแƒฎแƒแƒš แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒก Kubernetes-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ”, แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ›แƒก แƒ›แƒแƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ (แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒ”) แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒแƒ›แƒ“แƒ” - Helm แƒแƒœ kubectl apply. ะ”ะฐะปะตะต ะฟั€ะพะธัั…ะพะดะธั‚ ัƒะถะต ะพะฟะธัะฐะฝะฝั‹ะน N-way merge, ะฝะฐ ั‡ั‚ะพ Kubernetes API ะพะดะพะฑั€ะธั‚ะตะปัŒะฝะพ ะพั‚ะฒะตั‡ะฐะตั‚ CI-ัะธัั‚ะตะผะต, ะฐ ั‚ะฐ โ€” ัะฒะพะตะผัƒ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŽ.

werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

แƒ—แƒฃแƒ›แƒชแƒ, แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ: แƒงแƒแƒ•แƒ”แƒšแƒ˜แƒ•แƒ” แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ  แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒš แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒแƒก. แƒ—แƒฃ Kubernetes แƒ’แƒแƒ˜แƒ’แƒ”แƒ‘แƒก, แƒ แƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ›แƒแƒก, แƒฉแƒ•แƒ”แƒœ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ  แƒ•แƒ˜แƒชแƒ˜แƒ—, แƒ แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒคแƒ แƒแƒœแƒขแƒ”แƒœแƒขแƒจแƒ˜ แƒžแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ แƒ‘แƒ”แƒฅแƒ”แƒœแƒ“แƒจแƒ˜ แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒก.

แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒกแƒฌแƒแƒ แƒแƒ“ แƒ’แƒแƒกแƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒšแƒแƒ“, แƒ”แƒก แƒกแƒฅแƒ”แƒ›แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ‘แƒ›แƒฃแƒšแƒก - แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒขแƒ แƒ”แƒ™แƒ”แƒ แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก Kubernetes API-แƒ“แƒแƒœ แƒ“แƒ แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ›แƒก แƒ›แƒแƒก แƒœแƒ˜แƒ•แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ Go-แƒจแƒ˜ - แƒ™แƒฃแƒ‘แƒแƒฏแƒ˜แƒ™แƒ˜ (แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ แƒแƒฅ), แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฌแƒงแƒ•แƒ”แƒขแƒก แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก แƒ“แƒ แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ werf-แƒจแƒ˜.

แƒแƒ› แƒขแƒ แƒ”แƒ™แƒ”แƒ แƒ˜แƒก แƒฅแƒชแƒ”แƒ•แƒ werf แƒ“แƒแƒœแƒ”แƒ–แƒ” แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Deployments แƒแƒœ StatefulSets. แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ - fail-mode - แƒ”แƒกแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜:

  • IgnoreAndContinueDeployProcess โ€” ะธะณะฝะพั€ะธั€ัƒะตะผ ะฟั€ะพะฑะปะตะผั‹ ะฒั‹ะบะฐั‚ะฐ ัั‚ะพะณะพ ะบะพะผะฟะพะฝะตะฝั‚ะฐ ะธ ะฟั€ะพะดะพะปะถะฐะตะผ ะดะตะฟะปะพะน;
  • FailWholeDeployProcessImmediately โ€” แƒแƒ› แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒจแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ แƒแƒฉแƒ”แƒ แƒ”แƒ‘แƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก;
  • HopeUntilEndOfDeployProcess โ€” แƒ•แƒ˜แƒ›แƒ”แƒ“แƒแƒ•แƒœแƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒ”แƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ” แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ”แƒก แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒ fail-mode:

werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒ’แƒแƒœแƒ•แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ—, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ (MongoDB) แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฏแƒ”แƒ  แƒแƒ  แƒ˜แƒงแƒแƒก แƒ›แƒ–แƒแƒ“ - แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒ•แƒ”แƒ  แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ“แƒ”แƒ‘แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒ”แƒšแƒแƒ“แƒแƒ— แƒ›แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒแƒก แƒ“แƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒ›แƒแƒ˜แƒœแƒช แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ.

แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ แƒ˜ โ€‹โ€‹แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ แƒ™แƒฃแƒ‘แƒ”แƒ“แƒแƒ’แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก werf-แƒจแƒ˜:

  • failures-allowed-per-replica - แƒ“แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒแƒ แƒ“แƒœแƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒ–แƒ”;
  • show-logs-until โ€” แƒแƒ แƒ”แƒ’แƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒก แƒ˜แƒ› แƒ›แƒแƒ›แƒ”แƒœแƒขแƒก, แƒกแƒแƒœแƒแƒ› werf แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก (stdout-แƒจแƒ˜) แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ’แƒแƒจแƒšแƒ˜แƒšแƒ˜ แƒฏแƒ˜แƒจแƒ˜แƒ“แƒแƒœ. แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒแƒ แƒ˜แƒก PodIsReady (แƒ˜แƒ› แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ’แƒœแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒšแƒ‘แƒแƒ— แƒแƒ  แƒ’แƒ•แƒ˜แƒœแƒ“แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒžแƒแƒ“แƒ–แƒ”), แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒก: ControllerIsReady ะธ EndOfDeploy.

แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ แƒ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ?

แƒฃแƒ™แƒ•แƒ” แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒแƒ แƒ˜ แƒžแƒฃแƒœแƒฅแƒขแƒ˜แƒก แƒ’แƒแƒ แƒ“แƒ, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒกแƒฃแƒ แƒก:

  • แƒกแƒแƒœแƒแƒฎแƒแƒ•แƒแƒ“ แƒ›แƒแƒ แƒ”แƒ‘แƒ˜ - แƒ“แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒแƒ แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ–แƒ”แƒ“แƒ˜แƒ–แƒ”แƒ“;
  • แƒ™แƒ•แƒแƒšแƒก แƒžแƒ แƒแƒ’แƒ แƒ”แƒกแƒ˜, ะฟะพั‚ะพะผัƒ ั‡ั‚ะพ ะตัะปะธ job ยซะผะพะปั‡ะฐยป ะฒะธัะธั‚ ะฝะตัะบะพะปัŒะบะพ ะผะธะฝัƒั‚, ะฒะฐะถะฝะพ ะฟะพะฝะธะผะฐั‚ัŒ, ั‡ั‚ะพ ั‚ะฐะผ ะฟั€ะพะธัั…ะพะดะธั‚;
  • แƒแƒฅแƒ•แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ แƒ—แƒฃ แƒ แƒแƒ›แƒ” แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ”แƒ“ แƒฌแƒแƒ แƒ˜แƒ›แƒแƒ แƒ—แƒ (แƒ“แƒ, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒ˜แƒชแƒแƒ“แƒ”แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜). แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒแƒขแƒแƒ›แƒฃแƒ แƒ˜: แƒแƒœ แƒ’แƒแƒ“แƒ˜แƒก แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ”, แƒแƒœ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒ แƒ—แƒแƒ•แƒ˜แƒก แƒฌแƒ˜แƒœแƒ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒก.

แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜

แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒงแƒ•แƒ”แƒšแƒ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ”แƒขแƒแƒžแƒ–แƒ” (แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ, แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ, แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ), แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ CI แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒ“แƒ แƒฃแƒขแƒ˜แƒšแƒ˜แƒขแƒ. แƒ•แƒ”แƒ แƒค.

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“:

werf - แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ CI / CD-แƒกแƒ—แƒ•แƒ˜แƒก Kubernetes-แƒจแƒ˜ (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜)

werf-แƒ˜แƒก แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒแƒฆแƒฌแƒ˜แƒ”แƒ— แƒ™แƒแƒ แƒ’ แƒžแƒ แƒแƒ’แƒ แƒ”แƒกแƒก DevOps-แƒ˜แƒก แƒ˜แƒœแƒŸแƒ˜แƒœแƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ˜แƒ“แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒแƒจแƒ˜ แƒ“แƒ แƒ›แƒแƒฎแƒแƒ แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ—แƒฃ แƒคแƒแƒ แƒ—แƒ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒแƒ› แƒ›แƒแƒ˜แƒœแƒช แƒ’แƒแƒ›แƒแƒกแƒชแƒแƒ“แƒ แƒ”แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒจแƒ˜. แƒ”แƒ แƒ—แƒแƒ“ แƒ™แƒแƒ แƒ’แƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒก แƒ›แƒ˜แƒฆแƒฌแƒ”แƒ•แƒ แƒฃแƒคแƒ แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ.

แƒ•แƒ˜แƒ“แƒ”แƒแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒกแƒšแƒแƒ˜แƒ“แƒ”แƒ‘แƒ˜

แƒ•แƒ˜แƒ“แƒ”แƒ แƒกแƒžแƒ”แƒฅแƒขแƒแƒ™แƒšแƒ˜แƒ“แƒแƒœ (~47 แƒฌแƒฃแƒ—แƒ˜):

แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒžแƒ แƒ”แƒ–แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ:

PS

แƒกแƒฎแƒ•แƒ แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ Kubernetes-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒฉแƒ•แƒ”แƒœแƒก แƒ‘แƒšแƒแƒ’แƒ–แƒ”:

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ