ื”ื”ื˜ืžืขื” ืฉืœื ื• ื‘-Continuous Deployment ืขืœ ื”ืคืœื˜ืคื•ืจืžื” ืฉืœ ื”ืœืงื•ื—

ืื ื• ื‘-True Engineering ื”ืงืžื ื• ืชื”ืœื™ืš ืœืืกืคืงื” โ€‹โ€‹ืจืฆื™ืคื” ืฉืœ ืขื“ื›ื•ื ื™ื ืœืฉืจืชื™ื ืฉืœ ืœืงื•ื—ื•ืช ื•ืจื•ืฆื™ื ืœื—ืœื•ืง ืืช ื”ื—ื•ื•ื™ื” ื”ื–ื•.

ืžืœื›ืชื—ื™ืœื”, ืคื™ืชื—ื ื• ืžืขืจื›ืช ืžืงื•ื•ื ืช ืขื‘ื•ืจ ื”ืœืงื•ื— ื•ืคืจืกื ื• ืื•ืชื” ื‘ืืฉื›ื•ืœ Kubernetes ืžืฉืœื ื•. ื›ืขืช ืคืชืจื•ืŸ ื”ืขื•ืžืก ื”ื’ื‘ื•ื” ืฉืœื ื• ืขื‘ืจ ืœืคืœื˜ืคื•ืจืžื” ืฉืœ ื”ืœืงื•ื—, ืขื‘ื•ืจื• ื”ื’ื“ืจื ื• ืชื”ืœื™ืš ืคืจื™ืกื” ืจืฆื™ืคื” ืื•ื˜ื•ืžื˜ื™ืช ืœื—ืœื•ื˜ื™ืŸ. ื”ื•ื“ื•ืช ืœื›ืš, ื”ืืฆื ื• ืืช ื–ืžืŸ ื”ื™ืฆื™ืื” ืœืฉื•ืง โ€“ ืžืกื™ืจืช ืฉื™ื ื•ื™ื™ื ื‘ืกื‘ื™ื‘ืช ื”ืžื•ืฆืจ.

ื‘ืžืืžืจ ื–ื” ื ื“ื‘ืจ ืขืœ ื›ืœ ืฉืœื‘ื™ ืชื”ืœื™ืš ื”-Continuous Deployment (CD) ืื• ืžืฉืœื•ื— ืขื“ื›ื•ื ื™ื ืœืคืœื˜ืคื•ืจืžืช ื”ืœืงื•ื—:

  1. ืื™ืš ืžืชื—ื™ืœ ื”ืชื”ืœื™ืš ื”ื–ื”?
  2. ืกื ื›ืจื•ืŸ ืขื ืžืื’ืจ Git ืฉืœ ื”ืœืงื•ื—,
  3. ื”ืจื›ื‘ื” ืฉืœ backend ื•-frontend,
  4. ืคืจื™ืกื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ ื™ื™ืฉื•ืžื™ื ื‘ืกื‘ื™ื‘ืช ื‘ื“ื™ืงื”,
  5. ืคืจื™ืกื” ืื•ื˜ื•ืžื˜ื™ืช ืœ-Prod.

ื ืฉืชืฃ ืืช ืคืจื˜ื™ ื”ื”ื’ื“ืจื” ืœืื•ืจืš ื”ื“ืจืš.

ื”ื”ื˜ืžืขื” ืฉืœื ื• ื‘-Continuous Deployment ืขืœ ื”ืคืœื˜ืคื•ืจืžื” ืฉืœ ื”ืœืงื•ื—

1. ื”ืชื—ืœ ืชืงืœื™ื˜ื•ืจ

