werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

27 ืžืื™ ืื™ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื–ืึทืœ ืคื•ืŸ ื“ื™ DevOpsConf 2019 ืงืึธื ืคึฟืขืจืขื ืฅ, ื’ืขื”ืืœื˜ืŸ ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขื ืคืขืกื˜ื™ื•ื•ืึทืœ RIT++ 2019, ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขืจ ืึธืคึผื˜ื™ื™ืœื•ื ื’ "ืงืึทื ื˜ื™ื ื•ืึธื•ืก ื“ืขืœื™ื•ื•ืขืจื™", ืึท ื‘ืึทืจื™ื›ื˜ ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขื’ืขื‘ืŸ "ื•ื•ืขืจ - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ ืงื•ื‘ืขืจื ืขื˜ืขืก". ืขืก ืจืขื“ื˜ ื•ื•ืขื’ืŸ ื™ืขื ืข ืคึผืจืึธื‘ืœืขืžืก ืื•ืŸ ื˜ืฉืึทืœืึทื ื“ื–ืฉื™ื– ืึทื– ืึทืœืขืžืขืŸ ืคื™ื™ืกื™ื– ื•ื•ืขืŸ ื“ื™ืคึผืœื•ื™ื™ื ื’ ืฆื• Kubernetes, ื•ื•ื™ ืื•ื™ืš ื•ื•ืขื’ืŸ ื ื•ืึทื ืกื™ื– ื•ื•ืึธืก ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืžื™ื“ ื‘ืืžืขืจืงื˜. ืึทื ืึทืœื™ื™ื–ื™ื ื’ ืžืขื’ืœืขืš ืกืึทืœื•ืฉืึทื ื–, ืžื™ืจ ื•ื•ื™ื™ึทื–ืŸ ื•ื•ื™ ื“ืึธืก ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ืึทืŸ ืขืคึฟืŸ ืžืงื•ืจ ื’ืขืฆื™ื™ึทื’ werf.

ื–ื™ื ื˜ ื“ื™ ืคึผืจืขื–ืขื ื˜ื™ืจื•ื ื’, ืื•ื ื“ื–ืขืจ ื ื•ืฆืŸ (ืึทืžืึธืœ ื‘ืืงืื ื˜ ื•ื•ื™ ืึท ื“ืึทืคึผ) ื”ืื˜ ืจื™ื˜ืฉื˜ ืึท ื”ื™ืกื˜ืืจื™ืฉืŸ ืžื™ื™ืœืกื˜ืึธื•ืŸ ืคื•ืŸ 1000 ืฉื˜ืขืจืŸ ืื•ื™ืฃ ื’ื™ื˜ื”ื•ื‘ - ืžื™ืจ ื”ืึธืคืŸ ืึทื– ื“ื™ ื’ืจืึธื•ื™ื ื’ ืงื”ืœ ืคื•ืŸ ื™ื•ื–ืขืจื– ื•ื•ืขื˜ ืžืึทื›ืŸ ื“ื™ ืœืขื‘ืŸ ื’ืจื™ื ื’ืขืจ ืคึฟืึทืจ ืคื™ืœืข DevOps ืขื ื“ื–ืฉืึทื ื™ืจื–.

werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ืึทื–ื•ื™, ืœืึธื–ืŸ ืก ื‘ืึทืงืขื ืขืŸ ื•ื•ื™ื“ืขื ืคื•ืŸ ื“ืขื ื‘ืึทืจื™ื›ื˜ (~47 ืžื™ื ื•ื˜, ืคื™ืœ ืžืขืจ ื™ื ืคืึธืจืžืึทื˜ื™ื•ื• ื•ื•ื™ ื“ืขืจ ืึทืจื˜ื™ืงืœ) ืื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืขืงืกื˜ืจืึทืงื˜ ืคื•ืŸ ืขืก ืื™ืŸ ื˜ืขืงืกื˜ ืคืึธืจืขื. ื’ื™ื™!

ื“ื™ืœื™ื•ื•ืขืจื™ื ื’ ืงืึธื“ ืฆื• Kubernetes

ื“ื™ ืจืขื“ืŸ ื•ื•ืขื˜ ื ื™ื˜ ืžืขืจ ื–ื™ื™ืŸ ื•ื•ืขื’ืŸ ื•ื•ืขืจืฃ, ืึธื‘ืขืจ ื•ื•ืขื’ืŸ CI / CD ืื™ืŸ Kubernetes, ื™ืžืคึผืœื™ื™ื– ืึทื– ืื•ื ื“ื–ืขืจ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืื™ื– ืคึผืึทืงื™ื“ื–ืฉื“ ืื™ืŸ ื“ืึธืงืงืขืจ ืงืึทื ื˜ื™ื™ื ืขืจื– (ืื™ืš ื”ืึธื‘ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ื“ืขื ืื™ืŸ 2016 ื‘ืึทืจื™ื›ื˜), ืื•ืŸ K8s ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ืœื•ื™ืคืŸ ืขืก ืื™ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข (ืžืขืจ ื•ื•ืขื’ืŸ ื“ืขื ืื™ืŸ ืงืกื ื•ืžืงืก ื™ืึธืจ).

ื•ื•ื™ ืงื•ืงื˜ ืขืงืกืคึผืจืขืก ืื™ืŸ Kubernetes?

  • ืขืก ืื™ื– ืึท ื’ื™ื˜ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืžื™ื˜ ื“ื™ ืงืึธื“ ืื•ืŸ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืคึฟืึทืจ ื‘ื ื™ืŸ ืขืก. ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ื– ื’ืขื‘ื•ื™ื˜ ืื™ืŸ ืึท ื“ืึธืงืงืขืจ ื‘ื™ืœื“ ืื•ืŸ ืื™ื– ืืจื•ื™ืก ืื™ืŸ ื“ื™ ื“ืึธืงืงืขืจ ืจืขื’ื™ืกื˜ืจื™.
  • ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืื•ื™ืš ื›ึผื•ืœืœ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืื•ื™ืฃ ื•ื•ื™ ืฆื• ืฆืขื•ื•ื™ืงืœืขืŸ ืื•ืŸ ืœื•ื™ืคืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืื™ืŸ ื“ื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ื‘ื™ื ืข, ื“ื™ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ื–ืขื ืขืŸ ื’ืขืฉื™ืงื˜ ืฆื• Kubernetes, ื•ื•ืึธืก ื ืขืžื˜ ื“ื™ ื’ืขื•ื•ืืœื˜ ื‘ื™ืœื“ ืคื•ืŸ ื“ื™ ืจืขื’ื™ืกื˜ืจื™ ืื•ืŸ ืœืึธื ื˜ืฉื™ื– ืขืก.
  • ืคึผืœื•ืก, ืขืก ื–ืขื ืขืŸ ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ื˜ืขืกืฅ. ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ื•ื•ืขืŸ ืืจื•ื™ืกื’ืขื‘ืŸ ืึท ื‘ื™ืœื“. ืื™ืจ ืงืขื ื˜ ืื•ื™ืš (ื ืึธืš ื“ื™ ื–ืขืœื‘ืข ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก) ืฆืขื•ื•ื™ืงืœืขืŸ ืึท ืงืึธืคึผื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ (ืื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ K8s ื ืึธืžืขืŸ ืึธื“ืขืจ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืงื ื•ื™ืœ) ืื•ืŸ ืœื•ื™ืคืŸ ื˜ืขืกืฅ ื“ืึธืจื˜.
  • ืฆื•ื ืกื•ืฃ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืึท ืกื™ ืกื™ืกื˜ืขื ื•ื•ืึธืก ื ืขืžื˜ ื’ืขืฉืขืขื ื™ืฉืŸ ืคึฟื•ืŸ ื’ื™ื˜ (ืึธื“ืขืจ ืงืœื™ืงืก ืื•ื™ืฃ ื“ื™ ืงื ืขืคึผืœืขืš) ืื•ืŸ ืจื•ืคื˜ ืึทืœืข ื“ื™ ื“ืขื–ื™ื’ื ื™ื™ื˜ื™ื“ ืกื˜ืึทื’ืขืก: ื‘ื•ื™ืขืŸ, ืึทืจื•ื™ืกื’ืขื‘ืŸ, ืฆืขื•ื•ื™ืงืœืขืŸ, ืคึผืจื•ื‘ื™ืจืŸ.

werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ื“ืึธ ื–ืขื ืขืŸ ืขื˜ืœืขื›ืข ื•ื•ื™ื›ื˜ื™ืง ื”ืขืจื•ืช:

  1. ื•ื•ื™ื™ึทืœ ืžื™ืจ ื”ืึธื‘ืŸ ืึท ื™ืžื™ื•ื˜ืึทื‘ืึทืœ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ (ื™ืžื™ื˜ืึทื‘ืึทืœ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ), ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื‘ื™ืœื“ ื•ื•ืึธืก ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ืึทืœืข ืกื˜ืึทื’ืขืก (ืกื˜ืึทื’ื™ื ื’, ืคึผืจืึธื“ื•ืงืฆื™ืข, ืขื˜ืง.), ืขืก ืžื•ื– ื–ื™ื™ืŸ ืื™ื™ืŸ. ืื™ืš ื”ืึธื‘ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ื“ืขื ืื™ืŸ ืžืขืจ ื“ืขื˜ืึทืœ ืื•ืŸ ืžื™ื˜ ื‘ื™ื™ืฉืคื™ืœืŸ. ื“ืึธ.
  2. ื•ื•ื™ื™ึทืœ ืžื™ืจ ื ืึธื›ื’ื™ื™ืŸ ื“ื™ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ ื•ื•ื™ ืงืึธื“ ืฆื•ื’ืึทื ื’ (ื™ืึทืง), ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืึธื“, ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืคึฟืึทืจ ืึทืกืขืžื‘ืึทืœื™ื ื’ ืื•ืŸ ืงืึทื˜ืขืจ ืขืก ื–ืึธืœ ื–ื™ื™ืŸ ืคึผื•ื ืงื˜ ืื™ืŸ ืื™ื™ืŸ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™. ืคึฟืึทืจ ืžืขืจ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ืขื, ื–ืขืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื‘ืึทืจื™ื›ื˜.
  3. ืขืงืกืคึผืจืขืก ืงื™ื™ื˜ (ืขืงืกืคึผืจืขืก) ืžื™ืจ ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ื–ืขืŸ ืขืก ื•ื•ื™ ื“ืึธืก: ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ืคืืจื–ืืžืœื˜, ื˜ืขืกื˜ืขื“, ื‘ืืคืจื™ื™ื˜ (ืžืขืœื“ื•ื ื’ ื‘ื™ื ืข) ืื•ืŸ ืึทื– ืก ืขืก - ืขืงืกืคึผืจืขืก ืื™ื– ื’ืขื•ื•ืขืŸ. ืึธื‘ืขืจ ืื™ืŸ ืคืึทืงื˜, ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื’ืขืฅ ื•ื•ืึธืก ืื™ืจ ืจืึธื•ืœื“ ืื•ื™ืก, ืงื™ื™ืŸ ื“ืขืžืึธืœื˜ ื•ื•ืขืŸ ืื™ืจ ืื™ื‘ืขืจื’ืขื’ืขื‘ืŸ ืขืก ืฆื• ืคึผืจืึธื“ื•ืงืฆื™ืข, ืื•ืŸ ื•ื•ืขืŸ ืขืจ ืื™ื– ื‘ื™ื›ื•ืœืช ืฆื• ื’ื™ื™ืŸ ื“ืึธืจื˜ ืื•ืŸ ื“ื™ ืคึผืจืึธื“ื•ืงืฆื™ืข ื’ืขืืจื‘ืขื˜. ืึทื–ื•ื™ ืื™ืš ื’ืœื•ื™ื‘ืŸ ื“ื™ ืขืงืกืคึผืจืขืก ืงื™ื™ื˜ ืขื ื“ืก ื‘ืœื•ื™ื– ืื™ืŸ ื“ื™ ืึทืคึผืขืจื™ื™ืฉืึทื ืึทืœ ื‘ื™ื ืข (ืœื•ื™ืคืŸ), ืึธื“ืขืจ ืžืขืจ ื’ืขื ื•ื™, ืืคื™ืœื• ืื™ืŸ ื“ืขื ืžืึธืžืขื ื˜ ื•ื•ืขืŸ ื“ื™ ืงืึธื“ ืื™ื– ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืคื•ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข (ืจื™ืคึผืœื™ื™ืกื™ื ื’ ืขืก ืžื™ื˜ ืึท ื ื™ื™ึทืข).

ืœืึธืžื™ืจ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ื“ื™ ืื•ื™ื‘ืŸ ืขืงืกืคึผืจืขืก ืกื›ืขืžืข ืื™ืŸ ืงื•ื‘ืขืจื ืขื˜ืขืก: ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื™ื ื•ื•ืขื ื˜ืึทื“ ื ื™ื˜ ื‘ืœื•ื™ื– ื“ื•ืจืš ืื•ื ื“ื–, ืึธื‘ืขืจ ื“ื•ืจืš ืžืžืฉ ืึทืœืขืžืขืŸ ื•ื•ืืก ื“ืขืœื˜ ืžื™ื˜ ื“ืขื ืคึผืจืึธื‘ืœืขื. ืื™ืŸ ืคืึทืงื˜, ื“ืขื ืžื•ืกื˜ืขืจ ืื™ื– ืื™ืฆื˜ ื’ืขืจื•ืคึฟืŸ GitOps (ืื™ืจ ืงืขื ื˜ ืœื™ื™ืขื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ ื“ืขื ื˜ืขืจืžื™ืŸ ืื•ืŸ ื“ื™ ื’ืขื“ืื ืงืขืŸ ื”ื™ื ื˜ืขืจ ืขืก ื“ืึธ). ื–ืืœ ืก ืงื•ืง ืื™ืŸ ื“ื™ ืกื˜ืึทื’ืขืก ืคื•ืŸ ื“ื™ ืกื›ืขืžืข.

ื‘ื•ื™ืขืŸ ื‘ื™ื ืข

ืขืก ื•ื•ืึธืœื˜ ื•ื™ืกืงื•ืžืขืŸ ืึทื– ืื™ืจ ืงืขื ืขืŸ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื‘ื•ื™ืขืŸ ื“ืึธืงืงืขืจ ื‘ื™ืœื“ืขืจ ืื™ืŸ 2019, ื•ื•ืขืŸ ืึทืœืขืžืขืŸ ื•ื•ื™ื™ืกื˜ ื•ื•ื™ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื“ืึธืงืขืจืคื™ืœืขืก ืื•ืŸ ืœื•ื™ืคืŸ docker build?.. ื“ืึธ ื–ืขื ืขืŸ ื“ื™ ื ื•ืึทื ืกื™ื– ืึทื– ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ื‘ืึทืฆืึธืœืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ึทื˜ ืฆื•:

  1. ื‘ื™ืœื“ ื•ื•ืึธื’ ืขื ื™ื ื™ื, ืึทื–ื•ื™ ื ื•ืฆืŸ Multi-ื‘ื™ื ืขืฆื• ืœืึธื–ืŸ ืื™ืŸ ื“ื™ ื‘ื™ืœื“ ื‘ืœื•ื™ื– ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืึธืก ืื™ื– ื˜ืึทืงืข ื ื™ื™ื˜ื™ืง ืคึฟืึทืจ ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข.
  2. ื ื•ืžืขืจ ืคื•ืŸ ืœื™ื™ึทืขืจืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืžื™ื ืึทืžื™ื™ื–ื“ ื“ื•ืจืš ืงืึทืžื‘ื™ื™ื ื™ื ื’ ืงื™ื™ื˜ืŸ ืคื•ืŸ RUN-ืงืึทืžืึทื ื“ื– ืœื•ื™ื˜ ืฆื• ื˜ื™ื™ึทื˜ืฉ.
  3. ืึธื‘ืขืจ, ื“ืึธืก ืžื•ืกื™ืฃ ืคึผืจืึธื‘ืœืขืžืก ื“ื™ื‘ืึทื’ื™ื ื’, ื•ื•ื™ื™ึทืœ ื•ื•ืขืŸ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืงืจืึทืฉื™ื–, ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ืจืขื›ื˜ ื‘ืึทืคึฟืขืœ ืคื•ืŸ ื“ื™ ืงื™ื™ื˜ ื•ื•ืึธืก ื’ืขืคึฟื™ืจื˜ ื“ืขื ืคึผืจืึธื‘ืœืขื.
  4. ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ื’ื™ื›ืงื™ื™ึทื˜ ื•ื•ื™ื›ื˜ื™ืง ื•ื•ื™ื™ึทืœ ืžื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื’ืขืฉื•ื•ื™ื ื“ ืจืึธื•ืœื“ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื•ืŸ ื–ืขืŸ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืจ ื˜ืึธืŸ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ืฆื• ืจื™ื‘ื™ืœื“ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ืื™ืŸ ืฉืคึผืจืึทืš ืœื™ื™ื‘ืจืขืจื™ื– ื™ืขื“ืขืจ ืžืึธืœ ื•ื•ืขืŸ ืื™ืจ ื‘ื•ื™ืขืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ.
  5. ืึธืคื˜ ืคึฟื•ืŸ ืื™ื™ืŸ Git ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืื™ืจ ื“ืึทืจืคึฟืŸ ืคื™ืœืข ื‘ื™ืœื“ืขืจ, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืกืึทืœื•ื•ื“ ื“ื•ืจืš ืึท ืกื›ื•ื ืคื•ืŸ Dockerfiles (ืึธื“ืขืจ ื’ืขื”ื™ื™ืกืŸ ืกื˜ืึทื’ืขืก ืื™ืŸ ืื™ื™ืŸ ื˜ืขืงืข) ืื•ืŸ ืึท ื‘ืึทืฉ ืฉืจื™ืคื˜ ืžื™ื˜ ื–ื™ื™ืขืจ ืกืึทืงื•ื•ืขื ื˜ืฉืึทืœ ืคึฟืึทืจื–ืึทืžืœื•ื ื’.

