ืžื” ื–ื” GitOps?

ื”ืขืจื”. ืชืจื’ื•ื: ืœืื—ืจ ืคืจืกื•ื ืื—ืจื•ืŸ ื—ื•ืžืจ ืœื’ื‘ื™ ืฉื™ื˜ื•ืช ืžืฉื™ื›ื” ื•ื“ื—ื™ืคื” ื‘-GitOps, ืจืื™ื ื• ืขื ื™ื™ืŸ ื‘ืžื•ื“ืœ ื”ื–ื” ื‘ืื•ืคืŸ ื›ืœืœื™, ืื‘ืœ ื”ื™ื• ืžืขื˜ ืžืื•ื“ ืคืจืกื•ืžื™ื ื‘ืฉืคื” ื”ืจื•ืกื™ืช ื‘ื ื•ืฉื ื–ื” (ืคืฉื•ื˜ ืื™ืŸ ื›ืืœื” ืขืœ Habrรฉ). ืœื›ืŸ, ืื ื• ืฉืžื—ื™ื ืœื”ืฆื™ืข ืœืชืฉื•ืžืช ืœื‘ื›ื ืชืจื’ื•ื ืฉืœ ืžืืžืจ ืื—ืจ - ืื ื›ื™ ืœืคื ื™ ื›ืžืขื˜ ืฉื ื”! - ืž-Weaveworks, ืฉืจืืฉื” ื˜ื‘ืข ืืช ื”ืžื•ื ื— "GitOps". ื”ื˜ืงืกื˜ ืžืกื‘ื™ืจ ืืช ืžื”ื•ืช ื”ื’ื™ืฉื” ื•ืืช ื”ื”ื‘ื“ืœื™ื ื”ืขื™ืงืจื™ื™ื ืžื”ืงื™ื™ืžื™ื.

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

ื”ืžืืžืจ ื”ืชื‘ืจืจ ื›ืคื•ืคื•ืœืจื™. ืื ืฉื™ื ืื—ืจื™ื ื”ืชื—ื™ืœื• ืœื“ื‘ืจ ืขืœ GitOps ื•ื”ื—ืœื• ืœืคืจืกื ื›ืœื™ื ื—ื“ืฉื™ื ืขื‘ื•ืจ ื“ื—ื™ืคืช ื’ื™ื˜, ืคื™ืชื•ื—, ืกื•ื“ื•ืช, ืคื•ื ืงืฆื™ื•ืช, ืื™ื ื˜ื’ืจืฆื™ื” ืžืชืžืฉื›ืช ื•ื›ื•ืœื™. ื”ื•ืคื™ืข ื‘ืืชืจ ืฉืœื ื• ืžืกืคืจ ื’ื“ื•ืœ ืคืจืกื•ืžื™ื ื•ืžืงืจื™ ืฉื™ืžื•ืฉ ื‘-GitOps. ืื‘ืœ ืœื—ืœืง ืžื”ืื ืฉื™ื ืขื“ื™ื™ืŸ ื™ืฉ ืฉืืœื•ืช. ื‘ืžื” ื”ื“ื’ื ืฉื•ื ื” ืžื”ืžืกื•ืจืชื™? ืชืฉืชื™ืช ื›ืงื•ื“ ื•ืืกืคืงื” โ€‹โ€‹ืจืฆื™ืคื” (ืžืฉืœื•ื— ืจืฆื™ืฃ)? ื”ืื ื™ืฉ ืฆื•ืจืš ืœื”ืฉืชืžืฉ ื‘- Kubernetes?

ืขื“ ืžื”ืจื” ื”ื‘ื ื• ืฉื™ืฉ ืฆื•ืจืš ื‘ืชื™ืื•ืจ ื—ื“ืฉ ื”ืžืฆื™ืข:

  1. ืžืกืคืจ ืจื‘ ืฉืœ ื“ื•ื’ืžืื•ืช ื•ืกื™ืคื•ืจื™ื;
  2. ื”ื’ื“ืจื” ืกืคืฆื™ืคื™ืช ืฉืœ GitOps;
  3. ื”ืฉื•ื•ืื” ืœืืกืคืงื” โ€‹โ€‹ืจืฆื™ืคื” ืžืกื•ืจืชื™ืช.

ื‘ืžืืžืจ ื–ื” ื ื™ืกื™ื ื• ืœื›ืกื•ืช ืืช ื›ืœ ื”ื ื•ืฉืื™ื ื”ืœืœื•. ื”ื•ื ืžืกืคืง ืžื‘ื•ื ืžืขื•ื“ื›ืŸ ืœ-GitOps ื•ื ืงื•ื“ืช ืžื‘ื˜ ืฉืœ ืžืคืชื—ื™ื ื•-CI/CD. ืื ื• ืžืชืžืงื“ื™ื ื‘ืขื™ืงืจ ื‘- Kubernetes, ืื ื›ื™ ื ื™ืชืŸ ืœื”ื›ืœื™ืœ ืืช ื”ืžื•ื“ืœ.

ื”ื›ื™ืจื• ืืช GitOps

ื“ืžื™ื™ื ื• ืืช ืืœื™ืก. ื”ื™ื ืžื ื”ืœืช ืืช Family Insurance, ืฉืžืฆื™ืขื” ื‘ื™ื˜ื•ื— ื‘ืจื™ืื•ืช, ืจื›ื‘, ื“ื™ืจื” ื•ื ืกื™ืขื•ืช ืœืื ืฉื™ื ืฉืขืกื•ืงื™ื ืžื›ื“ื™ ืœื”ื‘ื™ืŸ ื‘ืขืฆืžื ืืช ื”ืคืจื˜ื™ื ื”ืงื˜ื ื™ื ืฉืœ ื—ื•ื–ื™ื. ื”ืขืกืง ืฉืœื” ื”ืชื—ื™ืœ ื›ืคืจื•ื™ืงื˜ ืฆื“ื“ื™ ื›ืืฉืจ ืืœื™ืก ืขื‘ื“ื” ื‘ื‘ื ืง ื›ืžื“ืขืŸ ื ืชื•ื ื™ื. ื™ื•ื ืื—ื“ ื”ื™ื ื”ื‘ื™ื ื” ืฉื”ื™ื ื™ื›ื•ืœื” ืœื”ืฉืชืžืฉ ื‘ืืœื’ื•ืจื™ืชืžื™ื ืžืžื•ื—ืฉื‘ื™ื ืžืชืงื“ืžื™ื ื›ื“ื™ ืœื ืชื— ื ืชื•ื ื™ื ื‘ืฆื•ืจื” ื™ืขื™ืœื” ื™ื•ืชืจ ื•ืœื’ื‘ืฉ ื—ื‘ื™ืœื•ืช ื‘ื™ื˜ื•ื—. ื”ืžืฉืงื™ืขื™ื ืžื™ืžื ื• ืืช ื”ืคืจื•ื™ืงื˜, ื•ื›ืขืช ื”ื—ื‘ืจื” ืฉืœื” ืžื›ื ื™ืกื” ื™ื•ืชืจ ืž-20 ืžื™ืœื™ื•ืŸ ื“ื•ืœืจ ื‘ืฉื ื” ื•ืฆื•ืžื—ืช ื‘ืžื”ื™ืจื•ืช. ื›ื™ื•ื ื”ื™ื ืžืขืกื™ืงื” 180 ืขื•ื‘ื“ื™ื ื‘ืชืคืงื™ื“ื™ื ืฉื•ื ื™ื. ื–ื” ื›ื•ืœืœ ืฆื•ื•ืช ื˜ื›ื ื•ืœื•ื’ื™ ืฉืžืคืชื—, ืžืชื—ื–ืง ืืช ื”ืืชืจ, ืžืกื“ ื”ื ืชื•ื ื™ื ื•ืžื ืชื— ืืช ื‘ืกื™ืก ื”ืœืงื•ื—ื•ืช. ืืช ื”ืฆื•ื•ืช ื”ืžื•ื ื” 60 ืื ืฉื™ื ืžื•ื‘ื™ืœ ื‘ื•ื‘, ื”ืžื ื”ืœ ื”ื˜ื›ื ื™ ืฉืœ ื”ื—ื‘ืจื”.