ืคืจื™ืกื” ืจืฆื™ืคื” ืžืชื—ื™ืœื” ื‘ื›ืš ืฉื”ืžืคืชื— ื“ื•ื—ืฃ ืฉื™ื ื•ื™ื™ื ื‘ืขื ืฃ ื”ืฉื—ืจื•ืจ ืฉืœ ืžืื’ืจ Git ืฉืœื ื•.

ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื• ืคื•ืขืœืช ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ืฉื™ืจื•ืช ืžื™ืงืจื• ื•ื›ืœ ื”ืจื›ื™ื‘ื™ื ืฉืœื” ืžืื•ื—ืกื ื™ื ื‘ืžืื’ืจ ืื—ื“. ื”ื•ื“ื•ืช ืœื›ืš, ื›ืœ ืฉื™ืจื•ืชื™ ื”ืžื™ืงืจื• ื ืืกืคื™ื ื•ืžื•ืชืงื ื™ื, ื’ื ืื ืื—ื“ ืžื”ื ื”ืฉืชื ื”.

ืืจื’ื ื• ืขื‘ื•ื“ื” ื“ืจืš ืžืื’ืจ ืื—ื“ ืžื›ืžื” ืกื™ื‘ื•ืช:

  • ืงืœื•ืช ืคื™ืชื•ื— - ื”ืืคืœื™ืงืฆื™ื” ืžืชืคืชื—ืช ื‘ืื•ืคืŸ ืคืขื™ืœ, ื›ืš ืฉื ื™ืชืŸ ืœืขื‘ื•ื“ ืขื ื›ืœ ื”ืงื•ื“ ื‘ื‘ืช ืื—ืช.
  • ืฆื™ื ื•ืจ CI/CD ื™ื—ื™ื“ ื”ืžื‘ื˜ื™ื— ืฉื”ืืคืœื™ืงืฆื™ื” ื›ืžืขืจื›ืช ืื—ืช ืขื•ื‘ืจืช ืืช ื›ืœ ื”ื‘ื“ื™ืงื•ืช ื•ืžื•ืขื‘ืจืช ืœืกื‘ื™ื‘ืช ื”ื™ื™ืฆื•ืจ ืฉืœ ื”ืœืงื•ื—.
  • ืื ื• ืžื‘ื˜ืœื™ื ื‘ืœื‘ื•ืœ ื‘ื’ืจืกืื•ืช - ืื™ื ื ื• ืฆืจื™ื›ื™ื ืœืื—ืกืŸ ืžืคื” ืฉืœ ื’ืจืกืื•ืช ืžื™ืงืจื•-ืฉื™ืจื•ืช ื•ืœืชืืจ ืืช ื”ืชืฆื•ืจื” ืฉืœื” ืขื‘ื•ืจ ื›ืœ ืžื™ืงืจื•-ืฉื™ืจื•ืช ื‘ืกืงืจื™ืคื˜ื™ื ืฉืœ Helm.

2. ืกื ื›ืจื•ืŸ ืขื ืžืื’ืจ Git ืฉืœ ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ื”ืœืงื•ื—

ืฉื™ื ื•ื™ื™ื ืฉื‘ื•ืฆืขื• ืžืกื•ื ื›ืจื ื™ื ืื•ื˜ื•ืžื˜ื™ืช ืขื ืžืื’ืจ Git ืฉืœ ื”ืœืงื•ื—. ืฉื ืžื•ื’ื“ืจ ืžื›ืœื•ืœ ื”ืืคืœื™ืงืฆื™ื•ืช, ื”ืžื•ืคืขืœ ืœืื—ืจ ืขื“ื›ื•ืŸ ื”ืกื ื™ืฃ, ื•ืคืจื™ืกื” ืœื”ืžืฉืš. ืฉื ื™ ื”ืชื”ืœื™ื›ื™ื ืžืงื•ืจื ื‘ืกื‘ื™ื‘ืชื ืžืžืื’ืจ Git.

