เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ, เช…เชฎเชพเชฐเซ€ เชชเชธเช‚เชฆเช—เซ€เช“ เช…เชจเซ‡ เช…เชจเซเชญเชตเซ‹ เชฎเชพเชŸเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เชจเชฟเชตเซ‡เชฆเชจเซ‹เชจเซ€ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชเชพเช‚เช–เซ€

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ, เช…เชฎเชพเชฐเซ€ เชชเชธเช‚เชฆเช—เซ€เช“ เช…เชจเซ‡ เช…เชจเซเชญเชตเซ‹ เชฎเชพเชŸเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เชจเชฟเชตเซ‡เชฆเชจเซ‹เชจเซ€ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชเชพเช‚เช–เซ€

เชตเชงเซเชจเซ‡ เชตเชงเซ, เช—เซเชฐเชพเชนเช•เซ‹เชจเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซเชฐเชพเชชเซเชค เชฅเชˆ เชฐเชนเซ€ เช›เซ‡: โ€œเช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชเชฎเซ‡เชเซ‹เชจ เช†เชฐเชกเซ€เชเชธเชจเซ€ เชœเซ‡เชฎ เชˆเชšเซเช›เซ€เช เช›เซ€เช, เชชเชฐเช‚เชคเซ เชธเชธเซเชคเซเช‚โ€; "เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เช†เชฐเชกเซ€เชเชธเชจเซ€ เชœเซ‡เชฎ เชˆเชšเซเช›เซ€เช เช›เซ€เช, เชชเชฐเช‚เชคเซ เชฆเชฐเซ‡เช• เชœเช—เซเชฏเชพเช, เช•เซ‹เชˆเชชเชฃ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชฎเชพเช‚." Kubernetes เชชเชฐ เช†เชตเชพ เชฎเซ‡เชจเซ‡เชœเซเชก เชธเซ‹เชฒเซเชฏเซเชถเชจเชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ PostgreSQL (เชธเซเชŸเซ‹เชฒเซ‹เชจ, เช•เซเชฐเชจเซเชšเซ€ เชกเซ‡เชŸเชพ เช…เชจเซ‡ เชเชพเชฒเซ‡เชจเซเชกเซ‹เชจเชพ เช“เชชเชฐเซ‡เชŸเชฐเซ‹) เชฎเชพเชŸเซ‡เชจเชพ เชธเซŒเชฅเซ€ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เช“เชชเชฐเซ‡เชŸเชฐเซเชธเชจเซ€ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฅเชฟเชคเชฟ เชœเซ‹เชˆ เช…เชจเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชธเช‚เชฆเช—เซ€ เช•เชฐเซ€.

เช† เชฒเซ‡เช– เช เช…เชจเซเชญเชต เช›เซ‡ เชœเซ‡ เช†เชชเชฃเซ‡ เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€ (เช‰เช•เซ‡เชฒเชจเซ€ เชธเชฎเซ€เช•เซเชทเชพ) เช…เชจเซ‡ เชตเซเชฏเชตเชนเชพเชฐเชฟเช• เชฌเชพเชœเซเชฅเซ€ (เชถเซเช‚ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชถเซเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡) เชฌเช‚เชจเซ‡เชฅเซ€ เชฎเซ‡เชณเชตเซเชฏเซ‹ เช›เซ‡. เชชเชฐเช‚เชคเซ เชชเชนเซ‡เชฒเชพ, เชšเชพเชฒเซ‹ เชจเช•เซเช•เซ€ เช•เชฐเซ€เช เช•เซ‡ RDS เชจเชพ เชธเช‚เชญเชตเชฟเชค เชฐเชฟเชชเซเชฒเซ‡เชธเชฎเซ‡เชจเซเชŸ เชฎเชพเชŸเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹ เชถเซเช‚ เช›เซ‡...

RDS เชถเซเช‚ เช›เซ‡

เชœเซเชฏเชพเชฐเซ‡ เชฒเซ‹เช•เซ‹ RDS เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ‡ เช›เซ‡, เช…เชฎเชพเชฐเชพ เช…เชจเซเชญเชตเชฎเชพเช‚, เชคเซ‡เช“เชจเซ‹ เช…เชฐเซเชฅ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค DBMS เชธเซ‡เชตเชพ เช›เซ‡ เชœเซ‡:

  1. เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฐเชณ;
  2. เชธเซเชจเซ‡เชชเชถเซ‹เชŸ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ€ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชชเซเชจเชƒเชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เชงเชฐเชพเชตเซ‡ เช›เซ‡ (เชชเซเชฐเชพเชงเชพเชจเซเชฏเชฎเชพเช‚ เชธเชชเซ‹เชฐเซเชŸ เชธเชพเชฅเซ‡ เชชเซ€เช†เชˆเชŸเซ€เช†เชฐ);
  3. เชคเชฎเชจเซ‡ เชฎเชพเชธเซเชŸเชฐ-เชธเซเชฒเซ‡เชต เชŸเซ‹เชชเซ‹เชฒเซ‹เชœเซ€ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡;
  4. เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจเชจเซ€ เชธเชฎเซƒเชฆเซเชง เชธเซ‚เชšเชฟ เช›เซ‡;
  5. เช“เชกเชฟเชŸเซ€เช‚เช— เช…เชจเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ/เชเช•เซเชธเซ‡เชธ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡.

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช•เชนเซ€เช เชคเซ‹, เชนเชพเชฅ เชชเชฐเชจเชพ เช•เชพเชฐเซเชฏเชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเชพ เช…เชญเชฟเช—เชฎเซ‹ เช–เซ‚เชฌ เชœ เช…เชฒเช— เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชถเชฐเชคเซ€ เชœเชตเชพเชฌเซ‹ เชธเชพเชฅเซ‡เชจเซ‹ เชฎเชพเชฐเซเช— เช†เชชเชฃเซ€ เชจเชœเซ€เช• เชจเชฅเซ€. (เชชเชฐเชฟเชฃเชพเชฎเซ‡ 2GIS เชจเชพ เชธเชพเชฅเซ€เชฆเชพเชฐเซ‹ เชธเชฎเชพเชจ เชจเชฟเชทเซเช•เชฐเซเชท เชชเชฐ เช†เชตเซเชฏเชพ เชคเซ‡เชจเซ‹ เชชเซเชฐเชฏเชพเชธ "เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ-เช†เชงเชพเชฐเชฟเชค เชซเซ‡เชฒเช“เชตเชฐ เช•เซเชฒเชธเซเชŸเชฐเชจเซ‡ เชเชกเชชเชฅเซ€ เชœเชฎเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เชธเชพเชงเชจ เชฌเชจเชพเชตเซ‹.")