ื“ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื ืึธืจ ื“ืขืจ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ ื™ื™ืกื‘ืขืจื’ ืึทื– ืึทืœืขืžืขืŸ ืคื™ื™ืกื™ื–. ืึธื‘ืขืจ ืขืก ื–ืขื ืขืŸ ืื ื“ืขืจืข ืคึผืจืึธื‘ืœืขืžืก, ืกืคึผืขืฆื™ืขืœ:

  1. ืึธืคื˜ ืื™ืŸ ื“ืขืจ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ื‘ื™ื ืข ืžื™ืจ ื“ืึทืจืคึฟืŸ ืขืคึผืขืก ืึธื ืงืœืึทืคึผืŸ (ืœืžืฉืœ, ืงืึทืฉ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืึท ื‘ืึทืคึฟืขืœ ื•ื•ื™ ืคื™ื™ื™ืง ืื™ืŸ ืึท ื“ืจื™ื˜-ืคึผืึทืจื˜ื™ื™ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ).
  2. ืžื™ืจ ื•ื•ื™ืœืŸ Ansible ืึทื ืฉื˜ืึธื˜ ืฉืจื™ื™ื‘ืŸ ืื™ืŸ ืฉืึธืœ.
  3. ืžื™ืจ ื•ื•ื™ืœืŸ ื‘ื•ื™ืขืŸ ืึธืŸ ื“ืึธืงืขืจ (ืคืืจื•ื•ืืก ื˜ืึธืŸ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืึทืŸ ื ืึธืš ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ ืื™ืŸ ื•ื•ืึธืก ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืึทืœืฅ ืคึฟืึทืจ ื“ืขื, ื•ื•ืขืŸ ืžื™ืจ ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ืึท ืงื•ื‘ืขืจื ืขื˜ืขืก ืงื ื•ื™ืœ ืื™ืŸ ื•ื•ืึธืก ืžื™ืจ ืงืขื ืขืŸ ืœื•ื™ืคืŸ ืงืึทื ื˜ื™ื™ื ืขืจื–?).
  4. ืคึผืึทืจืึทืœืขืœ ืคึฟืึทืจื–ืึทืžืœื•ื ื’, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคืืจืฉื˜ืื ืขืŸ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขื’ืŸ: ืคืึทืจืฉื™ื“ืขื ืข ืงืึทืžืึทื ื“ื– ืคื•ืŸ ื“ื™ Dockerfile (ืื•ื™ื‘ ืžืึทืœื˜ื™-ื‘ื™ื ืข ืื™ื– ื’ืขื ื™ืฆื˜), ืขื˜ืœืขื›ืข ืงืึทืžื™ืฅ ืคื•ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™, ืขื˜ืœืขื›ืข Dockerfiles.
  5. ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืคึฟืึทืจื–ืึทืžืœื•ื ื’: ืžื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื–ืึทืžืœืขืŸ ื–ืื›ืŸ ืื™ืŸ ืคึผืึธื“ืก ื•ื•ืึธืก ื–ืขื ืขืŸ "ืขืคืขืžืขืจืึทืœ" ื•ื•ื™ื™ึทืœ ื–ื™ื™ืขืจ ืงืึทืฉ ืคืืจืฉื•ื•ื™ื ื“ื˜, ื•ื•ืึธืก ืžื™ื˜ืœ ืขืก ื“ืึทืจืฃ ื–ื™ื™ืŸ ืกื˜ืึธืจื“ ืขืจื’ืขืฅ ืกืขืคึผืขืจืึทื˜ืœื™.
  6. ืฆื•ื ืกื•ืฃ, ืื™ืš ื’ืขื”ื™ื™ืกืŸ ื“ื™ ืฉืคึผื™ืฅ ืคื•ืŸ ืชืื•ื•ืช ืึธื˜ืึทืžืึทื˜ื™ืง: ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ื™ื“ืขืึทืœ ืฆื• ื’ื™ื™ืŸ ืฆื• ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™, ื˜ื™ืคึผ ืขื˜ืœืขื›ืข ื‘ืึทืคึฟืขืœ ืื•ืŸ ื‘ืึทืงื•ืžืขืŸ ืึท ืคืึทืจื˜ื™ืง ื‘ื™ืœื“, ืคืืจื–ืืžืœื˜ ืžื™ื˜ ืึท ืคืืจืฉื˜ืื ื“ ืคื•ืŸ ื•ื•ื™ ืื•ืŸ ื•ื•ืึธืก ืฆื• ื˜ืึธืŸ ืจื™ื›ื˜ื™ืง. ืึธื‘ืขืจ, ืื™ืš ืคึผืขืจืกื ืึทืœื™ ื‘ื™ืŸ ื ื™ืฉื˜ ื–ื™ื›ืขืจ ืึทื– ืึทืœืข ื“ื™ ื ื•ืึทื ืกื™ื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคืึธืจื•ื™ืกื–ืึธื’ืŸ ืื•ื™ืฃ ื“ืขื ื•ื•ืขื’.

ืื•ืŸ ื“ืึธ ื–ืขื ืขืŸ ื“ื™ ืคึผืจืึทื“ื–ืฉืขืงืก:

  • ืžืึธื‘ื™ / ื‘ื™ืœื“ืงื™ื˜ - ืึท ื‘ื™ืœื“ืขืจ ืคื•ืŸ Docker Inc (ืฉื•ื™ืŸ ื™ื ืึทื’ืจื™ื™ื˜ื™ื“ ืื™ืŸ ืงืจืึทื ื˜ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื“ืึธืงืงืขืจ), ื•ื•ืึธืก ืื™ื– ื˜ืจื™ื™ื ื’ ืฆื• ืกืึธืœื•ื•ืข ืึทืœืข ื“ื™ ืคึผืจืึธื‘ืœืขืžืก;
  • kaniko - ืึท ื‘ื™ืœื“ืขืจ ืคื•ืŸ Google ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ื•ื™ืขืŸ ืึธืŸ ื“ืึธืงืขืจ;
  • Buildpacks.io - CNCF ืก ืคึผืจื•ื•ื•ืŸ ืฆื• ืžืึทื›ืŸ ืึธื˜ืึทืžืึทื˜ื™ืง ืžืึทื’ื™ืฉ ืื•ืŸ, ืกืคึผืขืฆื™ืขืœ, ืึท ื˜ืฉื™ืงืึทื•ื•ืข ืœื™ื™ื–ื•ื ื’ ืžื™ื˜ ืจืขื‘ืึทืกืข ืคึฟืึทืจ ืœื™ื™ึทืขืจืก;
  • ืื•ืŸ ืึท ื‘ื™ื ื˜ืœ ืคื•ืŸ ืื ื“ืขืจืข ื™ื•ื˜ื™ืœืึทื˜ื™ื–, ืึทื–ืึท ื•ื•ื™ ื‘ื•ื™ืœื“ืึทื”, genuinetools/img...

... ืื•ืŸ ืงื•ืง ื•ื•ื™ ืคื™ืœืข ืฉื˜ืขืจืŸ ื–ื™ื™ ื”ืึธื‘ืŸ ืื•ื™ืฃ ื’ื™ื˜ื”ื•ื‘. ื“ืึธืก ื”ื™ื™ืกื˜, ืคึฟื•ืŸ ืื™ื™ืŸ ื–ืฒึทื˜, docker build ื™ื’ื–ื™ืกืฅ ืื•ืŸ ืงืขื ืขืŸ ื˜ืึธืŸ ืขืคึผืขืก, ืึธื‘ืขืจ ืื™ืŸ ืคืึทืงื˜ ื“ื™ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืื™ื– ื ื™ืฉื˜ ื’ืึธืจ ืกืึทืœื•ื•ื“ - ื“ืขืจื•ื•ื™ื™ึทื– ืคื•ืŸ ื“ืขื ืื™ื– ื“ื™ ืคึผืึทืจืึทืœืขืœ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ืึธืœื˜ืขืจื ืึทื˜ื™ื•ื• ืงืึทืœืขืงื˜ืขืจื–, ื™ืขื“ืขืจ ืคื•ืŸ ื•ื•ืึธืก ืกืึทืœื•ื•ื– ืขื˜ืœืขื›ืข ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืคืจืื‘ืœืขืžืขืŸ.

ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืื™ืŸ ื•ื•ืึธืจืฃ

ืึทื–ื•ื™ ืžื™ืจ ื”ืึธื‘ืŸ ืฆื• werf (ื‘ื™ื– ืึทื”ืขืจ ื‘ืึทืจื™ืžื˜ ื•ื•ื™ ื“ืึทืคึผ) โ€” ืืŸ ืขืคึฟืขื ืขืŸ ืžืงื•ืจ ื™ื•ื˜ื™ืœื™ื˜ื™ ืคึฟื•ืŸ ื“ืขืจ ืคึฟืœืึทื ื˜ึพืคึฟื™ืจืžืข, ื•ื•ืึธืก ืžื™ืจ ืžืึทื›ืŸ ืฉื•ื™ืŸ ืœืึทื ื’ืข ื™ืึธืจืŸ. ืขืก ืึทืœืข ืกื˜ืึทืจื˜ืขื“ ืžื™ื˜ 5 ื™ืึธืจ ืฆื•ืจื™ืง ืžื™ื˜ Bash ืกืงืจื™ืคึผืก ื•ื•ืึธืก ืึธืคึผื˜ื™ืžื™ื–ืขื“ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืคื•ืŸ Dockerfiles, ืื•ืŸ ืคึฟืึทืจ ื“ื™ ืœืขืฆื˜ืข 3 ื™ืึธืจ ืคื•ืœ-ืคืœืขื“ื–ืฉื“ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื™ืŸ ื“ื™ ืคืจื™ื™ืžื•ื•ืขืจืง ืคื•ืŸ ืื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข Git ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™. (ืขืจืฉื˜ ืื™ืŸ ืจื•ื‘ื™, ืื•ืŸ ื“ืขืจื ืึธืš ืื™ื‘ืขืจื’ืขืฉืจื™ื‘ืŸ ืฆื• ื’ื™ื™ืŸ, ืื•ืŸ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜ ืจื™ื ื™ื™ืžื“). ื•ื•ืึธืก ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ื™ืฉื•ื– ื–ืขื ืขืŸ ืกืึทืœื•ื•ื“ ืื™ืŸ ื•ื•ืึธืจืฃ?

werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ื“ื™ ืคืจืื‘ืœืขืžืขืŸ ืžื™ื˜ ื‘ืœื•ื™ ื–ืขื ืขืŸ ืฉื•ื™ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“, ื“ื™ ืคึผืึทืจืึทืœืขืœ ื‘ื•ื™ืขืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื‘ืึทืœืขื‘ืึธืก, ืื•ืŸ ื“ื™ ื™ืฉื•ื– ื›ื™ื™ืœื™ื™ื˜ื™ื“ ืื™ืŸ ื’ืขืœ ื–ืขื ืขืŸ ืคึผืœืึทื ื ืขื“ ืฆื• ื–ื™ื™ืŸ ื’ืขืขื ื“ื™ืงื˜ ื“ื•ืจืš ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ื–ื•ืžืขืจ.