ืื™ื ื ื• ื™ื›ื•ืœื™ื ืœืขื‘ื•ื“ ื™ืฉื™ืจื•ืช ืขื ื”ืžืื’ืจ ืฉืœ ื”ืœืงื•ื— ืžื›ื™ื•ื•ืŸ ืฉืื ื• ื–ืงื•ืงื™ื ืœืกื‘ื™ื‘ื•ืช ืžืฉืœื ื• ืœืฆื•ืจืš ืคื™ืชื•ื— ื•ื‘ื“ื™ืงื”. ืื ื• ืžืฉืชืžืฉื™ื ื‘ืžืื’ืจ Git ืฉืœื ื• ืœืžื˜ืจื•ืช ืืœื• - ื”ื•ื ืžืกื•ื ื›ืจืŸ ืขื ืžืื’ืจ Git ืฉืœื”ื. ื‘ืจื’ืข ืฉืžืคืชื— ืžืคืจืกื ืฉื™ื ื•ื™ื™ื ื‘ืกื ื™ืฃ ื”ืžืชืื™ื ืฉืœ ื”ืžืื’ืจ ืฉืœื ื•, GitLab ืžื™ื“ ื“ื•ื—ืคืช ืืช ื”ืฉื™ื ื•ื™ื™ื ื”ืœืœื• ืœืœืงื•ื—.

ื”ื”ื˜ืžืขื” ืฉืœื ื• ื‘-Continuous Deployment ืขืœ ื”ืคืœื˜ืคื•ืจืžื” ืฉืœ ื”ืœืงื•ื—

ืื—ืจื™ ื–ื” ืืชื” ืฆืจื™ืš ืœืขืฉื•ืช ืืช ื”ื”ืจื›ื‘ื”. ื–ื” ืžื•ืจื›ื‘ ืžืžืกืคืจ ืฉืœื‘ื™ื: ื”ืจื›ื‘ื” ืขื•ืจืคื™ืช ื•ื—ื–ื™ืชื™ืช, ื‘ื“ื™ืงื” ื•ืืกืคืงื” โ€‹โ€‹ืœื™ื™ืฆื•ืจ.

3. ื”ืจื›ื‘ืช ื”ืงืฆื” ื”ืื—ื•ืจื™ ื•ื”ื—ื–ื™ืชื™

ื‘ื ื™ื™ืช ื”-backend ื•ื”-frontend ื”ืŸ ืฉืชื™ ืžืฉื™ืžื•ืช ืžืงื‘ื™ืœื•ืช ื”ืžื‘ื•ืฆืขื•ืช ื‘ืžืขืจื›ืช GitLab Runner. ืชืฆื•ืจืช ื”ื”ืจื›ื‘ื” ื”ืžืงื•ืจื™ืช ืฉืœื• ืžืžื•ืงืžืช ื‘ืื•ืชื• ืžืื’ืจ.

ื”ื“ืจื›ื” ืœื›ืชื™ื‘ืช ืกืงืจื™ืคื˜ YAML ืœื‘ื ื™ื™ื” ื‘-GitLab.

GitLab Runner ืœื•ืงื— ืืช ื”ืงื•ื“ ืžื”ืžืื’ืจ ื”ื ื“ืจืฉ, ืžืจื›ื™ื‘ ืื•ืชื• ืขื ืคืงื•ื“ืช ื”ื‘ื ื™ื™ื” ืฉืœ ื™ื™ืฉื•ื Java ื•ืฉื•ืœื— ืื•ืชื• ืœ-Docker Registry. ื›ืืŸ ืื ื• ืžืจื›ื™ื‘ื™ื ืืช ื”-backend ื•ื”-frontend, ืžืฉื™ื’ื™ื ืชืžื•ื ื•ืช Docker, ืื•ืชืŸ ื”ื›ื ืกื ื• ืœืžืื’ืจ ื‘ืฆื“ ื”ืœืงื•ื—. ื›ื“ื™ ืœื ื”ืœ ืชืžื•ื ื•ืช Docker ืฉืื ื• ืžืฉืชืžืฉื™ื ื‘ื”ืŸ ืชื•ืกืฃ Gradle.

ืื ื• ืžืกื ื›ืจื ื™ื ืืช ื’ืจืกืื•ืช ื”ืชืžื•ื ื•ืช ืฉืœื ื• ืขื ื’ืจืกืช ื”ืฉื—ืจื•ืจ ืฉืชืคื•ืจืกื ื‘-Docker. ืœื”ืคืขืœื” ื—ืœืงื” ื‘ื™ืฆืขื ื• ืžืกืคืจ ื”ืชืืžื•ืช:

1. ืžื›ื•ืœื•ืช ืื™ื ืŸ ื ื‘ื ื•ืช ืžื—ื“ืฉ ื‘ื™ืŸ ืกื‘ื™ื‘ืช ื”ื‘ื“ื™ืงื” ืœืกื‘ื™ื‘ืช ื”ื™ื™ืฆื•ืจ. ืขืฉื™ื ื• ืคืจืžื˜ืจื™ื ื›ืš ืฉืื•ืชื• ืงื•ื ื˜ื™ื™ื ืจ ื™ื•ื›ืœ ืœืขื‘ื•ื“ ืขื ื›ืœ ื”ื”ื’ื“ืจื•ืช, ืžืฉืชื ื™ ื”ืกื‘ื™ื‘ื” ื•ื”ืฉื™ืจื•ืชื™ื ื”ืŸ ื‘ืกื‘ื™ื‘ืช ื”ื‘ื“ื™ืงื” ื•ื”ืŸ ื‘ื™ื™ืฆื•ืจ ืœืœื ื‘ื ื™ื™ื” ืžื—ื“ืฉ.

2. ื›ื“ื™ ืœืขื“ื›ืŸ ืืคืœื™ืงืฆื™ื” ื“ืจืš Helm, ื™ืฉ ืœืฆื™ื™ืŸ ืืช ื”ื’ืจืกื” ืฉืœื”. ืื ื• ื‘ื•ื ื™ื ืืช ื”-backend, frontend ื•ืžืขื“ื›ื ื™ื ืืช ื”ืืคืœื™ืงืฆื™ื” โ€“ ืืœื• ืฉืœื•ืฉ ืžืฉื™ืžื•ืช ืฉื•ื ื•ืช, ื•ืœื›ืŸ ื—ืฉื•ื‘ ืœื”ืฉืชืžืฉ ื‘ืื•ืชื” ื’ืจืกื” ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ื‘ื›ืœ ืžืงื•ื. ืขื‘ื•ืจ ืžืฉื™ืžื” ื–ื•, ืื ื• ืžืฉืชืžืฉื™ื ื‘ื ืชื•ื ื™ื ืžื”ื™ืกื˜ื•ืจื™ื™ืช Git, ืžื›ื™ื•ื•ืŸ ืฉืชืฆื•ืจืช ืืฉื›ื•ืœ ื”-K8S ื•ื”ืืคืœื™ืงืฆื™ื•ืช ืฉืœื ื• ื ืžืฆืื™ื ื‘ืื•ืชื• ืžืื’ืจ Git.

ืื ื• ืžืงื‘ืœื™ื ืืช ื’ืจืกืช ื”ื™ื™ืฉื•ื ืžืชื•ืฆืื•ืช ื‘ื™ืฆื•ืข ื”ืคืงื•ื“ื”
git describe --tags --abbrev=7.

4. ืคืจื™ืกื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ื‘ืกื‘ื™ื‘ืช ื”ื‘ื“ื™ืงื” (UAT)

ื”ืฉืœื‘ ื”ื‘ื ื‘ืกืงืจื™ืคื˜ ื”ื‘ื ื™ื™ื” ื”ื–ื” ื”ื•ื ืขื“ื›ื•ืŸ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ืืฉื›ื•ืœ K8S. ื–ื” ืงื•ืจื” ื‘ืชื ืื™ ืฉื”ืืคืœื™ืงืฆื™ื” ื›ื•ืœื” ื ื‘ื ืชื” ื•ื›ืœ ื”ื—ืคืฆื™ื ืคื•ืจืกืžื• ืœ-Docker Registry. ืœืื—ืจ ืžื›ืŸ, ืขื“ื›ื•ืŸ ืกื‘ื™ื‘ืช ื”ื‘ื“ื™ืงื” ืžืชื—ื™ืœ.