เช“เชชเชฐเซ‡เชŸเชฐเซเชธ เช เช•เซเชฌเชฐเชจเซ‡เชŸเชธ เช‡เช•เซ‹เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชธเชฎเชพเชจ เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เชธเชพเชฎเชพเชจเซเชฏ เช…เชญเชฟเช—เชฎ เช›เซ‡. "Flanta" เชจเชพ เชŸเซ‡เช•เชจเชฟเช•เชฒ เชจเชฟเชฏเชพเชฎเช• เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ Kubernetes เชจเซ€ เช…เช‚เชฆเชฐ เชถเชฐเซ‚ เช•เชฐเชพเชฏเซ‡เชฒ เชกเซ‡เชŸเชพเชฌเซ‡เชธเซ‡เชธเชจเชพ เชธเช‚เชฌเช‚เชงเชฎเชพเช‚ เชคเซ‡เชฎเชจเชพ เชตเชฟเชถเซ‡ เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชพเชค เช•เชฐเซ€ เชšเซ‚เช•เซเชฏเชพ เช›เซ‡. เชกเชฟเชธเซเชŸเซ‹เชฒเชฎเชพเช‚ เชคเซ‡เชจเชพ เช…เชนเซ‡เชตเชพเชฒเซ‹เชฎเชพเช‚เชฅเซ€ เชเช•.

NB: เชเชกเชชเชฅเซ€ เชธเชฐเชณ เช“เชชเชฐเซ‡เชŸเชฐเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เช…เชฎเชพเชฐเซ€ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช†เชชเชตเชพเชจเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเซ€เช เช›เซ€เช เชถเซ‡เชฒ-เช“เชชเชฐเซ‡เชŸเชฐ. เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เชคเชฎเซ‡ เช—เซ‹เชจเชพ เชœเซเชžเชพเชจ เชตเชฟเชจเชพ เช† เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชธเชฟเชธเซเชŸเชฎ เชธเช‚เชšเชพเชฒเช•เซ‹ เชฎเชพเชŸเซ‡ เชตเชงเซ เชชเชฐเชฟเชšเชฟเชค เชฐเซ€เชคเซ‡: Bash, Python, เชตเช—เซ‡เชฐเซ‡เชฎเชพเช‚.

PostgreSQL เชฎเชพเชŸเซ‡ เช˜เชฃเชพ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ K8s เช“เชชเชฐเซ‡เชŸเชฐเซ‹ เช›เซ‡:

  • เชธเซเชŸเซ‹เชฒเซ‹เชจ;
  • เช•เซเชฐเชจเซเชšเซ€ เชกเซ‡เชŸเชพ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เช“เชชเชฐเซ‡เชŸเชฐ;
  • Zalando Postgres เช“เชชเชฐเซ‡เชŸเชฐ.

เชšเชพเชฒเซ‹ เชคเซ‡เชฎเชจเซ‡ เชตเชงเซ เชจเชœเซ€เช•เชฅเซ€ เชœเซ‹เชˆเช.

เช“เชชเชฐเซ‡เชŸเชฐเชจเซ€ เชชเชธเช‚เชฆเช—เซ€

เช‰เชชเชฐเซ‹เช•เซเชค เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชฎเชนเชคเซเชตเชจเซ€ เชตเชฟเชถเซ‡เชทเชคเชพเช“ เช‰เชชเชฐเชพเช‚เชค, เช…เชฎเซ‡ - เช•เซเชฌเชฐเชจเซ‡เชŸเชธ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช‘เชชเชฐเซ‡เชถเชจ เชเชจเซเชœเชฟเชจเชฟเชฏเชฐ เชคเชฐเซ€เช•เซ‡ - เช‘เชชเชฐเซ‡เชŸเชฐเซ‹ เชชเชพเชธเซ‡เชฅเซ€ เชจเซ€เชšเซ‡เชจเซ€ เช…เชชเซ‡เช•เซเชทเชพเช“ เชชเชฃ เชฐเชพเช–เซ€เช เช›เซ€เช:

  • Git เช…เชจเซ‡ เชธเชพเชฅเซ‡ เชœเชฎเชพเชตเชŸ เช•เชธเซเชŸเชฎ เชธเช‚เชธเชพเชงเชจเซ‹;
  • เชชเซ‹เชก เชตเชฟเชฐเซ‹เชงเซ€ เชเชซเชฟเชจเชฟเชŸเซ€ เชธเชชเซ‹เชฐเซเชŸ;
  • เชจเซ‹เชก เชเชซเชฟเชจเชฟเชŸเซ€ เช…เชฅเชตเชพ เชจเซ‹เชก เชธเชฟเชฒเซ‡เช•เซเชŸเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเซเช‚;
  • เชธเชนเชฟเชทเซเชฃเซเชคเชพเชจเซ€ เชธเซเชฅเชพเชชเชจเชพ;
  • เชŸเซเชฏเซเชจเชฟเช‚เช— เช•เซเชทเชฎเชคเชพเช“เชจเซ€ เช‰เชชเชฒเชฌเซเชงเชคเชพ;
  • เชธเชฎเชœเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเซ€ เชคเช•เชจเซ€เช•เซ‹ เช…เชจเซ‡ เช†เชฆเซ‡เชถเซ‹ เชชเชฃ.

เชฆเชฐเซ‡เช• เชฎเซเชฆเซเชฆเชพเชจเซ€ เชตเชฟเช—เชคเซ‹เชฎเชพเช‚ เช—เชฏเชพ เชตเชฟเชจเชพ (เชœเซ‹ เชคเชฎเชจเซ‡ เช†เช–เซ‹ เชฒเซ‡เช– เชตเชพเช‚เชšเซเชฏเชพ เชชเช›เซ€ เชชเชฃ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชชเซเชฐเชถเซเชจเซ‹ เชนเซ‹เชฏ เชคเซ‹ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚ เชชเซ‚เช›เซ‹), เชนเซเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชจเซ‹เช‚เชง เชฒเชˆเชถ เช•เซ‡ เช•เซเชฒเชธเซเชŸเชฐ เชจเซ‹เชกเซเชธเชจเซ€ เชตเชฟเชถเซ‡เชทเชคเชพเชจเซเช‚ เชตเชงเซ เชธเชšเซ‹เชŸ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช† เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เชคเซ‡เชฎเชจเซ‡ เชšเซ‹เช•เซเช•เชธ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเชพเชŸเซ‡ เช“เชฐเซเชกเชฐ เช•เชฐเซ‹. เช† เชฐเซ€เชคเซ‡ เช…เชฎเซ‡ เชชเซเชฐเชฆเชฐเซเชถเชจ เช…เชจเซ‡ เช–เชฐเซเชšเชจเชพ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚ เชถเซเชฐเซ‡เชทเซเช  เชธเช‚เชคเซเชฒเชจ เชนเชพเช‚เชธเชฒ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช.

เชนเชตเซ‡ เชšเชพเชฒเซ‹ PostgreSQL เช“เชชเชฐเซ‡เชŸเชฐเซ‹ เชชเชฐ เช†เช—เชณ เชตเชงเซ€เช.

1. เชธเซเชŸเซ‹เชฒเซ‹เชจ

