GitOps เปเบกเปˆเบ™เบซเบเบฑเบ‡?

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹. เปเบ›.: เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบžเบดเบกเป€เบœเบตเบเปเบœเปˆเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ เบญเบธเบ›เบฐเบเบญเบ™เบเบฒเบ™ เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ”เบถเบ‡เปเบฅเบฐเบŠเบธเบเบเบนเป‰เปƒเบ™ GitOps, เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเปƒเบ™เบ•เบปเบงเปเบšเบšเบ™เบตเป‰เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เปเบ•เปˆเบกเบตเบซเบ™เบฑเบ‡เบชเบทเบžเบฒเบชเบฒเบฅเบฑเบ”เป€เบŠเบเบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบเบซเบผเบฒเบเปƒเบ™เบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰ (เบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™Habrรฉ). เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบเบดเบ™เบ”เบตเบ—เบตเปˆเบˆเบฐเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบญเบทเปˆเบ™ - เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเป€เบเบทเบญเบšเบซเบ™เบถเปˆเบ‡เบ›เบตเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰! - เบˆเบฒเบ Weaveworks, เบซเบปเบงเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ„เปเบฒเบงเปˆเบฒ "GitOps." เบ‚เปเป‰เบ„เบงเบฒเบกเบญเบฐเบ—เบดเบšเบฒเบเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบˆเบฒเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง.

เบ›เบตเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบดเบกเป€เบœเบตเบเปเบœเปˆ เบเบฒเบ™เปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบš GitOps. เบเบฑเบšเบ„เบทเบ™เป„เบ›, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปเบšเปˆเบ‡เบ›เบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ—เบตเบกเบ‡เบฒเบ™ Weaveworks เป€เบ›เบตเบ”เบ•เบปเบง SaaS เบ—เบฑเบ‡เบซเบกเบปเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ Kubernetes เปเบฅเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒเบŠเบธเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ•เบฒเบกเปƒเบšเบชเบฑเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰, เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡, เปเบฅเบฐเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบ‚เบญเบ‡เบ„เบฅเบฒเบง.

เบšเบปเบ”เบ„เบงเบฒเบกเป„เบ”เป‰เบเบฒเบเบกเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบ™เบดเบเบปเบก. เบ„เบปเบ™เบญเบทเปˆเบ™เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš GitOps เปเบฅเบฐเป€เบฅเบตเปˆเบกเป€เบœเบตเบเปเบœเปˆเป€เบ„เบทเปˆเบญเบ‡เบกเบทเปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบš git เบŠเบธเบเบเบนเป‰, เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบ„เบงเบฒเบกเบฅเบฑเบš, เปœเป‰เบฒ เบ—เบตเปˆ, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡ เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ เบˆเปเบฒเบ™เบงเบ™เปƒเบซเบเปˆ เบชเบดเปˆเบ‡เบžเบดเบกเปเบฅเบฐ GitOps เปƒเบŠเป‰เบเปเบฅเบฐเบ™เบต. เปเบ•เปˆเบšเบฒเบ‡เบ„เบปเบ™เบเบฑเบ‡เบกเบตเบ„เปเบฒเบ–เบฒเบก. เบฎเบนเบšเปเบšเบšเปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเปเบ™เบงเปƒเบ”? เบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบฅเบฐเบซเบฑเบ” เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡ (เบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡)? เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ Kubernetes เบšเป?

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบฎเบนเป‰โ€‹เบšเปเปˆโ€‹เบ”เบปเบ™โ€‹เบงเปˆเบฒโ€‹เบ•เป‰เบญเบ‡โ€‹เบกเบตโ€‹เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹เปƒเบซเบกเปˆโ€‹, เบชเบฐโ€‹เป€เบซเบ™เบตโ€‹เปƒเบซเป‰โ€‹:

  1. เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เปเบฅเบฐเป€เบฅเบทเปˆเบญเบ‡;
  2. เบ„เปเบฒเบ™เบดเบเบฒเบกเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡ GitOps;
  3. เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก.

เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเบเบงเบกเป€เบญเบปเบฒเบซเบปเบงเบ‚เปเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบกเบฑเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เบ—เบฑเบ™เบเบฑเบš GitOps เปเบฅเบฐเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบ—เบฑเบ”เบชเบฐเบ™เบฐเบ‚เบญเบ‡ CI/CD. เบžเบงเบเป€เบฎเบปเบฒเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆ Kubernetes เบ•เบปเป‰เบ™เบ•เป, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ•เบปเบงเปเบšเบšเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เปเบšเบšเบ—เบปเปˆเบงเป„เบ›เป„เบ”เป‰.

เบžเบปเบšเบเบฑเบš GitOps

เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™ Alice. เบ™เบฒเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ›เบฐเบเบฑเบ™เป„เบžเบ„เบญเบšเบ„เบปเบง, เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ›เบฐเบเบฑเบ™เป„เบžเบชเบธเบ‚เบฐเบžเบฒเบš, เบฅเบปเบ”เปƒเบซเบเปˆ, เป€เบฎเบทเบญเบ™, เปเบฅเบฐเบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เบเบฑเบšเบ›เบฐเบŠเบฒเบŠเบปเบ™เบœเบนเป‰เบ—เบตเปˆเบซเบเบธเป‰เบ‡เป€เบเบตเบ™เป„เบ›เบ—เบตเปˆเบˆเบฐเบ„เบดเบ”เบญเบญเบ ins เปเบฅเบฐ outs เบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡. เบ—เบธเบฅเบฐเบเบดเบ”เบ‚เบญเบ‡เบ™เบฒเบ‡เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ Alice เบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเบ—เบฐเบ™เบฒเบ„เบฒเบ™เป€เบ›เบฑเบ™เบ™เบฑเบเบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”เบ‚เปเป‰เบกเบนเบ™. เบกเบทเป‰เบซเบ™เบถเปˆเบ‡เบ™เบฒเบ‡เบฎเบนเป‰เบงเปˆเบฒเบ™เบฒเบ‡เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ‚เบฑเป‰เบ™เบชเบนเบ‡เป€เบžเบทเปˆเบญเบงเบดเป€เบ„เบฒเบฐเบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบชเป‰เบฒเบ‡เบŠเบธเบ”เบ›เบฐเบเบฑเบ™เป„เบžเบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบ™เบฑเบเบฅเบปเบ‡เบ—เบถเบ™เป„เบ”เป‰เปƒเบซเป‰เบ—เบถเบ™เปเบเปˆเป‚เบ„เบ‡เบเบฒเบ™, เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบšเปเบฅเบดเบชเบฑเบ”เบ‚เบญเบ‡เบ™เบฒเบ‡เบ™เปเบฒเป€เบ‡เบดเบ™เบซเบผเบฒเบเบเบงเปˆเบฒ 20 เบฅเป‰เบฒเบ™เป‚เบ”เบฅเบฒเบ•เปเปˆเบ›เบตเปเบฅเบฐเบเปเบฒเบฅเบฑเบ‡เป€เบ•เบตเบšเป‚เบ•เบขเปˆเบฒเบ‡เป„เบงเบงเบฒ. เบ›เบฐเบˆเบธเบšเบฑเบ™, เบกเบตเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™ 180 เบ„เบปเบ™เปƒเบ™เบซเบผเบฒเบเบ•เบณเปเปœเปˆเบ‡. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบ—เบตเบกเบ‡เบฒเบ™เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบฎเบฑเบเบชเบฒเป€เบงเบฑเบšเป„เบŠเบ—เปŒ, เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ–เบฒเบ™เบฅเบนเบเบ„เป‰เบฒ. เบ—เบตเบกเบ‡เบฒเบ™เบ‚เบญเบ‡ 60 เบ„เบปเบ™เปเบกเปˆเบ™เบ™เปเบฒเบžเบฒเป‚เบ”เบ Bob, เบœเบนเป‰เบญเปเบฒเบ™เบงเบเบเบฒเบ™เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบ‚เบญเบ‡เบšเปเบฅเบดเบชเบฑเบ”.