ื”ืฆื•ื•ืช ืฉืœ ื‘ื•ื‘ ืคื•ืจืก ืžืขืจื›ื•ืช ื™ื™ืฆื•ืจ ื‘ืขื ืŸ. ื™ื™ืฉื•ืžื™ ื”ืœื™ื‘ื” ืฉืœื”ื ืคื•ืขืœื™ื ืขืœ GKE, ืชื•ืš ื ื™ืฆื•ืœ ื”ื™ืชืจื•ืŸ ืฉืœ Kubernetes ื‘-Google Cloud. ื‘ื ื•ืกืฃ, ื”ื ืžืฉืชืžืฉื™ื ื‘ื›ืœื™ ื ืชื•ื ื™ื ื•ื ื™ืชื•ื— ืฉื•ื ื™ื ื‘ืขื‘ื•ื“ืชื.

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

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

ื•ืื– ื”ื ืœืžื“ื• ืขืœ GitOps. ื”ื”ื—ืœื˜ื” ื”ื–ื• ื”ืชื‘ืจืจื” ื‘ื“ื™ื•ืง ืžื” ืฉื”ื ืฆืจื™ื›ื™ื ื›ื“ื™ ืœื”ืชืงื“ื ื‘ื‘ื™ื˜ื—ื•ืŸ.

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

ื‘ื™ื˜ื•ื— ื”ืžืฉืคื—ื” ืžื—ืœื™ื˜ ืœื™ื™ืฉื ืืช GitOps. ืœื—ื‘ืจื” ื™ืฉ ื›ืขืช ืžื•ื“ืœ ืชืคืขื•ืœ ืื•ื˜ื•ืžื˜ื™ ื”ืชื•ืื ืขื Kubernetes ื•ืžืฉืœื‘ื™ื ืžื”ื™ืจื•ืช ืขื ื™ึทืฆึดื™ื‘ื•ึผืชื‘ื’ืœืœ ืฉื”ื:

  • ื’ื™ืœื” ืฉื”ืชืคื•ืงื” ืฉืœ ื”ืฆื•ื•ืช ื”ื•ื›ืคืœื” ืžื‘ืœื™ ืฉืืฃ ืื—ื“ ื™ืฉืชื’ืข;
  • ื”ืคืกื™ืง ืœื”ื’ื™ืฉ ืกืงืจื™ืคื˜ื™ื. ื‘ืžืงื•ื ื–ืืช, ื”ื ื™ื›ื•ืœื™ื ื›ืขืช ืœื”ืชืžืงื“ ื‘ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช ื•ืœืฉืคืจ ืฉื™ื˜ื•ืช ื”ื ื“ืกื™ื•ืช - ืœืžืฉืœ, ื”ืฆื’ืช ื”ืฉืงื•ืช ืงื ืจื™ื•ืช ื•ืฉื™ืคื•ืจ ื”ื‘ื“ื™ืงื•ืช;
  • ืฉื™ืคืจื ื• ืืช ืชื”ืœื™ืš ื”ืคืจื™ืกื” ื›ืš ืฉื”ื•ื ืžืชืงืœืงืœ ืœืขืชื™ื ื ื“ื™ืจื•ืช;
  • ืงื™ื‘ืœ ืืช ื”ื”ื–ื“ืžื ื•ืช ืœืฉื—ื–ืจ ืคืจื™ืกื•ืช ืœืื—ืจ ื›ืฉืœื™ื ื—ืœืงื™ื™ื ืœืœื ื”ืชืขืจื‘ื•ืช ื™ื“ื ื™ืช;
  • ื ืจื›ืฉ ืžืฉื•ืžืฉะพืืžื•ืŸ ืจื‘ ื™ื•ืชืจ ื‘ืžืขืจื›ื•ืช ืžืกื™ืจื”. ืืœื™ืก ื•ื‘ื•ื‘ ื’ื™ืœื• ืฉื”ื ื™ื›ื•ืœื™ื ืœืคืฆืœ ืืช ื”ืฆื•ื•ืช ืœืฆื•ื•ืชื™ ืžื™ืงืจื•-ืฉื™ืจื•ืช ื”ืคื•ืขืœื™ื ื‘ืžืงื‘ื™ืœ;
  • ื™ื›ื•ืœ ืœื‘ืฆืข 30-50 ืฉื™ื ื•ื™ื™ื ื‘ืคืจื•ื™ืงื˜ ื‘ื›ืœ ื™ื•ื ื‘ืืžืฆืขื•ืช ื”ืžืืžืฆื™ื ืฉืœ ื›ืœ ืงื‘ื•ืฆื” ื•ืœื ืกื•ืช ื˜ื›ื ื™ืงื•ืช ื—ื“ืฉื•ืช;
  • ืงืœ ืœืžืฉื•ืš ืžืคืชื—ื™ื ื—ื“ืฉื™ื ืœืคืจื•ื™ืงื˜, ืฉื™ืฉ ืœื”ื ื”ื–ื“ืžื ื•ืช ืœื”ืคื™ืฅ ืขื“ื›ื•ื ื™ื ืœื™ื™ืฆื•ืจ ื‘ืืžืฆืขื•ืช ื‘ืงืฉื•ืช ืžืฉื™ื›ื” ื‘ืชื•ืš ื›ืžื” ืฉืขื•ืช;
  • ืœืขื‘ื•ืจ ื‘ื™ืงื•ืจืช ื‘ืงืœื•ืช ื‘ืžืกื’ืจืช SOC2 (ืœืขืžื™ื“ื” ืฉืœ ืกืคืงื™ ืฉื™ืจื•ืชื™ื ื‘ื“ืจื™ืฉื•ืช ืœื ื™ื”ื•ืœ ื ืชื•ื ื™ื ืžืื•ื‘ื˜ื—; ืงืจื ืขื•ื“, ืœืžืฉืœ, ื›ืืŸ - ืžืฉื•ืขืจ. ืชืจื’ื•ื).

ืžื” ืงืจื”?