เชธเซเชŸเซ‹เชฒเซ‹เชจ เชฎเชพเช‚ เช‡เชŸเชพเชฒเชฟเชฏเชจ เช•เช‚เชชเชจเซ€ Sorint.lab เชคเชฐเชซเชฅเซ€ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เช…เชนเซ‡เชตเชพเชฒ เชกเซ€เชฌเซ€เชเชฎเชเชธ เชฎเชพเชŸเซ‡ เช“เชชเชฐเซ‡เชŸเชฐเซ‹เชฎเชพเช‚ เชเช• เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เชงเซ‹เชฐเชฃ เชฎเชพเชจเชตเชพเชฎเชพเช‚ เช†เชตเชคเซเช‚ เชนเชคเซเช‚. เช† เชเช•เชฆเชฎ เชœเซ‚เชจเซ‹ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช›เซ‡: เชคเซ‡เชจเซเช‚ เชชเซเชฐเชฅเชฎ เชธเชพเชฐเซเชตเชœเชจเชฟเช• เชชเซเชฐเช•เชพเชถเชจ เชจเชตเซ‡เชฎเซเชฌเชฐ 2015(!) เชฎเชพเช‚ เชฅเชฏเซเช‚ เชนเชคเซเช‚ เช…เชจเซ‡ GitHub เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€ เชฒเช—เชญเช— 3000 เชธเซเชŸเชพเชฐเซเชธ เช…เชจเซ‡ 40+ เชฏเซ‹เช—เชฆเชพเชจเช•เชฐเซเชคเชพเช“ เชงเชฐเชพเชตเซ‡ เช›เซ‡.

เช–เชฐเซ‡เช–เชฐ, เชธเซเชŸเซ‹เชฒเซ‹เชจ เชตเชฟเชšเชพเชฐเชถเซ€เชฒ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชจเซเช‚ เช‰เชคเซเชคเชฎ เช‰เชฆเชพเชนเชฐเชฃ เช›เซ‡:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ, เช…เชฎเชพเชฐเซ€ เชชเชธเช‚เชฆเช—เซ€เช“ เช…เชจเซ‡ เช…เชจเซเชญเชตเซ‹ เชฎเชพเชŸเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เชจเชฟเชตเซ‡เชฆเชจเซ‹เชจเซ€ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชเชพเช‚เช–เซ€
เช† เช“เชชเชฐเซ‡เชŸเชฐเชจเซเช‚ เช‰เชชเช•เชฐเชฃ เช…เชนเซ‡เชตเชพเชฒเชฎเชพเช‚ เชตเชฟเช—เชคเชตเชพเชฐ เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡ เช…เชฅเชตเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชคเซ‡ เช•เชนเซ‡เชตเซเช‚ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชตเชฐเซเชฃเชตเซ‡เชฒ เชฌเชงเซเช‚ เชœ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡: เชซเซ‡เชฒเช“เชตเชฐ, เชชเชพเชฐเชฆเชฐเซเชถเช• เช•เซเชฒเชพเชฏเช‚เชŸ เชเช•เซเชธเซ‡เชธ เชฎเชพเชŸเซ‡ เชชเซเชฐเซ‹เช•เซเชธเซ€, เชฌเซ‡เช•เช…เชช... เชตเชงเซเชฎเชพเช‚, เชชเซเชฐเซ‹เช•เซเชธเซ€เช“ เชเช• เชเชจเซเชกเชชเซ‹เช‡เชจเซเชŸ เชธเซ‡เชตเชพ เชฆเซเชตเชพเชฐเชพ เชเช•เซเชธเซ‡เชธ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡ - เชจเซ€เชšเซ‡ เชšเชฐเซเชšเชพ เช•เชฐเชพเชฏเซ‡เชฒเชพ เช…เชจเซเชฏ เชฌเซ‡ เช‰เช•เซ‡เชฒเซ‹เชฅเซ€ เชตเชฟเชชเชฐเซ€เชค (เชคเซ‡เช“ เชฆเชฐเซ‡เช• เชฎเชพเชŸเซ‡ เชฌเซ‡ เชธเซ‡เชตเชพเช“ เชงเชฐเชพเชตเซ‡ เช›เซ‡. เชชเซเชฐเชตเซ‡เชถ เช†เชงเชพเชฐ).

เชœเซ‹ เช•เซ‡, เชธเซเชŸเซ‹เชฒเซ‹เชจ เช•เซ‹เชˆ เช•เชธเซเชŸเชฎ เชธเช‚เชธเชพเชงเชจเซ‹ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เชœ เชคเซ‡เชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ DBMS เชฆเชพเช–เชฒเชพ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ - "เชนเซ‹เชŸ เช•เซ‡เช•เชจเซ€ เชœเซ‡เชฎ" - เชธเชฐเชณ เช…เชจเซ‡ เชเชกเชชเซ€ เชนเซ‹เชฏ เชคเซ‡ เชฐเซ€เชคเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชคเซ‹ เชจเชฅเซ€. เชธเช‚เชšเชพเชฒเชจ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เชฆเซเชตเชพเชฐเชพ เชนเชพเชฅ เชงเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ stolonctl, เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เชนเซ‡เชฒเซเชฎ เชšเชพเชฐเซเชŸ เชฆเซเชตเชพเชฐเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เช•เชธเซเชŸเชฎเชจเซ‡ ConfigMap เชฎเชพเช‚ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช…เชจเซ‡ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชเช• เชคเชฐเชซ, เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เช“เชชเชฐเซ‡เชŸเชฐ เช–เชฐเซ‡เช–เชฐ เช“เชชเชฐเซ‡เชŸเชฐ เชจเชฅเซ€ (เช›เซ‡เชตเชŸเซ‡, เชคเซ‡ CRD เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซเช‚ เชจเชฅเซ€). เชชเชฐเช‚เชคเซ เชฌเซ€เชœเซ€ เชฌเชพเชœเซ, เชคเซ‡ เชเช• เชฒเชตเชšเซ€เช• เชธเชฟเชธเซเชŸเชฎ เช›เซ‡ เชœเซ‡ เชคเชฎเชจเซ‡ K8s เชฎเชพเช‚ เชธเช‚เชธเชพเชงเชจเซ‹ เช—เซ‹เช เชตเชตเชพเชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชคเชฎเซ‡ เชฏเซ‹เช—เซเชฏ เชœเซเช“ เช›เซ‹.

เชธเชพเชฐเชพเช‚เชถ เชฎเชพเชŸเซ‡, เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฐเซ€เชคเซ‡ เชฆเชฐเซ‡เช• เชกเซ‡เชŸเชพเชฌเซ‡เช เชฎเชพเชŸเซ‡ เชเช• เช…เชฒเช— เชšเชพเชฐเซเชŸ เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เชถเซเชฐเซ‡เชทเซเช  เชฒเชพเช—เชคเซเช‚ เชจเชฅเซ€. เชคเซ‡เชฅเซ€, เช…เชฎเซ‡ เชตเชฟเช•เชฒเซเชชเซ‹ เชถเซ‹เชงเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚.

2. เช•เซเชฐเชจเซเชšเซ€ เชกเซ‡เชŸเชพ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เช“เชชเชฐเซ‡เชŸเชฐ