เบ—เบตเบกเบ‡เบฒเบ™เบ‚เบญเบ‡ Bob เบ™เปเบฒเปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบขเบนเปˆเปƒเบ™เบ„เบฅเบฒเบง. เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบซเบผเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™ GKE, เปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบ Kubernetes เปƒเบ™ Google Cloud. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบ‚เบปเบฒเปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบ•เปˆเบฒเบ‡เป†เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

เบเบฒเบ™เบ›เบฐเบเบฑเบ™เป„เบžเบ„เบญเบšเบ„เบปเบงเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เปƒเบซเป‰เปƒเบŠเป‰เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต, เปเบ•เปˆเบ–เบทเบเบ•เบดเบ”เบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบเบฐเบ•เบทเบฅเบทเบฅเบปเป‰เบ™เบ‚เบญเบ‡ Docker. เบšเปเบฅเบดเบชเบฑเบ”เป„เบ”เป‰เบ„เบปเป‰เบ™เบžเบปเบšเปƒเบ™เป„เบงเป†เบ™เบตเป‰เบงเปˆเบฒ GKE เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบธเปˆเบกเป€เบžเบทเปˆเบญเบ—เบปเบ”เบชเบญเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเบซเบกเปˆ. Jenkins เบชเปเบฒเบฅเบฑเบš CI เปเบฅเบฐ Quay เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบšเบฑเบ™เบˆเบธ, scripts เป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เบชเปเบฒเบฅเบฑเบš Jenkins เบ—เบตเปˆ pushed เบšเบฑเบ™เบˆเบธเปƒเบซเบกเปˆเปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GKE.

เบšเบฒเบ‡เป€เบงเบฅเบฒเป„เบ”เป‰เบœเปˆเบฒเบ™เป„เบ›. Alice เปเบฅเบฐ Bob เบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบซเบงเบฑเบ‡เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบฅเบทเบญเบเปเบฅเบฐเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ—เบธเบฅเบฐเบเบดเบ”. เบเบฒเบ™เบ™เปเบฒเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบšเปเปˆเป„เบ”เป‰เบ›เบฑเบšเบ›เบธเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบ—เบตเบกเบ‡เบฒเบ™เป„เบ”เป‰เบซเบงเบฑเบ‡. เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบˆเบฐเปเบ•เบเบซเบฑเบ, เปเบฅเบฐเบกเบฑเบ™เบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฐเบซเบฑเบ”เบˆเบฐเบ•เปเบฒเบ™เบด. เบกเบฑเบ™เบเบฑเบ‡เป€เบ›เบฑเบ™เบเบฒเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ config. เป€เบฅเบทเป‰เบญเบเป†เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบเบธเปˆเบกเปƒเบซเบกเปˆเปเบฅเบฐเบเป‰เบฒเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป„เบ›เบซเบฒเบกเบฑเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ‡เปˆเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบเปเบฒเบˆเบฑเบ”เบ„เบงเบฒเบกเบงเบธเปˆเบ™เบงเบฒเบเบ—เบตเปˆเบฅเบฐเบšเบปเบšเป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™. Alice เบขเป‰เบฒเบ™เบงเปˆเบฒเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบˆเบฐเบฎเป‰เบฒเบเปเบฎเบ‡เบ‚เบถเป‰เบ™เบเป‰เบญเบ™เบงเปˆเบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ (เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป‚เบ„เบ‡เบเบฒเบ™เปƒเบซเบกเปˆเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเปเบกเปˆเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบšเบ). Bob เป„เบ”เป‰เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบฅเบฐเบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ—เปเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบเบฑเบ‡เบšเปเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡, เบ‚เบฐเบซเบ™เบฒเบ”เบšเปเปˆเบ”เบต, เปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เปเบŠเบเปเบŠเบ‡เบ”เป‰เบงเบเบกเบทเป€เบ›เบฑเบ™เปเบ•เปˆเบฅเบฐเป„เบฅเบเบฐ?

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš GitOps. เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ™เบตเป‰เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญเบเป‰เบฒเบงเป„เบ›เบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบฒเบขเปˆเบฒเบ‡เปเบฑเป‰เบ™เปƒเบˆ.

Alice เปเบฅเบฐ Bob เป„เบ”เป‰เบเบดเบ™เบเปˆเบฝเบงเบเบฑเบš Git, DevOps, เปเบฅเบฐเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เป€เบ›เบฑเบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบšเบ›เบต. เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบเปˆเบฝเบงเบเบฑเบš GitOps เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบ™เปเบฒเป€เบญเบปเบฒเบŠเบธเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ” - เบ—เบฑเบ‡เปเบ™เปˆเบ™เบญเบ™เปเบฅเบฐเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ - เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ‚เบญเบ‡ Kubernetes. เบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰ เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป€เบฅเบทเป‰เบญเบเป†, เบฅเบงเบกเบ—เบฑเบ‡เปƒเบ™ เบšเบฅเบฑเบญเบ Weaveworks.