ืกื˜ืึทื’ืข ืคื•ืŸ โ€‹โ€‹ืืจื•ื™ืกื’ืขื‘ืŸ ืื™ืŸ ืจืขื’ื™ืกื˜ืจื™ (ืึทืจื•ื™ืกื’ืขื‘ืŸ)

ืžื™ ืจ ื”ืื‘ ืŸ ื’ืขืงืœื™ื‘ืŸ docker push... - ื•ื•ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ืฉื•ื•ืขืจ ืฆื• ื•ืคึผืœืึธืึทื“ื™ื ื’ ืึท ื‘ื™ืœื“ ืฆื• ื“ื™ ืจืขื’ื™ืกื˜ืจื™? ืื•ืŸ ื“ืขืžืึธืœื˜ ื“ื™ ืงืฉื™ื ืขืจื™ื™ื–ืึทื–: "ื•ื•ืึธืก ืงื•ื•ื™ื˜ืœ ื–ืึธืœ ืื™ืš ืฉื˜ืขืœืŸ ืื•ื™ืฃ ื“ื™ ื‘ื™ืœื“?" ืขืก ืขืจื™ื™ื–ืึทื– ืคึฟืึทืจ ื“ื™ ืกื™ื‘ื” ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ ื’ื™ื˜ืคืœืึธื• (ืึธื“ืขืจ ืื ื“ืขืจืข ื’ื™ื˜ ืกื˜ืจืึทื˜ืขื’ื™ืข) ืื•ืŸ ืงื•ื‘ืขืจื ืขื˜ืขืก, ืื•ืŸ ื“ื™ ืื™ื ื“ื•ืกื˜ืจื™ืข ืื™ื– ื˜ืจื™ื™ื ื’ ืฆื• ืขื ืฉื•ืจ ืึทื– ื•ื•ืึธืก ื›ืึทืคึผืึทื ื– ืื™ืŸ ืงื•ื‘ืขืจื ืขื˜ืขืก ื’ื™ื™ื˜ ื•ื•ืึธืก ื›ืึทืคึผืึทื ื– ืื™ืŸ ื’ื™ื˜. ื ืึธืš ืึทืœืข, ื’ื™ื˜ ืื™ื– ืื•ื ื“ื–ืขืจ ื‘ืœื•ื™ื– ืžืงื•ืจ ืคื•ืŸ ืืžืช.

ื•ื•ืึธืก ืื™ื– ืึทื–ื•ื™ ืฉื•ื•ืขืจ ืื™ืŸ ื“ืขื? ืคืึทืจื–ื™ื›ืขืจืŸ ืจืขืคึผืจืึธื“ื•ืกื™ื‘ื™ืœื™ื˜ื™: ืคื• ืŸ ื ื’ืขื˜ื ืŸ ืื™ ืŸ ื’ื™ื˜ , ืฐื ืก ืื™ ื– ืื™ ืŸ ื ืื˜ื•ืจ , ืื•ืžื‘ืฒื˜ืœืขืš (ื™ืžื™ื˜ืึทื‘ืึทืœ), ืฆื• ืึท ื“ืึธืงืงืขืจ ื‘ื™ืœื“, ื•ื•ืึธืก ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขื”ืืœื˜ืŸ ื“ื™ ื–ืขืœื‘ืข.

ืขืก ืื™ื– ืื•ื™ืš ื•ื•ื™ื›ื˜ื™ืง ืคึฟืึทืจ ืื•ื ื“ื– ื‘ืึทืฉื˜ื™ืžืขืŸ ืึธื ื”ื™ื™ื‘, ื•ื•ื™ื™ึทืœ ืžื™ืจ ื•ื•ื™ืœืŸ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืคื•ืŸ ื•ื•ืึธืก ื™ื‘ืขืจื’ืขื‘ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคืœื™ืกื ื“ื™ืง ืื™ืŸ Kubernetes ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขื‘ื•ื™ื˜ (ื“ืขืจื ืึธืš ืžื™ืจ ืงืขื ืขืŸ ื˜ืึธืŸ ื“ื™ืคืคืก ืื•ืŸ ืขื ืœืขืš ื˜ื™ื ื’ื–).

ื˜ืึทื’ื™ื ื’ ืกื˜ืจืึทื˜ืขื’ื™ืขืก

ื“ืขืจ ืขืจืฉื˜ืขืจ ืื™ื– ืคึผืฉื•ื˜ ื’ื™ื˜ ื˜ืึทื’. ืžื™ืจ ื”ืึธื‘ืŸ ืึท ืจืขื’ื™ืกื˜ืจื™ ืžื™ื˜ ืึท ื‘ื™ืœื“ ื˜ืึทื’ื“ ื•ื•ื™ 1.0. Kubernetes ื”ืื˜ ื‘ื™ื ืข ืื•ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข, ื•ื•ื• ื“ืึธืก ื‘ื™ืœื“ ืื™ื– ื•ืคึผืœืึธืึทื“ืขื“. ืื™ืŸ ื’ื™ื˜ ืžื™ืจ ืžืึทื›ืŸ ืงืึทืžื™ืฅ ืื•ืŸ ืื™ืŸ ืขื˜ืœืขื›ืข ืคื•ื ื˜ ืžื™ืจ ืคืึทืจื‘ื™ื ื“ืŸ 2.0. ืžื™ืจ ืงืœื™ื™ึทื‘ืŸ ืขืก ืœื•ื™ื˜ ื“ื™ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืคื•ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืื•ืŸ ืฉื˜ืขืœืŸ ืขืก ืื™ืŸ ื“ื™ ืจืขื’ื™ืกื˜ืจื™ ืžื™ื˜ ื“ื™ ืงื•ื•ื™ื˜ืœ 2.0. ืžื™ืจ ืจืึธื•ืœื“ ืขืก ืื•ื™ืก ืฆื• ื‘ื™ื ืข ืื•ืŸ, ืื•ื™ื‘ ืึทืœืฅ ืื™ื– ื’ื•ื˜, ื“ืขืžืึธืœื˜ ืฆื• ืคึผืจืึธื“ื•ืงืฆื™ืข.

werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ื“ืขืจ ืคึผืจืึธื‘ืœืขื ืžื™ื˜ ื“ืขื ืฆื•ื’ืึทื ื’ ืื™ื– ืึทื– ืžื™ืจ ืขืจืฉื˜ืขืจ ืฉื˜ืขืœืŸ ื“ื™ ืงื•ื•ื™ื˜ืœ, ืื•ืŸ ื‘ืœื•ื™ื– ื“ืขืžืึธืœื˜ ื˜ืขืกื˜ืขื“ ืื•ืŸ ืจืึธื•ืœื“ ืขืก ืื•ื™ืก. ืคืืจื•ื•ืืก? ืขืจืฉื˜ืขืจ, ืขืก ืื™ื– ืคืฉื•ื˜ ื™ืœืึทื“ื–ืฉื™ืงืึทืœ: ืžื™ืจ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืึท ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื•ื•ื™ื™ื›ื•ื•ืืจื’ ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ืืคื™ืœื• ื˜ืขืกื˜ืขื“ ื ืึธืš (ืžื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ื˜ืึธืŸ ืึทื ื“ืขืจืฉ, ื•ื•ื™ื™ึทืœ ืื™ืŸ ืกื“ืจ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื˜ืขืœืŸ ืึท ืงื•ื•ื™ื˜ืœ). ืฆื•ื•ื™ื™ื˜ื ืก, ื“ืขืจ ื“ืจืš ืื™ื– ื ื™ืฉื˜ ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ 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), ืึธื‘ืขืจ ืžื™ืจ ื•ื•ื™ืกืŸ ืึทื– "ืคื™ื–ื™ืงืœื™" ื“ืึธืก ืื™ื– ื“ื™ ื–ืขืœื‘ืข ื‘ื™ืœื“ ืคื•ืŸ ื“ื™ ืจืขื’ื™ืกื˜ืจื™.

werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ื“ืขืจ ืขืžืขืก ื›ื™ืกืึธืจืŸ ืื™ื– ืึทื– ืขืก ืื™ื– ืงื™ื™ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืงืึทืžื™ืฅ, ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ื’ืขืฉื•ื•ื™ื ื“ ืคืึธืจื•ื™ืก.

ืžื™ืจ ืงืขื ืขืŸ ื’ื™ื™ืŸ ื•ื•ื™ื™ื˜ืขืจ ืื•ืŸ ื˜ืึธืŸ ืึท ืงื•ื ืฅ ... ืœืึธืžื™ืจ ืงื•ืงืŸ ืื™ืŸ ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ืึท ืคึผืฉื•ื˜ ื“ืึธืงืขืจืคื™ืœืข:

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 - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ื–ืืœ ืก ื’ื™ื™ืŸ ืฆื•ืจื™ืง ืฆื• ื“ื™ ื“ื™ืึทื’ืจืึทืžืข ืื•ืŸ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืงืึทืžื™ืฅ ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ ืึทื–ืึท ืกื™ื’ื ืึทื˜ืฉืขืจื–, ื“.ื”. ืคืึทืจื‘ื™ื ื“ืŸ ื‘ื™ืœื“ืขืจ ืžื™ื˜ ืกื™ื’ื ืึทื˜ืฉืขืจื–.

werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ืื™ืฆื˜, ื•ื•ืขืŸ ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง, ืœืžืฉืœ, ืฆื• ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืคื•ืŸ ืึท ืžืขืœื“ื•ื ื’ ืฆื• ื‘ืขืœ, ืžื™ืจ ืงืขื ืขืŸ ื˜ืึธืŸ ืึท ืคืึทืงื˜ื™ืฉ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืงืึทืžื™ื˜: ืขืก ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืึท ืึทื ื“ืขืจืฉ ืื™ื“ืขื ื˜ื™ื˜ืขื˜, ืึธื‘ืขืจ ื“ื™ ื–ืขืœื‘ืข ื›ืกื™ืžืข. ืžื™ื˜ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืื™ื“ืขื ื˜ื™ื˜ืขื˜, ืžื™ืจ ืจืึธื•ืœื™ื ื’ ื“ื™ ื‘ื™ืœื“ ืฆื• ืคึผืจืึธื“ื•ืงืฆื™ืข.