เช•เซเชฐเชจเซเชšเซ€ เชกเซ‡เชŸเชพเชฎเชพเช‚เชฅเซ€ เช“เชชเชฐเซ‡เชŸเชฐ, เชเช• เชฏเซเชตเชพเชจ เช…เชฎเซ‡เชฐเชฟเช•เชจ เชธเซเชŸเชพเชฐเซเชŸเช…เชช, เชเช• เชคเชพเชฐเซเช•เชฟเช• เชตเชฟเช•เชฒเซเชช เชœเซ‡เชตเซเช‚ เชฒเชพเช—เชคเซเช‚ เชนเชคเซเช‚. เชคเซ‡เชจเซ‹ เชธเชพเชฐเซเชตเชœเชจเชฟเช• เช‡เชคเชฟเชนเชพเชธ เชฎเชพเชฐเซเชš 2017 เชฎเชพเช‚ เชชเซเชฐเชฅเชฎ เชชเซเชฐเช•เชพเชถเชจ เชธเชพเชฅเซ‡ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเชฅเซ€ GitHub เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชจเซ‡ เชฎเชพเชคเซเชฐ 1300เชฅเซ€ เช“เช›เชพ เชธเซเชŸเชพเชฐเซเชธ เช…เชจเซ‡ 50+ เชฏเซ‹เช—เชฆเชพเชจเช•เชฐเซเชคเชพเช“ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเชพ เช›เซ‡. เชธเชชเซเชŸเซ‡เชฎเซเชฌเชฐเชฅเซ€ เชคเชพเชœเซ‡เชคเชฐเชจเซ€ เชฐเชฟเชฒเซ€เชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ 1.15-1.18, เช“เชชเชจเชถเชฟเชซเซเชŸ 3.11+ เช…เชจเซ‡ 4.4+, GKE เช…เชจเซ‡ VMware Enterprise PKS 1.3+ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚.

เช•เซเชฐเชจเซเชšเซ€ เชกเซ‡เชŸเชพ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เช“เชชเชฐเซ‡เชŸเชฐเชจเซเช‚ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชชเชฃ เชœเชฃเชพเชตเซ‡เชฒเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹เชจเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเซ‡ เช›เซ‡:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ, เช…เชฎเชพเชฐเซ€ เชชเชธเช‚เชฆเช—เซ€เช“ เช…เชจเซ‡ เช…เชจเซเชญเชตเซ‹ เชฎเชพเชŸเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เชจเชฟเชตเซ‡เชฆเชจเซ‹เชจเซ€ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชเชพเช‚เช–เซ€

เชตเซเชฏเชตเชธเซเชฅเชพเชชเชจ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เชฆเซเชตเชพเชฐเชพ เชฅเชพเชฏ เช›เซ‡ pgoเชœเซ‹ เช•เซ‡, เชคเซ‡ เชฌเชฆเชฒเชพเชฎเชพเช‚ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฎเชพเชŸเซ‡ เช•เชธเซเชŸเชฎ เชธเช‚เชธเชพเชงเชจเซ‹ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡เชฅเซ€, เช“เชชเชฐเซ‡เชŸเชฐ เชธเช‚เชญเชตเชฟเชค เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชคเชฐเซ€เช•เซ‡ เช…เชฎเชจเซ‡ เช–เซเชถ เช•เชฐเซ‡ เช›เซ‡:

  • CRD เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เช›เซ‡;
  • เช…เชจเซเช•เซ‚เชณ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชจ (เชธเซ€เช†เชฐเชกเซ€ เชฆเซเชตเชพเชฐเชพ เชชเชฃ);
  • เช…เชจเซเชฏ เช˜เชŸเช•เซ‹ เชธเชพเชฅเซ‡ เชเช•เซ€เช•เชฐเชฃ เชญเชšเชก เช…เชตเชพเชœเชตเชพเชณเซเช‚ เชกเซ‡เชŸเชพ เช•เชจเซเชŸเซ‡เชจเชฐ เชธเซเชฏเซเชŸ โ€” PostgreSQL เชฎเชพเชŸเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชˆเชฎเซ‡เชœเซ‹เชจเซ‹ เชตเชฟเชถเชฟเชทเซเชŸ เชธเช‚เช—เซเชฐเชน เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเช“ (pgBackRest, pgAudit, เชฏเซ‹เช—เชฆเชพเชจเชฎเชพเช‚เชฅเซ€ เชเช•เซเชธเซเชŸเซ‡เชจเซเชถเชจเซเชธ เชตเช—เซ‡เชฐเซ‡ เชธเชนเชฟเชค).

เชœเซ‹ เช•เซ‡, เช•เซเชฐเชจเซเชšเซ€ เชกเซ‡เชŸเชพเชฎเชพเช‚เชฅเซ€ เช“เชชเชฐเซ‡เชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชถเชฐเซ‚ เช•เชฐเชตเชพเชจเชพ เชชเซเชฐเชฏเชพเชธเซ‹เช เช˜เชฃเซ€ เชธเชฎเชธเซเชฏเชพเช“ เชœเชพเชนเซ‡เชฐ เช•เชฐเซ€:

  • เชธเชนเชจ เช•เชฐเชตเชพเชจเซ€ เช•เซ‹เชˆ เชถเช•เซเชฏเชคเชพ เชจ เชนเชคเซ€ - เชซเช•เซเชค เชจเซ‹เชกเชธเซ‡เชฒเซ‡เช•เซเชŸเชฐ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.
  • เช…เชฎเซ‡ เชธเซเชŸเซ‡เชŸเชซเซเชฒ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เชนเซ‹เชตเชพ เช›เชคเชพเช‚ เชฌเชจเชพเชตเซ‡เชฒ เชชเซ‹เชกเซเชธ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸเชจเซ‹ เชญเชพเช— เชนเชคเชพ. เชธเซเชŸเซ‡เชŸเชซเซเชฒเชธเซ‡เชŸเซเชธเชฅเซ€ เชตเชฟเชชเชฐเซ€เชค, เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เชกเชฟเชธเซเช• เชฌเชจเชพเชตเซ€ เชถเช•เชคเชพ เชจเชฅเซ€.

เช›เซ‡เชฒเซเชฒเซ€ เช–เชพเชฎเซ€ เชฐเชฎเซเชœเซ€ เช•เซเชทเชฃเซ‹ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชพเชฏ เช›เซ‡: เชชเชฐเซ€เช•เซเชทเชฃ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชชเชฐ เช…เชฎเซ‡ เชเช• เชกเชฟเชธเซเช• เชธเชพเชฅเซ‡ 3 เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เช›เซ€เช เชธเซเชฅเชพเชจเชฟเช• เชธเช‚เช—เซเชฐเชน, เชœเซ‡เชจเชพ เช•เชพเชฐเชฃเซ‡ เช“เชชเชฐเซ‡เชŸเชฐเซ‡ เชœเชพเชฃ เช•เชฐเซ€ เช•เซ‡ 3 เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซ€ เช›เซ‡ (เชคเซ‡เช“ เชจ เชนเซ‹เชตเชพ เช›เชคเชพเช‚).