ืขื“ื›ื•ืŸ ื”ืืฉื›ื•ืœ ืžืชื—ื™ืœ ืœื”ืฉืชืžืฉ ืขื“ื›ื•ืŸ ื”ื’ื”. ืื ื›ืชื•ืฆืื” ืžื›ืš ืžืฉื”ื• ืœื ื”ืœืš ืœืคื™ ื”ืชื•ื›ื ื™ืช, Helm ื™ื—ื–ื™ืจ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื•ืขืฆืžืื™ ืืช ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ืฉืœื•. ืื™ืŸ ืฆื•ืจืš ืœืฉืœื•ื˜ ื‘ืขื‘ื•ื“ืชื•.

ืื ื• ืžืกืคืงื™ื ืืช ืชืฆื•ืจืช ืืฉื›ื•ืœ K8S ื™ื—ื“ ืขื ื”ืžื›ืœื•ืœ. ืœื›ืŸ, ื”ืฉืœื‘ ื”ื‘ื ื”ื•ื ืœืขื“ื›ืŸ ืื•ืชื•: configMaps, ืคืจื™ืกื•ืช, ืฉื™ืจื•ืชื™ื, ืกื•ื“ื•ืช ื•ื›ืœ ืชืฆื•ืจื•ืช K8S ืื—ืจื•ืช ืฉืฉื™ื ื™ื ื•.

ืœืื—ืจ ืžื›ืŸ, ื”ืœื ืžืจื™ืฅ ืขื“ื›ื•ืŸ RollOut ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืขืฆืžื” ื‘ืกื‘ื™ื‘ืช ื”ื‘ื“ื™ืงื”. ืœืคื ื™ ืคืจื™ืกืช ื”ืืคืœื™ืงืฆื™ื” ืœื™ื™ืฆื•ืจ. ื–ื” ื ืขืฉื” ื›ื“ื™ ืฉืžืฉืชืžืฉื™ื ื™ื•ื›ืœื• ืœื‘ื“ื•ืง ื‘ืื•ืคืŸ ื™ื“ื ื™ ืืช ื”ืชื›ื•ื ื•ืช ื”ืขืกืงื™ื•ืช ืฉื”ื›ื ืกื ื• ืœืกื‘ื™ื‘ืช ื”ื‘ื“ื™ืงื”.

5. ืคืจื™ืกื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ื‘-Prod

ื›ื“ื™ ืœืคืจื•ืก ืขื“ื›ื•ืŸ ืœืกื‘ื™ื‘ืช ื”ื™ื™ืฆื•ืจ, ืจืง ืฆืจื™ืš ืœืœื—ื•ืฅ ืขืœ ื›ืคืชื•ืจ ืื—ื“ ื‘-GitLab - ื•ื”ืžื™ื›ืœื™ื ื ืžืกืจื™ื ืžื™ื“ ืœืกื‘ื™ื‘ืช ื”ื™ื™ืฆื•ืจ.

ืื•ืชื” ืืคืœื™ืงืฆื™ื” ื™ื›ื•ืœื” ืœืขื‘ื•ื“ ื‘ืกื‘ื™ื‘ื•ืช ืฉื•ื ื•ืช - ื‘ื“ื™ืงื” ื•ื™ื™ืฆื•ืจ - ืœืœื ื‘ื ื™ื™ื” ืžื—ื“ืฉ. ืื ื• ืžืฉืชืžืฉื™ื ื‘ืื•ืชื ื—ืคืฆื™ื ืžื‘ืœื™ ืœืฉื ื•ืช ื“ื‘ืจ ื‘ืืคืœื™ืงืฆื™ื”, ื•ืื ื—ื ื• ืžื’ื“ื™ืจื™ื ืืช ื”ืคืจืžื˜ืจื™ื ื—ื™ืฆื•ื ื™ืช.