ื“ื™ ื›ื™ืกืึธืจืŸ ืื™ื– ืึทื– ืื™ืฆื˜ ืขืก ื•ื•ืขื˜ ื ื™ื˜ ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ื‘ืึทืฉืœื™ืกืŸ ื•ื•ืึธืก ืžื™ืŸ ืคื•ืŸ ื™ื‘ืขืจื’ืขื‘ืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ืคึผื•ืฉื˜ ืฆื• ืคึผืจืึธื“ื•ืงืฆื™ืข - ื˜ืฉืขืงืกืึทืžื– ืึทืจื‘ืขื˜ ื‘ืœื•ื™ื– ืื™ืŸ ืื™ื™ืŸ ืจื™ื›ื˜ื•ื ื’. ื“ืขื ืคึผืจืึธื‘ืœืขื ืื™ื– ืกืึทืœื•ื•ื“ ื“ื•ืจืš ืึทืŸ ื ืึธืš ืฉื™ื›ื˜ืข ืžื™ื˜ ืžืขื˜ืึทื“ืึทื˜ืึท - ืื™ืš ื•ื•ืขื˜ ื–ืึธื’ืŸ ืื™ืจ ืžืขืจ ืฉืคึผืขื˜ืขืจ.

ื˜ืึทื’ื™ื ื’ ืื™ืŸ ื•ื•ืึธืจืฃ

ืื™ืŸ ื•ื•ืขืจืฃ ื–ืขื ืขืŸ ืžื™ืจ ื’ืขื’ืึทื ื’ืขืŸ ื ืึธืš ื•ื•ื™ื™ื˜ืขืจ ืื•ืŸ ื’ืจื™ื™ื˜ืŸ ื–ื™ืš ืฆื• ื˜ืึธืŸ ืึท ืคืึทืจืฉืคึผืจื™ื™ื˜ืŸ ื‘ื•ื™ืขืŸ ืžื™ื˜ ืึท ืงืึทืฉ ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ืกื˜ืึธืจื“ ืื•ื™ืฃ ืื™ื™ืŸ ืžืึทืฉื™ืŸ ... ืึทื–ื•ื™ ืžื™ืจ ื‘ื•ื™ืขืŸ ืฆื•ื•ื™ื™ ื˜ื™ื™ืคึผืก ืคื•ืŸ ื“ืึธืงืงืขืจ ื‘ื™ืœื“ืขืจ, ืžื™ืจ ืจื•ืคืŸ ื–ื™ื™ ื‘ื™ื ืข ะธ ื‘ื™ืœื“.

ื“ื™ werf Git ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืกื˜ืึธืจื– ื‘ื•ื™ืขืŸ-ืกืคึผืขืฆื™ืคื™ืฉ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ื•ื•ืึธืก ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืคืึทืจืฉื™ื“ืขื ืข ืกื˜ืึทื’ืขืก ืคื•ืŸ ื“ื™ ื‘ื•ื™ืขืŸ (ืื™ื™ื“ืขืจ ื™ื ืกื˜ืึทืœื™ืจืŸ, ื™ื ืกื˜ืึทืœื™ืจืŸ, ืื™ื™ื“ืขืจ ืกืขื˜ืึทืคึผ, ืกืขื˜ืึทืคึผ). ืžื™ืจ ืงืœื™ื™ึทื‘ืŸ ื“ื™ ืขืจืฉื˜ืขืจ ื‘ื™ื ืข ื‘ื™ืœื“ ืžื™ื˜ ืึท ื›ืกื™ืžืข ื“ื™ืคื™ื™ื ื“ ื•ื•ื™ ื“ื™ ื˜ืฉืขืงืกื•ื ืคื•ืŸ ื“ื™ ืขืจืฉื˜ืขืจ ืกื˜ืขืคึผืก. ื“ืขืจื ืึธืš ืžื™ืจ ืœื™ื™ื’ืŸ ื“ื™ ืžืงื•ืจ ืงืึธื“, ืคึฟืึทืจ ื“ื™ ื ื™ื™ึท ื‘ื™ื ืข ื‘ื™ืœื“ ืžื™ืจ ืจืขื›ืขื ืขืŸ ื–ื™ื™ึทืŸ ื˜ืฉืขืงืกื•ื ... ื“ื™ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื–ืขื ืขืŸ ืจื™ืคึผื™ื˜ื™ื“ ืคึฟืึทืจ ืึทืœืข ืกื˜ืึทื’ืขืก, ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื•ื•ืึธืก ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ืกื›ื•ื ืคื•ืŸ ื‘ื™ื ืข ื‘ื™ืœื“ืขืจ. ื“ืขืจื ืึธืš ืžื™ืจ ืžืึทื›ืŸ ื“ื™ ืœืขืฆื˜ ื‘ื™ืœื“, ื•ื•ืึธืก ืื•ื™ืš ื›ึผื•ืœืœ ืžืขื˜ืึทื“ืึทื˜ืึท ื•ื•ืขื’ืŸ ื–ื™ื™ึทืŸ ืึธื ื”ื™ื™ื‘. ืื•ืŸ ืžื™ืจ ืคืึทืจื‘ื™ื ื“ืŸ ื“ืขื ื‘ื™ืœื“ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขื’ืŸ (ืคืจื˜ื™ื ืฉืคึผืขื˜ืขืจ).

werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ืจืขื›ืŸ ืึทื– ื ืึธืš ื“ืขื, ืึท ื ื™ื™ึทืข ืงืึทืžื™ื˜ ืื™ื– ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื•ื•ืึธืก ื‘ืœื•ื™ื– ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืึธื“ ืื™ื– ืคืืจืขื ื“ืขืจื˜. ื•ื•ืืก ื•ื•ืขื˜ ื’ืขืฉืขืŸ? ืคึฟืึทืจ ืงืึธื“ ืขื ื“ืขืจื•ื ื’ืขืŸ, ืึท ืœืึทื˜ืข ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืืฉืืคืŸ ืื•ืŸ ืึท ื ื™ื™ึทืข ื‘ื™ื ืข ื‘ื™ืœื“ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืฆื•ื’ืขื’ืจื™ื™ื˜. ื–ื™ื™ืŸ ื›ืกื™ืžืข ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืืฉืœืืกืŸ ื•ื•ื™ ื“ื™ ื˜ืฉืขืงืกื•ื ืคื•ืŸ ื“ื™ ืึทืœื˜ ื‘ื™ื ืข ื‘ื™ืœื“ ืื•ืŸ ื“ื™ ื ื™ื™ึทืข ืœืึทื˜ืข. ื ื ื™ื™ึทืข ืœืขืฆื˜ ื‘ื™ืœื“ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืฉืืคืŸ ืคื•ืŸ ื“ืขื ื‘ื™ืœื“. ืขื ืœืขื›ืข ื ืึทื˜ื•ืจ ื•ื•ืขื˜ ืคึผืึทืกื™ืจืŸ ืžื™ื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ืื ื“ืขืจืข ืกื˜ืึทื’ืขืก.

ืื–ื•ื™, ื‘ื™ื ืข ื‘ื™ืœื“ืขืจ ื–ืขื ืขืŸ ืึท ืงืึทืฉ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืกื˜ืึธืจื“ ื“ื™ืกื˜ืจื™ื‘ื™ื•ื˜ื™ื“, ืื•ืŸ ื“ื™ ื‘ื™ืœื“ืขืจ ืฉื•ื™ืŸ ื‘ืืฉืืคืŸ ื“ืขืจืคื•ืŸ ื–ืขื ืขืŸ ื•ืคึผืœืึธืึทื“ืขื“ ืฆื• ื“ื™ ื“ืึธืงืงืขืจ ืจืขื’ื™ืกื˜ืจื™.

werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ืจื™ื™ื ื™ืงื•ื ื’ ื“ื™ ืจืขื’ื™ืกื˜ืจื™

ืžื™ืจ ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ื“ื™ืœื™ื˜ื™ื ื’ ืœื™ื™ึทืขืจืก ื•ื•ืึธืก ืคืืจื‘ืœื™ื‘ืŸ ื›ืึทื ื’ื’ื™ื ื’ ื ืึธืš ืื•ื™ืกื’ืขืžืขืงื˜ ื˜ืึทื’ืก - ื“ืึธืก ืื™ื– ืึท ื ืึธืจืžืึทืœ ืฉื˜ืจื™ืš ืคื•ืŸ ื“ื™ ื“ืึธืงืงืขืจ ืจืขื’ื™ืกื˜ืจื™ ื–ื™ืš. ืžื™ืจ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ืึท ืกื™ื˜ื•ืึทืฆื™ืข ื•ื•ืขืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ื“ืึธืงืงืขืจ ื˜ืึทื’ืก ืึทืงื™ื•ืžื™ืึทืœื™ื™ื˜ ืื•ืŸ ืžื™ืจ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืึทื– ืžื™ืจ ื ื™ื˜ ืžืขืจ ื“ืึทืจืคึฟืŸ ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื–ื™ื™, ืึธื‘ืขืจ ื–ื™ื™ ื ืขืžืขืŸ ืคึผืœืึทืฅ (ืื•ืŸ / ืึธื“ืขืจ ืžื™ืจ ื‘ืึทืฆืึธืœืŸ ืคึฟืึทืจ ืขืก).