เบเบฒเบ™เบ›เบฐเบเบฑเบ™เป„เบžเบ„เบญเบšเบ„เบปเบงเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ›เบฐเบ•เบดเบšเบฑเบ” GitOps. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบšเปเบฅเบดเบชเบฑเบ”เบกเบตเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบš Kubernetes เปเบฅเบฐเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ เบ„เบงเบฒเบกเป„เบง เบˆเบฒเบ เบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเบเป‰เบญเบ™เบงเปˆเบฒเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ:

  • เบžเบปเบšเบงเปˆเบฒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบ—เบตเบกเบ‡เบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเป‚เบ”เบเบšเปเปˆเบกเบตเปƒเบœเบšเป‰เบฒ;
  • เบขเบธเบ”เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบชเบฐเบ„เบฃเบดเบš. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฒเบกเบฒเบ”เบชเบธเบกเปƒเบชเปˆเบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆเปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบงเบดเบชเบฐเบงเบฐเบเปเบฒ - เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เปเบ™เบฐเบ™เปเบฒ canary rollouts เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš;
  • เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฑเบšเบ›เบธเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เบšเปเปˆเบ„เปˆเบญเบเปเบ•เบ;
  • เป„เบ”เป‰เบฎเบฑเบšเป‚เบญเบเบฒเบ”เปƒเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเบเบฒเบ™เบ™เปเบฒเป„เบ›เปƒเบŠเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเบšเบฒเบ‡เบชเปˆเบงเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เปเบŠเบเปเบŠเบ‡เบ„เบนเปˆเบกเบท;
  • เบŠเบทเป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ะพเบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เปƒเบˆเบซเบผเบฒเบเบเบงเปˆเบฒเป€เบเบปเปˆเบฒเปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡. Alice เปเบฅเบฐ Bob เบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เปเบเบเบ—เบตเบกเบ‡เบฒเบ™เบญเบญเบเป€เบ›เบฑเบ™เบ—เบตเบก microservice เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบฐเบซเบ™เบฒเบ™;
  • เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ 30-50 เป‚เบ„เบ‡เบเบฒเบ™เบ—เบธเบเป†เบกเบทเป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบเบธเปˆเบกเปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเป€เบ•เบฑเบเบ™เบดเบเปƒเบซเบกเปˆ;
  • เบกเบฑเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบ”เบถเบ‡เบ”เบนเบ”เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบซเบกเปˆเปƒเบซเป‰เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™, เบœเบนเป‰เบ—เบตเปˆเบกเบตเป‚เบญเบเบฒเบ”เบ—เบตเปˆเบˆเบฐเบญเบญเบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบœเบฐเบฅเบดเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ”เบถเบ‡เบžเบฒเบเปƒเบ™เบชเบญเบ‡เบชเบฒเบกเบŠเบปเปˆเบงเป‚เบกเบ‡;
  • เบœเปˆเบฒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเปƒเบ™เบ‚เบญเบšเบ‚เบญเบ‡ SOC2 (เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ›เบญเบ”เป„เบž; เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เบตเปˆเบ™เบตเป‰ โ€” เบ›เบฐโ€‹เบกเบฒเบ™โ€‹. เปเบ›.).

เป€เบเบตเบ”โ€‹เบซเบเบฑเบ‡โ€‹เบ‚เบถเป‰เบ™?

GitOps เปเบกเปˆเบ™เบชเบญเบ‡เบขเปˆเบฒเบ‡:

  1. เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบš Kubernetes เปเบฅเบฐ cloud native. เบกเบฑเบ™เบชเบฐเบซเบ™เบญเบ‡เบŠเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเป„เบ›เปƒเบŠเป‰, เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡, เปเบฅเบฐเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบธเปˆเบกเบšเบฑเบ™เบˆเบธเปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เบ„เปเบฒเบ™เบดเบเบฒเบกเบ—เบตเปˆเบชเบฐเบซเบ‡เปˆเบฒเบ‡เบฒเบกเปƒเบ™เบฎเบนเบšเปเบšเบš เบซเบ™เบถเปˆเบ‡ slide เบˆเบฒเบ Luis Faceira:
  2. เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ. เบžเบงเบเป€เบฎเบปเบฒเบ™เปเบฒเปƒเบŠเป‰เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ Git เบเบฑเบšเบ—เบฑเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เปเบฅเบฐเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ. เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบเปˆเบฝเบงเบเบฑเบš Git push, เปเบ•เปˆเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท CI/CD เปเบฅเบฐ UI/UX เบ—เบฑเบ‡เปเบปเบ”.

เบชเบญเบ‡เบชเบฒเบกเบ„เปเบฒเบเปˆเบฝเบงเบเบฑเบš Git

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบฅเบฐเบšเบปเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป€เบงเบตเบŠเบฑเบ™เปเบฅเบฐเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ Git, เบžเบงเบเป€เบฎเบปเบฒเบ‚เปเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบฎเบฝเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเบกเบฑเบ™. เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบชเบฒเบ‚เบฒเปเบฅเบฐเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ”เบถเบ‡เบญเบฒเบ”เบˆเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบ›เบฑเบ™ magic เบชเบตเบ”เปเบฒเปƒเบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”, เปเบ•เปˆเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เปเบกเปˆเบ™เบกเบตเบกเบนเบ™เบ„เปˆเบฒเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบก. เบ—เบตเปˆเบ™เบตเป‰ เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบ”เบตโ€‹ เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

Kubernetes เป€เบฎเบฑเบ”เบงเบฝเบเปเบ™เบงเปƒเบ”

เปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, Alice เปเบฅเบฐ Bob เป„เบ”เป‰เบซเบฑเบ™เป„เบ›เบซเบฒ GitOps เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Kubernetes เบชเปเบฒเบฅเบฑเบšเป„เบฅเบเบฐเบซเบ™เบถเปˆเบ‡. เปเบ—เป‰เบˆเบดเบ‡เปเบฅเป‰เบง, GitOps เบกเบตเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบขเปˆเบฒเบ‡เปƒเบเป‰เบŠเบดเบ”เบเบฑเบš Kubernetes - เบกเบฑเบ™เป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ Kubernetes.

Kubernetes เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบซเบเบฑเบ‡?

เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฒเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเบ•เบปเป‰เบ™เบ•เป:

  1. เปƒเบ™เบฎเบนเบšเปเบšเบš Kubernetes, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบเปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ›เบฐเบเบฒเบ”.
  2. เป€เบŠเบตเบšเป€เบงเบต Kubernetes API เบฎเบฑเบšเป€เบญเบปเบฒเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ™เบตเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™ เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบฐเบเบฒเบเบฒเบกเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เป€เบžเบทเปˆเบญเบ™เปเบฒเป€เบญเบปเบฒเบเบธเปˆเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เปƒเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ”.
  3. เบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™เปเบกเปˆเบ™เบžเบฝเบ‡เบžเปเป€เบžเบทเปˆเบญเบญเบฐเบ—เบดเบšเบฒเบ เปเบฅเบฐเบˆเบฑเบ”เบเบฒเบ™เบงเบฝเบเบ—เบตเปˆเบซเบผเบฒเบเบซเบผเบฒเบโ€”โ€œเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™.โ€
  4. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบธเปˆเบกเป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ:
    • เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธ;
    • เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบฐเป€เบžเบฒเบฐเบเบฒเบ™เบ›เบฐเบเบฒเบ”;
    • เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก - เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต crashes.

เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบšเบปเปˆเบกเบŠเป‰เบญเบ™เบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆเบ‚เบญเบ‡ Kubernetes

