Kubernetes, เดžเด™เตเด™เดณเตเดŸเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเตเด•เตพ, เด…เดจเตเดญเดตเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ PostgreSQL เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเดŸเต† เด’เดฐเต เดนเตเดฐเดธเตเดต เด…เดตเดฒเต‹เด•เดจเด‚

Kubernetes, เดžเด™เตเด™เดณเตเดŸเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเตเด•เตพ, เด…เดจเตเดญเดตเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ PostgreSQL เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเดŸเต† เด’เดฐเต เดนเตเดฐเดธเตเดต เด…เดตเดฒเต‹เด•เดจเด‚

เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพ เด•เต‚เดŸเตเดคเดฒเดพเดฏเดฟ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต: "เดžเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต Amazon RDS เดชเต‹เดฒเต† เดตเต‡เดฃเด‚, เดŽเดจเตเดจเดพเตฝ เดตเดฟเดฒเด•เตเดฑเดžเตเดžเดคเดพเดฃเต"; "เดžเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด†เตผโ€Œเดกเดฟโ€ŒเดŽเดธเต เดชเต‹เดฒเต† เดตเต‡เดฃเด‚, เดŽเดจเตเดจเดพเตฝ เดŽเดฒเตเดฒเดพเดฏเดฟเดŸเดคเตเดคเตเด‚, เดเดคเต เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเดฑเดฟเดฒเตเด‚." Kubernetes-เตฝ เด‡เดคเตเดคเดฐเดฎเตŠเดฐเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดค เดชเดฐเดฟเดนเดพเดฐเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป, PostgreSQL (Stolon, Crunchy Data, Zalando เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ) เดเดฑเตเดฑเดตเตเด‚ เดœเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเตเดŸเต† เดจเดฟเดฒเดตเดฟเดฒเต† เด…เดตเดธเตเดฅ เดžเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเต เดžเด™เตเด™เดณเตเดŸเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เดจเดŸเดคเตเดคเดฟ.

เดˆ เดฒเต‡เด–เดจเด‚ เด’เดฐเต เดธเตˆเดฆเตเดงเดพเดจเตเดคเดฟเด• เดตเต€เด•เตเดทเดฃเด•เต‹เดฃเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ (เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เดณเตเดŸเต† เด…เดตเดฒเต‹เด•เดจเด‚) เดชเตเดฐเดพเดฏเต‹เด—เดฟเด• เดตเดถเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ (เดŽเดจเตเดคเดพเดฃเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเดคเต, เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดจเตเดจเดคเต) เดžเด™เตเด™เตพ เดจเต‡เดŸเดฟเดฏ เด…เดจเตเดญเดตเดฎเดพเดฃเต. เดŽเดจเตเดจเดพเตฝ เด†เดฆเตเดฏเด‚, RDS-เดจเต เดชเด•เดฐเด‚ เดตเดฏเตเด•เตเด•เดพเตป เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณ เดชเตŠเดคเตเดตเดพเดฏ เด†เดตเดถเตเดฏเด•เดคเด•เตพ เดŽเดจเตเดคเตŠเด•เตเด•เต†เดฏเดพเดฃเต†เดจเตเดจเต เดจเดฎเตเด•เตเด•เต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเด‚...

เดŽเดจเตเดคเดพเดฃเต RDS

เด†เดณเตเด•เตพ RDS-เดจเต† เด•เตเดฑเดฟเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดžเด™เตเด™เดณเตเดŸเต† เด…เดจเตเดญเดตเดคเตเดคเดฟเตฝ, เด…เดตเตผ เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต เด’เดฐเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดค DBMS เดธเต‡เดตเดจเดฎเดพเดฃเต:

  1. เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต;
  2. เดธเตเดจเดพเดชเตเดชเตเดทเต‹เดŸเตเดŸเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเด‚ เด…เดตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เดพเดจเตเดฎเตเดณเตเดณ เด•เดดเดฟเดตเตเดฃเตเดŸเต (เดตเต†เดฏเดฟเดฒเดคเตเดคเต เดชเดฟเดจเตเดคเตเดฃเดฏเต‹เดŸเต† PITR);
  3. เดฎเดพเดธเตเดฑเตเดฑเตผ-เดธเตเดฒเต‡เดตเต เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต;
  4. เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด™เตเด™เดณเตเดŸเต† เดธเดฎเตเดชเดจเตเดจเดฎเดพเดฏ เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เด‰เดฃเตเดŸเต;
  5. เด“เดกเดฟเดฑเตเดฑเดฟเด‚เด—เตเด‚ เด‰เดชเดฏเต‹เด•เตเดคเตƒ/เด†เด•เตเดธเดธเต เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเตเด‚ เดจเตฝเด•เตเดจเตเดจเต.

เดชเตŠเดคเตเดตเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, เด•เดฏเตเดฏเดฟเดฒเตเดณเตเดณ เดšเตเดฎเดคเดฒ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเดฎเต€เดชเดจเด™เตเด™เตพ เดตเดณเดฐเต† เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เดŽเดจเตเดจเดพเตฝ เดธเต‹เดชเดพเดงเดฟเด•เดฎเดพเดฏ เด…เตปเดธเดฟเดฌเดฟเตพ เด‰เดณเตเดณ เดชเดพเดค เดจเดฎเตเด•เตเด•เต เด…เดŸเตเดคเตเดคเดฒเตเดฒ. (2GIS-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเดนเดชเตเดฐเดตเตผเดคเตเดคเด•เตผ เดธเดฎเดพเดจเดฎเดพเดฏ เด’เดฐเต เดจเดฟเด—เดฎเดจเดคเตเดคเดฟเดฒเต†เดคเตเดคเดฟ เด…เดตเดจเตเดฑเต† เดถเตเดฐเดฎเด‚ "เดชเต‹เดธเตเดฑเตเดฑเตเด—เตเดฐเต†เดธเต เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดชเดฐเดพเดœเดฏ เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดชเด•เดฐเดฃเด‚" เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•.

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด†เดตเดพเดธเดตเตเดฏเดตเดธเตเดฅเดฏเดฟเดฒเต† เดธเดฎเดพเดจ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดธเดฎเต€เดชเดจเดฎเดพเดฃเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ. เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตเดณเตเดณเดฟเตฝ เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดค เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเด•เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเต "เดซเตเดฒเดพเดจเตเดฑ" เดฏเตเดŸเต† เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดกเดฏเดฑเด•เตเดŸเตผ เด‡เดคเดฟเดจเด•เด‚ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดธเด‚เดธเดพเดฐเดฟเดšเตเดšเต. เดกเดฟเดธเตเดฑเตเดฑเต‹เตพเด…เด•เดคเตเดคเต เด…เดฆเตเดฆเต‡เดนเดคเตเดคเดฟเดจเตเดฑเต† เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด•เดณเดฟเดฒเตŠเดจเตเดจเต.

NB: เดฒเดณเดฟเดคเดฎเดพเดฏ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดตเต‡เด—เดคเตเดคเดฟเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เดณเตเดŸเต† เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดทเต†เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ. เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, Go-เดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด…เดฑเดฟเดตเดฟเดฒเตเดฒเดพเดคเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเตผเดฎเดพเตผเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดชเดฐเดฟเดšเดฟเดคเดฎเดพเดฏ เดตเดดเดฟเด•เดณเดฟเตฝ: เดฌเดพเดทเต, เดชเตˆเดคเตเดคเตบ เดฎเตเดคเดฒเดพเดฏเดตเดฏเดฟเตฝ.

PostgreSQL-เดจเดพเดฏเดฟ เดจเดฟเดฐเดตเดงเดฟ เดœเดจเดชเตเดฐเดฟเดฏ K8s เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ เด‰เดฃเตเดŸเต:

  • เดธเตเดฑเตเดฑเต‹เดณเตบ;
  • Crunchy Data PostgreSQL เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ;
  • Zalando Postgres เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ.

เดจเดฎเตเด•เตเด•เต เด…เดตเดฐเต† เด•เต‚เดŸเตเดคเตฝ เดธเต‚เด•เตเดทเตเดฎเดฎเดพเดฏเดฟ เดจเต‹เด•เตเด•เดพเด‚.

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตฝ

เดฎเตเด•เดณเดฟเตฝ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดš เดชเตเดฐเดงเดพเดจ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพเด•เตเด•เต เดชเตเดฑเดฎเต‡, เดžเด™เตเด™เตพ - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเตผ เด“เดชเตเดชเดฑเต‡เดทเตปเดธเต เดŽเดžเตเดšเดฟเดจเต€เดฏเตผเดฎเดพเตผ - เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเดฟเตฝ เดจเดฟเดจเตเดจเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดตเดฏเตเด‚ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต:

  • Git-เตฝ เดจเดฟเดจเตเดจเตเด‚ เดตเดฟเดจเตเดฏเดพเดธเด‚ เด‡เดทเตเดŸเดพเดจเตเดธเตƒเดค เดตเดฟเดญเดตเด™เตเด™เตพ;
  • เดชเต‹เดกเต เด†เดจเตเดฑเดฟ-เด…เดซเดฟเดจเดฟเดฑเตเดฑเดฟ เดชเดฟเดจเตเดคเตเดฃ;
  • เดจเต‹เดกเต เด…เดซเดฟเดจเดฟเดฑเตเดฑเดฟ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเต‹เดกเต เดธเต†เดฒเด•เตเดŸเตผ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต;
  • เดŸเต‹เดณเดฑเตปเดธเตเด•เดณเตเดŸเต† เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป;
  • เดŸเตเดฏเต‚เดฃเดฟเด‚เด—เต เด•เดดเดฟเดตเตเด•เดณเตเดŸเต† เดฒเดญเตเดฏเดค;
  • เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเดตเตเดจเตเดจ เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏเด•เดณเตเด‚ เด•เดฎเดพเตปเดกเตเด•เตพ เดชเต‹เดฒเตเด‚.

เด“เดฐเต‹ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เด•เดŸเด•เตเด•เดพเดคเต† (เดฎเตเดดเตเดตเตป เดฒเต‡เด–เดจเดตเตเด‚ เดตเดพเดฏเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเดตเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดšเต‹เดฆเตเดฏเด™เตเด™เดณเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดšเต‹เดฆเดฟเด•เตเด•เตเด•), เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดจเต‹เดกเตเด•เดณเตเดŸเต† เดธเตเดชเต†เดทเตเดฏเดฒเตˆเดธเต‡เดทเตป เด•เต‚เดŸเตเดคเตฝ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเด•เตเด•เดพเตป เดˆ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เดชเตŠเดคเตเดตเต† เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด‚. เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด…เดตเดฐเต† เด“เตผเดกเตผ เดšเต†เดฏเตเดฏเตเด•. เด‡เดคเตเดตเดดเดฟ เดจเดฎเตเด•เตเด•เต เดชเตเดฐเด•เดŸเดจเดคเตเดคเดฟเดฒเตเด‚ เดšเต†เดฒเดตเดฟเดฒเตเด‚ เด’เดชเตเดฑเตเดฑเดฟเดฎเตฝ เดฌเดพเดฒเตปเดธเต เดจเต‡เดŸเดพเดจเดพเด•เตเด‚.

เด‡เดจเดฟ เดจเดฎเตเด•เตเด•เต PostgreSQL เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเดฟเดฒเต‡เด•เตเด•เต เดคเดจเตเดจเต† เดชเต‹เด•เดพเด‚.

1. เดธเตเดฑเตเดฑเต‹เดณเตบ

เดธเตเดฑเตเดฑเต‹เดณเตบ เด‡เดฑเตเดฑเดพเดฒเดฟเดฏเตป เด•เดฎเตเดชเดจเดฟเดฏเดพเดฏ Sorint.lab เตฝ เดจเดฟเดจเตเดจเต เด‡เดคเดฟเดจเด•เด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดš เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต DBMS-เดจเตเดณเตเดณ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เด’เดฐเต เดคเดฐเด‚ เดจเดฟเดฒเดตเดพเดฐเดฎเดพเดฏเดฟ เด•เดฃเด•เตเด•เดพเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดฐเตเดจเตเดจเต. เด‡เดคเต เดตเดณเดฐเต† เดชเดดเดฏ เด’เดฐเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดพเดฃเต: เด…เดคเดฟเดจเตเดฑเต† เด†เดฆเตเดฏ เดชเตŠเดคเต เดฑเดฟเดฒเต€เดธเต 2015 เดจเดตเด‚เดฌเดฑเดฟเตฝ (!) เดจเดŸเดจเตเดจเต, GitHub เดถเต‡เด–เดฐเดคเตเดคเดฟเตฝ เดเด•เดฆเต‡เดถเด‚ 3000 เดจเด•เตเดทเดคเตเดฐเด™เตเด™เดณเตเด‚ 40+ เดธเด‚เดญเดพเดตเด•เดฐเตเด‚ เด‰เดฃเตเดŸเต.

เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดšเดฟเดจเตเดคเดจเต€เดฏเดฎเดพเดฏ เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏเดฏเตเดŸเต† เดฎเดฟเด•เดšเตเดš เด‰เดฆเดพเดนเดฐเดฃเดฎเดพเดฃเต เดธเตเดฑเตเดฑเต‹เดณเตบ:

Kubernetes, เดžเด™เตเด™เดณเตเดŸเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเตเด•เตพ, เด…เดจเตเดญเดตเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ PostgreSQL เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเดŸเต† เด’เดฐเต เดนเตเดฐเดธเตเดต เด…เดตเดฒเต‹เด•เดจเด‚
เดˆ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเดฟเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเดพเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป. เดชเตŠเดคเตเดตเดพเดฏเดฟ, เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดฒเตเดฒเดพเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เดชเดฑเดžเตเดžเดพเตฝ เดฎเดคเดฟ: เดชเดฐเดพเดœเดฏเด‚, เดธเตเดคเดพเดฐเตเดฏเดฎเดพเดฏ เด•เตเดฒเดฏเดจเตเดฑเต เด†เด•เตโ€Œเดธเดธเดฟเดจเตเดณเตเดณ เดชเตเดฐเต‹เด•เตโ€Œเดธเดฟเด•เตพ, เดฌเดพเด•เตเด•เดชเตเดชเตเด•เตพ... เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดชเตเดฐเต‹เด•เตโ€Œเดธเดฟเด•เตพ เด’เดฐเต เดŽเตปเดกเตโ€Œเดชเต‹เดฏเดฟเดจเตเดฑเต เดธเต‡เดตเดจเดคเตเดคเดฟเดฒเต‚เดŸเต† เด†เด•เตโ€Œเดธเดธเต เดจเตฝเด•เตเดจเตเดจเต - เดšเตเดตเดŸเต† เดšเตผเดšเตเดšเดšเต†เดฏเตเดฏเตเดจเตเดจ เดฎเดฑเตเดฑเต เดฐเดฃเตเดŸเต เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ (เด…เดตเดฏเตโ€Œเด•เตเด•เต เด“เดฐเต‹เดจเตเดจเดฟเดจเตเด‚ เดฐเดฃเตเดŸเต เดธเต‡เดตเดจเด™เตเด™เดณเตเดฃเตเดŸเต. เด…เดŸเดฟเดธเตเดฅเดพเดจเด‚ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต).

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดธเตเดฑเตเดฑเต‹เดณเตบ เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒ, เด…เดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเตฝ DBMS เดธเด‚เดญเดตเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป - "เดšเต‚เดŸเตเดณเตเดณ เด•เต‡เด•เตเด•เตเด•เตพ เดชเต‹เดฒเต†" - เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเดฒเตเด‚ เดตเต‡เด—เดคเตเดคเดฟเดฒเตเด‚ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดพเดคเตเดคเดคเต. เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดตเดดเดฟเดฏเดพเดฃเต เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดจเดŸเดคเตเดคเตเดจเตเดจเดคเต stolonctl, เดตเดฟเดจเตเดฏเดพเดธเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดนเต†เตฝเด‚ เดšเดพเตผเดŸเตเดŸเดฟเดฒเต‚เดŸเต†เดฏเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เด‡เดทเตเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเดฏเดต เด•เต‹เตบเดซเดฟเด—เตเดฎเดพเดชเตเดชเดฟเตฝ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด’เดฐเต เดตเดถเดคเตเดคเต, เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด’เดฐเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเดฒเตเดฒเต†เดจเตเดจเต เดฎเดพเดฑเตเดจเตเดจเต (เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ, เด‡เดคเต CRD เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ). เดŽเดจเตเดจเดพเตฝ เดฎเดฑเตเดตเดถเดคเตเดคเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเตฝ K8- เด•เดณเดฟเตฝ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดซเตเดฒเต†เด•เตเดธเดฟเดฌเดฟเตพ เดธเดฟเดธเตเดฑเตเดฑเดฎเดพเดฃเดฟเดคเต.

เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ, เดตเตเดฏเด•เตเดคเดฟเดชเดฐเดฎเดพเดฏเดฟ เดžเด™เตเด™เตพเด•เตเด•เต เด“เดฐเต‹ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเตเด‚ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดšเดพเตผเดŸเตเดŸเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต. เด…เดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เตพ เด‡เดคเดฐเดฎเดพเตผเด—เด™เตเด™เตพ เดคเต‡เดŸเดพเตป เดคเตเดŸเด™เตเด™เดฟ.

2. Crunchy Data PostgreSQL เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ

Crunchy เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ, เด’เดฐเต เดฏเตเดต เด…เดฎเต‡เดฐเดฟเด•เตเด•เตป เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเต, เด’เดฐเต เดฒเต‹เดœเดฟเด•เตเด•เตฝ เดฌเดฆเตฝ เดชเต‹เดฒเต† เดคเต‹เดจเตเดจเดฟ. 2017 เดฎเดพเตผเดšเตเดšเดฟเดฒเต† เด†เดฆเตเดฏ เดฑเดฟเดฒเต€เดธเดฟเดฒเดพเดฃเต เด‡เดคเดฟเดจเตเดฑเต† เดชเตŠเดคเต เดšเดฐเดฟเดคเตเดฐเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ GitHub เดถเต‡เด–เดฐเดคเตเดคเดฟเดจเต 1300 เดจเด•เตเดทเดคเตเดฐเด™เตเด™เดณเตเด‚ 50+ เดธเด‚เดญเดพเดตเด•เดฐเตเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เดฒเดญเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดณเตเดณเต‚. เดธเต†เดชเตเดคเด‚เดฌเดฑเดฟเดฒเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต, เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต 1.15-1.18, เด“เดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเต 3.11+, 4.4+, GKE, VMware Enterprise PKS 1.3+ เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเต.

Crunchy Data PostgreSQL เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเดฑเตเด‚ เดชเตเดฐเดธเตเดคเดพเดตเดฟเดšเตเดš เด†เดตเดถเตเดฏเด•เดคเด•เตพ เดจเดฟเดฑเดตเต‡เดฑเตเดฑเตเดจเตเดจเต:

Kubernetes, เดžเด™เตเด™เดณเตเดŸเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเตเด•เตพ, เด…เดจเตเดญเดตเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ PostgreSQL เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเดŸเต† เด’เดฐเต เดนเตเดฐเดธเตเดต เด…เดตเดฒเต‹เด•เดจเด‚

เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดตเดดเดฟเดฏเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต pgo, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด‡เดคเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดคเดฟเดจเดพเตฝ, เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเต†เดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดžเด™เตเด™เดณเต† เดธเดจเตเดคเต‹เดทเดฟเดชเตเดชเดฟเดšเตเดšเต:

  • CRD เดตเดดเดฟ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดฎเตเดฃเตเดŸเต;
  • เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต (เดธเดฟเด†เตผเดกเดฟ เดตเดดเดฟเดฏเตเด‚);
  • เดฎเดฑเตเดฑเต เด˜เดŸเด•เด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดจเด‚ เด•เตเดฐเดžเตเดšเดฟ เดกเดพเดฑเตเดฑ เด•เดฃเตเดŸเต†เดฏเตเดจเตผ เดธเตเดฏเต‚เดŸเตเดŸเต - PostgreSQL-เดจเตเดณเตเดณ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเตผ เดšเดฟเดคเตเดฐเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดถเต‡เด–เดฐเดตเตเด‚ เด…เดคเดฟเดจเตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเด•เดณเตเด‚ (pgBackRest, pgAudit, contrib-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด™เตเด™เตพ เดฎเตเดคเดฒเดพเดฏเดต เด‰เตพเดชเตเดชเต†เดŸเต†).

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด•เตเดฐเดžเตเดšเดฟ เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดพเดจเตเดณเตเดณ เดถเตเดฐเดฎเด™เตเด™เตพ เดจเดฟเดฐเดตเดงเดฟ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดตเต†เดณเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเดฟ:

  • เดธเดนเดฟเดทเตเดฃเตเดคเดฏเตเด•เตเด•เต เดธเดพเดงเตเดฏเดคเดฏเดฟเดฒเตเดฒ - เดจเต‹เดกเต เดธเต†เดฒเด•เตเดŸเตผ เดฎเดพเดคเตเดฐเดฎเต‡ เดจเตฝเด•เดฟเดฏเดฟเดŸเตเดŸเตเดณเตเดณเต‚.
  • เดžเด™เตเด™เตพ เด’เดฐเต เดธเตโ€Œเดฑเตเดฑเต‡เดฑเตเดฑเตโ€Œเดซเตเตพ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚, เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดš เดชเต‹เดกเตเด•เตพ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเตเดซเตเตพเดธเต†เดฑเตเดฑเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ, เดกเดฟเดชเตเดฒเต‹เดฏเตเดฎเต†เดจเตเดฑเตเด•เตพเด•เตเด•เต เดกเดฟเดธเตเด•เตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ.

เด…เดตเดธเดพเดจ เดชเต‹เดฐเดพเดฏเตเดฎ เดฐเดธเด•เดฐเดฎเดพเดฏ เดจเดฟเดฎเดฟเดทเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเต: เดŸเต†เดธเตเดฑเตเดฑเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดกเดฟเดธเตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต 3 เดชเด•เตผเดชเตเดชเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดžเตเดžเต เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดธเด‚เดญเดฐเดฃเด‚, 3 เดชเด•เตผเดชเตเดชเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เดจเตเดจเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเดจเตเดจเต (เด…เดคเดฒเตเดฒเต†เด™เตเด•เดฟเดฒเตเด‚).

เดตเดฟเดตเดฟเดง เด“เด•เตเดธเดฟเดฒเดฑเดฟ เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเตเดฎเดพเดฏเตเดณเตเดณ เดฑเต†เดกเดฟเดฎเต†เดฏเตเดกเต เดธเด‚เดฏเต‹เดœเดจเดฎเดพเดฃเต เดˆ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดŸเต† เดฎเดฑเตเดฑเตŠเดฐเต เดธเดตเดฟเดถเต‡เดทเดค. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, pgAdmin, pgBounce เดŽเดจเตเดจเดฟเดต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดš เด—เตเดฐเดพเดซเดพเดจเดฏเตเด‚ เดชเตเดฐเตŠเดฎเดฟเดคเตเดฏเต‚เดธเตเด‚ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต. เดธเดฎเต€เดชเด•เดพเดฒเดคเตเดคเต เดฑเดฟเดฒเต€เดธเต 4.5.0-beta1 เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเดฎเดพเดฏเตเดณเตเดณ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดŸ เดธเด‚เดฏเต‹เดœเดจเด‚ เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเต pgMonitor, เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ PgSQL เดฎเต†เดŸเตเดฐเดฟเด•เตเดธเดฟเดจเตเดฑเต† เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฃเด‚ เดฌเต‹เด•เตเดธเดฟเดจเต เดชเตเดฑเดคเตเดคเต เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดคเดคเดฟเดจเต เดจเดจเตเดฆเดฟ.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดตเดฟเดญเดตเด™เตเด™เดณเตเดŸเต† เดตเดฟเดšเดฟเดคเตเดฐเดฎเดพเดฏ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เดฎเดฑเตเดฑเตŠเดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเต‡เดฃเตเดŸเดคเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเด•เดคเดฏเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เดณเต† เดจเดฏเดฟเดšเตเดšเต.

3. Zalando Postgres เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ

เดžเด™เตเด™เตพเด•เตเด•เต เดตเดณเดฐเต†เด•เตเด•เดพเดฒเดฎเดพเดฏเดฟ Zalando เด‰เตฝเดชเตเดชเดจเตเดจเด™เตเด™เตพ เด…เดฑเดฟเดฏเดพเด‚: เดžเด™เตเด™เตพเด•เตเด•เต Zalenium เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เด…เดจเตเดญเดตเดฎเตเดฃเตเดŸเต, เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดžเด™เตเด™เตพ เดถเตเดฐเดฎเดฟเดšเตเดšเต เดชเดคเตเดฐเต‹เดฃเดฟ PostgreSQL-เดจเตเดณเตเดณ เด…เดตเดฐเตเดŸเต† เดœเดจเดชเตเดฐเดฟเดฏ HA เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฃเต. เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เดฎเตเดชเดจเดฟเดฏเตเดŸเต† เดธเดฎเต€เดชเดจเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดชเต‹เดธเตเดฑเตเดฑเตเด—เตเดฐเต†เดธเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด…เดคเดฟเดจเตเดฑเต† เดฐเดšเดฏเดฟเดคเดพเด•เตเด•เดณเดฟเดฒเตŠเดฐเดพเดณเดพเดฏ เด…เดฒเด•เตเดธเดฟ เด•เตเดฒเตเดฏเต‚เด•เตเด•เดฟเตป เดชเดฑเดžเตเดžเต เดชเต‹เดธเตเดฑเตเดฑเตเด—เตเดฐเต†เดธเต-เดšเตŠเดตเตเดต #5, เดžเด™เตเด™เตพเด•เตเด•เดคเต เด‡เดทเตเดŸเดชเตเดชเต†เดŸเตเดŸเต.

เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดšเตผเดšเตเดš เดšเต†เดฏเตเดค เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดพเดฏเด‚ เด•เตเดฑเดžเตเดž เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฃเดฟเดคเต: เด†เดฆเตเดฏ เดฑเดฟเดฒเต€เดธเต 2018 เด“เด—เดธเตเดฑเตเดฑเดฟเตฝ เดจเดŸเดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด”เดชเดšเดพเดฐเดฟเด•เดฎเดพเดฏ เดฑเดฟเดฒเต€เดธเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด•เตเดฑเดตเดพเดฃเต†เด™เตเด•เดฟเดฒเตเด‚, เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด’เดฐเตเดชเดพเดŸเต เดฎเตเดจเตเดจเต‹เดŸเตเดŸเต เดชเต‹เดฏเดฟ, GitHub-เตฝ 1300+ เดจเด•เตเดทเดคเตเดฐเด™เตเด™เดณเตเด‚ เดชเดฐเดฎเดพเดตเดงเดฟ เดธเด‚เดญเดพเดตเดจ เดšเต†เดฏเตเดฏเตเดจเตเดจเดตเดฐเตเด‚ (70+) เด‰เดณเตเดณ Crunchy Data-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเต† เด‡เดคเดฟเดจเด•เด‚ เดฎเดฑเดฟเด•เดŸเดจเตเดจเต.

"เด…เดฃเตเดŸเตผ เดฆเดฟ เดนเตเดกเต" เดˆ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดธเดฎเดฏเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดš เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต:

เดธเดฒเดพเตปเดกเต‹เดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เด™เตเด™เดจเต†เดฏเดพเดฃเต:

Kubernetes, เดžเด™เตเด™เดณเตเดŸเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเตเด•เตพ, เด…เดจเตเดญเดตเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ PostgreSQL เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเดŸเต† เด’เดฐเต เดนเตเดฐเดธเตเดต เด…เดตเดฒเต‹เด•เดจเด‚

เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเดฒเต‚เดŸเต† เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต, เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเตโ€Œเดซเตเตพเดธเต†เดฑเตเดฑเต เดธเตเดตเดฏเดฎเต‡เดต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เดชเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดตเดฟเดตเดฟเดง เดธเตˆเดกเตโ€Œเด•เดพเดฑเตเด•เตพ เดšเต‡เตผเดคเตเดคเต เด‡เดทเตเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเด•เตเด•เดพเดจเดพเด•เตเด‚. เด•เตเดฐเดžเตเดšเดฟ เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเตเดฎเตเดชเต‹เตพ เด‡เดคเต†เดฒเตเดฒเดพเด‚ เด’เดฐเต เดชเตเดฐเดงเดพเดจ เดจเต‡เดŸเตเดŸเดฎเดพเดฃเต.

เดชเดฐเดฟเด—เดฃเดจเดฏเดฟเดฒเตเดณเตเดณ 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. เด‡เดคเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเดฟเดจเตŠเดชเตเดชเด‚ เดตเดฐเตเดจเตเดจเต เด•เต‚เดŸเดพเดคเต† เด•เตเดฒเดธเตเดฑเตเดฑเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดจเตเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเตเดชเต‹เดฒเต† เดคเดจเตเดจเต† เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดš เดฌเดพเด•เตเด•เดชเตเดชเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเด‚ เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

Kubernetes, เดžเด™เตเด™เดณเตเดŸเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเตเด•เตพ, เด…เดจเตเดญเดตเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ PostgreSQL เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเดŸเต† เด’เดฐเต เดนเตเดฐเดธเตเดต เด…เดตเดฒเต‹เด•เดจเด‚
PostgreSQL เด•เตเดฒเดธเตเดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เดชเดŸเตเดŸเดฟเด•

Kubernetes, เดžเด™เตเด™เดณเตเดŸเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเตเด•เตพ, เด…เดจเตเดญเดตเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ PostgreSQL เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเดŸเต† เด’เดฐเต เดนเตเดฐเดธเตเดต เด…เดตเดฒเต‹เด•เดจเด‚
เดฌเดพเด•เตเด•เดชเตเดชเต เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต

เดฎเดฑเตเดฑเตŠเดฐเต เดฐเดธเด•เดฐเดฎเดพเดฏ เดธเดตเดฟเดถเต‡เดทเดค เดชเดฟเดจเตเดคเตเดฃเดฏเดพเดฃเต เดŸเต€เดฎเตเด•เดณเตเดŸเต† API. เดˆ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เดฏเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเดฏเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต PostgreSQL-เดฒเต† เดฑเต‹เดณเตเด•เตพ, เดซเดฒเดฎเดพเดฏเตเดฃเตเดŸเดพเด•เตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเตƒเดจเดพเดฎเด™เตเด™เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเต เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ. เดฑเต‹เดณเตเด•เตพ เดธเตเดตเดฏเดฎเต‡เดต เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดš เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เดพเตป API เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเตเดฐเดถเตเดจเด™เตเด™เดณเตเด‚ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เดณเตเด‚

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดŸเต† เด‰เดชเดฏเต‹เด—เด‚ เด‰เดŸเตป เดคเดจเตเดจเต† เดจเดฟเดฐเดตเดงเดฟ เดธเตเดชเตเดฐเดงเดพเดจ เดชเต‹เดฐเดพเดฏเตเดฎเด•เตพ เดตเต†เดณเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเดฟ:

  1. เดจเต‹เดกเต เดธเต†เดฒเด•เตเดŸเตผ เดชเดฟเดจเตเดคเตเดฃเดฏเตเดŸเต† เด…เดญเดพเดตเด‚;
  2. เดฌเดพเด•เตเด•เดชเตเดชเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเดฟเดฒเตเดฒเดพเดฏเตเดฎ;
  3. เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตฝ เดซเด‚เด—เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดชเตเดฐเดคเตเดฏเต‡เด•เดพเดตเด•เดพเดถเด™เตเด™เตพ เดฆเตƒเดถเตเดฏเดฎเดพเด•เดฟเดฒเตเดฒ;
  4. เดšเดฟเดฒเดชเตเดชเต‹เตพ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด•เดพเดฃเตเดจเตเดจเดฟเดฒเตเดฒ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เดพเดฒเดนเดฐเดฃเดชเตเดชเต†เดŸเตเดŸเดคเดพเดฃเต.

เดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เด…เดตเดฏเดฟเตฝ เดชเดฒเดคเตเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เดจเดฎเตเด•เตเด•เต เด…เดตเดธเดพเดจเด‚ เดฎเตเดคเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚ - เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚.

เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚, เด’เดฐเต เดฌเดพเด•เตเด•เดชเตเดชเต เดŽเด™เตเด™เดจเต† เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเตเด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดฏเตเดเดฏเดฟเดฒเต‡เด•เตเด•เต เดฌเดพเด•เตเด•เดชเตเดชเต เดฌเด•เตเด•เดฑเตเดฑเต เดŽเด™เตเด™เดจเต† เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดตเตเดฏเด•เตเดคเดฎเดฒเตเดฒ เดŽเดจเตเดจ เดตเดธเตเดคเตเดค เดจเดฟเด™เตเด™เตพ เด…เดญเดฟเดฎเตเด–เต€เด•เดฐเดฟเด•เตเด•เตเด‚. เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดฏเดฅเดพเตผเดคเตเดฅ เดตเดฟเดตเดฐเดฃเด‚ เด‡เดคเดฟเดฒเตเดฃเตเดŸเต PR:

  1. เด’เดฐเต เดฐเดนเดธเตเดฏเด‚ เด‰เดฃเตเดŸเดพเด•เตเด•เดฃเด‚;
  2. เด‡เดคเต เด’เดฐเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดพเดฏเดฟ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเด• pod_environment_secret_name CRD-เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เต‹เตบเดซเดฟเด—เตเดฎเดพเดชเตเดชเดฟเตฝ (เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดŽเด™เตเด™เดจเต† เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเด™เตเด™เตพ เดคเต€เดฐเตเดฎเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเต).

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด…เดคเต เดฎเดพเดฑเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เด‡เดคเต เดจเดฟเดฒเดตเดฟเตฝ เด…เดธเดพเดงเตเดฏเดฎเดพเดฃเต. เด…เดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดžเด™เตเด™เตพ เดถเต‡เด–เดฐเดฟเดšเตเดšเดคเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดŸเต† เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเดคเดฟเดชเตเดชเต เดšเดฟเดฒ เด…เดงเดฟเด• เดฎเต‚เดจเตเดจเดพเด‚ เด•เด•เตเดทเดฟ เดธเด‚เดญเดตเดตเดฟเด•เดพเดธเด™เตเด™เตพเด•เตเด•เตŠเดชเตเดชเด‚. เด…เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพเด•เตเด•เต, เดคเดพเดดเต† เด•เดพเดฃเตเด•.

เดฌเดพเด•เตเด•เดชเตเดชเดฟเดจเตเดณเตเดณ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดจเดฟเด™เตเด™เตพ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดคเดพเดฏเดคเต - wal_s3_bucket เด•เต‚เดŸเดพเดคเต† AWS S3-เดฒเต† เด†เด•เตเดธเดธเต เด•เต€เด•เตพ, เดชเดฟเดจเตเดจเต† เด…เดคเต เดŽเดฒเตเดฒเดพเด‚ เดฌเดพเด•เตเด•เดชเตเดชเต เดšเต†เดฏเตเดฏเตเด‚: เด‰เตฝเดชเตเดชเดพเดฆเดจเดคเตเดคเดฟเดฒเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเด™เตเด™เตพ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดธเตเดฑเตเดฑเต‡เดœเดฟเด‚เด—เตเด‚. เด‡เดคเต เดžเด™เตเด™เตพเด•เตเด•เต เดฏเต‹เดœเดฟเดšเตเดšเดฟเดฒเตเดฒ.

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ PgSQL-เดจเตเดณเตเดณ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดกเต‹เด•เตเด•เตผ เดฑเดพเดชเตเดชเดฑเดพเดฏ เดธเตโ€Œเดชเตˆเดฒเต‹เดฏเตโ€Œเด•เตเด•เตเดณเตเดณ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เดตเดฟเดตเดฐเดฃเดคเตเดคเดฟเตฝ, เด‡เดคเต เดฎเดพเดฑเดฟ: เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚ WAL_S3_BUCKET เดถเต‚เดจเตเดฏเดฎเดพเดฃเต, เด…เดคเตเดตเดดเดฟ เดฌเดพเด•เตเด•เดชเตเดชเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต. เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดตเดฒเดฟเดฏ เดธเดจเตเดคเต‹เดทเดคเตเดคเดฟเดจเต, เดžเดพเตป เด•เดฃเตเดŸเต†เดคเตเดคเดฟ เดคเดฏเตเดฏเดพเดฑเดพเดฏ PR, เด…เดคเต เดžเด™เตเด™เตพ เด‰เดŸเดจเดŸเดฟ เดžเด™เตเด™เดณเตเดŸเต† เดจเดพเตฝเด•เตเด•เดตเดฒเดฏเดฟเดฒเต‡เด•เตเด•เต เดธเตเดตเต€เด•เดฐเดฟเดšเตเดšเต. เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต enableWALArchiving: false เด’เดฐเต PostgreSQL เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดฑเดฟเดธเต‹เดดเตเดธเดฟเดฒเต‡เด•เตเด•เต.

เด…เดคเต†, 2 เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เด‡เดคเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด…เดตเดธเดฐเดฎเตเดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต: เด’เดจเตเดจเต เดธเตเดฑเตเดฑเต‡เดœเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ (เดฌเดพเด•เตเด•เดชเตเดชเตเด•เตพ เด‡เดฒเตเดฒเดพเดคเต†), เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต เด‰เดคเตเดชเดพเดฆเดจเดคเตเดคเดฟเดจเต. เดŽเดจเตเดจเดพเตฝ เดˆ เดตเดดเดฟเดฏเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด’เดจเตเดจเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดžเตเดžเต.

เดถเดฐเดฟ, S3-เดจเตเดณเตเดณ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด†เด•เตเดธเดธเต เดŽเด™เตเด™เดจเต† เด•เตˆเดฎเดพเดฑเดพเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟ, เดฌเดพเด•เตเด•เดชเตเดชเตเด•เตพ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเดฟเตฝ เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ. เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดฏเตเดเดฏเดฟเตฝ เดฌเดพเด•เตเด•เดชเตเดชเต เดชเต‡เดœเตเด•เตพ เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเด‚?

Kubernetes, เดžเด™เตเด™เดณเตเดŸเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเตเด•เตพ, เด…เดจเตเดญเดตเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ PostgreSQL เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเดŸเต† เด’เดฐเต เดนเตเดฐเดธเตเดต เด…เดตเดฒเต‹เด•เดจเด‚

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดฏเตเดเดฏเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเด™เตเด™เตพ 3 เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

  • SPILO_S3_BACKUP_BUCKET
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

เด‡เดคเดฟเดจเตเดถเต‡เดทเด‚, เดฌเดพเด•เตเด•เดชเตเดชเตเด•เดณเตเดŸเต† เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดฒเดญเตเดฏเดฎเดพเด•เตเด‚, เด‡เดคเต เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดธเตเดฑเตเดฑเต‡เดœเดฟเด‚เด—เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดœเต‹เดฒเดฟ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เตเด‚, เด…เดงเดฟเด• เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเดฟเดฒเตเดฒเดพเดคเต† เด…เดตเดฟเดŸเต† เดจเดฟเดจเตเดจเต เดธเตเดฒเตˆเดธเตเด•เตพ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเดพเตป เดžเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

เดŸเต€เด‚เดธเต เดŽเดชเดฟเดเดฏเตเดฎเดพเดฏเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดตเตเด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดŸเต‚เดณเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเด•เดณเตเด‚ เดฑเต‹เดณเตเด•เดณเตเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดงเดพเดฐเดพเดณเด‚ เด…เดตเดธเดฐเด™เตเด™เดณเตเดฎเดพเดฃเต เดฎเดฑเตเดฑเตŠเดฐเต เดจเต‡เดŸเตเดŸเด‚. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดคเต เดฑเต‹เดณเตเด•เตพเด•เตเด•เต เดธเตเดตเดคเดตเต‡ เด…เดตเด•เดพเดถเดฎเดฟเดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต. เด…เดคเดจเตเดธเดฐเดฟเดšเตเดšเต, เดตเดพเดฏเดจเดพเดตเด•เดพเดถเดฎเตเดณเตเดณ เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เดชเตเดคเดฟเดฏ เดชเดŸเตเดŸเดฟเด•เด•เตพ เดตเดพเดฏเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ.

เดŽเดจเตเดคเตเด•เต†เดพเดฃเตเดŸเดพเดฃเดคเต? เด•เต‹เดกเดฟเดฒเต† เดตเดธเตเดคเตเดค เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดŸเตเดŸเตเด‚ เด†เด•เตเดจเตเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต GRANT, เด…เดต เดŽเดชเตเดชเต‹เดดเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดฑเดฟเดฒเตเดฒ. 2 เดฐเต€เดคเดฟเด•เดณเตเดฃเตเดŸเต: syncPreparedDatabases ะธ syncDatabases. เดฆเดฟ syncPreparedDatabases - เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดŸเตเดŸเตเด‚ preparedDatabases เด†เด•เตเดจเตเดจเต เด’เดฐเต เดตเตเดฏเดตเดธเตเดฅเดฏเตเดฃเตเดŸเต defaultRoles ะธ defaultUsers เดฑเต‹เดณเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เด…เดตเด•เดพเดถเด™เตเด™เตพ เดฌเดพเดงเด•เดฎเดฒเตเดฒ. เดˆ เด…เดตเด•เดพเดถเด™เตเด™เตพ เดธเตเดตเดฏเดฎเต‡เดต เดฌเดพเดงเด•เดฎเดพเด•เตเดจเตเดจ เดคเดฐเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เด’เดฐเต เดชเดพเดšเตเดšเต เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเดฒเดพเดฃเต.

เดžเด™เตเด™เตพเด•เตเด•เต เดชเตเดฐเดธเด•เตเดคเดฎเดพเดฏ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเตเด•เดณเตเดŸเต† เด…เดตเดธเดพเดจ เดชเต‹เดฏเดฟเดจเตเดฑเต - เดชเดพเดšเตเดšเต, เด‡เดคเต เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเตเดซเตเตพเดธเต†เดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดจเต‹เดกเต เด…เดซเดฟเดจเดฟเดฑเตเดฑเดฟ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต. เดžเด™เตเด™เดณเตเดŸเต† เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพ เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดธเตโ€Œเดชเต‹เดŸเตเดŸเต เด‡เตปเดธเตโ€Œเดฑเตเดฑเตปเดธเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดšเต†เดฒเดตเต เด•เตเดฑเดฏเตเด•เตเด•เดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต, เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เด…เดต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดธเต‡เดตเดจเด™เตเด™เตพ เดนเต‹เดธเตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดตเดฟเดฒเดฎเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดธเดนเดฟเดทเตเดฃเตเดคเดฏเดฟเดฒเต‚เดŸเต† เดˆ เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เดจเต‹เดกเต เด…เดซเดฟเดจเดฟเดฑเตเดฑเดฟเดฏเตเดŸเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเด‚ เด•เต‚เดŸเตเดคเตฝ เด†เดคเตเดฎเดตเดฟเดถเตเดตเดพเดธเด‚ เดจเตฝเด•เตเดจเตเดจเต.

เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต?

เดฎเต‡เตฝเดชเตเดชเดฑเดžเตเดž เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เดซเดฒเด™เตเด™เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ, เดžเด™เตเด™เตพ เดธเดฒเดพเตปเดกเต‹เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเต‹เดธเตเดฑเตเดฑเตโ€Œเด—เตเดฐเต†เดธเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เดซเต‹เตผเด•เตเด•เต เดšเต†เดฏเตเดคเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดถเต‡เด–เดฐเด‚, เด…เดคเตเดคเดฐเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดชเดพเดšเตเดšเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต. เด•เต‚เดŸเตเดคเตฝ เดธเต—เด•เดฐเตเดฏเดพเตผเดคเตเดฅเด‚ เดžเด™เตเด™เดณเตเด‚ เดถเต‡เด–เดฐเดฟเดšเตเดšเต เดกเต‹เด•เตเด•เตผ เดšเดฟเดคเตเดฐเด‚.

เดซเต‹เตผเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดธเตเดตเต€เด•เดฐเดฟเดšเตเดš PR-เด•เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเต:

เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเดฑเตเดฑเดฟ เดˆ PR-เด•เดณเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ เด…เดคเต เดตเดณเดฐเต† เดฎเดฟเด•เดšเตเดšเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เด…เดคเดฟเดฒเต‚เดŸเต† เด…เดตเตผ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดŸเต† เด…เดŸเตเดคเตเดค เดชเดคเดฟเดชเตเดชเต (1.6) เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดชเตโ€ŒเดธเตเดŸเตเดฐเต€เด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚.

เดฌเต‹เดฃเดธเต! เดชเตเดฐเตŠเดกเด•เตเดทเตป เดฎเตˆเด—เตเดฐเต‡เดทเตป เดตเดฟเดœเดฏเด—เดพเดฅ

เดจเดฟเด™เตเด™เตพ เดชเดคเตเดฐเต‹เดฃเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดคเดคเตเดธเดฎเดฏ เด‰เตฝเดชเตเดชเดพเดฆเดจเด‚ เดšเตเดฐเตเด™เตเด™เดฟเดฏ เดธเดฎเดฏเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต เดฎเตˆเด—เตเดฐเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต.

S3 เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เดตเดดเดฟ เดธเตเดฑเตเดฑเดพเตปเดกเตโ€Œเดฌเตˆ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป Spilo เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต เดตเดพเตพ-เด‡, 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 เดŽเดจเตเดจ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ.

เดˆ เดชเดฆเตเดงเดคเดฟเด•เตเด•เต เดจเดจเตเดฆเดฟ, เดธเตเดตเดฟเดšเตเดšเตเด“เดตเตผ เด•เตเดฑเดžเตเดž เด•เดพเดฒเดคเดพเดฎเดธเดคเตเดคเต‹เดŸเต†เดฏเดพเดฃเต เดจเดŸเดจเตเดจเดคเต.

เดคเต€เดฐเตเดฎเดพเดจเด‚

K8s เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‡เด•เตเด•เต เดšเตเดฐเตเด•เตเด•เดฟเด•เตเด•เตŠเดฃเตเดŸเต เดตเดฟเดตเดฟเดง เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดพเตป Kubernetes เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด…เดตเดฐเตเดŸเต† เดธเดนเดพเดฏเดคเตเดคเต‹เดŸเต† เดถเตเดฐเดฆเตเดงเต‡เดฏเดฎเดพเดฏ เด“เดŸเตเดŸเต‹เดฎเต‡เดทเตป เด•เตˆเดตเดฐเดฟเดšเตเดšเดคเดฟเดจเดพเตฝ, เด‡เดคเดฟเดจเต เดจเดฟเดฐเดตเดงเดฟ เด…เดชเตเดฐเดคเต€เด•เตเดทเดฟเดค เดธเต‚เด•เตเดทเตเดฎเดคเด•เดณเตเด‚ เด•เตŠเดฃเตเดŸเตเดตเดฐเดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เด“เตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดตเดฟเดตเต‡เด•เดชเต‚เตผเดตเตเดตเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•.

PostgreSQL-เดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดœเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏ เดฎเต‚เดจเตเดจเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดชเดฐเดฟเด—เดฃเดฟเดšเตเดšเต, เดžเด™เตเด™เตพ เดธเดฒเดพเตปเดกเต‹เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต. เดžเด™เตเด™เตพเด•เตเด•เต เดšเดฟเดฒ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเด•เตพ เดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดฟเดตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดซเดฒเด‚ เดถเดฐเดฟเด•เตเด•เตเด‚ เดธเดจเตเดคเต‹เดทเด•เดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดˆ เด…เดจเตเดญเดตเด‚ เดฎเดฑเตเดฑเต เดšเดฟเดฒ PgSQL เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเดจเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเดจเตเดจเต. เดธเดฎเดพเดจ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดญเดตเด‚ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เด•เดพเดฃเตเดจเตเดจเดคเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดธเดจเตเดคเต‹เดทเดฎเตเดฃเตเดŸเต!

เดชเดฟ.เดŽเดธเต

เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เดฟเดฒเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเด•:

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•