GitOps ื–ื” ืฉื ื™ ื“ื‘ืจื™ื:

  1. ืžื•ื“ืœ ืชืคืขื•ืœื™ ืขื‘ื•ืจ Kubernetes ื•ืžืงื•ืจื™ ืขื ืŸ. ื”ื•ื ืžืกืคืง ืงื‘ื•ืฆื” ืฉืœ ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืœืคืจื™ืกื”, ื ื™ื”ื•ืœ ื•ื ื™ื˜ื•ืจ ืืฉื›ื•ืœื•ืช ื•ื™ื™ืฉื•ืžื™ื ืžื›ื•ืœื™ื. ื”ื’ื“ืจื” ืืœื’ื ื˜ื™ืช ื‘ืฆื•ืจื” ืžื’ืœืฉื” ืื—ืช ืž ืœื•ืื™ืก ืคืืกื™ื™ืจื”:
  2. ื”ื“ืจืš ืœื™ืฆื™ืจืช ืกื‘ื™ื‘ืช ื ื™ื”ื•ืœ ื™ื™ืฉื•ืžื™ื ื”ืžืžื•ืงื“ืช ื‘ืžืคืชื—ื™ื. ืื ื• ืžื™ื™ืฉืžื™ื ืืช ื–ืจื™ืžืช ื”ืขื‘ื•ื“ื” ืฉืœ Git ื”ืŸ ื‘ืชืคืขื•ืœ ื•ื”ืŸ ื‘ืคื™ืชื•ื—. ืฉื™ืžื• ืœื‘ ืฉื–ื” ืœื ืจืง ืขืœ Git push, ืืœื ืขืœ ืืจื’ื•ืŸ ื›ืœ ื”ืกื˜ ืฉืœ ื›ืœื™ CI/CD ื•-UI/UX.

ื›ืžื” ืžื™ืœื™ื ืขืœ Git

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

ืื™ืš Kubernetes ืขื•ื‘ื“

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

ืžื” Kubernetes ื ื•ืชืŸ ืœืžืฉืชืžืฉื™ื?

ืœื”ืœืŸ ื›ืžื” ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช:

  1. ื‘ืžื•ื“ืœ Kubernetes ื ื™ืชืŸ ืœืชืืจ ื”ื›ืœ ื‘ืฆื•ืจื” ื”ืฆื”ืจืชื™ืช.
  2. ืฉืจืช ื”-API ืฉืœ Kubernetes ืœื•ืงื— ืืช ื”ื”ืฆื”ืจื” ื”ื–ื• ื›ืงืœื˜ ื•ืœืื—ืจ ืžื›ืŸ ืžื ืกื” ืœืœื ื”ืจืฃ ืœื”ื‘ื™ื ืืช ื”ืืฉื›ื•ืœ ืœืžืฆื‘ ื”ืžืชื•ืืจ ื‘ื”ืฆื”ืจื”.
  3. ื“ื™ ื‘ื”ืฆื”ืจื•ืช ื›ื“ื™ ืœืชืืจ ื•ืœื ื”ืœ ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืขื•ืžืกื™ ืขื‘ื•ื“ื” - "ื™ื™ืฉื•ืžื™ื".
  4. ื›ืชื•ืฆืื” ืžื›ืš, ืฉื™ื ื•ื™ื™ื ื‘ืืคืœื™ืงืฆื™ื” ื•ื‘ืืฉื›ื•ืœ ืžืชืจื—ืฉื™ื ืขืงื‘:
    • ืฉื™ื ื•ื™ื™ื ื‘ืชืžื•ื ื•ืช ืžื™ื›ืœ;
    • ืฉื™ื ื•ื™ื™ื ื‘ืžืคืจื˜ ื”ื”ืฆื”ืจืชื™;
    • ืฉื’ื™ืื•ืช ื‘ืกื‘ื™ื‘ื” - ืœืžืฉืœ ืงืจื™ืกื•ืช ืงื•ื ื˜ื™ื™ื ืจ.

ื™ื›ื•ืœื•ืช ื”ื”ืชื›ื ืกื•ืช ื”ื’ื“ื•ืœื•ืช ืฉืœ Kubernetes

ื›ืืฉืจ ืžื ื”ืœ ืžืขืจื›ืช ืžื‘ืฆืข ืฉื™ื ื•ื™ื™ื ื‘ืชืฆื•ืจื”, ืžืชื–ืžืจ Kubernetes ื™ื—ื™ืœ ืื•ืชื ืขืœ ื”ืืฉื›ื•ืœ ื›ืœ ืขื•ื“ ื”ืžืฆื‘ ืฉืœื• ืœื ื™ืชืงืจื‘ ืœืชืฆื•ืจื” ื”ื—ื“ืฉื”. ืžื•ื“ืœ ื–ื” ืขื•ื‘ื“ ืขื‘ื•ืจ ื›ืœ ืžืฉืื‘ Kubernetes ื•ื ื™ืชืŸ ืœื”ืจื—ื‘ื” ืขื ื”ื’ื“ืจื•ืช ืžืฉืื‘ื™ื ืžื•ืชืืžื•ืช ืื™ืฉื™ืช (CRDs). ืœื›ืŸ, ืœืคืจื™ืกื•ืช Kubernetes ื™ืฉ ืืช ื”ืžืืคื™ื™ื ื™ื ื”ื ืคืœืื™ื ื”ื‘ืื™ื:

  • ืื•ื˜ื•ืžืฆื™ื”: ืขื“ื›ื•ื ื™ Kubernetes ืžืกืคืงื™ื ืžื ื’ื ื•ืŸ ืœืื•ื˜ื•ืžื˜ื™ ืฉืœ ืชื”ืœื™ืš ื”ื—ืœืช ืฉื™ื ื•ื™ื™ื ื‘ื—ืŸ ื•ื‘ื–ืžืŸ.
  • ื”ึดืชื›ึผึทื ึฐืกื•ึผืช: Kubernetes ื™ืžืฉื™ืš ืœื ืกื•ืช ืขื“ื›ื•ื ื™ื ืขื“ ืฉืชืฆืœื™ื—.
  • ืื™ื“ืžื•ื ื˜ื™ื•ืช: ื™ื™ืฉื•ืžื™ื ื—ื•ื–ืจื™ื ื•ื ืฉื ื™ื ืฉืœ ื”ืชื›ื ืกื•ืช ืžื•ื‘ื™ืœื™ื ืœืื•ืชื” ืชื•ืฆืื”.
  • ื“ื˜ืจืžื™ื ื™ื–ื: ื›ืืฉืจ ื”ืžืฉืื‘ื™ื ืžืกืคื™ืงื™ื, ื”ืžืฆื‘ ืฉืœ ื”ืืฉื›ื•ืœ ื”ืžืขื•ื“ื›ืŸ ืชืœื•ื™ ืจืง ื‘ืžืฆื‘ ื”ืจืฆื•ื™.

ืื™ืš GitOps ืขื•ื‘ื“

ืœืžื“ื ื• ืžืกืคื™ืง ืขืœ Kubernetes ื›ื“ื™ ืœื”ืกื‘ื™ืจ ืื™ืš GitOps ืขื•ื‘ื“.

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

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

1. ืชื”ืœื™ืš ืขื‘ื•ื“ื”: "ื’'ื ืงื™ื ืก ืœื‘ื ื•ืช - ืกื ื™ืฃ ืžืืกื˜ืจ".
ืจืฉื™ืžืช ืžื˜ืœื•ืช:

  • ื’'ื ืงื™ื ืก ื“ื•ื—ืฃ ืชืžื•ื ื•ืช ืžืชื•ื™ื’ื•ืช ืœ- Quay;
  • ื’'ื ืงื™ื ืก ื“ื•ื—ืฃ ืชืจืฉื™ืžื™ ื”ื’ื“ืจื•ืช ื•-Helm ืœื“ืœื™ ื”ืื—ืกื•ืŸ ื”ืจืืฉื™;
  • ืคื•ื ืงืฆื™ื™ืช ื”ืขื ืŸ ืžืขืชื™ืงื” ืืช ื”ืชืฆื•ืจื” ื•ื”ืชืจืฉื™ืžื™ื ืžื“ืœื™ ื”ืื—ืกื•ืŸ ื”ืจืืฉื™ ืœืžืื’ืจ Git ื”ืจืืฉื™;
  • ื”ืื•ืคืจื˜ื•ืจ GitOps ืžืขื“ื›ืŸ ืืช ื”ืืฉื›ื•ืœ.