ืคืจืžื˜ืจื™ื–ืฆื™ื” ื’ืžื™ืฉื” ืฉืœ ื”ื’ื“ืจื•ืช ื”ืืคืœื™ืงืฆื™ื” ืชืœื•ื™ื” ื‘ืกื‘ื™ื‘ื” ืฉื‘ื” ื”ืืคืœื™ืงืฆื™ื” ืชื‘ื•ืฆืข. ื”ืขื‘ืจื ื• ืืช ื›ืœ ื”ื’ื“ืจื•ืช ื”ืกื‘ื™ื‘ื” ื›ืœืคื™ ื—ื•ืฅ: ื”ื›ืœ ืขื•ื‘ืจ ืคืจืžื˜ืจื™ื ื“ืจืš ืชืฆื•ืจืช K8S ื•ืคืจืžื˜ืจื™ื Helm. ื›ืืฉืจ Helm ืคื•ืจืก assembly ืœืกื‘ื™ื‘ืช ื”ื‘ื“ื™ืงื”, ื”ื’ื“ืจื•ืช ื”ื‘ื“ื™ืงื” ืžื•ื—ืœื•ืช ืขืœื™ื”, ื•ื”ื’ื“ืจื•ืช ื”ืžื•ืฆืจ ืžื•ื—ืœื•ืช ืขืœ ืกื‘ื™ื‘ืช ื”ื™ื™ืฆื•ืจ.

ื”ื“ื‘ืจ ื”ืงืฉื” ื‘ื™ื•ืชืจ ื”ื™ื” ืœื”ื’ื“ื™ืจ ืคืจืžื˜ืจื™ื ืœื›ืœ ื”ืฉื™ืจื•ืชื™ื ื•ื”ืžืฉืชื ื™ื ื”ืžืฉืชื ื™ื ื”ืชืœื•ื™ื™ื ื‘ืกื‘ื™ื‘ื”, ื•ืœืชืจื’ื ืื•ืชื ืœืžืฉืชื ื™ ืกื‘ื™ื‘ื” ื•ืชืฆื•ืจื•ืช ืชื™ืื•ืจ ืฉืœ ืคืจืžื˜ืจื™ ืกื‘ื™ื‘ื” ืขื‘ื•ืจ Helm.

ื”ื’ื“ืจื•ืช ื”ืืคืœื™ืงืฆื™ื” ืžืฉืชืžืฉื•ืช ื‘ืžืฉืชื ื™ ืกื‘ื™ื‘ื”. ื”ืขืจื›ื™ื ืฉืœื”ื ืžื•ื’ื“ืจื™ื ื‘ืงื•ื ื˜ื™ื™ื ืจื™ื ื‘ืืžืฆืขื•ืช K8S configmap, ืืฉืจ ืžืขื•ืฆื‘ืช ื‘ืืžืฆืขื•ืช ืชื‘ื ื™ื•ืช Go. ืœื“ื•ื’ืžื”, ื”ื’ื“ืจืช ืžืฉืชื ื” ืกื‘ื™ื‘ื” ืœืฉื ื”ื“ื•ืžื™ื™ืŸ ื™ื›ื•ืœื” ืœื”ืชื‘ืฆืข ื›ืš:

APP_EXTERNAL_DOMAIN: {{ (pluck .Values.global.env .Values.app.properties.app_external_domain | first) }}

.Values.global.env โ€“ ืžืฉืชื ื” ื–ื” ืžืื—ืกืŸ ืืช ืฉื ื”ืกื‘ื™ื‘ื” (ืคืจื•ื“, ืฉืœื‘, UAT).
.Values.app.properties.app_external_domain โ€“ ื‘ืžืฉืชื ื” ื–ื” ืื ื• ืžื’ื“ื™ืจื™ื ืืช ื”ืชื—ื•ื ื”ืจืฆื•ื™ ื‘ืงื•ื‘ืฅ .Values.yaml