ื•ื•ืึธืก ื–ืขื ืขืŸ ื“ื™ ืจื™ื™ื ื™ืงื•ื ื’ ืกื˜ืจืึทื˜ืขื’ื™ืขืก?

  1. ืื™ืจ ืงืขื ืขืŸ ื ืึธืจ ื˜ืึธืŸ ื’ืึธืจื ื™ืฉื˜ ื ื™ื˜ ืจื™ื™ืŸ. ืžืืœ ืขืก ืื™ื– ื˜ืึทืงืข ื’ืจื™ื ื’ืขืจ ืฆื• ืฆืึธืœืŸ ืึท ื‘ื™ืกืœ ืคึฟืึทืจ ืขืงืกื˜ืจืข ืคึผืœืึทืฅ ื•ื•ื™ ืฆื• ืึทื ืจืึทื•ื•ืึทืœ ืึท ืจื™ื–ื™ืง ืคึผืœืึธื ื˜ืขืจืŸ ืคื•ืŸ ื˜ืึทื’ืก. ืึธื‘ืขืจ ื“ืึธืก ืึทืจื‘ืขื˜ ื‘ืœื•ื™ื– ื‘ื™ื– ืึท ื–ื™ื›ืขืจ ืคื•ื ื˜.
  2. ื’ืึทื ืฅ ื‘ืึทืฉื˜ืขื˜ื™ืง. ืื•ื™ื‘ ืื™ืจ ื•ื™ืกืžืขืงืŸ ืึทืœืข ื“ื™ ื‘ื™ืœื“ืขืจ ืื•ืŸ ืจื™ื‘ื™ืœื“ ื‘ืœื•ื™ื– ื“ื™ ืื™ืฆื˜ื™ืงืข ืื™ืŸ ื“ื™ ืกื™ ืกื™ืกื˜ืขื, ืึท ืคึผืจืึธื‘ืœืขื ืงืขืŸ ืื•ื™ืคืฉื˜ื™ื™ืŸ. ืื•ื™ื‘ ื“ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ ืื™ื– ืจื™ืกื˜ืึทืจื˜ื™ื“ ืื™ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข, ืึท ื ื™ื™ึทืข ื‘ื™ืœื“ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืœืึธื•ื“ื™ื“ ืคึฟืึทืจ ืื™ื - ืื™ื™ื ืขืจ ื•ื•ืึธืก ืื™ื– ื ืึธืš ื ื™ืฉื˜ ื˜ืขืกื˜ืขื“ ื“ื•ืจืš ื•ื•ืขืจ ืขืก ื™ื–. ื“ืึธืก ืงื™ืœื– ื“ื™ ื’ืขื“ืึทื ืง ืคื•ืŸ ื™ืžื™ื•ื˜ืึทื‘ืึทืœ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ.
  3. ื‘ืœื•ื™-ื’ืจื™ืŸ. ืื™ื™ืŸ ืจืขื’ื™ืกื˜ืจื™ ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ืœื•ื™ืคืŸ - ืžื™ืจ ื•ืคึผืœืึธืึทื“ ื‘ื™ืœื“ืขืจ ืฆื• ืื ื“ืขืจืŸ. ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืคึผืจืึธื‘ืœืขื ื•ื•ื™ ืื™ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืื•ืคึฟืŸ: ืื™ืŸ ื•ื•ืึธืก ืคื•ื ื˜ ืงืขื ืขืŸ ืื™ืจ ื•ื™ืกืžืขืงืŸ ื“ื™ ืจืขื’ื™ืกื˜ืจื™ ื•ื•ืึธืก ื”ืื˜ ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ืœื•ื™ืคืŸ?
  4. ืื™ืŸ ืฆื™ื™ื˜. ื•ื™ืกืžืขืงืŸ ืึทืœืข ื‘ื™ืœื“ืขืจ ืขืœื˜ืขืจ ื•ื•ื™ 1 ื—ื•ื“ืฉ? ืึธื‘ืขืจ ืขืก ื•ื•ืขื˜ ื‘ืืฉื˜ื™ืžื˜ ื–ื™ื™ืŸ ืึท ื“ื™ื ืกื˜ ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืคึฟืึทืจ ืึท ื—ื•ื“ืฉ ...
  5. ืžืึทื ื™ื•ืึทืœื™ ื‘ืึทืฉื˜ื™ืžืขืŸ ื•ื•ืึธืก ืงืขื ืขืŸ ืฉื•ื™ืŸ ื–ื™ื™ืŸ ืื•ื™ืกื’ืขืžืขืงื˜.

ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ื‘ืืžืช ื•ื•ื™ื™ืึทื‘ืึทืœ ืึธืคึผืฆื™ืขืก: ื˜ืึธืŸ ื ื™ื˜ ืจื™ื™ืŸ ืึธื“ืขืจ ืึท ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื‘ืœื•ื™-ื’ืจื™ืŸ + ืžืึทื ื™ื•ืึทืœื™. ืื™ืŸ ื“ื™ ืœืขืฆื˜ืข ืคืึทืœ, ืžื™ืจ ื–ืขื ืขืŸ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข: ื•ื•ืขืŸ ืื™ืจ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืึทื– ืขืก ืื™ื– ืฆื™ื™ึทื˜ ืฆื• ืจื™ื™ืŸ ื“ื™ ืจืขื’ื™ืกื˜ืจื™, ืื™ืจ ืžืึทื›ืŸ ืึท ื ื™ื™ึทืข ืื•ืŸ ืœื™ื™ื’ืŸ ืึทืœืข ื ื™ื™ึทืข ื‘ื™ืœื“ืขืจ ืื™ืŸ ื“ืขื ื’ืึทื ื’ ืคื•ืŸ, ืœืžืฉืœ, ืึท ื—ื•ื“ืฉ. ืื•ืŸ ื ืึธืš ืึท ื—ื•ื“ืฉ, ื–ืขืŸ ื•ื•ืึธืก ืคึผืึธื“ืก ืื™ืŸ Kubernetes ื ืึธืš ื ื•ืฆืŸ ื“ื™ ืึทืœื˜ ืจืขื’ื™ืกื˜ืจื™, ืื•ืŸ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื–ื™ื™ ืื•ื™ืš ืฆื• ื“ื™ ื ื™ื™ึทืข ืจืขื’ื™ืกื˜ืจื™.

ื•ื•ืึธืก ื–ืขื ืขืŸ ืžื™ืจ ื’ืขืงื•ืžืขืŸ ืฆื• werf? ืžื™ืจ ืงืœื™ื™ึทื‘ืŸ:

  1. ื’ื™ื˜ ืงืึธืคึผ: ืึทืœืข ื˜ืึทื’ืก, ืึทืœืข ืฆื•ื•ื™ื™ื’ืŸ - ืึทืกื•ืžื™ื ื’ ืึทื– ืžื™ืจ ื“ืึทืจืคึฟืŸ ืึทืœืฅ ื•ื•ืึธืก ืื™ื– ื˜ืึทื’ื“ ืื™ืŸ ื’ื™ื˜ ืื™ืŸ ื“ื™ ื‘ื™ืœื“ืขืจ (ืื•ืŸ ืื•ื™ื‘ ื ื™ืฉื˜, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื•ื™ืกืžืขืงืŸ ืขืก ืื™ืŸ ื’ื™ื˜ ื–ื™ืš);
  2. ืึทืœืข ืคึผืึธื“ืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืื™ืฆื˜ ืคึผืึทืžืคึผื˜ ืื•ื™ืก ืฆื• ืงื•ื‘ืขืจื ืขื˜ืขืก;
  3. ืึทืœื˜ ืจืขืคึผืœื™ืงืข ืกืขืฅ (ื•ื•ืึธืก ืื™ื– ืœืขืฆื˜ื ืก ื‘ืืคืจื™ื™ื˜), ืื•ืŸ ืžื™ืจ ืื•ื™ืš ืคึผืœืึทืŸ ืฆื• ื™ื‘ืขืจืงื•ืงืŸ ื”ืขืœื ืจื™ืœื™ืกื™ื– ืื•ืŸ ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ืœืขืฆื˜ืข ื‘ื™ืœื“ืขืจ ื“ืึธืจื˜.

... ืื•ืŸ ืžืึทื›ืŸ ืึท ื•ื•ื™ื™ื˜ืœื™ืกื˜ ืคื•ืŸ ื“ืขื ื’ืึทื ื’ - ืึท ืจืฉื™ืžื” ืคื•ืŸ ื‘ื™ืœื“ืขืจ ื•ื•ืึธืก ืžื™ืจ ื•ื•ืขืœืŸ ื ื™ืฉื˜ ื•ื™ืกืžืขืงืŸ. ืžื™ืจ ืจื™ื™ืŸ ืื•ื™ืก ืึทืœืฅ ืึทื ื“ืขืจืฉ, ื ืึธืš ื•ื•ืึธืก ืžื™ืจ ื’ืขืคึฟื™ื ืขืŸ ื™ืชื•ื ื‘ื™ื ืข ื‘ื™ืœื“ืขืจ ืื•ืŸ ื•ื™ืกืžืขืงืŸ ื–ื™ื™ ืื•ื™ืš.

ืฆืขื•ื•ื™ืงืœืขืŸ ื‘ื™ื ืข

ืคืึทืจืœืึธื–ืœืขืš ื“ืขืงืœืึทืจืึทื˜ื™ื•ื•ืขื ืขืกืก