2. Jenkins build - ืกื ื™ืฃ ืฉื—ืจื•ืจ ืื• ืชื™ืงื•ืŸ ื—ื:

  • ื’'ื ืงื™ื ืก ื“ื•ื—ืฃ ืชืžื•ื ื•ืช ืœื ืžืชื•ื™ื’ื•ืช ืœืงื•ื•ืื™;
  • ื’'ื ืงื™ื ืก ื“ื•ื—ืฃ ืชืจืฉื™ืžื™ ื”ื’ื“ืจื•ืช ื•-Helm ืœื“ืœื™ ื”ืื—ืกื•ืŸ;
  • ืคื•ื ืงืฆื™ื™ืช ื”ืขื ืŸ ืžืขืชื™ืงื” ืืช ื”ืชืฆื•ืจื” ื•ื”ืชืจืฉื™ืžื™ื ืžื“ืœื™ ืื—ืกื•ืŸ ื”-Staging ืืœ ืžืื’ืจ Git ื”-Staging;
  • ื”ืื•ืคืจื˜ื•ืจ GitOps ืžืขื“ื›ืŸ ืืช ื”ืืฉื›ื•ืœ.

3. ื’'ื ืงื™ื ืก ืœื‘ื ื•ืช - ืœืคืชื— ืื• ืœื”ื’ื“ื™ืจ ืขื ืฃ:

  • ื’'ื ืงื™ื ืก ื“ื•ื—ืฃ ืชืžื•ื ื•ืช ืœื ืžืชื•ื™ื’ื•ืช ืœืงื•ื•ืื™;
  • ื’'ื ืงื™ื ืก ื“ื•ื—ืฃ ืชืจืฉื™ืžื™ ื”ื’ื“ืจื•ืช ื•-Helm ืœืชื•ืš ื“ืœื™ ืื—ืกื•ืŸ ื”ืคื™ืชื•ื—;
  • ืคื•ื ืงืฆื™ื™ืช ื”ืขื ืŸ ืžืขืชื™ืงื” ืืช ื”ืชืฆื•ืจื” ื•ื”ืชืจืฉื™ืžื™ื ืžื“ืœื™ ื”ืื—ืกื•ืŸ ืฉืœ ืคื™ืชื•ื— ืœืžืื’ืจ Git ืฉืœ ืคื™ืชื•ื—;
  • ื”ืื•ืคืจื˜ื•ืจ GitOps ืžืขื“ื›ืŸ ืืช ื”ืืฉื›ื•ืœ.

4. ื”ื•ืกืคืช ืœืงื•ื— ื—ื“ืฉ:

  • ื”ืžื ื”ืœ ืื• ื”ืžื ื”ืœ (LCM/ops) ืงื•ืจื ืœ- Gradle ืœืคืจื•ืก ื•ืœื”ื’ื“ื™ืจ ืชื—ื™ืœื” ืžืื–ื ื™ ืขื•ืžืกื™ื ื‘ืจืฉืช (NLBs);
  • LCM/ops ืžื‘ืฆืข ืชืฆื•ืจื” ื—ื“ืฉื” ื›ื“ื™ ืœื”ื›ื™ืŸ ืืช ื”ืคืจื™ืกื” ืœืขื“ื›ื•ื ื™ื;
  • ื”ืื•ืคืจื˜ื•ืจ GitOps ืžืขื“ื›ืŸ ืืช ื”ืืฉื›ื•ืœ.

ืชื™ืื•ืจ ืงืฆืจ ืฉืœ GitOps

  1. ืชืืจ ืืช ื”ืžืฆื‘ ื”ืจืฆื•ื™ ืฉืœ ื”ืžืขืจื›ืช ื›ื•ืœื” ื‘ืืžืฆืขื•ืช ืžืคืจื˜ื™ื ื”ืฆื”ืจืชื™ื™ื ืœื›ืœ ืกื‘ื™ื‘ื” (ื‘ืกื™ืคื•ืจ ืฉืœื ื•, ื”ืฆื•ื•ืช ืฉืœ ื‘ื•ื‘ ืžื’ื“ื™ืจ ืืช ื›ืœ ืชืฆื•ืจืช ื”ืžืขืจื›ืช ื‘-Git).
    • ืžืื’ืจ Git ื”ื•ื ืžืงื•ืจ ื”ืืžืช ื”ื™ื—ื™ื“ ืœื’ื‘ื™ ื”ืžืฆื‘ ื”ืจืฆื•ื™ ืฉืœ ื”ืžืขืจื›ืช ื›ื•ืœื”.
    • ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ื‘ืžืฆื‘ ื”ืจืฆื•ื™ ืžืชื‘ืฆืขื™ื ื‘ืืžืฆืขื•ืช commits ื‘-Git.
    • ื›ืœ ืคืจืžื˜ืจื™ ื”ืืฉื›ื•ืœ ื”ืจืฆื•ื™ื™ื ื ื™ืชื ื™ื ืœืฆืคื™ื™ื” ื’ื ื‘ืืฉื›ื•ืœ ืขืฆืžื•. ื‘ื“ืจืš ื–ื• ื ื•ื›ืœ ืœืงื‘ื•ืข ืื ื”ื ื—ื•ืคืคื™ื (ืžืชื›ื ืกื™ื, ืœึฐื”ึดืชึฐื›ึผึทื ึตืก) ืื• ืœื”ื‘ื“ื™ืœ (ืœื”ืชืคืฆืœ, ืœึดืกึฐื˜ื•ึนืช) ืžืฆื‘ื™ื ืจืฆื•ื™ื™ื ื•ื ืฆืคื•ื™ื.
  2. ืื ื”ืžืฆื‘ื™ื ื”ืจืฆื•ื™ื™ื ื•ื”ื ืฆืคื™ื ืฉื•ื ื™ื, ืื–:
    • ืงื™ื™ื ืžื ื’ื ื•ืŸ ื”ืชื›ื ืกื•ืช ืฉื‘ืžื•ืงื“ื ืื• ื‘ืžืื•ื—ืจ ืžืกื ื›ืจืŸ ืื•ื˜ื•ืžื˜ื™ืช ืืช ื”ื™ืขื“ ื•ื”ืžืฆื‘ื™ื ื”ื ืฆืคื™ื. ื‘ืชื•ืš ื”ืืฉื›ื•ืœ, Kubernetes ืขื•ืฉื” ื–ืืช.
    • ื”ืชื”ืœื™ืš ืžืชื—ื™ืœ ืžื™ื“ ืขื ื”ืชืจืืช "ืชื‘ืฆืข ืฉื™ื ื•ื™".
    • ืœืื—ืจ ืคืจืง ื–ืžืŸ ืžืกื•ื™ื ืฉื ื™ืชืŸ ืœื”ื’ื“ืจื”, ื ื™ืชืŸ ืœืฉืœื•ื— ื”ืชืจืื” "ื”ื‘ื“ืœ" ืื ื”ืžืฆื‘ื™ื ืฉื•ื ื™ื.
  3. ื‘ื“ืจืš ื–ื•, ื›ืœ ื”ื”ืชื—ื™ื™ื‘ื•ื™ื•ืช ื‘-Git ื’ื•ืจืžื•ืช ืœืขื“ื›ื•ื ื™ื ื ื™ืชื ื™ื ืœืื™ืžื•ืช ื•ื—ืกืจื™ ื›ื•ื— ืœืืฉื›ื•ืœ.
    • ื”ื—ื–ืจื” ืœืื—ื•ืจ ื”ื™ื ื”ืชื›ื ืกื•ืช ืœืžืฆื‘ ืจืฆื•ื™ ื‘ืขื‘ืจ.
  4. ื”ื”ืชื›ื ืกื•ืช ื”ื™ื ืกื•ืคื™ืช. ื”ืชืจื—ืฉื•ืชื• ืžืกื•ืžื ืช ืขืœ ื™ื“ื™:
    • ืื™ืŸ ื”ืชืจืื•ืช ืขืœ ื”ื‘ื“ืœ ืœืคืจืง ื–ืžืŸ ืžืกื•ื™ื.
    • ื”ืชืจืื” "ืžืชื›ื ืกืช" (ืœืžืฉืœ webhook, ืื™ืจื•ืข ื›ืชื™ื‘ื” ืฉืœ Git).