ื‘ืขืช ืขื“ื›ื•ืŸ ืืคืœื™ืงืฆื™ื”, Helm ื™ื•ืฆืจ ืงื•ื‘ืฅ configmap.yaml ืžืชื‘ื ื™ื•ืช ื•ืžืžืœื ืืช ื”ืขืจืš APP_EXTERNAL_DOMAIN ื‘ืขืจืš ื”ืจืฆื•ื™ ื‘ื”ืชืื ืœืกื‘ื™ื‘ื” ืฉื‘ื” ืขื“ื›ื•ืŸ ื”ืืคืœื™ืงืฆื™ื” ืžืชื—ื™ืœ. ืžืฉืชื ื” ื–ื” ื›ื‘ืจ ืžื•ื’ื“ืจ ื‘ืžื™ื›ืœ. ื ื™ืชืŸ ืœื’ืฉืช ืืœื™ื• ืžื”ืืคืœื™ืงืฆื™ื”, ื›ืš ืฉืœื›ืœ ืกื‘ื™ื‘ืช ืืคืœื™ืงืฆื™ื” ื™ื”ื™ื” ืขืจืš ืฉื•ื ื” ืขื‘ื•ืจ ืžืฉืชื ื” ื–ื”.

ืœืื—ืจื•ื ื” ื™ื—ืกื™ืช, ืชืžื™ื›ื” ื‘-K8S ื”ื•ืคื™ืขื” ื‘-Spring Cloud, ื›ื•ืœืœ ืขื‘ื•ื“ื” ืขื configMaps: ืื‘ื™ื‘ ืขื ืŸ Kubernetes. ื‘ืขื•ื“ ืฉื”ืคืจื•ื™ืงื˜ ืžืชืคืชื— ื•ืžืฉืชื ื” ื‘ืื•ืคืŸ ืงื™ืฆื•ื ื™, ืื ื—ื ื• ืœื ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ื• ื‘ื™ื™ืฆื•ืจ. ืื‘ืœ ืื ื—ื ื• ืขื•ืงื‘ื™ื ื‘ืื•ืคืŸ ืคืขื™ืœ ืื—ืจ ืžืฆื‘ื• ื•ืžืฉืชืžืฉื™ื ื‘ื• ื‘ืชืฆื•ืจื•ืช DEV. ื‘ืจื’ืข ืฉื”ื•ื ื™ืชื™ื™ืฆื‘, ื ืขื‘ื•ืจ ืžืฉื™ืžื•ืฉ ื‘ืžืฉืชื ื™ ืกื‘ื™ื‘ื” ืืœื™ื•.

ื‘ืกืš ื”ื›ืœ

ืื–, ืคืจื™ืกื” ืจืฆื™ืคื” ืžื•ื’ื“ืจืช ื•ืคื•ืขืœืช. ื›ืœ ื”ืขื“ื›ื•ื ื™ื ืžืชืจื—ืฉื™ื ืขื ื”ืงืฉื” ืื—ืช. ืžืกื™ืจืช ื”ืฉื™ื ื•ื™ื™ื ื‘ืกื‘ื™ื‘ืช ื”ืžื•ืฆืจ ื”ื™ื ืื•ื˜ื•ืžื˜ื™ืช. ื•ื—ืฉื•ื‘ ืžื›ืš, ืขื“ื›ื•ื ื™ื ืœื ืขื•ืฆืจื™ื ืืช ื”ืžืขืจื›ืช.

ื”ื”ื˜ืžืขื” ืฉืœื ื• ื‘-Continuous Deployment ืขืœ ื”ืคืœื˜ืคื•ืจืžื” ืฉืœ ื”ืœืงื•ื—

ืชื•ื›ื ื™ื•ืช ืขืชื™ื“ื™ื•ืช: ื”ื’ื™ืจื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ ืžืกื“ื™ ื ืชื•ื ื™ื