เป€เบกเบทเปˆเบญเบœเบนเป‰เป€เบšเบดเปˆเบ‡เปเบเบ‡เบฅเบฐเบšเบปเบšเป€เบฎเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, Kubernetes orchestrator เบˆเบฐเบ™เบณเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เปƒเบชเปˆเบเบธเปˆเบกเบ•เบฒเบšเปƒเบ”เบ—เบตเปˆเบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆ. เบˆเบฐเบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบเป‰เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเปเปˆ. เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ Kubernetes เปƒเบ”เป†เบเปเบ•เบฒเบก เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบ”เป‰เบงเบเบ„เบณเบ™เบดเบเบฒเบกเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบเบณเบ™เบปเบ”เป€เบญเบ‡ (CRDs). เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Kubernetes เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบญเบฑเบ™เบ›เบฐเป€เบชเบตเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”: เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ” Kubernetes เบชเบฐเปœเบญเบ‡เบเบปเบ™เป„เบเป€เบžเบทเปˆเบญเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบขเปˆเบฒเบ‡เบชเบฐเบซเบ‡เปˆเบฒเบ‡เบฒเบก เปเบฅเบฐเบ—เบฑเบ™เป€เบงเบฅเบฒ.
  • เบเบฒเบ™เป€เบŠเบทเปˆเบญเบก: Kubernetes เบˆเบฐเบชเบทเบšเบ•เปเปˆเบžเบฐเบเบฒเบเบฒเบกเบญเบฑเบšเป€เบ”เบ”เบˆเบปเบ™เบเบงเปˆเบฒเบˆเบฐเบชเบณเป€เบฅเบฑเบ”.
  • Ideempotency: เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบŠโ€‹เป‰โ€‹เปเบฒโ€‹เบ‚เบญเบ‡ convergence เบ™เปเบฒโ€‹เป„เบ›โ€‹เบชเบนเปˆโ€‹เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹.
  • เบเบฒเบ™เบเปเบฒเบ™เบปเบ”: เป€เบกเบทเปˆเบญเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบžเบฝเบ‡เบžเป, เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบฅเบฑเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

GitOps เป€เบฎเบฑเบ”เบงเบฝเบเปเบ™เบงเปƒเบ”

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบžเบฝเบ‡เบžเปเบเปˆเบฝเบงเบเบฑเบš Kubernetes เป€เบžเบทเปˆเบญเบญเบฐเบ—เบดเบšเบฒเบเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ GitOps.

เปƒเบซเป‰เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบ—เบตเบกเบ‡เบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบ‚เบญเบ‡ Family Insurance. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบซเบเบฑเบ‡เปเบ”เปˆ? เป€เบšเบดเปˆเบ‡เบฅเบฒเบเบเบฒเบ™เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰ (เบ–เป‰เบฒเบฅเบฒเบเบเบฒเบ™เปƒเบ”เป†เปƒเบ™เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเปเบ›เบเบซเบผเบทเบšเปเปˆเบ„เบธเป‰เบ™เป€เบ„เบตเบ, เบเบฐเบฅเบธเบ™เบฒเบฅเปเบ–เป‰เบฒเบเบฒเบ™เบงเบดเบžเบฒเบเบงเบดเบˆเบฒเบ™เปเบฅเบฐเบขเบนเปˆเบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ). เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ Jenkins. เบกเบตเบซเบผเบฒเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบทเปˆเบ™เป†เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบญเบทเปˆเบ™เป†.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐ Git repositories. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เปเปˆ Git เป€เบฎเบฑเบ”เปƒเบซเป‰ "เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ GitOps" เบ›เบฑเบšเบ›เบธเบ‡เบเบธเปˆเบก:

1. เบ‚เบฐโ€‹เบšเบงเบ™โ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹: ".Jenkins เบชเป‰เบฒเบ‡ - เบชเบฒเบ‚เบฒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš".
เบฅเบฒเบเบเบฒเบ™เปœเป‰เบฒเบงเบฝเบ:

  • Jenkins pushes tagged เบฎเบนเบšเบžเบฒเบšเป„เบ› Quay;
  • Jenkins pushes config and Helm charts to the master bucket;
  • เบŸเบฑเบ‡เบŠเบฑเบ™เบ„เบฅเบฒเบงเบ„เบฑเบ”เบฅเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบˆเบฒเบเบ–เบฑเบ‡เป€เบเบฑเบšเบกเป‰เบฝเบ™เบซเบผเบฑเบเป„เบ›เบซเบฒเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ Git เปเบกเปˆเบšเบปเบ”;
  • เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™ GitOps เบ›เบฑเบšเบ›เบธเบ‡เบเบธเปˆเบก.

2. Jenkins เบชเป‰เบฒเบ‡ - เบ›เปˆเบญเบเบซเบผเบทเบชเบฒเบ‚เบฒเบเบฒเบ™เปเบเป‰เป„เบ‚เบ”เปˆเบงเบ™:

  • Jenkins เบเบนเป‰เบฎเบนเบš untagged เป„เบ› Quay;
  • Jenkins pushes config and Helm charts to the staging storage bucket;
  • เบŸเบฑเบ‡เบŠเบฑเบ™เบ„เบฅเบฒเบงเบ„เบฑเบ”เบฅเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบˆเบฒเบ bucket เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เป„เบ›เบซเบฒเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ Git;
  • เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™ GitOps เบ›เบฑเบšเบ›เบธเบ‡เบเบธเปˆเบก.

3. Jenkins เบชเป‰เบฒเบ‡ - เบžเบฑเบ”เบ—เบฐเบ™เบฒเบซเบผเบทเบชเบฒเบ‚เบฒเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”:

  • Jenkins เบเบนเป‰เบฎเบนเบš untagged เป„เบ› Quay;
  • Jenkins pushes config เปเบฅเบฐ Helm charts เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ bucket เบžเบฑเบ”เบ—เบฐเบ™เบฒ;
  • เบŸเบฑเบ‡เบŠเบฑเบ™เบ„เบฅเบฒเบงเบ„เบฑเบ”เบฅเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบˆเบฒเบ bucket เบžเบฑเบ”เบ—เบฐเบ™เบฒเป„เบ›เบซเบฒเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ Git เบžเบฑเบ”เบ—เบฐเบ™เบฒ;
  • เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™ GitOps เบ›เบฑเบšเบ›เบธเบ‡เบเบธเปˆเบก.

4. เบเบณเบฅเบฑเบ‡เป€เบžเบตเปˆเบกเบฅเบนเบเบ„เป‰เบฒเปƒเปเปˆ:

  • เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™ เบซเบผเบทเบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™ (LCM/ops) เป‚เบ—เบซเบฒ Gradle เป€เบžเบทเปˆเบญเบ™เบณเปƒเบŠเป‰ เปเบฅเบฐ เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (NLBs);
  • LCM/ops เบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเบกเปˆเป€เบžเบทเปˆเบญเบเบฐเบเบฝเบกเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”;
  • เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™ GitOps เบ›เบฑเบšเบ›เบธเบ‡เบเบธเปˆเบก.

เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบชเบฑเป‰เบ™เป†เบ‚เบญเบ‡ GitOps

  1. เบญเบฐเบ—เบดเบšเบฒเบเบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก (เปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบ—เบตเบกเบ‡เบฒเบ™เบ‚เบญเบ‡ Bob เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™ Git).
    • Git repository เปเบกเปˆเบ™เปเบซเบผเปˆเบ‡เบ”เบฝเบงเบ‚เบญเบ‡เบ„เบงเบฒเบกเบˆเบดเบ‡เบเปˆเบฝเบงเบเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เบซเบกเบปเบ”.
    • เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ•เปเปˆเบเบฑเบšเบฅเบฑเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบœเปˆเบฒเบ™เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเปƒเบ™ Git.
    • เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบฑเบ‡เปเบปเบ”เปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เบชเบฑเบ‡เป€เบเบ”เป„เบ”เป‰เปƒเบ™เบเบธเปˆเบกเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡. เบ”เป‰เบงเบโ€‹เบงเบดเบ—เบตโ€‹เบ™เบตเป‰โ€‹เป€เบฎเบปเบฒโ€‹เบชเบฒเบกเบฒเบ”โ€‹เบเบณเบ™เบปเบ”โ€‹เป„เบ”เป‰โ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เป€เบ‚เบปเป‰เบฒเบเบฑเบ™โ€‹เป„เบ”เป‰โ€‹เบซเบผเบทโ€‹เบšเปเปˆ (converge, เบ›เปˆเบฝเบ™เปƒเบˆเป€เบซเบฅเบทเป‰เบญเบกเปƒเบช) เบซเบผเบทโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡ (divergeโ€‹, เปเบเบ) เบฅเบฑเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™.
  2. เบ–เป‰เบฒเบฅเบฑเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™:
    • เบกเบตเบเบปเบ™เป„เบ convergence เบ—เบตเปˆเบ—เบฑเบ™เบ—เบตเบซเบผเบทเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” synchronizes เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบฅเบฐเบฅเบฑเบ”เบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™. เบžเบฒเบเปƒเบ™เบเบธเปˆเบก, Kubernetes เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰.
    • เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบฑเบ™เบ—เบตเบ”เป‰เบงเบเบเบฒเบ™เป€เบ•เบทเบญเบ™ "เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒ".
    • เบซเบผเบฑเบ‡เบˆเบฒเบเป„เบฅเบเบฐเป€เบงเบฅเบฒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เป„เบ”เป‰, เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™ "เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡" เบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบ–เป‰เบฒเบฅเบฑเบ”เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.
  3. เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰, เบ—เบธเบเป†เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเปƒเบ™ Git เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบขเบทเบ™เบขเบฑเบ™เป„เบ”เป‰เปเบฅเบฐเบšเปเปˆเบกเบตเบ—เปˆเบฒเปเบฎเบ‡เบ•เปเปˆเบเบฑเบšเบเบธเปˆเบก.
    • Rollback เปเบกเปˆเบ™ convergence เบเบฑเบšเบฅเบฑเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰.
  4. เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบฎเปˆเบงเบกโ€‹เปเบกเปˆเบ™โ€‹เบชเบธเบ”โ€‹เบ—เป‰เบฒเบ. เบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบŠเบตเป‰เบšเบญเบเป‚เบ”เบ:
    • เบšเปเปˆเบกเบตเบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเป„เบฅเบเบฐเป€เบงเบฅเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™.
    • เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™ "converged" (เป€เบŠเบฑเปˆเบ™: webhook, Git writeback event).

เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปเบกเปˆเบ™เบซเบเบฑเบ‡?

เปƒเบซเป‰เป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบญเบตเบเบ„เบฑเป‰เบ‡: เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบฑเบ‡เปเบปเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เบชเบฑเบ‡เป€เบเบ”เป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡.

เบšเบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡:

  • เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบฅเบงเบกเบชเบฒเบ‚เบฒเปƒเบ™ Git.
  • เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ Git commit เป€เบฎเบฑเบ”เป‚เบ”เบเบฅเบนเบเบ„เป‰เบฒ GUI.
  • เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบผเบฒเบเป†เบ„เบฑเป‰เบ‡เบ•เปเปˆเบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ PR เปƒเบ™ Git เบ•เบดเบ”เบ•เบฒเบกเบ”เป‰เบงเบเบเบฒเบ™เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ config.
  • เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบเบธเปˆเบกเบญเบฑเบ™เป€เบ™เบทเปˆเบญเบ‡เบกเบฒเบˆเบฒเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰ "เบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเบ”เบต", เบซเบผเบทเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบšเปˆเบฝเบ‡เป€เบšเบ™เปเบšเบšเบชเบธเปˆเบกเบˆเบฒเบเบชเบฐเบ–เบฒเบ™เบฐเป€เบ”เบตเบก.

เบเบปเบ™เป„เบเบเบฒเบ™เป‚เบฎเบกเบเบฑเบ™เปเบกเปˆเบ™เบซเบเบฑเบ‡?

เบชเบญเบ‡เบชเบฒเบกเบ•เบปเบงเบขเปˆเบฒเบ‡:

  • เบชเปเบฒเบฅเบฑเบšเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต เปเบฅเบฐเบเบธเปˆเบก, เบเบปเบ™เป„เบเบเบฒเบ™เป‚เบฎเบกเปเบกเปˆเบ™เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบ Kubernetes.
  • เบเบปเบ™เป„เบเบ”เบฝเบงเบเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบเบฒเบ™เบญเบญเบเปเบšเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ Kubernetes (เป€เบŠเบฑเปˆเบ™: Istio เปเบฅเบฐ Kubeflow).
  • เบเบปเบ™เป„เบเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบชเปเบฒเบžเบฑเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ Kubernetes, เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบเบฑเบšเบฎเบนเบšเบžเบฒเบšเปเบฅเบฐ Git เบชเบฐเบซเบ™เบญเบ‡ เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™ GitOps Weave Flux, เบŠเบถเปˆเบ‡เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡ Weave Cloud.
  • เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบžเบทเป‰เบ™เบ–เบฒเบ™, เบเบปเบ™เป„เบเบเบฒเบ™ convergence เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ”เปเบฅเบฐเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”. เบˆเบฒเบเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเป„เบ”เป‰เบงเปˆเบฒ Terraform เปƒเบเป‰เบ—เบตเปˆเบชเบธเบ”เบเบฑเบšเบ„เปเบฒเบ™เบดเบเบฒเบกเบ™เบตเป‰, เปเบ•เปˆเบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ‚เบญเบ‡เบกเบฐเบ™เบธเบ”. เปƒเบ™เบ„เบงเบฒเบกเบซเบกเบฒเบเบ™เบตเป‰, GitOps เบ‚เบฐเบซเบเบฒเบเบ›เบฐเป€เบžเบ™เบตเบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เป€เบ›เบฑเบ™เบฅเบฐเบซเบฑเบ”.

GitOps เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ Git เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ convergence เบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”เบ‚เบญเบ‡ Kubernetes เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”.

GitOps เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบงเบปเป‰เบฒเบงเปˆเบฒ: เบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบšเบปเบšเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบญเบฐเบ—เบดเบšเบฒเบเปเบฅเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบชเบฒเบกเบฒเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบฅเบฐเบ„เบงเบšเบ„เบธเบก.

GitOps เปเบกเปˆเบ™เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบชเปเบฒเบฅเบฑเบš stack native cloud เบ—เบฑเบ‡เบซเบกเบปเบ” (เบ•เบปเบงเบขเปˆเบฒเบ‡, Terraform, เปเบฅเบฐเบญเบทเปˆเบ™เป†)