ืžื”ื™ ืกื˜ื™ื™ื”?

ื‘ื•ืื• ื ื—ื–ื•ืจ ืฉื•ื‘: ื›ืœ ืžืืคื™ื™ื ื™ ื”ืืฉื›ื•ืœ ื”ืจืฆื•ื™ื™ื ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ื ื™ืชื ื™ื ืœืฆืคื™ื™ื” ื‘ืืฉื›ื•ืœ ืขืฆืžื•.

ื›ืžื” ื“ื•ื’ืžืื•ืช ืœืกื˜ื™ื™ื”:

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

ืžื”ื• ืžื ื’ื ื•ืŸ ื”ื”ืชื›ื ืกื•ืช?

ื”ื ื” ื›ืžื” ื“ื•ื’ืžืื•ืช:

  • ืขื‘ื•ืจ ืžื›ื•ืœื•ืช ื•ืืฉื›ื•ืœื•ืช, ืžื ื’ื ื•ืŸ ื”ื”ืชื›ื ืกื•ืช ืžืกื•ืคืง ืขืœ ื™ื“ื™ Kubernetes.
  • ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืื•ืชื• ืžื ื’ื ื•ืŸ ืœื ื™ื”ื•ืœ ื™ื™ืฉื•ืžื™ื ื•ืขื™ืฆื•ื‘ื™ื ืžื‘ื•ืกืกื™ Kubernetes (ื›ื’ื•ืŸ Istio ื•-Kubeflow).
  • ืžื ื’ื ื•ืŸ ืœื ื™ื”ื•ืœ ื”ืื™ื ื˜ืจืืงืฆื™ื” ื”ืชืคืขื•ืœื™ืช ื‘ื™ืŸ Kubernetes, ืžืื’ืจื™ ืชืžื•ื ื•ืช ื•-Git ืžืกืคืง ืžืคืขื™ืœ GitOps Weave Flux, ืฉื”ื•ื ื—ืœืง Weave Cloud.
  • ืขื‘ื•ืจ ืžื›ื•ื ื•ืช ื‘ืกื™ืก, ืžื ื’ื ื•ืŸ ื”ื”ืชื›ื ืกื•ืช ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื”ืฆื”ืจืชื™ ื•ืื•ื˜ื•ื ื•ืžื™. ืžื”ื ื™ืกื™ื•ืŸ ืฉืœื ื• ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื•ืžืจ ื–ืืช Terraform ื”ื›ื™ ืงืจื•ื‘ ืœื”ื’ื“ืจื” ื–ื•, ืื‘ืœ ืขื“ื™ื™ืŸ ื“ื•ืจืฉ ืฉืœื™ื˜ื” ืื ื•ืฉื™ืช. ื‘ืžื•ื‘ืŸ ื–ื”, GitOps ืžืจื—ื™ื‘ื” ืืช ืžืกื•ืจืช ื”ืชืฉืชื™ืช ื›ืงื•ื“.

GitOps ืžืฉืœื‘ ืืช Git ืขื ืžื ื•ืข ื”ื”ืชื›ื ืกื•ืช ื”ืžืฆื•ื™ืŸ ืฉืœ Kubernetes ื›ื“ื™ ืœืกืคืง ืžื•ื“ืœ ืœื ื™ืฆื•ืœ.

GitOps ืžืืคืฉืจ ืœื ื• ืœื•ืžืจ: ืจืง ืื•ืชืŸ ืžืขืจื›ื•ืช ืฉื ื™ืชืŸ ืœืชืืจ ื•ืœื”ืชื‘ื•ื ืŸ ื‘ื”ืŸ ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ื•ื‘ืงืจื”.