เช† เช“เชชเชฐเซ‡เชŸเชฐเชจเซ€ เชฌเซ€เชœเซ€ เชตเชฟเชถเซ‡เชทเชคเชพ เช เชตเชฟเชตเชฟเชง เชธเชนเชพเชฏเช• เชชเซเชฐเชฃเชพเชฒเซ€เช“ เชธเชพเชฅเซ‡ เชคเซ‡เชจเซเช‚ เชคเซˆเชฏเชพเชฐ เชเช•เซ€เช•เชฐเชฃ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, pgAdmin เช…เชจเซ‡ pgBounce, เช…เชจเซ‡ เชฎเชพเช‚ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเซเช‚ เชธเชฐเชณ เช›เซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชชเซ‚เชฐเซเชต-เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค Grafana เช…เชจเซ‡ Prometheus เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชนเชพเชฒ เชฎเชพ 4.5.0-beta1 เชฐเชฟเชฒเซ€เช เช•เชฐเซ‹ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเชพเชฅเซ‡ เชธเซเชงเชพเชฐเซ‡เชฒ เชเช•เซ€เช•เชฐเชฃ เช…เชฒเช—เชฅเซ€ เชจเซ‹เช‚เชงเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชชเซ€เชœเซ€ เชฎเซ‹เชจเชฟเชŸเชฐ, เชœเซ‡เชจเซ‹ เช†เชญเชพเชฐ เช“เชชเชฐเซ‡เชŸเชฐ เชฌเซ‹เช•เซเชธเชจเซ€ เชฌเชนเชพเชฐ PgSQL เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธเชจเซเช‚ เชธเซเชชเชทเซเชŸ เชตเชฟเชเซเชฏเซเชฒเชพเช‡เชเซ‡เชถเชจ เช“เชซเชฐ เช•เชฐเซ‡ เช›เซ‡.

เชœเซ‹ เช•เซ‡, เช•เซเชฌเชฐเชจเซ‡เชŸเชธ-เชœเชจเชฐเซ‡เชŸเซ‡เชก เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชตเชฟเชšเชฟเชคเซเชฐ เชชเชธเช‚เชฆเช—เซ€เช เช…เชฎเชจเซ‡ เชเช• เช…เชฒเช— เช‰เช•เซ‡เชฒ เชถเซ‹เชงเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เชคเชฐเชซ เชฆเซ‹เชฐเซ€.

3. เชเชพเชฒเซ‡เชจเซเชกเซ‹ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เช“เชชเชฐเซ‡เชŸเชฐ

เช…เชฎเซ‡ เชเชพเชฒเซ‡เชจเซเชกเซ‹เชจเชพ เช‰เชคเซเชชเชพเชฆเชจเซ‹เชจเซ‡ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏเชฅเซ€ เชœเชพเชฃเซ€เช เช›เซ€เช: เช…เชฎเชจเซ‡ เชเชพเชฒเซ‡เชจเชฟเชฏเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‹ เช…เชจเซเชญเชต เช›เซ‡ เช…เชจเซ‡, เช…เชฒเชฌเชคเซเชค, เช…เชฎเซ‡ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ เชชเชŸเซเชฐเซ‹เชจเซ€ PostgreSQL เชฎเชพเชŸเซ‡ เชคเซ‡เชฎเชจเซเช‚ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ HA เชธเซ‹เชฒเซเชฏเซเชถเชจ เช›เซ‡. เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เช‚เชชเชจเซ€เชจเชพ เช…เชญเชฟเช—เชฎ เชตเชฟเชถเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เช“เชชเชฐเซ‡เชŸเชฐ เชคเซ‡เชจเชพ เชฒเซ‡เช–เช•เซ‹เชฎเชพเช‚เชจเชพ เชเช•, เชเชฒเซ‡เช•เซเชธเซ€ เช•เซเชฒเซเชฏเซเช•เชฟเชจเซ‡, เชชเซเชฐเชธเชพเชฐเชฃเชฎเชพเช‚ เชœเชฃเชพเชตเซเชฏเซเช‚ เชนเชคเซเช‚ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ-เชฎเช‚เช—เชณเชตเชพเชฐ #5, เช…เชจเซ‡ เช…เชฎเชจเซ‡ เชคเซ‡ เช—เชฎเซเชฏเซเช‚.

เช† เชฒเซ‡เช–เชฎเชพเช‚ เชšเชฐเซเชšเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเซ‹ เชธเซŒเชฅเซ€ เชจเชพเชจเซ‹ เช‰เช•เซ‡เชฒ เช›เซ‡: เชชเซเชฐเชฅเชฎ เชชเซเชฐเช•เชพเชถเชจ เช“เช—เชธเซเชŸ 2018 เชฎเชพเช‚ เชฅเชฏเซเช‚ เชนเชคเซเช‚. เชœเซ‹ เช•เซ‡, เช“เช›เซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เช”เชชเชšเชพเชฐเชฟเช• เชชเซเชฐเช•เชพเชถเชจเซ‹ เชนเซ‹เชตเชพ เช›เชคเชพเช‚, เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซ‡ เช˜เชฃเซ‹ เชฒเชพเช‚เชฌเซ‹ เชฐเชธเซเชคเซ‹ เช•เชพเชขเซเชฏเซ‹ เช›เซ‡, เชœเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏเชคเชพเชฎเชพเช‚ เช•เซเชฐเชจเซเชšเซ€ เชกเซ‡เชŸเชพเชจเชพ เช‰เช•เซ‡เชฒเชจเซ‡ GitHub เชชเชฐ 1300+ เชธเซเชŸเชพเชฐเซเชธ เช…เชจเซ‡ เชฎเชนเชคเซเชคเชฎ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชซเชพเชณเซ‹ เช†เชชเชจเชพเชฐเชพ (70+)เชจเซ‡ เชตเชŸเชพเชตเซ€ เช—เชฏเซ‹ เช›เซ‡.

"เชนเซ‚เชก เชนเซ‡เช เชณ" เช† เช“เชชเชฐเซ‡เชŸเชฐ เชธเชฎเชฏ-เชšเช•เชพเชธเชพเชฏเซ‡เชฒ เช‰เช•เซ‡เชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡:

  • เชชเชŸเซเชฐเซ‹เชจเซ€ เช…เชจเซ‡ เชธเซเชชเชฟเชฒเซ‹ เชกเซเชฐเชพเช‡เชตเชฟเช‚เช— เชฎเชพเชŸเซ‡,
  • WAL-E - เชฌเซ‡เช•เช…เชช เชฎเชพเชŸเซ‡,
  • PgBouncer - เชœเซ‹เชกเชพเชฃ เชชเซ‚เชฒ เชคเชฐเซ€เช•เซ‡.

เชเชพเชฒเซ‡เชจเซเชกเซ‹เชฎเชพเช‚เชฅเซ€ เช“เชชเชฐเซ‡เชŸเชฐ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เช† เชฐเซ€เชคเซ‡ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ, เช…เชฎเชพเชฐเซ€ เชชเชธเช‚เชฆเช—เซ€เช“ เช…เชจเซ‡ เช…เชจเซเชญเชตเซ‹ เชฎเชพเชŸเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เชจเชฟเชตเซ‡เชฆเชจเซ‹เชจเซ€ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชเชพเช‚เช–เซ€