GitOps เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆ Kubernetes เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เปƒเบซเป‰โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เปเบฅเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ convergenceโ€‹. เป‚เบ”เบเบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบžเบงเบเป€เบฎเบปเบฒเบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Kubernetes - เบ•เบปเบงเบขเปˆเบฒเบ‡, "เบเบธเปˆเบก dev 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 เปเบฅเบฐ cloud native เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.
  2. เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบˆเบฒเบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบ›เบฑเบ™เบชเบนเบ™เบเบฒเบ‡.

เบชเปเบฒเบฅเบฑเบšเบซเบผเบฒเบเป†เบ„เบปเบ™, GitOps เบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ Git pushes. เบžเบงเบเป€เบฎเบปเบฒเบกเบฑเบเบฅเบฒเบงเบ„เบทเบเบฑเบ™. เปเบ•เปˆเบ™เบฑเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”: เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ—เปเปˆ CI / CD.

GitOps เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡ (CD) เบชเปเบฒเบฅเบฑเบš Kubernetes

GitOps เบชเบฐเป€เบซเบ™เบตเบเบปเบ™เป„เบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบ—เบตเปˆเบเปเบฒเบˆเบฑเบ”เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบš "เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡." Kubernetes เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™.

  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปƒเบ™ Git. เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, "เบเบฒเบ™เบ›เบฑเบšเปƒเบŠเป‰" เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบžเบฒเบเปƒเบ™เบเบธเปˆเบกเป‚เบ”เบ Kubernetes เป€เบญเบ‡เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ—เบตเปˆเบ›เบฑเบšเบ›เบธเบ‡.
  • เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡ Kubernetes เป€เบฎเบฑเบ”เบงเบฝเบ, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบ™. เบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เบเบปเบ™เป„เบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน.
  • เบซเบกเบฒเบเป€เบซเบ”: Weave Cloud เบชเบฐเป€เบซเบ™เบตเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ GitOps เบ—เบตเปˆเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ Git เปเบฅเบฐ Kubernetes เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ CD เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเบเบฒเบ™ reconciling เบชเบฐเบžเบฒเบšเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบเบธเปˆเบก.

เป‚เบ”เบเบšเปเปˆเบกเบต kubectl เปเบฅเบฐเบชเบฐเบ„เบดเบš

เบ—เปˆเบฒเบ™เบ„เบงเบ™เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เปƒเบŠเป‰ Kubectl เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบธเปˆเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เปเบฅเบฐเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปเบกเปˆเบ™เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เปƒเบŠเป‰ scripts เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบธเปˆเบกเบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบ”เป‰เบงเบเบ—เปเปˆ GitOps, เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เบญเบฑเบšเป€เบ”เบ”เบเบธเปˆเบก Kubernetes เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบœเปˆเบฒเบ™ Git.

เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบฅเบงเบกเบกเบต:

  1. เบชเบดเบ”. เบเบธเปˆเบกเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, converged เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบ validated, เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน. เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบเบฒเบ™เปƒเบŠเป‰เบชเบฐเบ„เบดเบšเบšเปเปˆเป„เบ”เป‰เปƒเบซเป‰เบเบฒเบ™เบ„เปเป‰เบฒเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เปƒเบ”เป† โ€‹โ€‹(เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰).
  2. เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž. เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡ Kelsey Hightower: "เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบธเปˆเบก Kubernetes เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบฅเบฐเบœเบนเป‰เป€เบšเบดเปˆเบ‡เปเบเบ‡เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเปƒเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเบซเบผเบทเบเบฒเบ™เบฎเบฑเบเบชเบฒเบกเบฑเบ™." เป€เบšเบดเปˆเบ‡เบ™เบณ เบชเบดเปˆเบ‡เบžเบดเบกเบ‚เบญเบ‡เบ‚เป‰เบญเบ เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš เบšเบปเบ”เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™ hack Homebrew เป‚เบ”เบเบเบฒเบ™เบฅเบฑเบเป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบˆเปเบฒเบ•เบปเบงเบˆเบฒเบเบชเบฐเบ„เบฃเบดเบš Jenkins เบ—เบตเปˆเบ‚เบฝเบ™เปเบšเบšเบšเปเปˆเบชเบปเบ™เปƒเบˆ.
  3. เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰. Kubectl เป€เบ›เบตเบ”เป€เบœเบตเบเบเบปเบ™เป„เบเบ‚เบญเบ‡เบ•เบปเบงเปเบšเบšเบงเบฑเบ”เบ–เบธ Kubernetes, เป€เบŠเบดเปˆเบ‡เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบชเบฑเบšเบชเบปเบ™. เป‚เบ”เบเบซเบฅเบฑเบเบเบฒเบ™เปเบฅเป‰เบง, เบœเบนเป‰เปƒเบŠเป‰เบ„เบงเบ™เบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบฅเบฐเบšเบปเบšเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเบชเบนเบ‡เบเบงเปˆเบฒเบ‚เบญเบ‡ abstraction. เบ—เบตเปˆเบ™เบตเป‰เบ‚เป‰เบญเบเบˆเบฐเบญเป‰เบฒเบ‡เป€เบ–เบดเบ‡ Kelsey เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เปเบฅเบฐเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เป€เบšเบดเปˆเบ‡ เบŠเบตเบงเบฐเบ›เบฐเบซเบงเบฑเบ”เบซเบเปเป‰เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡ CI เปเบฅเบฐ CD

GitOps เบ›เบฑเบšเบ›เบธเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡ CI/CD เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง.

เป€เบŠเบตเบšเป€เบงเบต CI เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบŠเบตเป‰เบ™เปเบฒ. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบกเบฑเบ™เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบš orchestrating เบ—เปเปˆ CI. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบฅเบงเบกเบกเบตเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡, เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, merge เบเบฑเบšเบฅเปเบฒเบ•เบปเป‰เบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป† เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ CI เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เบญเบ‡เบ—เปเปˆเบซเบผเบฒเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™. เบเบฒเบ™เบฅเปเป‰เบฅเบงเบ‡เบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เบเบฒเบ™เบชเบฐเบ„เบฃเบดเบšเบŠเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ Kubernetes เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ—เปเปˆเป€เบžเบทเปˆเบญเบŠเบธเบเบเบนเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ›เบชเบนเปˆเบเบธเปˆเบก. เปเบ—เป‰เบˆเบดเบ‡เปเบฅเป‰เบง, เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™เบซเบผเบฒเบเบ„เบปเบ™เป€เบฎเบฑเบ”. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”, เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡.