ื—ืฉื‘ื ื• ืขืœ ืฉื“ืจื•ื’ ืžืกื“ ื”ื ืชื•ื ื™ื ื•ืขืœ ื”ืืคืฉืจื•ืช ืœื‘ื˜ืœ ืฉื™ื ื•ื™ื™ื ืืœื•. ืื—ืจื™ ื”ื›ืœ, ืฉืชื™ ื’ืจืกืื•ืช ืฉื•ื ื•ืช ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืคื•ืขืœื•ืช ื‘ื•-ื–ืžื ื™ืช: ื”ื™ืฉื ื” ืคื•ืขืœืช, ื•ื”ื—ื“ืฉื” ืคื•ืขืœืช. ื•ืืช ื”ื™ืฉื ื” ื ื›ื‘ื” ืจืง ื›ืฉื ื”ื™ื” ื‘ื˜ื•ื—ื™ื ืฉื”ื’ืจืกื” ื”ื—ื“ืฉื” ืขื•ื‘ื“ืช. ื”ืขื‘ืจืช ืžืกื“ ื”ื ืชื•ื ื™ื ืืžื•ืจื” ืœืืคืฉืจ ืœืš ืœืขื‘ื•ื“ ืขื ืฉืชื™ ื”ื’ืจืกืื•ืช ืฉืœ ื”ื™ื™ืฉื•ื.

ืœื›ืŸ, ืื ื—ื ื• ืœื ื™ื›ื•ืœื™ื ืคืฉื•ื˜ ืœืฉื ื•ืช ืืช ืฉื ื”ืขืžื•ื“ื” ืื• ื ืชื•ื ื™ื ืื—ืจื™ื. ืื‘ืœ ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื™ืฆื•ืจ ืขืžื•ื“ื” ื—ื“ืฉื”, ืœื”ืขืชื™ืง ืœืชื•ื›ื” ื ืชื•ื ื™ื ืžื”ืขืžื•ื“ื” ื”ื™ืฉื ื” ื•ืœื›ืชื•ื‘ ื˜ืจื™ื’ืจื™ื ืฉื‘ื–ืžืŸ ืขื“ื›ื•ืŸ ื”ื ืชื•ื ื™ื ื™ืขืชื™ืงื• ื•ื™ืขื“ื›ื ื• ืื•ืชื ื‘ืžืงื‘ื™ืœ ื‘ืขืžื•ื“ื” ืื—ืจืช. ื•ืœืื—ืจ ืคืจื™ืกื” ืžื•ืฆืœื—ืช ืฉืœ ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืฉืœ ื”ืืคืœื™ืงืฆื™ื”, ืœืื—ืจ ืชืงื•ืคืช ื”ืชืžื™ื›ื” ืฉืœืื—ืจ ื”ื”ืฉืงื”, ื ื•ื›ืœ ืœืžื—ื•ืง ืืช ื”ืขืžื•ื“ื” ื”ื™ืฉื ื” ื•ืืช ื”ื˜ืจื™ื’ืจ ืฉื”ืคืš ืœืžื™ื•ืชืจ.

ืื ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืื™ื ื” ืคื•ืขืœืช ื›ื”ืœื›ื”, ื ื•ื›ืœ ืœื—ื–ื•ืจ ืœื’ืจืกื” ื”ืงื•ื“ืžืช, ื›ื•ืœืœ ื”ื’ืจืกื” ื”ืงื•ื“ืžืช ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื. ื‘ืงื™ืฆื•ืจ, ื”ืฉื™ื ื•ื™ื™ื ืฉืœื ื• ื™ืืคืฉืจื• ืœืš ืœืขื‘ื•ื“ ื‘ืžืงื‘ื™ืœ ืขื ืžืกืคืจ ื’ืจืกืื•ืช ืฉืœ ื”ืืคืœื™ืงืฆื™ื”.

ืื ื• ืžืชื›ื ื ื™ื ืœื”ืคื•ืš ืืช ื”ืขื‘ืจืช ืžืกื“ื™ ื”ื ืชื•ื ื™ื ืœืื•ื˜ื•ืžื˜ื™ื™ื ื‘ืืžืฆืขื•ืช ืขื‘ื•ื“ืช K8S, ื•ืœืฉืœื‘ ืื•ืชื• ื‘ืชื”ืœื™ืš ื”ืชืงืœื™ื˜ื•ืจ. ื•ื‘ื”ื—ืœื˜ ื ืฉืชืฃ ืืช ื”ื—ื•ื•ื™ื” ื”ื–ื• ื‘-Habrรฉ.

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”