เช‘เชชเชฐเซ‡เชŸเชฐ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช•เชธเซเชŸเชฎ เชฐเชฟเชธเซ‹เชฐเซเชธเชฟเชธ เชฆเซเชตเชพเชฐเชพ เชธเช‚เชšเชพเชฒเชฟเชค เชฅเชพเชฏ เช›เซ‡, เชคเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚เชฅเซ€ เช†เชชเชฎเซ‡เชณเซ‡ เชธเซเชŸเซ‡เชŸเชซเซเชฒเชธเซ‡เชŸ เชฌเชจเชพเชตเซ‡ เช›เซ‡, เชœเซ‡ เชชเช›เซ€ เชชเซ‹เชกเชฎเชพเช‚ เชตเชฟเชตเชฟเชง เชธเชพเช‡เชกเช•เชพเชฐ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ เช•เชธเซเชŸเชฎเชพเช‡เช เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช•เซเชฐเชจเซเชšเซ€ เชกเซ‡เชŸเชพเชจเชพ เช“เชชเชฐเซ‡เชŸเชฐเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€เชฎเชพเช‚ เช† เชฌเชงเซ‹ เชœ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชซเชพเชฏเชฆเซ‹ เช›เซ‡.

เช…เชฎเซ‡ เชตเชฟเชšเชพเชฐเชฃเชพ เชนเซ‡เช เชณเชจเชพ 3 เชตเชฟเช•เชฒเซเชชเซ‹เชฎเชพเช‚เชฅเซ€ เชเชพเชฒเซ‡เชจเซเชกเซ‹เชฎเชพเช‚เชฅเซ€ เชธเซ‹เชฒเซเชฏเซเชถเชจ เชชเชธเช‚เชฆ เช•เชฐเซเชฏเซเช‚ เชนเซ‹เชตเชพเชฅเซ€, เชคเซ‡เชจเซ€ เช•เซเชทเชฎเชคเชพเช“เชจเซเช‚ เชตเชงเซ เชตเชฐเซเชฃเชจ, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ€ เชชเซเชฐเซ‡เช•เซเชŸเชฟเชธ เชธเชพเชฅเซ‡ เชคเชฐเชค เชœ เชจเซ€เชšเซ‡ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

เชเชพเชฒเซ‡เชจเซเชกเซ‹เชจเชพ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เช“เชชเชฐเซ‡เชŸเชฐ เชธเชพเชฅเซ‡ เชชเซเชฐเซ‡เช•เซเชŸเชฟเชธ เช•เชฐเซ‹

เช“เชชเชฐเซ‡เชŸเชฐ เชœเชฎเชพเชตเชŸ เช–เซ‚เชฌ เชœ เชธเชฐเชณ เช›เซ‡: เชซเช•เซเชค GitHub เชฎเชพเช‚เชฅเซ€ เชตเชฐเซเชคเชฎเชพเชจ เชชเซเชฐเช•เชพเชถเชจ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹ เช…เชจเซ‡ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚เชฅเซ€ YAML เชซเชพเช‡เชฒเซ‹ เชฒเชพเช—เซ เช•เชฐเซ‹ เชฎเซ‡เชจเซ€เชซเซ‡เชธเซเชŸ. เชตเซˆเช•เชฒเซเชชเชฟเช• เชฐเซ€เชคเซ‡, เชคเชฎเซ‡ เชชเชฃ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช“เชชเชฐเซ‡เชŸเชฐเชนเชฌ.

เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เชชเช›เซ€, เชคเชฎเชพเชฐเซ‡ เชธเซ‡เชŸเช…เชช เชตเชฟเชถเซ‡ เชšเชฟเช‚เชคเชพ เช•เชฐเชตเซ€ เชœเซ‹เชˆเช เชฒเซ‹เช— เช…เชจเซ‡ เชฌเซ‡เช•เช…เชช เชฎเชพเชŸเซ‡ เชธเช‚เช—เซเชฐเชน. เช† 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 เช•เซเชฒเชธเซเชŸเชฐเซ‹เชจเซ€ เชฏเชพเชฆเซ€

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ, เช…เชฎเชพเชฐเซ€ เชชเชธเช‚เชฆเช—เซ€เช“ เช…เชจเซ‡ เช…เชจเซเชญเชตเซ‹ เชฎเชพเชŸเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เชจเชฟเชตเซ‡เชฆเชจเซ‹เชจเซ€ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชเชพเช‚เช–เซ€
เชฌเซ‡เช•เช…เชช เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ

เช…เชจเซเชฏ เชฐเชธเชชเซเชฐเชฆ เชฒเช•เซเชทเชฃ เช†เชงเชพเชฐ เช›เซ‡ เชŸเซ€เชฎเซเชธ API. เช† เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ เช†เชชเซ‹เช†เชช เชฌเชจเชพเชตเซ‡ เช›เซ‡ PostgreSQL เชฎเชพเช‚ เชญเซ‚เชฎเชฟเช•เชพเช“, เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเชพเชฎเซ‹เชจเซ€ เชชเชฐเชฟเชฃเชพเชฎเซ€ เชธเซ‚เชšเชฟเชจเชพ เช†เชงเชพเชฐเซ‡. เชชเช›เซ€ API เชคเชฎเชจเซ‡ เชเชตเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ€ เชธเซ‚เชšเชฟ เชชเชฐเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชœเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เช†เชชเชฎเซ‡เชณเซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชธเชฎเชธเซเชฏเชพเช“ เช…เชจเซ‡ เช‰เช•เซ‡เชฒเซ‹

เชœเซ‹ เช•เซ‡, เช“เชชเชฐเซ‡เชŸเชฐเชจเชพ เช‰เชชเชฏเซ‹เช—เชฅเซ€ เชŸเซ‚เช‚เช• เชธเชฎเชฏเชฎเชพเช‚ เช˜เชฃเซ€ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เช–เชพเชฎเซ€เช“ เชฌเชนเชพเชฐ เช†เชตเซ€:

  1. เชจเซ‹เชกเชธเซ‡เชฒเซ‡เช•เซเชŸเชฐ เชธเชชเซ‹เชฐเซเชŸเชจเซ‹ เช…เชญเชพเชต;
  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 เชฎเชพเช‚ เชฌเซ‡เช•เช…เชช เชชเซƒเชทเซเช เซ‹ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡?

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ, เช…เชฎเชพเชฐเซ€ เชชเชธเช‚เชฆเช—เซ€เช“ เช…เชจเซ‡ เช…เชจเซเชญเชตเซ‹ เชฎเชพเชŸเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เชจเชฟเชตเซ‡เชฆเชจเซ‹เชจเซ€ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชเชพเช‚เช–เซ€

เชคเชฎเชพเชฐเซ‡ เช‘เชชเชฐเซ‡เชŸเชฐ UI เชฎเชพเช‚ 3 เชšเชฒเซ‹ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡:

  • SPILO_S3_BACKUP_BUCKET
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