CI เบ„เบงเบ™เบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเบนเป‰เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เปƒเบชเปˆเบฅเบณเบ•เบปเป‰เบ™, เปเบฅเบฐเบเบธเปˆเบก Kubernetes เบ„เบงเบ™เบ›เปˆเบฝเบ™เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™ CD เบžเบฒเบเปƒเบ™. เบžเบงเบเป€เบฎเบปเบฒเป‚เบ—เบซเบฒเบกเบฑเบ™ เบ”เบถเบ‡เบ•เบปเบงเปเบšเบšเบชเปเบฒเบฅเบฑเบš CD, เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบŠเบธเบเบเบนเป‰ CI. CD เป€เบ›เบฑเบ™โ€‹เบชเปˆเบงเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹ runtime orchestration.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เป€เบŠเบตเบšเป€เบงเบต CI เบšเปเปˆเบ„เบงเบ™เป€เบฎเบฑเบ” CD เบœเปˆเบฒเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป‚เบ”เบเบเบปเบ‡เปƒเบ™ Kubernetes

เบขเปˆเบฒเปƒเบŠเป‰เป€เบŠเบตเบšเป€เบงเบต CI เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เป‚เบ”เบเบเบปเบ‡เปƒเบซเป‰เบเบฑเบš Kubernetes เป€เบ›เบฑเบ™เบŠเบธเบ”เบ‚เบญเบ‡เบงเบฝเบ CI. เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ•เป‰เบฒเบ™เบเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš เบšเบญเบเปเบฅเป‰เบง เปƒเบ™ blog เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒ Alice เปเบฅเบฐ Bob.

เบžเบงเบเป€เบ‚เบปเบฒเบ›เบฐเป€เบŠเบตเบ™เบเบฑเบšเบšเบฑเบ™เบซเบฒเปƒเบ”เปเบ”เปˆ? เป€เบŠเบตเบšเป€เบงเบต CI เบ‚เบญเบ‡ Bob เปƒเบŠเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบฑเบšเบเบธเปˆเบก, เปเบ•เปˆเบ–เป‰เบฒเบกเบฑเบ™เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™, Bob เบˆเบฐเบšเปเปˆเบฎเบนเป‰เบงเปˆเบฒเบเบธเปˆเบกเปเบกเปˆเบ™เบซเบเบฑเบ‡ (เบซเบผเบทเบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™) เปƒเบ™เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบกเบฑเบ™. เบ”เบฝเบงเบเบฑเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ„เบงเบฒเบกเบชเปเบฒเป€เบฅเบฑเบ”.

เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ—เบตเบกเบ‡เบฒเบ™เบ‚เบญเบ‡ Bob เป„เบ”เป‰เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเปƒเบซเบกเปˆเปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ patched เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป€เบžเบทเปˆเบญ deploy เบฎเบนเบšเบžเบฒเบš (เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบเบ—เปเปˆ CI).

เบ–เป‰เบฒเบฎเบนเบšเบžเบฒเบšเบเปเปˆเบชเป‰เบฒเบ‡เบ›เบปเบเบเบฐเบ•เบด, เปเบ•เปˆเบ—เปเปˆเบšเปเปˆเบชเปเบฒเป€เบฅเบฑเบ”, เบ—เบตเบกเบ‡เบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ„เบดเบ”เบญเบญเบ:

  • เบญเบฑเบšเป€เบ”เบ”เป„เบ”เป‰เป€เบ›เบตเบ”เบ•เบปเบงเปเบฅเป‰เบงเบšเป?
  • เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบ›เบตเบ”เบ•เบปเบงเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบซเบกเปˆเบšเป? เบ™เบตเป‰เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™ - เบกเบตเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบกเบตเบชเบญเบ‡เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เบ„เบทเบเบฑเบ™เบšเป?
  • เบžเบงเบเป€เบฎเบปเบฒเบ„เบงเบ™เบฅเปเบ–เป‰เบฒเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ•เปเปˆเป„เบ›เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบšเป?
  • เปเบกเปˆเบ™เบซเบเบฑเบ‡เบœเบดเบ”เบžเบฒเบ”เปเบ—เป‰? เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปƒเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบŠเป‰เปเบฒ (เปเบฅเบฐเบญเบฑเบ™เปƒเบ”เบ—เบตเปˆเบ›เบญเบ”เป„เบžเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบŠเป‰เปเบฒ)?

เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ Git เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบ—เบตเบกเบ‡เบฒเบ™เบ‚เบญเบ‡ Bob เบˆเบฐเบšเปเปˆเบžเบปเบšเบšเบฑเบ™เบซเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบœเบดเบ”เบžเบฒเบ”เบเบฑเบš commit push, tag, เบซเบผเบทเบšเบฒเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบญเบทเปˆเบ™เป†; เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบเบฑเบ‡เปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบซเบผเบทเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ—เบตเปˆเบˆเบฐเปเบˆเป‰เบ‡.

เป€เบžเบทเปˆเบญเบชเบฐเบซเบผเบธเบš, เบ™เบตเป‰เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ CI เบšเปเปˆเบ„เบงเบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบš CD:

  • เบญเบฑเบšเป€เบ”เบ”เบชเบฐเบ„เบฃเบดเบšเบšเปเปˆเปเบกเปˆเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบชเบฐเป€เปเบต; เบกเบฑเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบžเบงเบเบกเบฑเบ™.
  • เป€เบŠเบตเบšเป€เบงเบต CI เบšเปเปˆเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบšเบ•เบปเบงเปเบšเบšเบเบธเปˆเบกเบ›เบฐเบเบฒเบ”.
  • เบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบญเปˆเบญเบ™เปเบญ. เบœเบนเป‰เปƒเบŠเป‰เบ•เป‰เบญเบ‡เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ„เบงเบฒเบกเป€เบฅเบดเบเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš.
  • เบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบŸเบทเป‰เบ™เบ•เบปเบงเบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบšเบฒเบ‡เบชเปˆเบงเบ™.

เบซเบกเบฒเบเป€เบซเบ”เบเปˆเบฝเบงเบเบฑเบš Helm: เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰ Helm, เบžเบงเบเป€เบฎเบปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบชเบปเบกเบ—เบปเบšเบกเบฑเบ™เบเบฑเบšเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ GitOps เป€เบŠเบฑเปˆเบ™: Flux-Helm. เบ™เบตเป‰เบˆเบฐเบŠเปˆเบงเบเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบฅเบงเบกเบ•เบปเบง. Helm เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบซเบผเบทเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน.

GitOps เป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เบ—เบตเบกเบ‡เบฒเบ™เบ‚เบญเบ‡ Alice เปเบฅเบฐ Bob เบ›เบฐเบ•เบดเบšเบฑเบ” GitOps เปเบฅเบฐเบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒเบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบซเบผเบฒเบเบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบŠเบญเบšเปเบง, เบฎเบฑเบเบชเบฒเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡. เบ‚เปเปƒเบซเป‰เบชเบดเป‰เบ™เบชเบธเบ”เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบ”เป‰เบงเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”. เบˆเบปเปˆเบ‡เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบชเปˆเบงเบ™เบซเบผเบฒเบเปเบกเปˆเบ™เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เปเบ•เปˆ GitOps เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ—เบฑเบ‡เบซเบกเบปเบ”.

เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบš Kubernetes