GitOps ืžื™ื•ืขื“ ืœื›ืœ ืžื—ืกื ื™ืช ื”ืžืงื•ืจ ืฉืœ ื”ืขื ืŸ (ืœื“ื•ื’ืžื”, Terraform ื•ื›ื•')

GitOps ื–ื” ืœื ืจืง Kubernetes. ืื ื—ื ื• ืจื•ืฆื™ื ืฉื”ืžืขืจื›ืช ื›ื•ืœื” ืชื”ื™ื” ืžื•ื ืขืช ื‘ืื•ืคืŸ ื”ืฆื”ืจืชื™ ื•ืชืฉืชืžืฉ ื‘ื”ืชื›ื ืกื•ืช. ื‘ืžืขืจื›ืช ื›ื•ืœื” ืื ื• ืžืชื›ื•ื•ื ื™ื ืœืื•ืกืฃ ืฉืœ ืกื‘ื™ื‘ื•ืช ืฉืขื•ื‘ื“ื•ืช ืขื Kubernetes - ืœืžืฉืœ, "ืืฉื›ื•ืœ ืžืคืชื— 1", "ื™ื™ืฆื•ืจ" ื•ื›ื•'. ื›ืœ ืกื‘ื™ื‘ื” ื›ื•ืœืœืช ืžื›ื•ื ื•ืช, ืืฉื›ื•ืœื•ืช, ื™ื™ืฉื•ืžื™ื, ื•ื›ืŸ ืžืžืฉืงื™ื ืœืฉื™ืจื•ืชื™ื ื—ื™ืฆื•ื ื™ื™ื ื”ืžืกืคืงื™ื ื ืชื•ื ื™ื, ื ื™ื˜ื•ืจ ื•ื›ื•'.

ืฉื™ืžื• ืœื‘ ื›ืžื” ื—ืฉื•ื‘ื” Terraform ืœื‘ืขื™ื™ืช ื”-bootstrapping ื‘ืžืงืจื” ื–ื”. ื™ืฉ ืœืคืจื•ืก ืืช Kubernetes ืื™ืคืฉื”ื•, ื•ืฉื™ืžื•ืฉ ื‘- Terraform ืื•ืžืจ ืฉื ื•ื›ืœ ืœื”ื—ื™ืœ ืืช ืื•ืชืŸ ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ GitOps ื›ื“ื™ ืœื™ืฆื•ืจ ืืช ืฉื›ื‘ืช ื”ื‘ืงืจื” ืฉืขื•ืžื“ืช ื‘ื‘ืกื™ืก Kubernetes ื•ื™ื™ืฉื•ืžื™ื. ื–ื•ื”ื™ ืฉื™ื˜ื” ืžื•ืžืœืฆืช ืฉื™ืžื•ืฉื™ืช.

ื™ืฉ ื”ืชืžืงื“ื•ืช ื—ื–ืงื” ื‘ื™ื™ืฉื•ื ืžื•ืฉื’ื™ GitOps ืขืœ ืฉื›ื‘ื•ืช ืขืœ ื’ื‘ื™ Kubernetes. ื›ืจื’ืข ืงื™ื™ืžื™ื ืคืชืจื•ื ื•ืช ืžืกื•ื’ GitOps ืขื‘ื•ืจ Istio, Helm, Ksonnet, OpenFaaS ื•-Kubeflow, ื•ื›ืŸ ืœืžืฉืœ ืขื‘ื•ืจ Pulumi ืฉื™ื•ืฆืจื™ื ืฉื›ื‘ื” ืœืคื™ืชื•ื— ืืคืœื™ืงืฆื™ื•ืช ืœ-Cloud Native.

Kubernetes CI/CD: ื”ืฉื•ื•ืืช GitOps ืขื ื’ื™ืฉื•ืช ืื—ืจื•ืช

ื›ืืžื•ืจ, GitOps ื–ื” ืฉื ื™ ื“ื‘ืจื™ื:

  1. ืžื•ื“ืœ ื”ื”ืคืขืœื” ืฉืœ Kubernetes ื•ืžืงื•ืจื™ ืขื ืŸ ืฉืชื•ืืจ ืœืขื™ืœ.
  2. ื”ื“ืจืš ืœืกื‘ื™ื‘ืช ื ื™ื”ื•ืœ ื™ื™ืฉื•ืžื™ื ื”ืžืžื•ืงื“ืช ื‘ืžืคืชื—ื™ื.

ืขื‘ื•ืจ ืจื‘ื™ื, GitOps ื”ื•ื ื‘ืขื™ืงืจ ื–ืจื™ืžืช ืขื‘ื•ื“ื” ื”ืžื‘ื•ืกืกืช ืขืœ ื“ื—ื™ืคื•ืช ืฉืœ Git. ื’ื ืื ื—ื ื• ืื•ื”ื‘ื™ื ืื•ืชื•. ืื‘ืœ ื–ื” ืœื ื”ื›ืœ: ื‘ื•ืื• ื ืกืชื›ืœ ื›ืขืช ืขืœ ืฆื™ื ื•ืจื•ืช CI/CD.

GitOps ืžืืคืฉืจ ืคืจื™ืกื” ืจืฆื™ืคื” (CD) ืขื‘ื•ืจ Kubernetes

GitOps ืžืฆื™ืขื” ืžื ื’ื ื•ืŸ ืคืจื™ืกื” ืจืฆื™ืคื” ืฉืžื‘ื˜ืœ ืืช ื”ืฆื•ืจืš ื‘"ืžืขืจื›ื•ืช ื ื™ื”ื•ืœ ืคืจื™ืกื”" ื ืคืจื“ื•ืช. Kubernetes ืขื•ืฉื” ืืช ื›ืœ ื”ืขื‘ื•ื“ื” ื‘ืฉื‘ื™ืœืš.

  • ืขื“ื›ื•ืŸ ื”ืืคืœื™ืงืฆื™ื” ื“ื•ืจืฉ ืขื“ื›ื•ืŸ ื‘-Git. ื–ื”ื• ืขื“ื›ื•ืŸ ืขืกืงื” ืœืžืฆื‘ ื”ืจืฆื•ื™. ืœืื—ืจ ืžื›ืŸ "ืคืจื™ืกื”" ืžืชื‘ืฆืขืช ื‘ืชื•ืš ื”ืืฉื›ื•ืœ ืขืœ ื™ื“ื™ Kubernetes ืขืฆืžื” ื‘ื”ืชื‘ืกืก ืขืœ ื”ืชื™ืื•ืจ ื”ืžืขื•ื“ื›ืŸ.
  • ื‘ืฉืœ ื”ืื•ืคื™ ืฉืœ ืื•ืคืŸ ื”ืคืขื•ืœื” ืฉืœ Kubernetes, ืขื“ื›ื•ื ื™ื ืืœื” ืžืชื›ื ืกื™ื. ื–ื” ืžืกืคืง ืžื ื’ื ื•ืŸ ืœืคืจื™ืกื” ืจืฆื™ืคื” ืฉื‘ื” ื›ืœ ื”ืขื“ื›ื•ื ื™ื ื”ื ืื˜ื•ืžื™ื™ื.
  • ื”ืขืจื”: Weave Cloud ืžืฆื™ืขื” ืื•ืคืจื˜ื•ืจ GitOps ื”ืžืฉืœื‘ ืืช Git ื•-Kubernetes ื•ืžืืคืฉืจ ื‘ื™ืฆื•ืข CD ืขืœ ื™ื“ื™ ื”ืชืืžื” ื‘ื™ืŸ ื”ืžืฆื‘ ื”ืจืฆื•ื™ ื•ื”ื ื•ื›ื—ื™ ืฉืœ ื”ืืฉื›ื•ืœ.

ื‘ืœื™ kubectl ื•ืชืกืจื™ื˜ื™ื

ืขืœื™ืš ืœื”ื™ืžื ืข ืžืฉื™ืžื•ืฉ ื‘-Kubectl ื›ื“ื™ ืœืขื“ื›ืŸ ืืช ื”ืืฉื›ื•ืœ ืฉืœืš, ื•ื‘ืžื™ื•ื—ื“ ืœื”ื™ืžื ืข ืžืฉื™ืžื•ืฉ ื‘ืกืงืจื™ืคื˜ื™ื ืœืงื™ื‘ื•ืฅ ืคืงื•ื“ื•ืช kubectl. ื‘ืžืงื•ื ื–ืืช, ืขื ืฆื™ื ื•ืจ GitOps, ืžืฉืชืžืฉ ื™ื›ื•ืœ ืœืขื“ื›ืŸ ืืช ืืฉื›ื•ืœ Kubernetes ืฉืœื• ื“ืจืš Git.

ื”ื”ื˜ื‘ื•ืช ื›ื•ืœืœื•ืช:

  1. ื™ืžื™ืŸ. ื ื™ืชืŸ ืœื™ื™ืฉื ืงื‘ื•ืฆื” ืฉืœ ืขื“ื›ื•ื ื™ื, ืœื”ืชื›ื ืก ื•ืœื‘ืกื•ืฃ ืœืืžืช, ื•ืœืงืจื‘ ืื•ืชื ื• ืœื™ืขื“ ืฉืœ ืคืจื™ืกื” ืื˜ื•ืžื™ืช. ืœืขื•ืžืช ื–ืืช, ืฉื™ืžื•ืฉ ื‘ืกืงืจื™ืคื˜ื™ื ืื™ื ื• ืžืกืคืง ื›ืœ ืขืจื•ื‘ื” ืœื”ืชื›ื ืกื•ืช (ืขื•ื“ ืขืœ ื›ืš ื‘ื”ืžืฉืš).
  2. ืื‘ื˜ื—ื”. ืžืฆื˜ื˜ Kelsey Hightower: "ื”ื’ื‘ืœืช ืืช ื”ื’ื™ืฉื” ืœืืฉื›ื•ืœ Kubernetes ืฉืœืš ืœื›ืœื™ ืื•ื˜ื•ืžืฆื™ื” ื•ืžื ื”ืœื™ ืžืขืจื›ืช ืฉืื—ืจืื™ื ืขืœ ืื™ืชื•ืจ ื‘ืื’ื™ื ืื• ืชื—ื–ื•ืงื” ืฉืœื•." ืจืื” ื’ื ื”ืคืจืกื•ื ืฉืœื™ ืœื’ื‘ื™ ื‘ื˜ื™ื—ื•ืช ื•ืขืžื™ื“ื” ื‘ืžืคืจื˜ื™ื ื˜ื›ื ื™ื™ื, ื›ืžื• ื’ื ืžืืžืจ ืขืœ ืคืจื™ืฆืช Homebrew ืขืœ ื™ื“ื™ ื’ื ื™ื‘ืช ืื™ืฉื•ืจื™ื ืžืชืกืจื™ื˜ ืฉืœ ื’'ื ืงื™ื ืก ืฉื ื›ืชื‘ ื‘ืจื™ืฉื•ืœ.
  3. ื—ื•ื•ื™ื™ืช ืžืฉืชืžืฉ. Kubectl ื—ื•ืฉืฃ ืืช ื”ืžื›ื ื™ืงื” ืฉืœ ืžื•ื“ืœ ื”ืื•ื‘ื™ื™ืงื˜ื™ื ืฉืœ Kubernetes, ืฉื”ื ื“ื™ ืžื•ืจื›ื‘ื™ื. ื‘ืื•ืคืŸ ืื™ื“ื™ืืœื™, ืžืฉืชืžืฉื™ื ืฆืจื™ื›ื™ื ืœืงื™ื™ื ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื”ืžืขืจื›ืช ื‘ืจืžืช ื”ืคืฉื˜ื” ื’ื‘ื•ื”ื” ื™ื•ืชืจ. ื›ืืŸ ืืชื™ื™ื—ืก ืฉื•ื‘ ืœืงืœืกื™ ื•ืืžืœื™ืฅ ืœืฆืคื•ืช ืงื•ืจื•ืช ื—ื™ื™ื ื›ืืœื”.

ื”ื”ื‘ื“ืœ ื‘ื™ืŸ CI ืœ-CD

GitOps ืžืฉืคืจ ื“ื’ืžื™ CI/CD ืงื™ื™ืžื™ื.

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

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

ืžื“ื•ืข ืฉืจืชื™ CI ืœื ืฆืจื™ื›ื™ื ืœืขืฉื•ืช ืชืงืœื™ื˜ื•ืจื™ื ื‘ืืžืฆืขื•ืช ืขื“ื›ื•ื ื™ื ื™ืฉื™ืจื™ื ื‘-Kubernetes

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

ื‘ื•ื ื ื—ื–ื•ืจ ืœืืœื™ืก ื•ื‘ื•ื‘.

ืขื ืื™ืœื• ื‘ืขื™ื•ืช ื”ื ื”ืชืžื•ื“ื“ื•? ืฉืจืช ื”-CI ืฉืœ ื‘ื•ื‘ ืžื—ื™ืœ ืืช ื”ืฉื™ื ื•ื™ื™ื ืขืœ ื”ืืฉื›ื•ืœ, ืืš ืื ื”ื•ื ืงื•ืจืก ื‘ืชื”ืœื™ืš, ื‘ื•ื‘ ืœื ื™ื™ื“ืข ื‘ืื™ื–ื” ืžืฆื‘ ื ืžืฆื (ืื• ืืžื•ืจ ืœื”ื™ื•ืช) ื”ืืฉื›ื•ืœ ืื• ื›ื™ืฆื“ ืœืชืงืŸ ื–ืืช. ื”ื“ื‘ืจ ื ื›ื•ืŸ ื’ื ื‘ืžืงืจื” ืฉืœ ื”ืฆืœื—ื”.

ื”ื‘ื” ื ื ื™ื— ืฉื”ืฆื•ื•ืช ืฉืœ ื‘ื•ื‘ ื‘ื ื” ืชืžื•ื ื” ื—ื“ืฉื” ื•ืœืื—ืจ ืžื›ืŸ ืชื™ืงืŸ ืืช ื”ืคืจื™ืกื” ืฉืœื”ื ื›ื“ื™ ืœืคืจื•ืก ืืช ื”ืชืžื•ื ื” (ื”ื›ืœ ืžืฆื™ื ื•ืจ ื”-CI).

ืื ื”ืชืžื•ื ื” ื ื‘ื ื™ืช ื›ืจื’ื™ืœ, ืืš ื”ืฆื™ื ื•ืจ ื ื›ืฉืœ, ื”ืฆื•ื•ืช ื™ืฆื˜ืจืš ืœื”ื‘ื™ืŸ:

  • ื”ืื ื”ืขื“ื›ื•ืŸ ื™ืฆื?
  • ืื ื—ื ื• ืžืฉื™ืงื™ื ืžื‘ื ื” ื—ื“ืฉ? ื”ืื ื–ื” ื™ื•ื‘ื™ืœ ืœืชื•ืคืขื•ืช ืœื•ื•ืื™ ืžื™ื•ืชืจื•ืช - ืขื ืืคืฉืจื•ืช ืœืฉืชื™ ื‘ื ื™ื™ื” ืฉืœ ืื•ืชื” ืชืžื•ื ื” ื‘ืœืชื™ ื ื™ืชื ืช ืœืฉื™ื ื•ื™?
  • ื”ืื ืขืœื™ื ื• ืœื—ื›ื•ืช ืœืขื“ื›ื•ืŸ ื”ื‘ื ืœืคื ื™ ื”ืคืขืœืช ื”-build?
  • ืžื” ื‘ื“ื™ื•ืง ื”ืฉืชื‘ืฉ? ืขืœ ืื™ืœื• ืฉืœื‘ื™ื ื™ืฉ ืœื—ื–ื•ืจ (ื•ืขืœ ืื™ืœื• ืžื”ืŸ ื‘ื˜ื•ื— ืœื—ื–ื•ืจ)?

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

ืœืกื™ื›ื•ื, ื”ื ื” ื”ืกื™ื‘ื” ืฉืฉืจืชื™ CI ืœื ืฆืจื™ื›ื™ื ืœื”ืชืžื•ื“ื“ ืขื CD:

  • ืกืงืจื™ืคื˜ื™ื ืœืขื“ื›ื•ืŸ ืื™ื ื ืชืžื™ื“ ื“ื˜ืจืžื™ื ื™ืกื˜ื™ื™ื; ืงืœ ืœืขืฉื•ืช ื‘ื”ื ื˜ืขื•ื™ื•ืช.
  • ืฉืจืชื™ CI ืื™ื ื ืžืชื›ื ืกื™ื ืœืžื•ื“ืœ ื”ืืฉื›ื•ืœ ื”ื”ืฆื”ืจืชื™.
  • ืงืฉื” ืœื”ื‘ื˜ื™ื— ื—ื•ืกืจ ืื•ื ื•ืช. ืขืœ ื”ืžืฉืชืžืฉื™ื ืœื”ื‘ื™ืŸ ืืช ื”ืกืžื ื˜ื™ืงื” ื”ืขืžื•ืงื” ืฉืœ ื”ืžืขืจื›ืช.
  • ืงืฉื” ื™ื•ืชืจ ืœื”ืชืื•ืฉืฉ ืžื›ื™ืฉืœื•ืŸ ื—ืœืงื™.

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

GitOps ื›ื“ืจืš ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ืœื™ื™ืฉื ืžืฉืœื•ื— ืจืฆื™ืฃ ืขื‘ื•ืจ Kubernetes

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

ืžื•ื“ืœ ื”ืคืขืœื” ืขื‘ื•ืจ Kubernetes

ื”ืชื‘ื•ื ืŸ ื‘ืชืจืฉื™ื ื”ื‘ื. ื”ื•ื ืžืฆื™ื’ ืืช Git ื•ืืช ืžืื’ืจ ื”ืชืžื•ื ื•ืช ื”ืžื›ื™ืœ ื›ืžืฉืื‘ื™ื ืžืฉื•ืชืคื™ื ืขื‘ื•ืจ ืฉื ื™ ืžื—ื–ื•ืจื™ ื—ื™ื™ื ืžืชื•ื–ืžืจื™ื:

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

ืžื”ื ื”ืžืžืฆืื™ื ื”ืขื™ืงืจื™ื™ื?

  1. ื”ืคืจื“ืช ื—ืฉืฉื•ืช: ืฉื™ืžื• ืœื‘ ืฉืฉื ื™ ื”ืฆื™ื ื•ืจื•ืช ื™ื›ื•ืœื™ื ืœืชืงืฉืจ ืจืง ืขืœ ื™ื“ื™ ืขื“ื›ื•ืŸ Git ืื• ืžืื’ืจ ื”ืชืžื•ื ื•ืช. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ื™ืฉ ื—ื•ืžืช ืืฉ ื‘ื™ืŸ CI ืœื‘ื™ืŸ ืกื‘ื™ื‘ืช ื–ืžืŸ ื”ืจื™ืฆื”. ืื ื• ืงื•ืจืื™ื ืœื–ื” "ื—ื•ืžืช ื”ืืฉ ืœืœื ืฉื™ื ื•ื™" (ื—ื•ืžืช ืืฉ ื‘ืœืชื™ ื ื™ืชื ืช ืœืฉื™ื ื•ื™), ืžื›ื™ื•ื•ืŸ ืฉื›ืœ ืขื“ื›ื•ื ื™ ื”ืžืื’ืจ ื™ื•ืฆืจื™ื ื’ืจืกืื•ืช ื—ื“ืฉื•ืช. ืœืžื™ื“ืข ื ื•ืกืฃ ืขืœ ื ื•ืฉื ื–ื”, ืขื™ื™ืŸ ื‘ืฉืงืคื™ื 72-87 ื”ืžืฆื’ืช ื”ื–ื•.
  2. ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื›ืœ ืฉืจืช CI ื•-Git: GitOps ืขื•ื‘ื“ ืขื ื›ืœ ืจื›ื™ื‘. ืืชื” ื™ื›ื•ืœ ืœื”ืžืฉื™ืš ืœื”ืฉืชืžืฉ ื‘ืฉืจืชื™ CI ื•-Git ื”ืžื•ืขื“ืคื™ื ืขืœื™ืš, ืžืื’ืจื™ ืชืžื•ื ื•ืช ื•ื—ื‘ื™ืœื•ืช ื‘ื“ื™ืงื”. ื›ืžืขื˜ ื›ืœ ืฉืืจ ื›ืœื™ ื”ืžืกื™ืจื” ื”ืจืฆื™ืคื” ื‘ืฉื•ืง ื“ื•ืจืฉื™ื ืฉืจืช CI/Git ืื• ืžืื’ืจ ืชืžื•ื ื•ืช ืžืฉืœื”ื. ื–ื” ืขืฉื•ื™ ืœื”ืคื•ืš ืœื’ื•ืจื ืžื’ื‘ื™ืœ ื‘ืคื™ืชื•ื— ืฉืœ native ื‘ืขื ืŸ. ืขื GitOps, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ื ืžื•ื›ืจื™ื.
  3. ืื™ืจื•ืขื™ื ื›ื›ืœื™ ืื™ื ื˜ื’ืจืฆื™ื”: ื‘ืจื’ืข ืฉื”ื ืชื•ื ื™ื ื‘-Git ืžืชืขื“ื›ื ื™ื, Weave Flux (ืื• ื”ืžืคืขื™ืœ ืฉืœ Weave Cloud) ืžื•ื“ื™ืข ืขืœ ื–ืžืŸ ืจื™ืฆื”. ื‘ื›ืœ ืคืขื ืฉ-Kubernetes ืžืงื‘ืœ ืขืจื›ืช ืฉื™ื ื•ื™ื™ื, Git ืžืชืขื“ื›ืŸ. ื–ื” ืžืกืคืง ืžื•ื“ืœ ืื™ื ื˜ื’ืจืฆื™ื” ืคืฉื•ื˜ ืœืืจื’ื•ืŸ ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืขื‘ื•ืจ GitOps, ื›ืคื™ ืฉืžื•ืฆื’ ืœื”ืœืŸ.

ืžืกืงื ื”

GitOps ืžืกืคืง ืืช ืขืจื‘ื•ื™ื•ืช ื”ืขื“ื›ื•ืŸ ื”ื—ื–ืงื•ืช ื”ื ื“ืจืฉื•ืช ืขืœ ื™ื“ื™ ื›ืœ ื›ืœื™ CI/CD ืžื•ื“ืจื ื™:

  • ืื•ื˜ื•ืžืฆื™ื”;
  • ื”ึดืชื›ึผึทื ึฐืกื•ึผืช;
  • ืื™ืžืคื•ื˜ื ืฆื™ื”;
  • ื“ื˜ืจืžื™ื ื™ื–ื.

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

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

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

ื .ื‘ ืžื”ืžืชืจื’ื

ืงืจื ื’ื ื‘ื‘ืœื•ื’ ืฉืœื ื•:

ืจืง ืžืฉืชืžืฉื™ื ืจืฉื•ืžื™ื ื™ื›ื•ืœื™ื ืœื”ืฉืชืชืฃ ื‘ืกืงืจ. ืœื”ืชื—ื‘ืจื‘ื‘ืงืฉื”.

ื”ืื ื™ื“ืขืช ืขืœ GitOps ืœืคื ื™ ืฉืฉื ื™ ื”ืชืจื’ื•ืžื™ื ื”ืืœื” ื”ื•ืคื™ืขื• ื‘-Habrรฉ?

  • ื›ืŸ, ื™ื“ืขืชื™ ื”ื›ืœ

  • ืจืง ื‘ืฆื•ืจื” ืฉื˜ื—ื™ืช

  • ืœื

35 ืžืฉืชืžืฉื™ื ื”ืฆื‘ื™ืขื•. 10 ืžืฉืชืžืฉื™ื ื ืžื ืขื•.

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

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