เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ, เจธเจพเจกเฉ€เจ†เจ‚ เจšเฉ‹เจฃเจพเจ‚ เจ…เจคเฉ‡ เจ…เจจเฉเจญเจต เจฒเจˆ PostgreSQL เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ, เจธเจพเจกเฉ€เจ†เจ‚ เจšเฉ‹เจฃเจพเจ‚ เจ…เจคเฉ‡ เจ…เจจเฉเจญเจต เจฒเจˆ PostgreSQL เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€

เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ, เจ—เจพเจนเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจชเฉเจฐเจพเจชเจค เจนเฉ‹ เจฐเจนเฉ€เจ†เจ‚ เจนเจจ: "เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจเจฎเจพเจœเจผเจพเจจ เจ†เจฐเจกเฉ€เจเจธ เจตเจพเจ‚เจ— เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚, เจชเจฐ เจธเจธเจคเจพ"; "เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ RDS เจตเจพเจ‚เจ— เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚, เจชเจฐ เจนเจฐ เจฅเจพเจ‚, เจ•เจฟเจธเฉ‡ เจตเฉ€ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจตเจฟเฉฑเจš." เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ 'เจคเฉ‡ เจ…เจœเจฟเจนเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจนเฉฑเจฒ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ PostgreSQL (เจธเจŸเฉ‹เจฒเจจ, เจ•เจฐเฉฐเจšเฉ€ เจกเฉ‡เจŸเจพ เจ…เจคเฉ‡ เจœเจผเจฒเฉˆเจ‚เจกเฉ‹ เจคเฉ‹เจ‚ เจ†เจชเจฐเฉ‡เจŸเจฐเจพเจ‚) เจฒเจˆ เจธเจญ เจคเฉ‹เจ‚ เจชเฉเจฐเจธเจฟเฉฑเจง เจ“เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฟเจ† เจ…เจคเฉ‡ เจธเจพเจกเฉ€ เจšเฉ‹เจฃ เจ•เฉ€เจคเฉ€เฅค

เจ‡เจน เจฒเฉ‡เจ– เจ‰เจน เจ…เจจเฉเจญเจต เจนเฉˆ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจธเจฟเจงเจพเจ‚เจคเจ• เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ (เจนเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจธเจฎเฉ€เจ–เจฟเจ†) เจ…เจคเฉ‡ เจตเจฟเจนเจพเจฐเจ• เจชเฉฑเจ– เจคเฉ‹เจ‚ (เจ•เฉ€ เจšเฉเจฃเจฟเจ† เจ—เจฟเจ† เจธเฉ€ เจ…เจคเฉ‡ เจ‡เจธ เจคเฉ‹เจ‚ เจ•เฉ€ เจ†เจ‡เจ†) เจฆเฉ‹เจตเจพเจ‚ เจคเฉ‹เจ‚ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจชเจฐ เจชเจนเจฟเจฒเจพเจ‚, เจ†เจ“ เจ‡เจน เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเฉ€เจ เจ•เจฟ RDS เจฒเจˆ เจธเฉฐเจญเจพเจตเฉ€ เจคเจฌเจฆเฉ€เจฒเฉ€ เจฒเจˆ เจ†เจฎ เจฒเฉ‹เฉœเจพเจ‚ เจ•เฉ€ เจนเจจ...

RDS เจ•เฉ€ เจนเฉˆ