ื“ืขืจ ืขืจืฉื˜ืขืจ ืคื•ื ื˜ ื•ื•ืึธืก ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ืฆื™ืขืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ื˜ ืฆื• ืื™ืŸ ื“ื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ื– ื“ื™ ืจืึธื•ืœืึทื•ื˜ ืคื•ืŸ ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืžื™ื˜ืœ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ื“ืขืจืงืœืขืจื˜ ื“ืขืงืœืึทืจืึทื˜ื™ื•ื•ืœื™. ื“ืขืจ ืึธืจื™ื’ื™ื ืขืœ YAML ื“ืึธืงื•ืžืขื ื˜ ื“ื™ืกืงืจื™ื™ื‘ื™ื ื’ Kubernetes ืจืขืกื•ืจืกืŸ ืื™ื– ืฉื˜ืขื ื“ื™ืง ื–ื™ื™ืขืจ ืึทื ื“ืขืจืฉ ืคื•ืŸ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ื•ื•ืึธืก ืึทืงืฉืœื™ ืคืœื™ืกื ื“ื™ืง ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ. ื•ื•ื™ื™ึทืœ Kubernetes ืžื•ืกื™ืฃ ืฆื• ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ:

  1. ืื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ;
  2. ื“ื™ื ืกื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข;
  3. ืคื™ืœืข ืคืขืœื™ืงื™ื™ึทื˜ ื•ื•ืึทืœื•ืขืก;
  4. ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืžื™ื˜ ืงืจืึทื ื˜ ืกื˜ืึทื˜ื•ืก;
  5. ืขื ื“ืขืจื•ื ื’ืขืŸ ื’ืขืžืื›ื˜ ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืึทืจื™ื™ึทื ื˜ืจืขื˜ืŸ ื•ื•ืขื‘ื”ืึธืึธืง;
  6. ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืึทืจื‘ืขื˜ ืคื•ืŸ ืคืึทืจืฉื™ื“ืŸ ืงืึทื ื˜ืจืึธื•ืœืขืจื– (ืื•ืŸ ื“ื™ ืกืงืขื“ื–ืฉื•ืœืขืจ).

ื“ืขืจื™ื‘ืขืจ, ื•ื•ืขืŸ ืึท ื ื™ื™ึทืข ืžื™ื˜ืœ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื™ื– ืืจื•ื™ืก (ื ื™ื™ึท), ืžื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ื ืึธืจ ื ืขืžืขืŸ ืื•ืŸ ืึธื•ื•ื•ืขืจืจื™ื™ื˜ ื“ื™ ืงืจืึทื ื˜, "ืœืขื‘ืŸ" ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืžื™ื˜ ืื™ื (ืœืขื‘ืŸ). ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืžื™ืจ ื•ื•ืขืœืŸ ื”ืึธื‘ืŸ ืฆื• ืคืึทืจื’ืœื™ื™ึทื›ืŸ ื ื™ื™ึท ืžื™ื˜ ื“ื™ ืœืขืฆื˜ืข ื’ืขื•ื•ืขื ื“ื˜ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ (ืœืขืฆื˜-ื’ืขื•ื•ืขื ื“ื˜) ืื•ืŸ ื–ืขืžืœ ืื•ื™ืฃ ืœืขื‘ืŸ ื‘ืืงื•ืžืขืŸ ืœืึทื˜ืข.

ื“ืขื ืฆื•ื’ืึทื ื’ ืื™ื– ื’ืขืจื•ืคืŸ 2-ื•ื•ืขื’ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ. ืขืก ืื™ื– ื’ืขื ื™ืฆื˜, ืœืžืฉืœ, ืื™ืŸ ื›ืขืœื.

ืขืก ืื™ื– ืื•ื™ืš 3-ื•ื•ืขื’ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ, ื•ื•ืึธืก ืื™ื– ืึทื ื“ืขืจืฉ ืื™ืŸ ื“ืขื:

  • ืคืึทืจื’ืœื™ื™ื›ืŸ ืœืขืฆื˜-ื’ืขื•ื•ืขื ื“ื˜ ะธ ื ื™ื™ึท, ืžื™ืจ ืงื•ืงืŸ ืื™ืŸ ื•ื•ืึธืก ืื™ื– ืื•ื™ืกื’ืขืžืขืงื˜;
  • ืคืึทืจื’ืœื™ื™ื›ืŸ ื ื™ื™ึท ะธ ืœืขื‘ืŸ, ืžื™ืจ ืงื•ืงืŸ ืื™ืŸ ื•ื•ืึธืก ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืึธื“ืขืจ ื’ืขื‘ื™ื˜ืŸ;
  • ื“ื™ ืกืึทืžื“ ืœืึทื˜ืข ืื™ื– ื’ืขื•ื•ืขื ื“ื˜ ืฆื• ืœืขื‘ืŸ.

ืžื™ืจ ืฆืขื•ื•ื™ืงืœืขืŸ 1000+ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืžื™ื˜ ื”ืขืœื, ืึทื–ื•ื™ ืžื™ืจ ืึทืงืฉืœื™ ืœืขื‘ืŸ ืžื™ื˜ 2-ื•ื•ืขื’ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ. ืึธื‘ืขืจ, ืขืก ื”ืื˜ ืึท ื ื•ืžืขืจ ืคื•ืŸ ืคืจืื‘ืœืขืžืขืŸ ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ ืกืึทืœื•ื•ื“ ืžื™ื˜ ืื•ื ื“ื–ืขืจ ืคึผืึทื˜ืฉืึทื–, ื•ื•ืึธืก ื”ืขืœืคึฟืŸ ื”ืขืœื ืฆื• ืึทืจื‘ืขื˜ืŸ ื ืึธืจืžืึทืœื™.

ืคืึทืงื˜ื™ืฉ ืจืึธื•ืœืึทื•ื˜ ืกื˜ืึทื˜ื•ืก

ื ืึธืš ืื•ื ื“ื–ืขืจ CI ืกื™ืกื˜ืขื ื“ื–ืฉืขื ืขืจื™ื™ืฅ ืึท ื ื™ื™ึทืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคึฟืึทืจ Kubernetes ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ื’ืขืฉืขืขื ื™ืฉ, ืขืก ื˜ืจืึทื ืกืžื™ืฅ ืขืก ืคึฟืึทืจ ื ื•ืฆืŸ (ืฆื•ืœื™ื™ื’ืŸ) ืฆื• ืึท ืงื ื•ื™ืœ - ื ื™ืฆืŸ ื”ืขืœื ืึธื“ืขืจ kubectl apply. ื“ืขืจื ืึธืš, ื“ื™ ืฉื•ื™ืŸ ื“ื™ืกืงืจื™ื™ื‘ื“ N-ื•ื•ืขื’ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืึทืงืขืจื–, ืฆื• ื•ื•ืึธืก ื“ื™ Kubernetes API ืจื™ืกืคึผืึทื ื“ื– ืึทืคึผืจื•ื•ื•ื™ื ื’ ืฆื• ื“ื™ ืกื™ ืกื™ืกื˜ืขื, ืื•ืŸ ืึทื– ืฆื• ื–ื™ื™ืŸ ื‘ืึทื ื™ืฆืขืจ.

werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ืึธื‘ืขืจ, ืขืก ืื™ื– ืึท ืจื™ื–ื™ืง ืคึผืจืึธื‘ืœืขื: ื ืึธืš ืึทืœืข ื’ืขืจืึธื˜ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ืžื™ื™ื ืขืŸ ื’ืขืจืึธื˜ืŸ ืจืึธื•ืœืึทื•ื˜. ืื•ื™ื‘ Kubernetes ืคืืจืฉื˜ื™ื™ื˜ ื•ื•ืึธืก ืขื ื“ืขืจื•ื ื’ืขืŸ ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ื’ืขื•ื•ืขื ื“ื˜ ืื•ืŸ ืึทืคึผืœื™ื™ื– ืขืก, ืžื™ืจ ื ืึธืš ื˜ืึธืŸ ื ื™ื˜ ื•ื•ื™ืกืŸ ื•ื•ืึธืก ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ืื•ืŸ ืจื™ืกื˜ืึทืจื˜ื™ื ื’ ืคึผืึธื“ืก ืื™ืŸ ื“ื™ ืคืจืึธื ื˜ืขื ื“ ืงืขืŸ ื–ื™ื™ืŸ ื’ืขืจืึธื˜ืŸ, ืึธื‘ืขืจ ื ื™ืฉื˜ ืื™ืŸ ื“ื™ ื‘ืึทืงืขื ื“, ืื•ืŸ ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทืงื•ืžืขืŸ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื“ื™ ืคืœื™ืกื ื“ื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื‘ื™ืœื“ืขืจ.

ืฆื• ื˜ืึธืŸ ืึทืœืฅ ืจื™ื›ื˜ื™ืง, ื“ืขื ืกื›ืขืžืข ืจื™ืงื•ื•ื™ื™ืขืจื– ืึทืŸ ื ืึธืš ืœื™ื ืง - ืึท ืกืคึผืขืฆื™ืขืœ ื˜ืจืึทืงืขืจ ื•ื•ืึธืก ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ืกื˜ืึทื˜ื•ืก ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ Kubernetes API ืื•ืŸ ื™ื‘ืขืจืฉื™ืงืŸ ืขืก ืคึฟืึทืจ ื•ื•ื™ื™ึทื˜ืขืจ ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ื“ื™ ืคืึทืงื˜ื™ืฉ ืฉื˜ืึทื˜ ืคื•ืŸ ื˜ื™ื ื’ื–. ืžื™ืจ ื‘ืืฉืืคืŸ ืึทืŸ ืขืคึฟืŸ ืžืงื•ืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ืŸ Go - ืงื•ื‘ืขื“ืึธื’ (ื–ืขืŸ ื–ื™ื™ืŸ ืžืขืœื“ืŸ ื“ืึธ), ื•ื•ืึธืก ืกืึทืœื•ื•ื– ื“ืขื ืคึผืจืึธื‘ืœืขื ืื•ืŸ ืื™ื– ื’ืขื‘ื•ื™ื˜ ืื™ืŸ ื•ื•ืึธืจืฃ.