เช† เชชเช›เซ€, เชฌเซ‡เช•เช…เชชเซเชธเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช‰เชชเชฒเชฌเซเชง เชฅเชถเซ‡, เชœเซ‡ เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชธเซเชŸเซ‡เชœเซ€เช‚เช— เชธเชพเชฅเซ‡ เช•เชพเชฐเซเชฏเชจเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเชถเซ‡, เช…เชฎเชจเซ‡ เชตเชงเชพเชฐเชพเชจเซ€ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ เชตเชฟเชจเชพ เช‰เชคเซเชชเชพเชฆเชจเชฎเชพเช‚เชฅเซ€ เชธเซเชฒเชพเช‡เชธเซ‡เชธ เชชเชนเซ‹เช‚เชšเชพเชกเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡.

เชŸเซ€เชฎเซเชธ API เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ‹ เชฌเซ€เชœเซ‹ เชซเชพเชฏเชฆเซ‹ เช…เชจเซ‡ เช“เชชเชฐเซ‡เชŸเชฐ เชŸเซ‚เชฒเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช เช…เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชชเซ‚เชฐเชคเซ€ เชคเช•เซ‹ เชนเชคเซ€. เชœเซ‹ เช•เซ‡, เชฌเชจเชพเชตเซ‡เชฒ เช›เซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“เชจเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เช•เซ‹เชˆ เช…เชงเชฟเช•เชพเชฐเซ‹ เชจเชนเซ‹เชคเชพ. เชคเชฆเชจเซเชธเชพเชฐ, เชตเชพเช‚เชšเชตเชพเชจเชพ เช…เชงเชฟเช•เชพเชฐเซ‹ เชงเชฐเชพเชตเชคเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชจเชตเชพ เช•เซ‹เชทเซเชŸเช•เซ‹ เชตเชพเช‚เชšเซ€ เชถเช•เชคเชพ เชจเชฅเซ€.

เชคเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เช›เซ‡? เช•เซ‹เชกเชฎเชพเช‚ เชนเช•เซ€เช•เชค เชนเซ‹เชตเชพ เช›เชคเชพเช‚ เช›เซ‡ เชœเชฐเซ‚เชฐเซ€ GRANT, เชคเซ‡เช“ เชนเช‚เชฎเซ‡เชถเชพ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ เชจเชฅเซ€. เชคเซเชฏเชพเช‚ 2 เชชเชฆเซเชงเชคเชฟเช“ เช›เซ‡: syncPreparedDatabases ะธ syncDatabases. เช† syncPreparedDatabases - เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชนเช•เซ€เช•เชค เชนเซ‹เชตเชพ เช›เชคเชพเช‚ preparedDatabases เช›เซ‡ เชเช• เชถเชฐเชค เช›เซ‡ defaultRoles ะธ defaultUsers เชญเซ‚เชฎเชฟเช•เชพเช“ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชกเชฟเชซเซ‹เชฒเซเชŸ เช…เชงเชฟเช•เชพเชฐเซ‹ เชฒเชพเช—เซ เชฅเชคเชพ เชจเชฅเซ€. เช…เชฎเซ‡ เชชเซ‡เชš เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ เช›เซ€เช เชœเซ‡เชฅเซ€ เช•เชฐเซ€เชจเซ‡ เช† เช…เชงเชฟเช•เชพเชฐเซ‹ เช†เชชเชฎเซ‡เชณเซ‡ เชฒเชพเช—เซ เชฅเชพเชฏ.

เช…เชจเซ‡ เชธเซเชงเชพเชฐเชพเช“เชฎเชพเช‚ เช›เซ‡เชฒเซเชฒเซ‹ เชฎเซเชฆเซเชฆเซ‹ เชœเซ‡ เช†เชชเชฃเชพ เชฎเชพเชŸเซ‡ เชธเซเชธเช‚เช—เชค เช›เซ‡ - เชชเซ‡เชš, เชœเซ‡ เชฌเชจเชพเชตเซ‡เชฒ เชธเซเชŸเซ‡เชŸเชซเซเชฒเชธเซ‡เชŸเชฎเชพเช‚ เชจเซ‹เชก เชเชซเชฟเชจเชฟเชŸเซ€ เช‰เชฎเซ‡เชฐเซ‡ เช›เซ‡. เช…เชฎเชพเชฐเชพ เช—เซเชฐเชพเชนเช•เซ‹ เช˜เชฃเซ€เชตเชพเชฐ เชธเซเชชเซ‹เชŸ เช‡เชจเซเชธเซเชŸเชจเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช–เชฐเซเชš เช˜เชŸเชพเชกเชตเชพเชจเซเช‚ เชชเชธเช‚เชฆ เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เช“ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเซ‡เชตเชพเช“เชจเซ‡ เชนเซ‹เชธเซเชŸ เช•เชฐเชตเชพ เชฏเซ‹เช—เซเชฏ เชจเชฅเซ€. เช† เชธเชฎเชธเซเชฏเชพ เชธเชนเชจเชถเซ€เชฒเชคเชพ เชฆเซเชตเชพเชฐเชพ เช‰เช•เซ‡เชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เชจเซ‹เชก เชเชซเชฟเชจเชฟเชŸเซ€เชจเซ€ เชนเชพเชœเชฐเซ€ เชตเชงเซ เช†เชคเซเชฎเชตเชฟเชถเซเชตเชพเชธ เช†เชชเซ‡ เช›เซ‡.

เชถเซเช‚ เชฅเชฏเซเช‚?

เช‰เชชเชฐเซ‹เช•เซเชค เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹เชจเชพ เช†เชงเชพเชฐเซ‡, เช…เชฎเซ‡ เชเชพเชฒเซ‡เชจเซเชกเซ‹เชฎเชพเช‚เชฅเซ€ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เช“เชชเชฐเซ‡เชŸเชฐเชจเซ‡ เชคเชฎเชพเชฐเชพ เชญเช‚เชกเชพเชฐ, เชœเซเชฏเชพเช‚ เชคเซ‡ เช†เชตเชพ เช‰เชชเชฏเซ‹เช—เซ€ เชชเซ‡เชšเซ‹ เชธเชพเชฅเซ‡ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช…เชจเซ‡ เชตเชงเซ เชธเช—เชตเชก เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชชเชฃ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซเชฏเซเช‚ เชกเซ‹เช•เชฐ เช›เชฌเซ€.

เชซเซ‹เชฐเซเช•เชฎเชพเช‚ เชธเซเชตเซ€เช•เซƒเชค เชชเซ€เช†เชฐเชจเซ€ เชธเซ‚เชšเชฟ:

เชœเซ‹ เชธเชฎเซเชฆเชพเชฏ เช† PR เชจเซ‡ เชธเชฎเชฐเซเชฅเชจ เช†เชชเซ‡ เชคเซ‹ เชคเซ‡ เชฎเชนเชพเชจ เชฐเชนเซ‡เชถเซ‡ เชœเซ‡เชฅเซ€ เชคเซ‡เช“ เช‘เชชเชฐเซ‡เชŸเชฐเชจเชพ เช†เช—เชฒเชพ เชธเช‚เชธเซเช•เชฐเชฃ เชธเชพเชฅเซ‡ เช…เชชเชธเซเชŸเซเชฐเซ€เชฎ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‡ (1.6).