เจœเจฆเฉ‹เจ‚ เจฒเฉ‹เจ• RDS เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจธเจพเจกเฉ‡ เจ…เจจเฉเจญเจต เจตเจฟเฉฑเจš, เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจฎเจคเจฒเจฌ เจ‡เฉฑเจ• เจชเฉเจฐเจฌเฉฐเจงเจฟเจค DBMS เจธเฉ‡เจตเจพ เจนเฉˆ เจœเฉ‹:

  1. เจธเฉฐเจฐเจšเจจเจพ เจ•เจฐเจจ เจฒเจˆ เจ†เจธเจพเจจ;
  2. เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจคเฉ‹เจ‚ เจฎเฉเฉœ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ (เจคเจฐเจœเฉ€เจนเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจฎเจฐเจฅเจจ เจจเจพเจฒ เจชเฉ€.เจ†เจˆ.เจŸเฉ€.เจ†เจฐ);
  3. เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเจพเจธเจŸเจฐ-เจธเจฒเฉ‡เจต เจŸเฉ‹เจชเฉ‹เจฒเฉ‹เจœเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ;
  4. เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจ…เจฎเฉ€เจฐ เจธเฉ‚เจšเฉ€ เจนเฉˆ;
  5. เจ†เจกเจฟเจŸเจฟเฉฐเจ— เจ…เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ/เจชเจนเฉเฉฐเจš เจชเฉเจฐเจฌเฉฐเจงเจจ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจนเฉฑเจฅ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจชเจนเฉเฉฐเจš เจฌเจนเฉเจค เจตเฉฑเจ–เจฐเฉ‡ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ, เจชเจฐ เจธเจผเจฐเจคเฉ€เจ† เจœเจตเจพเจฌเจฆเฉ‡เจน เจตเจพเจฒเจพ เจฎเจพเจฐเจ— เจธเจพเจกเฉ‡ เจจเฉ‡เฉœเฉ‡ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค (2GIS เจฆเฉ‡ เจธเจนเจฟเจ•เจฐเจฎเฉ€ เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚ เจ‡เฉฑเจ• เจธเจฎเจพเจจ เจธเจฟเฉฑเจŸเฉ‡ 'เจคเฉ‡ เจ†เจ เจ‰เจธ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ "เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ-เจ…เจงเจพเจฐเจฟเจค เจซเฉ‡เจฒเจ“เจตเจฐ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉฐเจฆ เจฌเจฃเจพเจ“เฅค")

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจˆเจ•เฉ‹เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจธเจฎเจพเจจ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจ†เจชเจฐเฉ‡เจŸเจฐ เจ‡เฉฑเจ• เจ†เจฎ เจชเจนเฉเฉฐเจš เจนเฉˆเฅค "Flanta" เจฆเฉ‡ เจคเจ•เจจเฉ€เจ•เฉ€ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจ• เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจฒเจพเจ‚เจš เจ•เฉ€เจคเฉ‡ เจ—เจ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ‡ เจธเจฌเฉฐเจง เจตเจฟเฉฑเจš เจ‰เจนเจจเจพเจ‚ เจฌเจพเจฐเฉ‡ เจตเจงเฉ‡เจฐเฉ‡ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจฌเฉ‹เจฒ เจšเฉเฉฑเจ•เฉ‡ เจนเจจเฅค เจกเจฟเจธเจŸเฉ‹เจฒ, เจตเจฟเจš เจ‰เจธเจฆเฉ€ เจ‡เฉฑเจ• เจฐเจฟเจชเฉ‹เจฐเจŸ.

NB: เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจธเจงเจพเจฐเจจ เจ“เจชเจฐเฉ‡เจŸเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจธเจพเจกเฉ€ เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจตเฉฑเจฒ เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฆเฉ€ เจธเจฟเจซเจผเจพเจฐเจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจธเจผเฉˆเฉฑเจฒ-เจ†เจชเจฐเฉ‡เจŸเจฐ. เจ‡เจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจคเฉเจธเฉ€เจ‚ เจ—เฉ‹ เจฆเฉ‡ เจ—เจฟเจ†เจจ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจ…เจœเจฟเจนเจพ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจธเจฟเจธเจŸเจฎ เจชเฉเจฐเจฌเฉฐเจงเจ•เจพเจ‚ เจฒเจˆ เจตเจงเฉ‡เจฐเฉ‡ เจœเจพเจฃเฉ‚ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเจพเจฒ: Bash, Python, เจ†เจฆเจฟ เจตเจฟเฉฑเจšเฅค

PostgreSQL เจฒเจˆ เจ•เจˆ เจชเฉเจฐเจธเจฟเฉฑเจง K8s เจ†เจชเจฐเฉ‡เจŸเจฐ เจนเจจ:

  • เจธเจŸเฉ‹เจฒเฉ‹เจจ;
  • เจ•เจฐเฉฐเจšเฉ€ เจกเจพเจŸเจพ PostgreSQL เจ†เจชเจฐเฉ‡เจŸเจฐ;
  • เจœเจผเจฒเฉˆเจ‚เจกเฉ‹ เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจ†เจชเจฐเฉ‡เจŸเจฐเฅค

เจ†เจ‰ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจงเจฟเจ†เจจ เจจเจพเจฒ เจตเฉ‡เจ–เฉ€เจ.

เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเฉ€ เจšเฉ‹เจฃ

เจ‰เฉฑเจชเจฐ เจฆเฉฑเจธเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ…เจธเฉ€เจ‚ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเจพ เจธเฉฐเจšเจพเจฒเจจ เจ‡เฉฐเจœเจจเฉ€เจ…เจฐ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ - เจ†เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจ‡เจน เจตเฉ€ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚:

  • Git เจ…เจคเฉ‡ เจจเจพเจฒ เจคเฉˆเจจเจพเจคเฉ€ เจ•เจธเจŸเจฎ เจธเจฐเฉ‹เจค;
  • เจชเฉŒเจก เจเจ‚เจŸเฉ€-เจเจซเฉ€เจจเจฟเจŸเฉ€ เจธเจชเฉ‹เจฐเจŸ;
  • เจจเฉ‹เจก เจเจซเฉ€เจจเจฟเจŸเฉ€ เจœเจพเจ‚ เจจเฉ‹เจก เจšเฉ‹เจฃเจ•เจพเจฐ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ;
  • เจธเจนเจฟเจฃเจธเจผเฉ€เจฒเจคเจพ เจฆเฉ€ เจธเจฅเจพเจชเจจเจพ;
  • เจŸเจฟเจŠเจจเจฟเฉฐเจ— เจธเจฎเจฐเฉฑเจฅเจพ เจฆเฉ€ เจ‰เจชเจฒเจฌเจงเจคเจพ;
  • เจธเจฎเจเจฃ เจฏเฉ‹เจ— เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจนเฉเจ•เจฎ เจตเฉ€เฅค

เจนเจฐเฉ‡เจ• เจฌเจฟเฉฐเจฆเฉ‚ 'เจคเฉ‡ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจœเจพเจฃ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ (เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจชเฉเฉฑเจ›เฉ‹ เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเฉ‚เจฐเจพ เจฒเฉ‡เจ– เจชเฉœเฉเจนเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจตเฉ€ เจ‰เจนเจจเจพเจ‚ เจฌเจพเจฐเฉ‡ เจธเจตเจพเจฒ เจนเจจ), เจฎเฉˆเจ‚ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจจเฉ‹เจŸ เจ•เจฐเจพเจ‚เจ—เจพ เจ•เจฟ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‹เจกเจพเจ‚ เจฆเฉ€ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจตเจงเฉ‡เจฐเฉ‡ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจตเจฐเจฃเจจ เจ•เจฐเจจ เจฒเจˆ เจ‡เจนเจจเจพเจ‚ เจฎเจพเจชเจฆเฉฐเจกเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ. เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ–เจพเจธ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฒเจˆ เจ†เจฐเจกเจฐ เจ•เจฐเฉ‹เฅค เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ…เจธเฉ€เจ‚ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ…เจคเฉ‡ เจฒเจพเจ—เจค เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจธเจฐเจตเฉ‹เจคเจฎ เจธเฉฐเจคเฉเจฒเจจ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค

เจ†เจ‰ เจนเฉเจฃ PostgreSQL เจ†เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจตเฉฑเจฒ เจตเจงเฉ€เจเฅค

1. เจธเจŸเฉ‹เจฒเจจ

เจธเจŸเฉ‹เจฒเจจ เจตเจฟเฉฑเจš เจ‡เจคเจพเจฒเจตเฉ€ เจ•เฉฐเจชเจจเฉ€ Sorint.lab เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจœเจผเจฟเจ•เจฐ เจ•เฉ€เจคเฉ€ เจฐเจฟเจชเฉ‹เจฐเจŸ DBMS เจฒเจˆ เจ†เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เจฟเจธเจฎ เจฆเจพ เจฎเจฟเจ†เจฐ เจฎเฉฐเจจเจฟเจ† เจœเจพเจ‚เจฆเจพ เจธเฉ€เฅค เจ‡เจน เจ•เจพเจซเจผเฉ€ เจชเฉเจฐเจพเจฃเจพ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจนเฉˆ: เจ‡เจธเจฆเจพ เจชเจนเจฟเจฒเจพ เจœเจจเจคเจ• เจฐเฉ€เจฒเฉ€เจœเจผ เจจเจตเฉฐเจฌเจฐ 2015 (!) เจตเจฟเฉฑเจš เจนเฉ‹เจ‡เจ† เจธเฉ€, เจ…เจคเฉ‡ GitHub เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฒเจ—เจญเจ— 3000 เจธเจฟเจคเจพเจฐเจฟเจ†เจ‚ เจ…เจคเฉ‡ 40+ เจฏเฉ‹เจ—เจฆเจพเจจเฉ€เจ†เจ‚ เจฆเจพ เจฎเจพเจฃ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค

เจฆเจฐเจ…เจธเจฒ, เจธเจŸเฉ‹เจฒเจจ เจตเจฟเจšเจพเจฐเจธเจผเฉ€เจฒ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฆเจพ เจ‡เฉฑเจ• เจธเจผเจพเจจเจฆเจพเจฐ เจ‰เจฆเจพเจนเจฐเจฃ เจนเฉˆ:

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ, เจธเจพเจกเฉ€เจ†เจ‚ เจšเฉ‹เจฃเจพเจ‚ เจ…เจคเฉ‡ เจ…เจจเฉเจญเจต เจฒเจˆ PostgreSQL เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€
เจ‡เจธ เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเฉ€ เจกเจฟเจตเจพเจˆเจธ เจจเฉ‚เฉฐ เจฐเจฟเจชเฉ‹เจฐเจŸ เจตเจฟเฉฑเจš เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจชเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจœเจพเจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ. เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจน เจ•เจนเจฟเจฃเจพ เจ•เจพเจซเจผเฉ€ เจนเฉˆ เจ•เจฟ เจ‡เจน เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเจญ เจ•เฉเจ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ: เจซเฉ‡เจฒเจ“เจตเจฐ, เจชเจพเจฐเจฆเจฐเจธเจผเฉ€ เจ•เจฒเจพเจ‡เฉฐเจŸ เจชเจนเฉเฉฐเจš เจฒเจˆ เจชเฉเจฐเฉŒเจ•เจธเฉ€, เจฌเฉˆเจ•เจ…เฉฑเจช... เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจชเฉเจฐเฉŒเจ•เจธเฉ€ เจ‡เฉฑเจ• เจ…เฉฐเจคเจฎ เจฌเจฟเฉฐเจฆเฉ‚ เจธเฉ‡เจตเจพ เจฆเฉเจ†เจฐเจพ เจชเจนเฉเฉฐเจš เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเจจ - เจนเฉ‡เจ เจพเจ‚ เจฆเฉฑเจธเฉ‡ เจ—เจ เจฆเฉ‹ เจนเฉ‹เจฐ เจนเฉฑเจฒเจพเจ‚ เจฆเฉ‡ เจ‰เจฒเจŸ (เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจš เจนเจฐเฉ‡เจ• เจฒเจˆ เจฆเฉ‹ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจนเจจ เจ…เจงเจพเจฐ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐเจจเจพ)

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจธเจŸเฉ‹เจฒเจจ เจ•เฉ‹เจˆ เจ•เจธเจŸเจฎ เจธเจฐเฉ‹เจค เจจเจนเฉ€เจ‚, เจœเจฟเจธ เจ•เจฐเจ•เฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจคเฉˆเจจเจพเจค เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš DBMS เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ - "เจœเจฟเจตเฉ‡เจ‚ เจ—เจฐเจฎ เจ•เฉ‡เจ•" - เจ†เจธเจพเจจ เจ…เจคเฉ‡ เจคเฉ‡เจœเจผ เจนเฉ‹เจตเฉ‡เฅค เจชเฉเจฐเจฌเฉฐเจงเจจ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ stolonctl, เจคเฉˆเจจเจพเจคเฉ€ เจนเฉˆเจฒเจฎ เจšเจพเจฐเจŸ เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ•เจธเจŸเจฎ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ…เจคเฉ‡ ConfigMap เจตเจฟเฉฑเจš เจจเจฟเจฐเจฆเจฟเจธเจผเจŸ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจชเจพเจธเฉ‡, เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ เจ“เจชเจฐเฉ‡เจŸเจฐ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ†เจชเจฐเฉ‡เจŸเจฐ เจจเจนเฉ€เจ‚ เจนเฉˆ (เจ†เจ–เจผเจฐเจ•เจพเจฐ, เจ‡เจน CRD เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ). เจชเจฐ เจฆเฉ‚เจœเฉ‡ เจชเจพเจธเฉ‡, เจ‡เจน เจ‡เฉฑเจ• เจฒเจšเจ•เฉ€เจฒเจพ เจธเจฟเจธเจŸเจฎ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ K8s เจตเจฟเฉฑเจš เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจซเจฟเฉฑเจŸ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹เฅค

เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš, เจธเจพเจกเฉ‡ เจฒเจˆ เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจคเฉŒเจฐ 'เจคเฉ‡ เจนเจฐเฉ‡เจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฒเจˆ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจšเจพเจฐเจŸ เจฌเจฃเจพเจ‰เจฃเจพ เจ…เจจเฉเจ•เฉ‚เจฒ เจจเจนเฉ€เจ‚ เจœเจพเจชเจฆเจพ เจธเฉ€เฅค เจ‡เจธ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจฌเจฆเจฒ เจฒเฉฑเจญเจฃเฉ‡ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฆเจฟเฉฑเจคเฉ‡เฅค

2. เจ•เจฐเฉฐเจšเฉ€ เจกเฉ‡เจŸเจพ PostgreSQL เจ†เจชเจฐเฉ‡เจŸเจฐ

เจ•เจฐเฉฐเจšเฉ€ เจกเฉ‡เจŸเจพ เจคเฉ‹เจ‚ เจ†เจชเจฐเฉ‡เจŸเจฐ, เจ‡เฉฑเจ• เจจเฉŒเจœเจตเจพเจจ เจ…เจฎเจฐเฉ€เจ•เฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค, เจ‡เฉฑเจ• เจคเจฐเจ•เจชเฉ‚เจฐเจจ เจตเจฟเจ•เจฒเจช เจตเจพเจ‚เจ— เจœเจพเจชเจฆเจพ เจธเฉ€เฅค เจ‡เจธเจฆเจพ เจœเจจเจคเจ• เจ‡เจคเจฟเจนเจพเจธ เจฎเจพเจฐเจš 2017 เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเฉ€ เจฐเฉ€เจฒเฉ€เจœเจผ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ‰เจฆเฉ‹เจ‚ เจคเฉ‹เจ‚ GitHub เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซ 1300 เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจธเจฟเจคเจพเจฐเฉ‡ เจ…เจคเฉ‡ 50+ เจฏเฉ‹เจ—เจฆเจพเจจเฉ€ เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจ เจนเจจเฅค เจธเจคเฉฐเจฌเจฐ เจคเฉ‹เจ‚ เจจเจตเฉ€เจจเจคเจฎ เจฐเจฟเจฒเฉ€เจœเจผ เจจเฉ‚เฉฐ Kubernetes 1.15-1.18, OpenShift 3.11+ เจ…เจคเฉ‡ 4.4+, GKE เจ…เจคเฉ‡ VMware Enterprise PKS 1.3+ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจŸเฉˆเจธเจŸ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค

Crunchy Data PostgreSQL เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเจพ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจตเฉ€ เจฆเฉฑเจธเฉ€เจ†เจ‚ เจฒเฉ‹เฉœเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจฆเจพ เจนเฉˆ:

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ, เจธเจพเจกเฉ€เจ†เจ‚ เจšเฉ‹เจฃเจพเจ‚ เจ…เจคเฉ‡ เจ…เจจเฉเจญเจต เจฒเจˆ PostgreSQL เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€

เจชเฉเจฐเจฌเฉฐเจงเจจ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฆเฉเจ†เจฐเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆ pgo, เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‡เจน เจฌเจฆเจฒเฉ‡ เจตเจฟเฉฑเจš เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ•เจธเจŸเจฎ เจธเจฐเฉ‹เจค เจคเจฟเจ†เจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจธเฉฐเจญเจพเจตเฉ€ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจตเจœเฉ‹เจ‚ เจ†เจชเจฐเฉ‡เจŸเจฐ เจจเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจ–เฉเจธเจผ เจ•เฉ€เจคเจพ:

  • CRD เจฆเฉเจ†เจฐเจพ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจนเฉˆ;
  • เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ (เจธเฉ€เจ†เจฐเจกเฉ€ เจฆเฉเจ†เจฐเจพ เจตเฉ€);
  • เจนเฉ‹เจฐ เจญเจพเจ—เจพเจ‚ เจจเจพเจฒ เจเจ•เฉ€เจ•เจฐเจฃ เจ•เจฐเฉฐเจšเฉ€ เจกเฉ‡เจŸเจพ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจธเฉ‚เจŸ โ€” PostgreSQL เจฒเจˆ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจธเฉฐเจ—เฉเจฐเจนเจฟ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ‰เจชเจฏเฉ‹เจ—เจคเจพเจตเจพเจ‚ (เจธเจฎเฉ‡เจค pgBackRest, pgAudit, เจฏเฉ‹เจ—เจฆเจพเจจ เจคเฉ‹เจ‚ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจ†เจฆเจฟ)เฅค

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ•เจฐเฉฐเจšเฉ€ เจกเฉ‡เจŸเจพ เจคเฉ‹เจ‚ เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฆเฉ€เจ†เจ‚ เจ•เฉ‹เจธเจผเจฟเจธเจผเจพเจ‚ เจจเฉ‡ เจ•เจˆ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเจพ เจ–เฉเจฒเจพเจธเจพ เจ•เฉ€เจคเจพ:

  • เจธเจนเจฟเจฃเจธเจผเฉ€เจฒเจคเจพ เจฆเฉ€ เจ•เฉ‹เจˆ เจธเฉฐเจญเจพเจตเจจเจพ เจจเจนเฉ€เจ‚ เจธเฉ€ - เจธเจฟเจฐเจซ เจจเฉ‹เจก-เจธเจฟเจฒเฉˆเจ•เจŸเจฐ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  • เจฌเจฃเจพเจ เจ—เจ เจชเฉŒเจก เจกเจฟเจชเจฒเจพเจ‡เจฎเฉˆเจ‚เจŸ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจธเจจ, เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจŸเฉ‡เจŸเจซเฉเจฒ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจธเจŸเฉ‡เจŸเจซเฉเจฒเจธเฉˆเจŸเจธ เจฆเฉ‡ เจ‰เจฒเจŸ, เจกเจฟเจชเจฒเจพเจ‡เจฎเฉˆเจ‚เจŸ เจกเจฟเจธเจ•เจพเจ‚ เจจเจนเฉ€เจ‚ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจ†เจ–เจฐเฉ€ เจ•เจฎเฉ€ เจฎเจœเจผเจพเจ•เฉ€เจ† เจชเจฒเจพเจ‚ เจตเฉฑเจฒ เจ–เฉœเจฆเฉ€ เจนเฉˆ: เจŸเฉˆเจธเจŸ เจตเจพเจคเจพเจตเจฐเจฃ 'เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจกเจฟเจธเจ• เจจเจพเจฒ 3 เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€เจ†เจ‚ เจšเจฒเจพเจ‰เจฃ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจนเฉ‹เจ เจธเจฅเจพเจจเจ• เจธเจŸเฉ‹เจฐเฉ‡เจœเจผ, เจœเจฟเจธ เจจเจพเจฒ เจ†เจชเจฐเฉ‡เจŸเจฐ เจจเฉ‚เฉฐ เจฐเจฟเจชเฉ‹เจฐเจŸ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจ•เจฟ 3 เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€เจ†เจ‚ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจนเฉ€เจ†เจ‚ เจธเจจ (เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‰เจน เจจเจนเฉ€เจ‚ เจธเจจ)เฅค

เจ‡เจธ เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเฉ€ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจตเฉฑเจ–-เจตเฉฑเจ– เจธเจนเจพเจ‡เจ• เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ‡เจธเจฆเจพ เจคเจฟเจ†เจฐ-เจฌเจฃเจพเจ‡เจ† เจเจ•เฉ€เจ•เจฐเจฃ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, pgAdmin เจ…เจคเฉ‡ pgBounce, เจ…เจคเฉ‡ เจตเจฟเฉฑเจš เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจเจพ เจ†เจธเจพเจจ เจนเฉˆ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจชเฉ‚เจฐเจต-เจธเฉฐเจฐเจšเจฟเจค เจ—เฉเจฐเจพเจซเจพเจจเจพ เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจจเฉ‚เฉฐ เจฎเฉฐเจจเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจนเจพเจฒ เจนเฉ€ เจตเจฟเฉฑเจš เจฐเฉ€เจฒเฉ€เจœเจผ 4.5.0-beta1 เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจจเจพเจฒ เจฌเจฟเจนเจคเจฐ เจเจ•เฉ€เจ•เจฐเจฃ เจจเฉ‚เฉฐ เจตเฉฑเจ–เจฐเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจจเฉ‹เจŸ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ pgMonitor, เจœเจฟเจธเจฆเจพ เจงเฉฐเจจเจตเจพเจฆ เจ“เจชเจฐเฉ‡เจŸเจฐ เจฌเจพเจ•เจธ เจฆเฉ‡ เจฌเจพเจนเจฐ PgSQL เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฆเฉ€ เจธเจชเจธเจผเจŸ เจตเจฟเจœเจผเฉ‚เจ…เจฒเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉเจ†เจฐเจพ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจ…เจœเฉ€เจฌ เจšเฉ‹เจฃ เจจเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจนเฉฑเจฒ เจฒเฉฑเจญเจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจตเฉฑเจฒ เจ…เจ—เจตเจพเจˆ เจ•เฉ€เจคเฉ€เฅค

3. เจœเจผเจฒเฉˆเจ‚เจกเฉ‹ เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจ†เจชเจฐเฉ‡เจŸเจฐ

เจ…เจธเฉ€เจ‚ เจœเจผเจฒเฉˆเจ‚เจกเฉ‹ เจ‰เจคเจชเจพเจฆเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจœเจพเจฃเจฆเฉ‡ เจนเจพเจ‚: เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจœเจผเฉˆเจฒเฉ‡เจจเจฟเจ…เจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเจพ เจคเจœเจฐเจฌเจพ เจนเฉˆ เจ…เจคเฉ‡, เจฌเฉ‡เจธเจผเจ•, เจ…เจธเฉ€เจ‚ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€ เจธเจฐเจชเฉเจฐเจธเจค PostgreSQL เจฒเจˆ เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจชเฉเจฐเจธเจฟเฉฑเจง HA เจนเฉฑเจฒ เจนเฉˆเฅค เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ•เฉฐเจชเจจเฉ€ เจฆเฉ€ เจชเจนเฉเฉฐเจš เจฌเจพเจฐเฉ‡ เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจ†เจชเจฐเฉ‡เจŸเจฐ เจ‡เจธเจฆเฉ‡ เจฒเฉ‡เจ–เจ•เจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ•, เจ…เจฒเฉˆเจ•เจธเฉ€ เจ•เจฒเจฏเฉเจ•เจฟเจจ เจจเฉ‡ เจนเจตเจพ เจตเจฟเฉฑเจš เจ•เจฟเจนเจพ เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ-เจฎเฉฐเจ—เจฒเจตเจพเจฐ #5, เจ…เจคเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจ‡เจน เจชเจธเฉฐเจฆ เจ†เจ‡เจ†เฅค

เจ‡เจน เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจตเจฟเจšเจพเจฐเจฟเจ† เจ—เจฟเจ† เจธเจญ เจคเฉ‹เจ‚ เจ›เฉ‹เจŸเจพ เจนเฉฑเจฒ เจนเฉˆ: เจชเจนเจฟเจฒเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ เจ…เจ—เจธเจค 2018 เจตเจฟเฉฑเจš เจนเฉ‹เจˆ เจธเฉ€เฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจฐเจธเจฎเฉ€ เจฐเฉ€เจฒเฉ€เจœเจผเจพเจ‚ เจฆเฉ€ เจฅเฉ‹เฉœเฉเจนเฉ€ เจœเจฟเจนเฉ€ เจ—เจฟเจฃเจคเฉ€ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ, เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‡ เจ‡เฉฑเจ• เจฒเฉฐเจฎเจพ เจธเจซเจผเจฐ เจคเฉˆเจ… เจ•เฉ€เจคเจพ เจนเฉˆ, เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ—เจฟเจŸเจนเจฌ 'เจคเฉ‡ 1300+ เจธเจฟเจคเจพเจฐเจฟเจ†เจ‚ เจ…เจคเฉ‡ เจฏเฉ‹เจ—เจฆเจพเจจเฉ€เจ†เจ‚ เจฆเฉ€ เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจ—เจฟเจฃเจคเฉ€ (70+) เจฆเฉ‡ เจจเจพเจฒ เจ•เฉเจฐเฉฐเจšเฉ€ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจนเฉฑเจฒ เจจเฉ‚เฉฐ เจชเจ›เจพเฉœ เจ—เจฟเจ† เจนเฉˆเฅค

"เจนเฉเฉฑเจก เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚" เจ‡เจน เจ†เจชเจฐเฉ‡เจŸเจฐ เจธเจฎเฉ‡เจ‚-เจชเจฐเฉ€เจ–เจฃ เจตเจพเจฒเฉ‡ เจนเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ:

เจœเจผเจฒเฉˆเจ‚เจกเฉ‹ เจคเฉ‹เจ‚ เจ“เจชเจฐเฉ‡เจŸเจฐ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ:

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ, เจธเจพเจกเฉ€เจ†เจ‚ เจšเฉ‹เจฃเจพเจ‚ เจ…เจคเฉ‡ เจ…เจจเฉเจญเจต เจฒเจˆ PostgreSQL เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€

เจ†เจชเจฐเฉ‡เจŸเจฐ เจจเฉ‚เฉฐ เจ•เจธเจŸเจฎ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ†เจชเจฃเฉ‡ เจ†เจช เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจธเจŸเฉ‡เจŸเจซเฉเฉฑเจฒเจธเฉˆเฉฑเจŸ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจจเฉ‚เฉฐ เจซเจฟเจฐ เจชเฉŒเจก เจตเจฟเฉฑเจš เจตเฉฑเจ– เจตเฉฑเจ– เจธเจพเจˆเจกเจ•เจพเจฐ เจœเฉ‹เฉœ เจ•เฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ•เจฐเฉฐเจšเฉ€ เจกเฉ‡เจŸเจพ เจคเฉ‹เจ‚ เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจตเจฟเฉฑเจš เจ‡เจน เจธเจญ เจ‡เฉฑเจ• เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจซเจพเจ‡เจฆเจพ เจนเฉˆเฅค

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เจธเฉ€เจ‚ เจตเจฟเจšเจพเจฐ เจ…เจงเฉ€เจจ 3 เจตเจฟเจ•เจฒเจชเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจœเจผเจฒเฉˆเจ‚เจกเฉ‹ เจคเฉ‹เจ‚ เจนเฉฑเจฒ เจšเฉเจฃเจฟเจ† เจนเฉˆ, เจ‡เจธเจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ เจฆเจพ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจตเฉ‡เจฐเจตเจพ เจนเฉ‡เจ เจพเจ‚ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ, เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ‡ เจ…เจญเจฟเจ†เจธ เจฆเฉ‡ เจจเจพเจฒ-เจจเจพเจฒเฅค

เจœเจผเจฒเฉˆเจ‚เจกเฉ‹ เจคเฉ‹เจ‚ เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจ†เจชเจฐเฉ‡เจŸเจฐ เจจเจพเจฒ เจ…เจญเจฟเจ†เจธ เจ•เจฐเฉ‹

เจ“เจชเจฐเฉ‡เจŸเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจฌเจนเฉเจค เจธเจงเจพเจฐเจจ เจนเฉˆ: GitHub เจคเฉ‹เจ‚ เจฎเฉŒเจœเฉ‚เจฆเจพ เจฐเฉ€เจฒเฉ€เจœเจผ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจคเฉ‹เจ‚ YAML เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเฉ‹ เจชเฉเจฐเจ—เจŸ เจนเฉเฉฐเจฆเจพ เจนเฉˆ. เจตเจฟเจ•เจฒเจชเจ• เจคเฉŒเจฐ 'เจคเฉ‡, เจคเฉเจธเฉ€เจ‚ เจตเฉ€ เจตเจฐเจค เจธเจ•เจฆเฉ‡ เจนเฉ‹ operatorhub.

เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจšเจฟเฉฐเจคเจพ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ เจฒเจพเจ— เจ…เจคเฉ‡ เจฌเฉˆเจ•เจ…เฉฑเจช เจฒเจˆ เจธเจŸเฉ‹เจฐเฉ‡เจœเจผ. เจ‡เจน ConfigMap เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ postgres-operator เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฐเฉ‡เจŸเจฐ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจตเจพเจฐ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเจพ เจชเจนเจฟเจฒเจพ PostgreSQL เจ•เจฒเฉฑเจธเจŸเจฐ เจคเฉˆเจจเจพเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจธเจพเจกเฉ€ เจฎเจฟเจ†เจฐเฉ€ เจคเฉˆเจจเจพเจคเฉ€ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ:

apiVersion: acid.zalan.do/v1
kind: postgresql
metadata:
 name: staging-db
spec:
 numberOfInstances: 3
 patroni:
   synchronous_mode: true
 postgresql:
   version: "12"
 resources:
   limits:
     cpu: 100m
     memory: 1Gi
   requests:
     cpu: 100m
     memory: 1Gi
 sidecars:
 - env:
   - name: DATA_SOURCE_URI
     value: 127.0.0.1:5432
   - name: DATA_SOURCE_PASS
     valueFrom:
       secretKeyRef:
         key: password
         name: postgres.staging-db.credentials
   - name: DATA_SOURCE_USER
     value: postgres
   image: wrouesnel/postgres_exporter
   name: prometheus-exporter
   resources:
     limits:
       cpu: 500m
       memory: 100Mi
     requests:
       cpu: 100m
       memory: 100Mi
 teamId: staging
 volume:
   size: 2Gi

เจ‡เจน เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจซเจพเจฐเจฎ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจพเจˆเจกเจ•เจพเจฐ เจฆเฉ‡ เจจเจพเจฒ 3 เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจฆเฉ‡ เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจฆเจพ เจนเฉˆ postgres_exporter, เจœเจฟเจธ เจคเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจนเจฐ เจšเฉ€เจœเจผ เจฌเจนเฉเจค เจธเจงเจพเจฐเจจ เจนเฉˆ, เจ…เจคเฉ‡ เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจšเจพเจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจธเจผเจพเจฌเจฆเจฟเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจ…เจฃเจ—เจฟเจฃเจค เจ•เจฒเฉฑเจธเจŸเจฐ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ‡เจน เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฏเฉ‹เจ— เจนเฉˆ เจตเฉˆเฉฑเจฌ เจชเฉเจฐเจธเจผเจพเจธเจจ เจชเฉˆเจจเจฒ - postgres-operator-ui. เจ‡เจน เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเฉ‡ เจจเจพเจฒ เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฒเฉฑเจธเจŸเจฐ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจฎเจฟเจŸเจพเจ‰เจฃ เจฆเฉ‡ เจจเจพเจฒ-เจจเจพเจฒ เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเฉเจ†เจฐเจพ เจฌเจฃเจพเจ เจฌเฉˆเจ•เจ…เฉฑเจช เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ, เจธเจพเจกเฉ€เจ†เจ‚ เจšเฉ‹เจฃเจพเจ‚ เจ…เจคเฉ‡ เจ…เจจเฉเจญเจต เจฒเจˆ PostgreSQL เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€
PostgreSQL เจ•เจฒเฉฑเจธเจŸเจฐเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ, เจธเจพเจกเฉ€เจ†เจ‚ เจšเฉ‹เจฃเจพเจ‚ เจ…เจคเฉ‡ เจ…เจจเฉเจญเจต เจฒเจˆ PostgreSQL เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€
เจฌเฉˆเจ•เจ…เฉฑเจช เจชเฉเจฐเจฌเฉฐเจงเจจ

เจ‡เจ• เจนเฉ‹เจฐ เจฆเจฟเจฒเจšเจธเจช เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจธเจฎเจฐเจฅเจจ เจนเฉˆ เจŸเฉ€เจฎ API. เจ‡เจน เจตเจฟเจงเฉ€ เจ†เจชเจฃเฉ‡ เจ†เจช เจฌเจฃ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ PostgreSQL เจตเจฟเฉฑเจš เจญเฉ‚เจฎเจฟเจ•เจพเจตเจพเจ‚, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเจพเจฎเจพเจ‚ เจฆเฉ€ เจจเจคเฉ€เจœเจพ เจธเฉ‚เจšเฉ€ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡เฅค API เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจตเจพเจชเจธ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจœเจฟเจจเฉเจนเจพเจ‚ เจฒเจˆ เจฐเฉ‹เจฒ เจ†เจชเจฃเฉ‡ เจ†เจช เจฌเจฃเจฆเฉ‡ เจนเจจเฅค

เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจ…เจคเฉ‡ เจนเฉฑเจฒ

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเฉ‡ เจœเจฒเจฆเฉ€ เจนเฉ€ เจ•เจˆ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจ•เจฎเฉ€เจ†เจ‚ เจฆเจพ เจ–เฉเจฒเจพเจธเจพ เจ•เฉ€เจคเจพ:

  1. nodeSelector เจธเจนเจฟเจฏเฉ‹เจ— เจฆเฉ€ เจ˜เจพเจŸ;
  2. เจฌเฉˆเจ•เจ…เฉฑเจช เจจเฉ‚เฉฐ เจ…เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ…เจธเจฎเจฐเฉฑเจฅเจพ;
  3. เจกเจพเจŸเจพเจฌเฉ‡เจธ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจกเจฟเจซเจพเจฒเจŸ เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐ เจฆเจฟเจ–เจพเจˆ เจจเจนเฉ€เจ‚ เจฆเจฟเฉฐเจฆเฉ‡;
  4. เจ•เจˆ เจตเจพเจฐ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจ—เฉเฉฐเจฎ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจœเจพเจ‚ เจชเฉเจฐเจพเจฃเฉ‡ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค

เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจนเฉฑเจฒ เจ•เฉ€เจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจ. เจ†เจ‰ เจ…เฉฐเจค เจคเฉ‹เจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ€เจ - เจจเจพเจฒ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ.

เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉˆ, เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจคเฉฑเจฅ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจ•เจฐเฉ‹เจ—เฉ‡ เจ•เจฟ เจ‡เจน เจนเจฎเฉ‡เจธเจผเจพ เจธเจชเฉฑเจธเจผเจŸ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจฌเฉˆเจ•เจ…เฉฑเจช เจ•เจฟเจตเฉ‡เจ‚ เจฐเจœเจฟเจธเจŸเจฐ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจฌเฉˆเจ•เจ…เฉฑเจช เจฌเจพเจฒเจŸเฉ€ เจจเฉ‚เฉฐ เจ“เจชเจฐเฉ‡เจŸเจฐ UI เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆเฅค เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจฒเฉฐเจ˜เจฃ เจตเจฟเฉฑเจš เจ—เฉฑเจฒ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจชเจฐ เจ…เจธเจฒ เจตเฉ‡เจฐเจตเจพ เจ‡เจธ เจตเจฟเฉฑเจš เจนเฉˆ PR:

  1. เจ‡เฉฑเจ• เจ—เฉเจชเจค เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ;
  2. เจ‡เจธ เจจเฉ‚เฉฐ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจ†เจชเจฐเฉ‡เจŸเจฐ เจจเฉ‚เฉฐ เจญเฉ‡เจœเฉ‹ pod_environment_secret_name เจ“เจชเจฐเฉ‡เจŸเจฐ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ CRD เจตเจฟเฉฑเจš เจœเจพเจ‚ ConfigMap เจตเจฟเฉฑเจš (เจ‡เจธ เจ—เฉฑเจฒ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ“เจชเจฐเฉ‡เจŸเจฐ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹)เฅค

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ, เจ‡เจน เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš เจ…เจธเฉฐเจญเจต เจนเฉˆ. เจ‡เจธ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจ‡เจ•เฉฑเจ เจพ เจ•เฉ€เจคเจพ เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเจพ เจคเฉเจนเจพเจกเจพ เจธเฉฐเจธเจ•เจฐเจฃ เจ•เฉเจ เจตเจพเจงเฉ‚ เจคเฉ€เจœเฉ€-เจงเจฟเจฐ เจฆเฉ‡ เจตเจฟเจ•เจพเจธ เจฆเฉ‡ เจจเจพเจฒเฅค เจ‡เจธ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฒเจˆ, เจนเฉ‡เจ เจพเจ‚ เจฆเฉ‡เจ–เฉ‹เฅค

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฐเฉ‡เจŸเจฐ เจจเฉ‚เฉฐ เจฌเฉˆเจ•เจ…เฉฑเจช เจฒเจˆ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจชเจพเจธ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจ…เจฐเจฅเจพเจค - wal_s3_bucket เจ…เจคเฉ‡ AWS S3 เจตเจฟเฉฑเจš เจชเจนเฉเฉฐเจš เจ•เฉเฉฐเจœเฉ€เจ†เจ‚, เจซเจฟเจฐ เจ‡เจน เจธเจญ เจ•เฉเจ เจฌเฉˆเจ•เจ…เฉฑเจช เจ•เจฐเฉ‡เจ—เจพ: เจจเจพ เจธเจฟเจฐเจซ เจ‰เจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจš เจ…เจงเจพเจฐ, เจฌเจฒเจ•เจฟ เจธเจŸเฉ‡เจœเจฟเฉฐเจ— เจตเฉ€เฅค เจ‡เจน เจธเจพเจกเฉ‡ เจฒเจˆ เจ…เจจเฉเจ•เฉ‚เจฒ เจจเจนเฉ€เจ‚ เจธเฉ€เฅค

เจธเจชเฉ€เจฒเฉ‹ เจฒเจˆ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจฆเฉ‡ เจตเจฐเจฃเจจ เจตเจฟเฉฑเจš, เจœเฉ‹ เจ•เจฟ เจ“เจชเจฐเฉ‡เจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ PgSQL เจฒเจˆ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจกเฉŒเจ•เจฐ เจฐเฉˆเจชเจฐ เจนเฉˆ, เจ‡เจน เจธเจพเจนเจฎเจฃเฉ‡ เจ†เจ‡เจ†: เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจชเจพเจธ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ WAL_S3_BUCKET เจ–เจพเจฒเฉ€, เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฌเฉˆเจ•เจ…เฉฑเจช เจจเฉ‚เฉฐ เจ…เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‡เจ† เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฌเจนเฉเจค เจ–เฉเจธเจผเฉ€ เจฒเจˆ, เจฎเฉˆเจ‚ เจชเจพเจ‡เจ† เจคเจฟเจ†เจฐ เจชเฉ€.เจ†เจฐ, เจœเจฟเจธ เจจเฉ‚เฉฐ เจ…เจธเฉ€เจ‚ เจคเฉเจฐเฉฐเจค เจ†เจชเจฃเฉ‡ เจซเฉ‹เจฐเจ• เจตเจฟเฉฑเจš เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐ เจฒเจฟเจ†เฅค เจนเฉเจฃ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ enableWALArchiving: false เจ‡เฉฑเจ• PostgreSQL เจ•เจฒเฉฑเจธเจŸเจฐ เจธเจฐเฉ‹เจค เจฒเจˆเฅค

เจนเจพเจ‚, 2 เจ“เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพ เจ•เฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจตเฉฑเจ–เจฐเฉ‡ เจขเฉฐเจ— เจจเจพเจฒ เจ•เจฐเจจ เจฆเจพ เจฎเฉŒเจ•เจพ เจธเฉ€: เจ‡เฉฑเจ• เจธเจŸเฉ‡เจœเจฟเฉฐเจ— (เจฌเฉˆเจ•เจ…เฉฑเจช เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚), เจ…เจคเฉ‡ เจฆเฉ‚เจœเจพ เจ‰เจคเจชเจพเจฆเจจ เจฒเจˆเฅค เจชเจฐ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจธเฉ€เฅค

เจ เฉ€เจ• เจนเฉˆ, เจ…เจธเฉ€เจ‚ เจธเจฟเฉฑเจ–เจฟเจ† เจ•เจฟ S3 เจฒเจˆ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฟเจตเฉ‡เจ‚ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจฌเฉˆเจ•เจ…เฉฑเจช เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจฟเฉฑเจš เจ†เจ‰เจฃเฉ‡ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจ—เจเฅค เจ“เจชเจฐเฉ‡เจŸเจฐ UI เจตเจฟเฉฑเจš เจฌเฉˆเจ•เจ…เฉฑเจช เจชเฉฐเจจเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจนเฉˆ?

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ, เจธเจพเจกเฉ€เจ†เจ‚ เจšเฉ‹เจฃเจพเจ‚ เจ…เจคเฉ‡ เจ…เจจเฉเจญเจต เจฒเจˆ PostgreSQL เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ“เจชเจฐเฉ‡เจŸเจฐ UI เจตเจฟเฉฑเจš 3 เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡เจ—เฉ€:

  • SPILO_S3_BACKUP_BUCKET
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฌเฉˆเจ•เจ…เจช เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ‰เจชเจฒเจฌเจง เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพ, เจœเฉ‹ เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš เจธเจŸเฉ‡เจœเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจธเจฐเจฒ เจฌเจฃเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพ, เจœเจฟเจธ เจจเจพเจฒ เจธเจพเจจเฉ‚เฉฐ เจตเจพเจงเฉ‚ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจ‰เฉฑเจฅเฉ‡ เจ‰เจคเจชเจพเจฆเจจ เจคเฉ‹เจ‚ เจŸเฉเจ•เฉœเฉ‡ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฎเจฟเจฒเฉ‡เจ—เฉ€เฅค

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจซเจพเจ‡เจฆเจพ เจŸเฉ€เจฎ เจเจชเฉ€เจ†เจˆ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ“เจชเจฐเฉ‡เจŸเจฐ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ…เจคเฉ‡ เจญเฉ‚เจฎเจฟเจ•เจพเจตเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจ•เจพเจซเจผเฉ€ เจฎเฉŒเจ•เฉ‡ เจธเจจเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ เจญเฉ‚เจฎเจฟเจ•เจพเจตเจพเจ‚ เจฆเจพ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจ…เจงเจฟเจ•เจพเจฐ เจจเจนเฉ€เจ‚ เจธเฉ€. เจ‡เจธ เจ…เจจเฉเจธเจพเจฐ, เจชเฉœเฉเจนเจจ เจฆเฉ‡ เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจตเจพเจฒเจพ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเจตเฉ€เจ†เจ‚ เจŸเฉ‡เจฌเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจชเฉœเฉเจน เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ…เจœเจฟเจนเจพ เจ•เจฟเจ‰เจ‚ เจนเฉˆ? เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ เจ•เจฟ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจนเฉˆ เจœเจผเจฐเฉ‚เจฐเฉ€ GRANT, เจ‰เจน เจนเจฎเฉ‡เจธเจผเจพ เจจเจนเฉ€เจ‚ เจตเจฐเจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจ‡เฉฑเจฅเฉ‡ 2 เจคเจฐเฉ€เจ•เฉ‡ เจนเจจ: syncPreparedDatabases ะธ syncDatabases. The syncPreparedDatabases - เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ เจ•เจฟ เจญเจพเจ— เจตเจฟเฉฑเจš preparedDatabases เจนเฉˆ เจ‡เฉฑเจ• เจธเจผเจฐเจค เจนเฉˆ defaultRoles ะธ defaultUsers เจญเฉ‚เจฎเจฟเจ•เจพเจตเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจกเจฟเจซเฉŒเจฒเจŸ เจ…เจงเจฟเจ•เจพเจฐ เจฒเจพเจ—เฉ‚ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจชเฉˆเจš เจคเจฟเจ†เจฐ เจ•เจฐเจจ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš เจนเจพเจ‚ เจคเจพเจ‚ เจœเฉ‹ เจ‡เจน เจ…เจงเจฟเจ•เจพเจฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจฒเจพเจ—เฉ‚ เจนเฉ‹ เจœเจพเจฃเฅค

เจ…เจคเฉ‡ เจธเฉเจงเจพเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจ†เจ–เจฐเฉ€ เจฌเจฟเฉฐเจฆเฉ‚ เจœเฉ‹ เจธเจพเจกเฉ‡ เจฒเจˆ เจขเฉเจ•เจตเฉ‡เจ‚ เจนเจจ - เจชเฉˆเจš, เจœเฉ‹ เจ•เจฟ เจฌเจฃเจพเจ เจธเจŸเฉ‡เจŸเจซเฉเจฒเจธเฉˆเฉฑเจŸ เจตเจฟเฉฑเจš เจจเฉ‹เจก เจเจซเฉ€เจจเจฟเจŸเฉ€ เจœเฉ‹เฉœเจฆเจพ เจนเฉˆเฅค เจธเจพเจกเฉ‡ เจ—เจพเจนเจ• เจ…เจ•เจธเจฐ เจธเจชเจพเจŸ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฒเจพเจ—เจคเจพเจ‚ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจฃ เจจเฉ‚เฉฐ เจคเจฐเจœเฉ€เจน เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจ, เจ…เจคเฉ‡ เจ‰เจน เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจฎเฉ‡เจœเจผเจฌเจพเจจเฉ€ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเจจเฅค เจ‡เจธ เจฎเฉเฉฑเจฆเฉ‡ เจจเฉ‚เฉฐ เจธเจนเจฟเจฃเจธเจผเฉ€เจฒเจคเจพ เจฆเฉเจ†เจฐเจพ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจจเฉ‹เจก เจเจซเฉ€เจจเจฟเจŸเฉ€ เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจ—เฉ€ เจตเจงเฉ‡เจฐเฉ‡ เจตเจฟเจธเจผเจตเจพเจธ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจ•เฉ€ เจนเฉ‹เจ‡เจ†?

เจ‰เจชเจฐเฉ‹เจ•เจค เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฆเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡, เจ…เจธเฉ€เจ‚ เจœเจผเจฒเฉˆเจ‚เจกเฉ‹ เจคเฉ‹เจ‚ เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจ†เจชเจฐเฉ‡เจŸเจฐ เจจเฉ‚เฉฐ เจคเฉเจนเจพเจกเฉ€ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€, เจœเจฟเฉฑเจฅเฉ‡ เจ‡เจธ เจจเฉ‚เฉฐ เจ…เจœเจฟเจนเฉ‡ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจชเฉˆเจšเจพเจ‚ เจจเจพเจฒ เจ‡เจ•เฉฑเจ เจพ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจตเจงเฉ‡เจฐเฉ‡ เจธเจนเฉ‚เจฒเจค เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจตเฉ€ เจ‡เจ•เฉฑเจ เจพ เจ•เฉ€เจคเจพ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ.

เจซเฉ‹เจฐเจ• เจตเจฟเฉฑเจš เจธเจตเฉ€เจ•เจพเจฐ เจ•เฉ€เจคเฉ‡ เจ—เจ PR เจฆเฉ€ เจธเฉ‚เจšเฉ€:

เจ‡เจน เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจนเฉ‹เจตเฉ‡เจ—เจพ เจœเฉ‡เจ•เจฐ เจ•เจฎเจฟเจŠเจจเจฟเจŸเฉ€ เจ‡เจนเจจเจพเจ‚ PRs เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจ‰เจน เจ†เจชเจฐเฉ‡เจŸเจฐ (1.6) เจฆเฉ‡ เจ…เจ—เจฒเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ‡ เจจเจพเจฒ เจ…เฉฑเจชเจธเจŸเฉเจฐเฉ€เจฎ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฃเฅค

เจฌเฉ‹เจจเจธ! เจ‰เจคเจชเจพเจฆเจจ เจชเจฐเจตเจพเจธ เจฆเฉ€ เจธเจซเจฒเจคเจพ เจฆเฉ€ เจ•เจนเจพเจฃเฉ€

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ Patroni เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจฒเจพเจˆเจต เจ‰เจคเจชเจพเจฆเจจ เจจเฉ‚เฉฐ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจกเจพเจŠเจจเจŸเจพเจˆเจฎ เจฆเฉ‡ เจจเจพเจฒ เจ†เจชเจฐเฉ‡เจŸเจฐ เจจเฉ‚เฉฐ เจฎเจพเจˆเจ—เฉเจฐเฉ‡เจŸ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจธเจชเจพเจˆเจฒเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ S3 เจธเจŸเฉ‹เจฐเฉ‡เจœ เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉˆเจ‚เจกเจฌเจพเจ เจ•เจฒเฉฑเจธเจŸเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจตเจพเจฒ-เจˆ, เจœเจฆเฉ‹เจ‚ PgSQL เจฌเจพเจˆเจจเจฐเฉ€ เจฒเฉŒเจ— เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ S3 เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจซเจฟเจฐ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจฆเฉเจ†เจฐเจพ เจฌเจพเจนเจฐ เจ•เฉฑเจขเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจชเจฐ เจœเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจนเฉˆ เจคเจพเจ‚ เจ•เฉ€ เจ•เจฐเจจเจพ เจนเฉˆ เจจเจพ เจชเฉเจฐเจพเจฃเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ 'เจคเฉ‡ เจตเจพเจฒ-เจˆ เจฆเฉเจ†เจฐเจพ เจตเจฐเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ? เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจนเฉฑเจฒ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจนเฉˆ เจ‡เจน เจธเฉเจเจพเจ… เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจธเฉ€ เจนเฉฑเจฌ 'เจคเฉ‡.

PostgreSQL เจฒเจพเจœเจผเฉ€เจ•เจฒ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจฌเจšเจพเจ… เจฒเจˆ เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆ. เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ…เจธเฉ€เจ‚ เจชเฉเจฐเจ•เจพเจธเจผเจจเจพเจ‚ เจ…เจคเฉ‡ เจ—เจพเจนเจ•เฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจพเจ‰เจฃเจพ เจนเฉˆ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจœเจพเจตเจพเจ‚เจ—เฉ‡, เจ•เจฟเจ‰เจ‚เจ•เจฟ... เจธเจพเจกเฉ€ เจฏเฉ‹เจœเจจเจพ เจ‡เฉฑเจ• เจ…เจธเจซเจฒ เจธเฉ€เฅค

เจคเฉฑเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจฒเฉฑเจ–เจพเจ‚ เจ•เจคเจพเจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ•เจˆ เจฒเฉ‹เจก เจ•เฉ€เจคเฉ‡ เจŸเฉ‡เจฌเจฒ เจธเจจ, เจœเฉ‹ เจ•เจฟ, เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฒเจ—เจพเจคเจพเจฐ เจฎเฉเฉœ เจญเจฐเฉ‡ เจ…เจคเฉ‡ เจฎเจฟเจŸเจพเจ เจ—เจ เจธเจจ. เจธเจงเจพเจฐเจจ เจ—เจพเจนเจ•เฉ€ ั copy_data, เจœเจฆเฉ‹เจ‚ เจจเจตเฉ€เจ‚ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจฎเจพเจธเจŸเจฐ เจคเฉ‹เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจธเจฎเฉฑเจ—เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจน เจธเจฟเจฐเจซเจผ เจฎเจพเจธเจŸเจฐ เจฆเฉ‡ เจจเจพเจฒ เจจเจนเฉ€เจ‚ เจฐเจนเจฟ เจธเจ•เจฆเฉ€เฅค เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจจเจพ เจ‡เฉฑเจ• เจนเจซเจผเจคเฉ‡ เจฒเจˆ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจ•เจฆเฉ‡ เจตเฉ€ เจฎเจพเจธเจŸเจฐ เจจเจพเจฒ เจจเจนเฉ€เจ‚ เจซเฉœเจฟเจ† เจ—เจฟเจ†เฅค เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจ‡เจธเจจเฉ‡ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฎเฉ‡เจฐเฉ€ เจฎเจฆเจฆ เจ•เฉ€เจคเฉ€ เจฒเฉ‡เจ– เจ…เจตเฉ€เจŸเฉ‹ เจคเฉ‹เจ‚ เจธเจนเจฟเจฏเฉ‹เจ—เฉ€: เจคเฉเจธเฉ€เจ‚ เจตเจฐเจค เจ•เฉ‡ เจกเฉ‡เจŸเจพ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ pg_dump. เจฎเฉˆเจ‚ เจ‡เจธ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฆเฉ‡ เจธเจพเจกเฉ‡ (เจฅเฉ‹เฉœเฉเจนเฉ‡ เจœเจฟเจนเฉ‡ เจธเฉ‹เจงเฉ‡ เจนเฉ‹เจ) เจธเฉฐเจธเจ•เจฐเจฃ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจพเจ‚เจ—เจพเฅค

เจ‡เจน เจตเจฟเจšเจพเจฐ เจ‡เจน เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจธเจฒเจพเจŸ เจจเจพเจฒ เจฌเฉฐเจจเฉเจนเฉ€ เจ‡เฉฑเจ• เจ…เจฏเฉ‹เจ— เจ—เจพเจนเจ•เฉ€ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ…เจคเฉ‡ เจซเจฟเจฐ เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ เจจเฉฐเจฌเจฐ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‰เจคเจชเจพเจฆเจจ เจฆเฉ‡ เจ•เฉฐเจฎ เจฒเจˆ เจชเฉเจฐเจคเฉ€เจฐเฉ‚เจช เจ‰เจชเจฒเจฌเจง เจธเจจ. เจ‡เจน เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจ‡เฉฑเจ• เจ‡เจ•เจธเจพเจฐ เจกเฉฐเจช เจฌเจฃเจพเจ‰เจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เฉ€ เจ…เจคเฉ‡ เจฎเจพเจธเจŸเจฐ เจคเฉ‹เจ‚ เจฌเจฆเจฒเจพเจ… เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เฉ‡เจ—เฉ€เฅค

เจฎเจพเจˆเจ—เฉเจฐเฉ‡เจธเจผเจจ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจจ เจตเจพเจฒเฉ€เจ†เจ‚ เจ…เจ—เจฒเฉ€เจ†เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจนเฉ‹เจธเจŸ เจจเฉ‹เจŸเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจ—เฉ€เจ†เจ‚:

  1. เจฎเจพเจธเจŸเจฐ - เจธเจฐเฉ‹เจค เจธเจฐเจตเจฐ;
  2. เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ 1 - เจชเฉเจฐเจพเจฃเฉ‡ เจ‰เจคเจชเจพเจฆเจจ 'เจคเฉ‡ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€;
  3. เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ 2 - เจจเจตเฉ€เจ‚ เจฒเจพเจœเจผเฉ€เจ•เจฒ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€เฅค

เจฎเจพเจˆเจ—เฉเจฐเฉ‡เจธเจผเจจ เจฏเฉ‹เจœเจจเจพ

1. เจธเจ•เฉ€เจฎเจพ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ€เจ†เจ‚ เจŸเฉ‡เจฌเจฒเจพเจ‚ เจฒเจˆ เจฎเจพเจธเจŸเจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจ—เจพเจนเจ•เฉ€ เจฌเจฃเจพเจ“ public เจ…เจงเจพเจฐ dbname:

psql -h master -d dbname -c "CREATE PUBLICATION dbname FOR ALL TABLES;"

2. เจฎเจพเจธเจŸเจฐ 'เจคเฉ‡ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจธเจฒเจพเจŸ เจฌเจฃเจพเจ“:

psql -h master -c "select pg_create_logical_replication_slot('repl', 'pgoutput');"

3. เจชเฉเจฐเจพเจฃเฉ€ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ 'เจคเฉ‡ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจฌเฉฐเจฆ เจ•เจฐเฉ‹:

psql -h replica1 -c "select pg_wal_replay_pause();"

4. เจฎเจพเจธเจŸเจฐ เจคเฉ‹เจ‚ เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ เจจเฉฐเจฌเจฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹:

psql -h master -c "select replay_lsn from pg_stat_replication where client_addr = 'replica1';"

5. เจชเฉเจฐเจพเจฃเฉ€ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจคเฉ‹เจ‚ เจกเฉฐเจช เจจเฉ‚เฉฐ เจนเจŸเจพเจ“เฅค เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ•เจˆ เจฅเจฐเจฟเฉฑเจกเจพเจ‚ เจตเจฟเฉฑเจš เจ•เจฐเจพเจ‚เจ—เฉ‡, เจœเฉ‹ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพ:

pg_dump -h replica1 --no-publications --no-subscriptions -O -C -F d -j 8 -f dump/ dbname

6. เจจเจตเฉ‡เจ‚ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจกเฉฐเจช เจ…เฉฑเจชเจฒเฉ‹เจก เจ•เจฐเฉ‹:

pg_restore -h replica2 -F d -j 8 -d dbname dump/

7. เจกเฉฐเจช เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจธเฉ€เจ‚ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ 'เจคเฉ‡ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

psql -h replica1 -c "select pg_wal_replay_resume();"

7. เจ†เจ“ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจฒเจพเจœเจผเฉ€เจ•เจฒ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ 'เจคเฉ‡ เจ—เจพเจนเจ•เฉ€ เจฌเจฃเจพเจˆเจ:

psql -h replica2 -c "create subscription oldprod connection 'host=replica1 port=5432 user=postgres password=secret dbname=dbname' publication dbname with (enabled = false, create_slot = false, copy_data = false, slot_name='repl');"

8. เจ†เจ“ เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ€เจ oid เจ—เจพเจนเจ•เฉ€:

psql -h replica2 -d dbname -c "select oid, * from pg_subscription;"

9. เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจ‡เจน เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจ‡เจ† เจธเฉ€ oid=1000. เจ†เจ‰ เจ—เจพเจนเจ•เฉ€ เจฒเจˆ เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ เจจเฉฐเจฌเจฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเฉ€เจ:

psql -h replica2 -d dbname -c "select pg_replication_origin_advance('pg_1000', 'AA/AAAAAAAA');"

10. เจ†เจ‰ เจจเจ•เจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ€เจ:

psql -h replica2 -d dbname -c "alter subscription oldprod enable;"

11. เจ—เจพเจนเจ•เฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ‹, เจจเจ•เจฒ เจจเฉ‚เฉฐ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

psql -h replica2 -d dbname -c "select * from pg_replication_origin_status;"
psql -h master -d dbname -c "select slot_name, restart_lsn, confirmed_flush_lsn from pg_replication_slots;"

12. เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจ…เจคเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจธเจฎเจ•เจพเจฒเฉ€ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจธเฉ€เจ‚ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

13. เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉเจฐเจฎ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ‡เจน เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจนเฉˆ wiki.postgresql.org 'เจคเฉ‡ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš.

เจ‡เจธ เจฏเฉ‹เจœเจจเจพ เจฒเจˆ เจงเฉฐเจจเจตเจพเจฆ, เจธเจตเจฟเฉฑเจšเจ“เจตเจฐ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจฆเฉ‡เจฐเฉ€ เจจเจพเจฒ เจนเฉ‹เจ‡เจ†เฅค

เจธเจฟเฉฑเจŸเจพ

Kubernetes เจ“เจชเจฐเฉ‡เจŸเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ K8s เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจธเจฟเจฐเจœเจฃเจพ เจคเฉฑเจ• เจ˜เจŸเจพ เจ•เฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจจเฉ‚เฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจฎเจฆเจฆ เจจเจพเจฒ เจ•เจฎเจพเจฒ เจฆเฉ‡ เจ†เจŸเฉ‹เจฎเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‡เจน เจฏเจพเจฆ เจฐเฉฑเจ–เจฃ เจฏเฉ‹เจ— เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เจˆ เจ…เจฃเจ•เจฟเจ†เจธเฉ‡ เจธเฉ‚เจ–เจฎเจคเจพเจตเจพเจ‚ เจตเฉ€ เจฒเจฟเจ† เจธเจ•เจฆเจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ†เจชเจฃเฉ‡ เจ†เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจเจฆเจพเจฐเฉ€ เจจเจพเจฒ เจšเฉเจฃเฉ‹เฅค

PostgreSQL เจฒเจˆ เจคเจฟเฉฐเจจ เจธเจญ เจคเฉ‹เจ‚ เจชเฉเจฐเจธเจฟเฉฑเจง Kubernetes เจ“เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ 'เจคเฉ‡ เจตเจฟเจšเจพเจฐ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ…เจธเฉ€เจ‚ Zalando เจคเฉ‹เจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจšเฉเจฃเจฟเจ† เจนเฉˆเฅค เจ…เจคเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ‡ เจจเจพเจฒ เจ•เฉเจ เจฎเฉเจธเจผเจ•เจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‚เจฐ เจ•เจฐเจจเจพ เจชเจฟเจ†, เจชเจฐ เจจเจคเฉ€เจœเจพ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจชเฉเจฐเจธเฉฐเจจ เจธเฉ€, เจ‡เจธเจฒเจˆ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจ…เจจเฉเจญเจต เจจเฉ‚เฉฐ เจ•เฉเจ เจนเฉ‹เจฐ PgSQL เจธเจฅเจพเจชเจจเจพเจตเจพเจ‚ เจคเฉฑเจ• เจตเจงเจพเจ‰เจฃ เจฆเฉ€ เจฏเฉ‹เจœเจจเจพ เจฌเจฃเจพ เจฐเจนเฉ‡ เจนเจพเจ‚เฅค เจœเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจธเจฎเจพเจจ เจนเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเจพ เจคเจœเจฐเจฌเจพ เจนเฉˆ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจตเฉ‡เจฐเจตเฉ‡ เจฆเฉ‡เจ– เจ•เฉ‡ เจ–เฉเจธเจผ เจนเฉ‹เจตเจพเจ‚เจ—เฉ‡!

PS

เจธเจพเจกเฉ‡ เจฌเจฒเฉŒเจ— 'เจคเฉ‡ เจตเฉ€ เจชเฉœเฉเจนเฉ‹:

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