เป€เบšเบดเปˆเบ‡เปเบœเบ™เบงเบฒเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰. เบกเบฑเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต Git เปเบฅเบฐเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเป€เบ›เบฑเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบชเบญเบ‡เบงเบปเบ‡เบˆเบญเบ™เบŠเบตเบงเบดเบ”เบ—เบตเปˆเบ–เบทเบเบˆเบฑเบ”เบฅเบฝเบ‡:

  • เบ—เปเปˆเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบ—เบตเปˆเบญเปˆเบฒเบ™เปเบฅเบฐเบ‚เบฝเบ™เป„เบŸเบฅเปŒเป„เบ›เบซเบฒ Git เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡ repository เบ‚เบญเบ‡เบฎเบนเบš container.
  • เบ—เปเปˆ Runtime GitOps เบ—เบตเปˆเบชเบปเบกเบ—เบปเบšเบเบฒเบ™เบ™เบณเป„เบ›เปƒเบŠเป‰เบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™ เปเบฅเบฐ เบเบฒเบ™เบชเบฑเบ‡เป€เบเบ”เบเบฒเบ™. เบกเบฑเบ™เบญเปˆเบฒเบ™เปเบฅเบฐเบ‚เบฝเบ™เป„เบŸเบฅเปŒเป„เบ›เบซเบฒ Git เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ”เบฒเบงเป‚เบซเบฅเบ”เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธ.

เบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบซเบเบฑเบ‡?

  1. เบเบฒเบ™เปเบเบเบ„เบงเบฒเบกเบเบฑเบ‡เบงเบปเบ™: เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบ—เปเปˆเบ—เบฑเบ‡เบชเบญเบ‡เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เปเปˆเบชเบทเปˆเบชเบฒเบ™เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ” Git เบซเบผเบทเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบฎเบนเบšเบžเบฒเบšเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบกเบต firewall เบฅเบฐเบซเบงเปˆเบฒเบ‡ CI เปเบฅเบฐเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก runtime. เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบตเป‰เบ™เบกเบฑเบ™เบงเปˆเบฒ "เป„เบŸเบงเปเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰" (เป„เบŸเบงเปเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰), เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ repository เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเป‰เบฒเบ‡เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆ. เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰, เป€เบšเบดเปˆเบ‡เบชเบฐเป„เบฅเป‰ 72-87 เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ™เบตเป‰.
  2. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ CI เปเบฅเบฐ Git เปƒเบ”: GitOps เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ”เป†. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบชเบทเบšโ€‹เบ•เปเปˆโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เปเบกเปˆโ€‹เบ‚เปˆเบฒเบ CI เปเบฅเบฐ Git เบ—เบตเปˆโ€‹เบกเบฑเบโ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹, repositories เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹, เปเบฅเบฐโ€‹เบŠเบธเบ”โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹. เป€เบเบทเบญเบšเบ—เบธเบเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบญเบทเปˆเบ™เป†เปƒเบ™เบ•เบฐเบซเบผเบฒเบ”เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบŠเบตเบšเป€เบงเบต CI/Git เบซเบผเบทเบšเปˆเบญเบ™เป€เบเบฑเบšเบฎเบนเบšเบžเบฒเบšเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡. เบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ›เบฑเบ”เป„เบˆเบˆเบณเบเบฑเบ”เปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ cloud native. เบ”เป‰เบงเบ GitOps, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบ„เบธเป‰เบ™เป€เบ„เบตเบ.
  3. เป€เบซเบ”เบเบฒเบ™เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡: เบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เปƒเบ™ Git เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡, Weave Flux (เบซเบผเบทเบœเบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ Weave Cloud) เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™ runtime. เป€เบกเบทเปˆเบญเปƒเบ”เบเปเปˆเบ•เบฒเบก Kubernetes เบเบญเบกเบฎเบฑเบšเบŠเบธเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡, Git เบˆเบฐเบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡. เบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเบ‡เปˆเบฒเบเบ”เบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบš GitOps, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบชเบฐเบซเบฅเบธเบš

GitOps เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เบกเบท CI / CD เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก:

  • เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”;
  • convergence;
  • เบ‚เบฒเบ”เบชเบฒเบ™เบญเบฒเบซเบฒเบ™;
  • เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ.

เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบชเบฐเป€เบซเบ™เบตเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ cloud native.

  • เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เปเบฅเบฐเบฅเบฐเบšเบปเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเปเบกเปˆเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ—เบตเบกเบ‡เบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเบฒเบเปƒเบ™เบ›เบทเป‰เบกเบšเบฑเบ™เบ—เบถเบ (เบŠเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™ - เบ›เบฐโ€‹เบกเบฒเบ™โ€‹. translโ€‹.), เบœเบนเบโ€‹เบกเบฑเบ”โ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹.
  • เปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบ‚เบญเบ‡เบ„เบฅเบฒเบง, เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบชเบฑเบ‡เป€เบเบ”เบเบฒเบ™เป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบเบฒเบ™เบงเบฑเบ”เปเบ—เบเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ—เบตเบกเบ‡เบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฒเบกเบฒเบ”เบ•เบญเบšเบชเบฐเปœเบญเบ‡เป„เบ”เป‰เป„เบง.

เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบซเบผเบฒเบเป†เบเบธเปˆเบกเบ—เบตเปˆเบเบฐเปเบˆเบเบเบฐเบˆเบฒเบเป„เบ›เบ—เบปเปˆเบงเป€เบกเบ„เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบซเบผเบฒเบเบขเปˆเบฒเบ‡เบ”เป‰เบงเบเบ—เบตเบกเบ‡เบฒเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡ เปเบฅเบฐเปเบœเบ™เบเบฒเบ™เบ™เบณเปƒเบŠเป‰. GitOps เบชเบฐเป€เบซเบ™เบตเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ„เบงเบฒเบกเบญเบธเบ”เบปเบกเบชเบปเบกเบšเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰.

PS เบˆเบฒเบเบ™เบฑเบเปเบ›

เบญเปˆเบฒเบ™เบเบฑเบ‡เบขเบนเปˆเปƒเบ™ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

เบžเบฝเบ‡เปเบ•เปˆเบœเบนเป‰เปƒเบŠเป‰เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เบชเปเบฒเบซเบผเบงเบ”. เป€เบ‚เบปเป‰เบฒโ€‹เบชเบนเปˆโ€‹เบฅเบฐโ€‹เบšเบปเบšเบเบฐเบฅเบธเบ™เบฒ.

เบ—เปˆเบฒเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš GitOps เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบกเบตเบเบฒเบ™เปเบ›เบชเบญเบ‡เบชเบฐเบšเบฑเบšเบ™เบตเป‰เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™Habre?

  • เปเบกเปˆเบ™เปเบฅเป‰เบง, เบ‚เป‰เบญเบเบฎเบนเป‰เบ—เบธเบเบขเปˆเบฒเบ‡

  • เบžเบฝเบ‡เปเบ•เปˆ superficial

  • เบšเปเปˆโ€‹เบกเบต

35 เบœเบนเป‰เปƒเบŠเป‰เบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡. 10 เบœเบนเป‰เปƒเบŠเป‰เบ‡เบปเบ”.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™