เชฌเซ‹เชจเชธ! เช‰เชคเซเชชเชพเชฆเชจ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชธเชซเชณเชคเชพ เชตเชพเชฐเซเชคเชพ

เชœเซ‹ เชคเชฎเซ‡ Patroni เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชฒเชพเช‡เชต เชชเซเชฐเซ‹เชกเช•เซเชถเชจเชจเซ‡ เชจเซเชฏเซ‚เชจเชคเชฎ เชกเชพเช‰เชจเชŸเชพเช‡เชฎ เชธเชพเชฅเซ‡ เช“เชชเชฐเซ‡เชŸเชฐ เชชเชฐ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เชธเซเชชเชฟเชฒเซ‹ เชคเชฎเชจเซ‡ S3 เชธเซเชŸเซ‹เชฐเซ‡เชœ เชฆเซเชตเชพเชฐเชพ เชธเซเชŸเซ‡เชจเซเชกเชฌเชพเชฏ เช•เซเชฒเชธเซเชŸเชฐ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡ เชตเซ‹เชฒ-เช‡, เชœเซเชฏเชพเชฐเซ‡ PgSQL เชฌเชพเชˆเชจเชฐเซ€ เชฒเซ‹เช— เชชเซเชฐเชฅเชฎ S3 เชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชชเช›เซ€ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชฆเซเชตเชพเชฐเชพ เชฌเชนเชพเชฐ เช•เชพเชขเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชนเซ‹เชฏ เชคเซ‹ เชถเซเช‚ เช•เชฐเชตเซเช‚ เชจเชฅเซ€ เชœเซ‚เชจเชพ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชชเชฐ Wal-E เชฆเซเชตเชพเชฐเชพ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชฏ เช›เซ‡? เช† เชธเชฎเชธเซเชฏเชพเชจเซ‹ เช‰เช•เซ‡เชฒ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช›เซ‡ เชคเซ‡ เชธเซ‚เชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เชนเชฌ เชชเชฐ.

PostgreSQL เชฒเซ‹เชœเชฟเช•เชฒ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชฌเชšเชพเชตเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชœเซ‹ เช•เซ‡, เช…เชฎเซ‡ เชชเซเชฐเช•เชพเชถเชจเซ‹ เช…เชจเซ‡ เชธเชฌเซเชธเซเช•เซเชฐเชฟเชชเซเชถเชจเซเชธ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚ เชคเซ‡ เชตเชฟเชถเซ‡ เชตเชฟเช—เชคเชฎเชพเช‚ เชœเชˆเชถเซเช‚ เชจเชนเซ€เช‚, เช•เชพเชฐเชฃ เช•เซ‡... เช…เชฎเชพเชฐเซ€ เชฏเซ‹เชœเชจเชพ เชซเชฟเชฏเชพเชธเซเช•เซ‹ เชนเชคเซ€.

เชนเช•เซ€เช•เชค เช เช›เซ‡ เช•เซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชฒเชพเช–เซ‹ เชชเช‚เช•เซเชคเชฟเช“ เชธเชพเชฅเซ‡ เช˜เชฃเชพ เชฒเซ‹เชก เช•เชฐเซ‡เชฒเชพ เช•เซ‹เชทเซเชŸเช•เซ‹ เชนเชคเชพ, เชœเซ‡ เชตเชงเซเชฎเชพเช‚, เชธเชคเชค เชซเชฐเซ€ เชญเชฐเชพเชˆ เช—เชฏเชพ เชนเชคเชพ เช…เชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ. เชธเชฐเชณ เชธเชฌเซเชธเซเช•เซเชฐเชฟเชชเซเชถเชจ ั copy_data, เชœเซเชฏเชพเชฐเซ‡ เชจเชตเซ€ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชฎเชพเชธเซเชŸเชฐเชจเชพ เชคเชฎเชพเชฎ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹เชจเซ€ เชจเช•เชฒ เช•เชฐเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชซเช•เซเชค เชฎเชพเชธเซเชŸเชฐ เชธเชพเชฅเซ‡ เชšเชพเชฒเซ เชฐเชพเช–เซ€ เชถเช•เชคเซ€ เชจเชฅเซ€. เชธเชพเชฎเช—เซเชฐเซ€เชจเซ€ เชจเช•เชฒ เช•เชฐเชตเชพเชจเซเช‚ เชเช• เช…เช เชตเชพเชกเชฟเชฏเชพ เชธเซเชงเซ€ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚, เชชเชฐเช‚เชคเซ เชฎเชพเชธเซเชŸเชฐ เชธเชพเชฅเซ‡ เช•เซเชฏเชพเชฐเซ‡เชฏ เชชเช•เชกเชพเชฏเซเช‚ เชจเชนเซ€เช‚. เช…เช‚เชคเซ‡, เชคเซ‡เชฃเซ‡ เชฎเชจเซ‡ เชธเชฎเชธเซเชฏเชพ เชนเชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ€ เชฒเซ‡เช– Avito เชจเชพ เชธเชพเชฅเซ€เชฆเชพเชฐเซ‹: เชคเชฎเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ 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 เชฎเชพเชŸเซ‡ เชคเซเชฐเชฃ เชธเซŒเชฅเซ€ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช“เชชเชฐเซ‡เชŸเชฐเซ‹เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ€เชงเชพ เชชเช›เซ€, เช…เชฎเซ‡ เชเชพเชฒเซ‡เชจเซเชกเซ‹เชฎเชพเช‚เชฅเซ€ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชชเชธเช‚เชฆ เช•เชฐเซเชฏเซ‹. เช…เชจเซ‡ เช…เชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“ เชฆเซ‚เชฐ เช•เชฐเชตเซ€ เชชเชกเซ€ เชนเชคเซ€, เชชเชฐเช‚เชคเซ เชชเชฐเชฟเชฃเชพเชฎ เช–เชฐเซ‡เช–เชฐ เช†เชจเช‚เชฆเชฆเชพเชฏเช• เชนเชคเซเช‚, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เช† เช…เชจเซเชญเชตเชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เช…เชจเซเชฏ PgSQL เชธเซเชฅเชพเชชเชจเซ‹เชฎเชพเช‚ เชตเชฟเชธเซเชคเชพเชฐเชตเชพเชจเซ€ เชฏเซ‹เชœเชจเชพ เชฌเชจเชพเชตเซ€เช เช›เซ€เช. เชœเซ‹ เชคเชฎเชจเซ‡ เชธเชฎเชพเชจ เช‰เช•เซ‡เชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‹ เช…เชจเซเชญเชต เชนเซ‹เชฏ, เชคเซ‹ เช…เชฎเชจเซ‡ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚ เชตเชฟเช—เชคเซ‹ เชœเซ‹เชˆเชจเซ‡ เช†เชจเช‚เชฆ เชฅเชถเซ‡!

PS

เช…เชฎเชพเชฐเชพ เชฌเซเชฒเซ‹เช— เชชเชฐ เชชเชฃ เชตเชพเช‚เชšเซ‹:

เชธเซ‹เชฐเซเชธ: www.habr.com