ื“ื™ ืึธืคึผืคื™ืจื•ื ื’ ืคื•ืŸ ื“ืขื ื˜ืจืึทืงืขืจ ืื•ื™ืฃ ื“ื™ ื•ื•ืึธืจืฃ ืžื“ืจื’ื” ืื™ื– ืงืึทื ืคื™ื’ื™ืขืจื“ ืžื™ื˜ ืึทื ืึทื˜ื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื’ืขืฉื˜ืขืœื˜ ืื•ื™ืฃ ื“ื™ืคึผืœื•ื™ืžืึทื ืฅ ืึธื“ืขืจ ืกื˜ื™ื™ื˜ืคื•ืœืกืขืฅ. ื”ื•ื™ืคึผื˜ ืึทื ืึธื˜ืึทืฆื™ืข - fail-mode - ืคืืจืฉื˜ื™ื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ืžื™ื ื™ื ื’ื–:

  • IgnoreAndContinueDeployProcess - ืžื™ืจ ืื™ื’ื ืึธืจื™ืจืŸ ื“ื™ ืคืจืื‘ืœืขืžืขืŸ ืคื•ืŸ ืจืึธื•ืœื™ื ื’ ืื•ื™ืก ื“ืขื ืงืึธืžืคึผืึธื ืขื ื˜ ืื•ืŸ ืคืึธืจื–ืขืฆืŸ ื“ื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜;
  • FailWholeDeployProcessImmediately - ืึท ื˜ืขื•ืช ืื™ืŸ ื“ืขื ืงืึธืžืคึผืึธื ืขื ื˜ ืกื˜ืึทืคึผืก ื“ื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืคึผืจืึธืฆืขืก;
  • HopeUntilEndOfDeployProcess - ืžื™ืจ ื”ืึธืคืŸ ืึทื– ื“ืขืจ ืงืึธืžืคึผืึธื ืขื ื˜ ื•ื•ืขื˜ ืึทืจื‘ืขื˜ืŸ ืื™ืŸ ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜.

ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ืขื ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืจืขืกื•ืจืกืŸ ืื•ืŸ ืึทื ืึธื˜ืึทืฆื™ืข ื•ื•ืึทืœื•ืขืก fail-mode:

werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ื•ื•ืขืŸ ืžื™ืจ ืฆืขื•ื•ื™ืงืœืขืŸ ืคึฟืึทืจ ื“ื™ ืขืจืฉื˜ืขืจ ืžืึธืœ, ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก (MongoDB) ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื’ืจื™ื™ื˜ ื ืึธืš - ื“ื™ืคึผืœื•ื™ืžืึทื ืฅ ื•ื•ืขื˜ ืคืึทืจืœืึธื–ืŸ. ืึธื‘ืขืจ ืื™ืจ ืงืขื ืขืŸ ื•ื•ืึทืจื˜ืŸ ืคึฟืึทืจ ื“ืขื ืžืึธืžืขื ื˜ ืคึฟืึทืจ ืขืก ืฆื• ืึธื ื”ื™ื™ื‘ืŸ, ืื•ืŸ ื“ื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ื•ื•ืขื˜ ื ืึธืš ื ืขืžืขืŸ ืึธืจื˜.

ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ืžืขืจ ืึทื ืึทื˜ื™ื™ืฉืึทื ื– ืคึฟืึทืจ kubedog ืื™ืŸ werf:

  • failures-allowed-per-replica - ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืขืจืœื•ื™ื‘ื˜ ืคืืœืก ืคึฟืึทืจ ื™ืขื“ืขืจ ืจืขืคึผืœื™ืงืข;
  • show-logs-until - ืจืขื’ื™ืึทืœื™ื™ืฅ ื“ื™ ืžืึธืžืขื ื˜ ื‘ื™ื– ื•ื•ืึธืก ื•ื•ืึธืจืฃ ื•ื•ื™ื™ื–ื˜ (ืื™ืŸ ืกื˜ื“ืึธื•ื˜) ืœืึธื’ืก ืคื•ืŸ ืึทืœืข ืจืึธื•ืœื“ ืื•ื™ืก ืคึผืึธื“ืก. ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืื™ื– PodIsReady (ืฆื• ืื™ื’ื ืึธืจื™ืจืŸ ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืึธืก ืžื™ืจ ืžื™ืกื˜ืึธืžืข ื ื™ืฉื˜ ื•ื•ืขืœืŸ ื•ื•ืขืŸ ืคืึทืจืงืขืจ ืกื˜ืึทืจืฅ ืฆื• ืงื•ืžืขืŸ ืฆื• ื“ื™ ืคึผืึธื“), ืึธื‘ืขืจ ื•ื•ืึทืœื•ืขืก ื–ืขื ืขืŸ ืื•ื™ืš ื’ื™ืœื˜ื™ืง: ControllerIsReady ะธ EndOfDeploy.

ื•ื•ืึธืก ืึทื ื“ืขืจืฉ ื˜ืึธืŸ ืžื™ืจ ื•ื•ืขืœืŸ ืคื•ืŸ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜?

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ืฆื•ื•ื™ื™ ืฉื•ื™ืŸ ื“ื™ืกืงืจื™ื™ื‘ื“ ื ืงื•ื“ื•ืช, ืžื™ืจ ื•ื•ืึธืœื˜ ื•ื•ื™:

  • ืฆื• ื–ืขืŸ ืœืึธื’ืก - ืื•ืŸ ื‘ืœื•ื™ื– ื“ื™ ื ื™ื™ื˜ื™ืง ืึธื ืขืก, ืื•ืŸ ื ื™ื˜ ืึทืœืฅ ืื™ืŸ ืึท ืจื•ื“ืขืจืŸ;
  • ืฉืคึผื•ืจ ืคึผืจืึธื’ืจืขืก, ื•ื•ื™ื™ืœ ืื•ื™ื‘ ื“ื™ ืืจื‘ืขื˜ ื”ืขื ื’ื˜ "ืฉื˜ื™ืœื™ื’" ืคืืจ ืขื˜ืœื™ื›ืข ืžื™ื ื•ื˜, ืื™ื– ื•ื•ื™ื›ื˜ื™ื’ ืฆื• ืคืืจืฉื˜ื™ื™ืŸ ื•ื•ืืก ื“ืืจื˜ ื˜ื•ื˜ ื–ื™ืš;
  • ื”ืึธื‘ืŸ ืึธื˜ืึทืžืึทื˜ื™ืง ืจืึธื•ืœื‘ืึทืง ืื™ืŸ ืคืึทืœ ืขืคึผืขืก ืื™ื– ืคืึทืœืฉ (ืื•ืŸ ื“ืขืจื™ื‘ืขืจ ืขืก ืื™ื– ืงืจื™ื˜ื™ืฉ ืฆื• ื•ื•ื™ืกืŸ ื“ื™ ืคืึทืงื˜ื™ืฉ ืกื˜ืึทื˜ื•ืก ืคื•ืŸ ื“ื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜). ื“ื™ ืจืึธื•ืœืึทื•ื˜ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืึทื˜ืึธืžื™ืฉืข: ืึธื“ืขืจ ืขืก ื’ื™ื™ื˜ ื“ื•ืจืš ืฆื• ื“ื™ ืกื•ืฃ, ืึธื“ืขืจ ืึทืœืฅ ืงืขืจื˜ ืฆื• ื–ื™ื™ืŸ ืคืจื™ืขืจื“ื™ืงืŸ ืฉื˜ืึทื˜.

ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ

ืคึฟืึทืจ ืื•ื ื“ื– ื•ื•ื™ ืึท ืคื™ืจืžืข, ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึทืœืข ื“ื™ ื“ื™ืกืงืจื™ื™ื‘ื“ ื ื•ืึทื ืกื™ื– ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืกื˜ืึทื’ืขืก ืคื•ืŸ ืขืงืกืคึผืจืขืก (ื‘ื•ื™ืขืŸ, ืึทืจื•ื™ืกื’ืขื‘ืŸ, ืฆืขื•ื•ื™ืงืœืขืŸ), ืึท ืกื™ ืกื™ืกื˜ืขื ืื•ืŸ ื ื•ืฆืŸ ื–ืขื ืขืŸ ื’ืขื ื•ื’ werf.

ืึทื ืฉื˜ืึธื˜ ืึท ืžืกืงื ื:

werf - ืื•ื ื“ื–ืขืจ ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืกื™ / ืกื™ ืื™ืŸ Kubernetes (ื™ื‘ืขืจื‘ืœื™ืง ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ืžื™ื˜ ื“ืขืจ ื”ื™ืœืฃ ืคื•ืŸ werf, ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขืžืื›ื˜ ื’ื•ื˜ ืคึผืจืึธื’ืจืขืก ืื™ืŸ ืกืึทืœื•ื•ื™ื ื’ ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ืคึผืจืึธื‘ืœืขืžืก ืคึฟืึทืจ DevOps ืขื ื“ื–ืฉืึทื ื™ืจื– ืื•ืŸ ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืฆื•ืคืจื™ื“ืŸ ืื•ื™ื‘ ื“ื™ ื‘ืจื™ื™ื˜ ืงื”ืœ ืœืคึผื—ื•ืช ื’ืขืคืจื•ื•ื•ื˜ ื“ืขื ื ื•ืฆืŸ ืื™ืŸ ืงืึทืžืฃ. ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืจื™ื ื’ืขืจ ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ืึท ื’ื•ื˜ ืจืขื–ื•ืœื˜ืึทื˜ ืฆื•ื–ืึทืžืขืŸ.

ื•ื•ื™ื“ื™ืืก ืื•ืŸ ืกืœื™ื™ื“ื–

ื•ื•ื™ื“ืขื ืคึฟื•ืŸ ื“ืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’ (~ 47 ืžื™ื ื•ื˜):

ืคึผืจืขื–ืขื ื˜ื™ืจื•ื ื’ ืคื•ืŸ ื“ืขืจ ื‘ืึทืจื™ื›ื˜:

ืคึผืก

ืื ื“ืขืจืข ืจื™ืคึผืึธืจืฅ ื•ื•ืขื’ืŸ Kubernetes ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื‘ืœืึธื’:

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’