рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕, рд╣рдорд╛рд░реА рдкрд╕рдВрдж рдФрд░ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕, рд╣рдорд╛рд░реА рдкрд╕рдВрдж рдФрд░ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди

рддреЗрдЬреА рд╕реЗ, рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣реЗ рд╣реИрдВ: "рд╣рдо рдЗрд╕реЗ рдЕрдореЗрдЬрд╝реЕрди рдЖрд░рдбреАрдПрд╕ рдХреА рддрд░рд╣ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╕реНрддрд╛"; "рд╣рдо рдЗрд╕реЗ рдЖрд░рдбреАрдПрд╕ рдХреА рддрд░рд╣ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рд░ рдЬрдЧрд╣, рдХрд┐рд╕реА рднреА рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВред" рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рдмрдВрдзрд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ PostgreSQL (рд╕реНрдЯреЛрд▓рди, рдХреНрд░рдВрдЪреА рдбреЗрдЯрд╛ рдФрд░ рдЬрд╝рд╛рд▓реИрдВрдбреЛ рдХреЗ рдСрдкрд░реЗрдЯрд░) рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдЕрдкрдиреА рдкрд╕рдВрдж рдмрдирд╛рдИред

рдпрд╣ рд▓реЗрдЦ рд╡рд╣ рдЕрдиреБрднрд╡ рд╣реИ рдЬреЛ рд╣рдордиреЗ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг (рд╕рдорд╛рдзрд╛рди рдХреА рд╕рдореАрдХреНрд╖рд╛) рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрдХреНрд╖ (рдХреНрдпрд╛ рдЪреБрдирд╛ рдЧрдпрд╛ рдФрд░ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд╣реБрдЖ) рджреЛрдиреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдЖрдЗрдП рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрд░рдбреАрдПрд╕ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВ...

рдЖрд░рдбреАрдПрд╕ рдХреНрдпрд╛ рд╣реИ?

рдЬрдм рд▓реЛрдЧ рдЖрд░рдбреАрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рдЙрдирдХрд╛ рдорддрд▓рдм рдПрдХ рдкреНрд░рдмрдВрдзрд┐рдд рдбреАрдмреАрдПрдордПрд╕ рд╕реЗрд╡рд╛ рд╣реИ:

  1. рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди;
  2. рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдЙрдирд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ (рдЕрдзрд┐рдорд╛рдирддрдГ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде)ред рдкреА.рдЖрдИ.рдЯреА.рдЖрд░);
  3. рдЖрдкрдХреЛ рдорд╛рд╕реНрдЯрд░-рд╕реНрд▓реЗрд╡ рдЯреЛрдкреЛрд▓реЙрдЬреА рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
  4. рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдПрдХ рд╕рдореГрджреНрдз рд╕реВрдЪреА рд╣реИ;
  5. рдСрдбрд┐рдЯрд┐рдВрдЧ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рдкрд╣реБрдВрдЪ рдкреНрд░рдмрдВрдзрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЖрдо рддреМрд░ рдкрд░, рдХрд╛рд░реНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╢рд░реНрдд рдПрдВрд╕рд┐рдмрд▓ рд╡рд╛рд▓рд╛ рдорд╛рд░реНрдЧ рд╣рдорд╛рд░реЗ рдХрд░реАрдм рдирд╣реАрдВ рд╣реИред (рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 2рдЬреАрдЖрдИрдПрд╕ рдХреЗ рд╕рд╣рдХрд░реНрдореА рдЗрд╕реА рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪреЗ рдЙрд╕рдХрд╛ рдкреНрд░рдпрд╛рд╕ "рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ-рдЖрдзрд╛рд░рд┐рдд рдлреЗрд▓рдУрд╡рд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдПрдВред")

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдЕрдВрджрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ "рдлреНрд▓реИрдВрдЯрд╛" рдХреЗ рддрдХрдиреАрдХреА рдирд┐рджреЗрд╢рдХ рдкрд╣рд▓реЗ рд╣реА рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред рдбрд┐рд╕реНрдЯреЛрд▓рдореЗрдВ рдЙрдирдХреА рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ.

NB: рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рд╕рд░рд▓ рдСрдкрд░реЗрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреА рдУрдкрди рд╕реЛрд░реНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ рд╢реЗрд▓-рдСрдкрд░реЗрдЯрд░. рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЗрд╕реЗ рдЧреЛ рдХреЗ рдЬреНрдЮрд╛рди рдХреЗ рдмрд┐рдирд╛, рд▓реЗрдХрд┐рди рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдмреИрд╢, рдкрд╛рдпрдерди, рдЖрджрд┐ рдореЗрдВред

PostgreSQL рдХреЗ рд▓рд┐рдП рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп K8s рдСрдкрд░реЗрдЯрд░ рд╣реИрдВ:

  • рд╕реНрдЯреЛрд▓рди;
  • рдХреНрд░рдВрдЪреА рдбреЗрдЯрд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рдСрдкрд░реЗрдЯрд░;
  • рдЬрд╝рд╛рд▓реИрдВрдбреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬрд╝ рдСрдкрд░реЗрдЯрд░ред

рдЖрдЗрдП рдЙрди рдкрд░ рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рдирдЬрд░ рдбрд╛рд▓реЗрдВред

рдкреНрд░рдЪрд╛рд▓рдХ рдЪрдпрди

рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо - рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдСрдкрд░реЗрд╢рдВрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ - рдСрдкрд░реЗрдЯрд░реЛрдВ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рднреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ:

  • Git рдФрд░ рд╕рд╛рде рд╕реЗ рддреИрдирд╛рддреА рдХрд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди;
  • рдкреЙрдб рдПрдВрдЯреА-рдПрдлрд╝рд┐рдирд┐рдЯреА рд╕рдорд░реНрдерди;
  • рдиреЛрдб рдПрдлрд╝рд┐рдирд┐рдЯреА рдпрд╛ рдиреЛрдб рдЪрдпрдирдХрд░реНрддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛;
  • рд╕рд╣рдирд╢реАрд▓рддрд╛ рдХреА рд╕реНрдерд╛рдкрдирд╛;
  • рдЯреНрдпреВрдирд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛;
  • рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдБ рдФрд░ рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдЖрджреЗрд╢ рднреАред

рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдкрд░ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдкреВрдЫреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреВрд░реЗ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рд╣реИрдВ), рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдХреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХрд╛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдСрд░реНрдбрд░ рдХрд░реЗрдВ. рдЗрд╕ рддрд░рд╣ рд╣рдо рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд▓рд╛рдЧрдд рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╖реНрдЯрддрдо рд╕рдВрддреБрд▓рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЗрдП рдЕрдм рд╕реНрд╡рдпрдВ PostgreSQL рдСрдкрд░реЗрдЯрд░реЛрдВ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред

1. рд╕реНрдЯреЛрд▓рди

рднреВрд╕реНрддрд░реА рдЗрдЯрд╛рд▓рд┐рдпрди рдХрдВрдкрдиреА Sorint.lab рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦрд┐рдд рд░рд┐рдкреЛрд░реНрдЯ рдЗрд╕реЗ DBMS рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рдирдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ред рдпрд╣ рдПрдХ рдХрд╛рдлреА рдкреБрд░рд╛рдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ: рдЗрд╕рдХреА рдкрд╣рд▓реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рд▓реАрдЬрд╝ рдирд╡рдВрдмрд░ 2015 рдореЗрдВ рд╣реБрдИ рдереА (!), рдФрд░ GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд▓рдЧрднрдЧ 3000 рд╕рд┐рддрд╛рд░реЗ рдФрд░ 40+ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реНрдЯреЛрд▓рди рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕, рд╣рдорд╛рд░реА рдкрд╕рдВрдж рдФрд░ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди
рдЗрд╕ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдХрд░рдг рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рд▓реЗрдЦрди. рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдХрд╣рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рд╡рд░реНрдгрд┐рдд рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реИ: рдлреЗрд▓рдУрд╡рд░, рдкрд╛рд░рджрд░реНрд╢реА рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА, рдмреИрдХрдЕрдк... рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЙрдХреНрд╕реА рдПрдХ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ - рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рдЕрдиреНрдп рджреЛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд (рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рджреЛ рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ) рдЖрдзрд╛рд░ рддрдХ рдкрд╣реБрдВрдЪ)

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реНрдЯреЛрд▓рди рдХреЛрдИ рдХрд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдбреАрдмреАрдПрдордПрд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рдФрд░ рддреНрд╡рд░рд┐рдд рд╣реЛ - "рд╣реЙрдЯ рдХреЗрдХ рдХреА рддрд░рд╣"ред рдкреНрд░рдмрдВрдзрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ stolonctl, рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрд╕реНрдЯрдо рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрдореИрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдУрд░, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдСрдкрд░реЗрдЯрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдСрдкрд░реЗрдЯрд░ рдирд╣реАрдВ рд╣реИ (рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рд╕реАрдЖрд░рдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдУрд░, рдпрд╣ рдПрдХ рд▓рдЪреАрд▓реА рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ K8s рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╣реЗрдВ рддреЛ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЪрд╛рд░реНрдЯ рдмрдирд╛рдирд╛ рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд▓рдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд╡рд┐рдХрд▓реНрдк рддрд▓рд╛рд╢рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред

2. рдХреНрд░рдВрдЪреА рдбреЗрдЯрд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рдСрдкрд░реЗрдЯрд░

рдХреНрд░рдВрдЪреА рдбреЗрдЯрд╛ рд╕реЗ рдСрдкрд░реЗрдЯрд░рдПрдХ рдпреБрд╡рд╛ рдЕрдореЗрд░рд┐рдХреА рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк, рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдЗрд╕рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрддрд┐рд╣рд╛рд╕ рдорд╛рд░реНрдЪ 2017 рдореЗрдВ рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддрдм рд╕реЗ GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреЗрд╡рд▓ 1300 рд╕реЗ рдХрдо рд╕рд┐рддрд╛рд░реЗ рдФрд░ 50+ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдП рд╣реИрдВред рд╕рд┐рддрдВрдмрд░ рдХреА рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.15-1.18, рдУрдкрдирд╢рд┐рдлреНрдЯ 3.11+ рдФрд░ 4.4+, рдЬреАрдХреЗрдИ рдФрд░ рд╡реАрдПрдорд╡реЗрдпрд░ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдкреАрдХреЗрдПрд╕ 1.3+ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдХреНрд░рдВрдЪреА рдбреЗрдЯрд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рднреА рдмрддрд╛рдИ рдЧрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ:

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕, рд╣рдорд╛рд░реА рдкрд╕рдВрдж рдФрд░ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди

рдкреНрд░рдмрдВрдзрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИ pgoрд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдмрджрд▓реЗ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдСрдкрд░реЗрдЯрд░ рдиреЗ рд╣рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕рдиреНрди рдХрд┐рдпрд╛:

  • рд╕реАрдЖрд░рдбреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рд╣реЛрддрд╛ рд╣реИ;
  • рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдмрдВрдзрди (рд╕реАрдЖрд░рдбреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА);
  • рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреБрд░рдХреБрд░рд╛ рдбреЗрдЯрд╛ рдХрдВрдЯреЗрдирд░ рд╕реБрдЗрдЯ - PostgreSQL рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрдЧреНрд░рд╣ (pgBackRest, pgAudit, рдпреЛрдЧрджрд╛рди рд╕реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЖрджрд┐ рд╕рд╣рд┐рдд)ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреНрд░рдВрдЪреА рдбреЗрдЯрд╛ рд╕реЗ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рд╕реЗ рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕рд╛рдордиреЗ рдЖрдИрдВ:

  • рд╕рд╣рдирд╢реАрд▓рддрд╛ рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рдереА - рдХреЗрд╡рд▓ рдиреЛрдб рдЪрдпрдирдХрд░реНрддрд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рдмрдирд╛рдП рдЧрдП рдкреЙрдбреНрд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдереЗ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╣рдордиреЗ рдПрдХ рд╕реНрдЯреЗрдЯрдлреБрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдерд╛ред рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯреНрд╕ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдбрд┐рд╕реНрдХ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗред

рдЖрдЦрд┐рд░реА рдХрдореА рдЕрдЬреАрдм рдХреНрд╖рдгреЛрдВ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИ: рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣рдо рдПрдХ рдбрд┐рд╕реНрдХ рдХреЗ рд╕рд╛рде 3 рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░, рдЬрд┐рд╕рд╕реЗ рдСрдкрд░реЗрдЯрд░ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдХрд┐ 3 рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдХрд╛рдо рдХрд░ рд░рд╣реА рдереАрдВ (рднрд▓реЗ рд╣реА рд╡реЗ рдирд╣реАрдВ рдереАрдВ)ред

рдЗрд╕ рдСрдкрд░реЗрдЯрд░ рдХреА рдПрдХ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рднрд┐рдиреНрди рд╕рд╣рд╛рдпрдХ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рддреИрдпрд╛рд░ рдПрдХреАрдХрд░рдг рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, pgAdmin рдФрд░ pgBounce рдЖрджрд┐ рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдкреНрд░рд▓реЗрдЦрди рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдЧреНрд░рд╛рдлрд╝рд╛рдирд╛ рдФрд░ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓ рд╣реА рдореЗрдВ 4.5.0-рдмреАрдЯрд╛1 рдЬрд╛рд░реА рдХрд░реЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдПрдХреАрдХрд░рдг рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдкреАрдЬреА рдореЙрдирд┐рдЯрд░, рдЬрд┐рд╕рдХреА рдмрджреМрд▓рдд рдСрдкрд░реЗрдЯрд░ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ PgSQL рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рджреГрд╢реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕-рдЬрдирд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЕрдЬреАрдм рдкрд╕рдВрдж рдиреЗ рд╣рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред

3. рдЬрд╝рд╛рд▓реИрдВрдбреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬрд╝ рдСрдкрд░реЗрдЯрд░

рд╣рдо рдЬрд╝рд╛рд▓реИрдВрдбреЛ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬрд╝реЗрд▓реЗрдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдордиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рд╕рдВрд░рдХреНрд╖рдХ PostgreSQL рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп HA рд╕рдорд╛рдзрд╛рди рд╣реИред рдирд┐рд░реНрдорд╛рдг рдХреЗ рдкреНрд░рддрд┐ рдХрдВрдкрдиреА рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рдСрдкрд░реЗрдЯрд░ рдЗрд╕рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рдПрд▓реЗрдХреНрд╕реА рдХреНрд▓рд╛рдЗрдпреБрдХрд┐рди рдиреЗ рдСрди рдПрдпрд░ рдХрд╣рд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕-рдордВрдЧрд▓рд╡рд╛рд░ #5, рдФрд░ рд╣рдореЗрдВ рдпрд╣ рдкрд╕рдВрдж рдЖрдпрд╛ред

рдпрд╣ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдмрд╕реЗ рдпреБрд╡рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ: рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬрд╝ рдЕрдЧрд╕реНрдд 2018 рдореЗрдВ рд╣реБрдИ рдереАред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдФрдкрдЪрд╛рд░рд┐рдХ рд░рд┐рд▓реАрдЬрд╝ рдХреА рдХрдо рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдиреЗ рдПрдХ рд▓рдВрдмрд╛ рд╕рдлрд░ рддрдп рдХрд┐рдпрд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА GitHub рдкрд░ 1300+ рд╕рд┐рддрд╛рд░реЛрдВ рдФрд░ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ (70+) рдХреЗ рд╕рд╛рде рдХреНрд░рдВрдЪреА рдбреЗрдЯрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИред

"рдЕрдВрдбрд░ рдж рд╣реБрдб" рдпрд╣ рдСрдкрд░реЗрдЯрд░ рд╕рдордп-рдкрд░реАрдХреНрд╖рдгрд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

рдЬрд╝рд╛рд▓реИрдВрдбреЛ рдХреЗ рдСрдкрд░реЗрдЯрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕, рд╣рдорд╛рд░реА рдкрд╕рдВрдж рдФрд░ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди

рдСрдкрд░реЗрдЯрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рд╕реЗ рдПрдХ рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкреЙрдб рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдЗрдбрдХрд╛рд░ рдЬреЛрдбрд╝рдХрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреНрд░рдВрдЪреА рдбреЗрдЯрд╛ рдХреЗ рдСрдкрд░реЗрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рд╕рдм рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рд╣реИред

рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди 3 рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдЬрд╝рд╛рд▓реИрдВрдбреЛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЪреБрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдПрдХ рдФрд░ рд╡рд┐рд╡рд░рдг рддреБрд░рдВрдд рдЖрд╡реЗрджрди рдХреЗ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЬрд╝рд╛рд▓реИрдВрдбреЛ рдХреЗ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬрд╝ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ

рдСрдкрд░реЗрдЯрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рдмрд╕ GitHub рд╕реЗ рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬрд╝ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ YAML рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ. рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ app.

рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рд▓реЙрдЧ рдФрд░ рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рднрдВрдбрд╛рд░рдг. рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрдореИрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ 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 рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реИ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕_рдирд┐рд░реНрдпрд╛рддрдХ, рдЬрд┐рд╕рд╕реЗ рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдЯреНрд░рд┐рдХреНрд╕ рд▓реЗрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рд╡рд╕реНрддреБрддрдГ рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рд╡реЗрдм рдкреНрд░рд╢рд╛рд╕рди рдкреИрдирд▓ - рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕-рдСрдкрд░реЗрдЯрд░-рдпреВрдЖрдИ. рдпрд╣ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдСрдкрд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдмреИрдХрдЕрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕, рд╣рдорд╛рд░реА рдкрд╕рдВрдж рдФрд░ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди
PostgreSQL рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд╕реВрдЪреА

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕, рд╣рдорд╛рд░реА рдкрд╕рдВрдж рдФрд░ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди
рдмреИрдХрдЕрдк рдкреНрд░рдмрдВрдзрди

рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдорд░реНрдерди рд╣реИ рдЯреАрдо рдПрдкреАрдЖрдИ. рдпрд╣ рддрдВрддреНрд░ рд╕реНрд╡рддрдГ рд╣реА рдирд┐рд░реНрдорд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ PostgreSQL рдореЗрдВ рднреВрдорд┐рдХрд╛рдПрдБ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдореЛрдВ рдХреА рдкрд░рд┐рдгрд╛рдореА рд╕реВрдЪреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред рдПрдкреАрдЖрдИ рдЖрдкрдХреЛ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рднреВрдорд┐рдХрд╛рдПрдБ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВред

рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рд╕рдорд╛рдзрд╛рди

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЬрд▓реНрдж рд╣реА рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдорд┐рдпрд╛рдБ рд╕рд╛рдордиреЗ рдЖрдИрдВ:

  1. рдиреЛрдб рдЪрдпрдирдХрд░реНрддрд╛ рд╕рдорд░реНрдерди рдХреА рдХрдореА;
  2. рдмреИрдХрдЕрдк рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛;
  3. рдбреЗрдЯрд╛рдмреЗрд╕ рдирд┐рд░реНрдорд╛рдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ;
  4. рдХрднреА-рдХрднреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЧреБрдо рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдпрд╛ рдкреБрд░рд╛рдиреЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдЗрдП рдЕрдВрдд рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ - рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреНрд░рд▓реЗрдЦрди.

рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЖрдк рдЗрд╕ рддрдереНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдмреИрдХрдЕрдк рдХреИрд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ рдФрд░ рдмреИрдХрдЕрдк рдмрдХреЗрдЯ рдХреЛ рдСрдкрд░реЗрдЯрд░ рдпреВрдЖрдИ рд╕реЗ рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╡рд░рдг рдЗрд╕рдореЗрдВ рд╣реИ PR:

  1. рдПрдХ рд░рд╣рд╕реНрдп рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ;
  2. рдЗрд╕реЗ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВ pod_environment_secret_name рд╕реАрдЖрд░рдбреА рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдпрд╛ рдХреЙрдиреНрдлрд┐рдЧ рдореИрдк рдореЗрдВ (рдпрд╣ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдСрдкрд░реЗрдЯрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдХреИрд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ)ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрд╕рдВрднрд╡ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рд╕рдВрдЧреНрд░рд╣ рдХрд┐рдпрд╛ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЖрдкрдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рддреГрддреАрдп-рдкрдХреНрд╖ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рдеред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджреЗрдЦреЗрдВ.

рдпрджрд┐ рдЖрдк рдСрдкрд░реЗрдЯрд░ рдХреЛ рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН - wal_s3_bucket рдФрд░ AWS S3 рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХреБрдВрдЬрд┐рдпрд╛рдБ, рдлрд┐рд░ рдпрд╣ рд╣рд░ рдЪреАрдЬ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗ рд▓реВрдВрдЧрд╛: рди рдХреЗрд╡рд▓ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЖрдзрд╛рд░, рдмрд▓реНрдХрд┐ рдордВрдЪрди рднреАред рдпрд╣ рд╣рдореЗрдВ рд╢реЛрднрд╛ рдирд╣реАрдВ рджреЗрддрд╛.

рд╕реНрдкрд┐рд▓реЛ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ, рдЬреЛ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп PgSQL рдХреЗ рд▓рд┐рдП рдореВрд▓ рдбреЙрдХрд░ рд░реИрдкрд░ рд╣реИ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛: рдЖрдк рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ WAL_S3_BUCKET рдЦрд╛рд▓реА, рдЬрд┐рд╕рд╕реЗ рдмреИрдХрдЕрдк рдЕрдХреНрд╖рдо рд╣реЛ рдЧрдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдмрдбрд╝реА рдЦреБрд╢реА рд╣реБрдИ рддреИрдпрд╛рд░ рдкреАрдЖрд░, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рддреБрд░рдВрдд рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ред рдЕрдм рдЖрдкрдХреЛ рдмрд╕ рдЬреЛрдбрд╝рдирд╛ рд╣реИ enableWALArchiving: false PostgreSQL рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдПред

рд╣рд╛рдВ, 2 рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЪрд▓рд╛рдХрд░ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдерд╛: рдПрдХ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП (рдмреИрдХрдЕрдк рдХреЗ рдмрд┐рдирд╛), рдФрд░ рджреВрд╕рд░рд╛ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рд╣рдо рдПрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред

рдареАрдХ рд╣реИ, рд╣рдордиреЗ рд╕реАрдЦрд╛ рдХрд┐ S3 рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреА рдЬрд╛рдП рдФрд░ рдмреИрдХрдЕрдк рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рдЖрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ред рдСрдкрд░реЗрдЯрд░ рдпреВрдЖрдИ рдореЗрдВ рдмреИрдХрдЕрдк рдкреЗрдЬ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ?

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕, рд╣рдорд╛рд░реА рдкрд╕рдВрдж рдФрд░ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди

рдЖрдкрдХреЛ рдСрдкрд░реЗрдЯрд░ рдпреВрдЖрдИ рдореЗрдВ 3 рд╡реЗрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

  • SPILO_S3_BACKUP_BUCKET
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

рдЗрд╕рдХреЗ рдмрд╛рдж, рдмреИрдХрдЕрдк рдХрд╛ рдкреНрд░рдмрдВрдзрди рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд┐рдирд╛ рдЙрддреНрдкрд╛рджрди рд╕реЗ рд╕реНрд▓рд╛рдЗрд╕ рд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВрдЧреЗред

рдПрдХ рдЕрдиреНрдп рд▓рд╛рдн рдЯреАрдореНрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдФрд░ рдСрдкрд░реЗрдЯрд░ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рднреВрдорд┐рдХрд╛рдПрдБ рдмрдирд╛рдиреЗ рдХреЗ рдкрд░реНрдпрд╛рдкреНрдд рдЕрд╡рд╕рд░ рдереЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдИ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рдерд╛. рддрджрдиреБрд╕рд╛рд░, рдкрдврд╝рдиреЗ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рд╡рд╛рд▓рд╛ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирдИ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ред

рдРрд╕рд╛ рдХреНрдпреЛрдВ? рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдХреЛрдб рдореЗрдВ рд╡рд╣рд╛рдБ рд╣реИ рдЬрд╝рд░реВрд░реА GRANT, рдЙрдирдХрд╛ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред 2 рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ: syncPreparedDatabases ╨╕ syncDatabases. рдореЗрдВ syncPreparedDatabases - рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ preparedDatabases рд╡рд╣рд╛рдБ рд╣реИ рдПрдХ рд╢рд░реНрдд рд╣реИ defaultRoles ╨╕ defaultUsers рднреВрдорд┐рдХрд╛рдПрдБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдзрд┐рдХрд╛рд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рдкреИрдЪ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИрдВ рддрд╛рдХрд┐ рдпреЗ рдЕрдзрд┐рдХрд╛рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛ рдЬрд╛рдПрдВред

рдФрд░ рд╕реБрдзрд╛рд░реЛрдВ рдореЗрдВ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВ - рдкреИрдЪ, рдЬреЛ рдирд┐рд░реНрдорд┐рдд рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рдореЗрдВ рдиреЛрдб рдПрдлрд╝рд┐рдирд┐рдЯреА рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рд╣рдХ рдЕрдХреНрд╕рд░ рд╕реНрдкреЙрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧрдд рдХрдо рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рд╣рдирд╢реАрд▓рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдиреЛрдб рдПрдлрд╝рд┐рдирд┐рдЯреА рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЕрдзрд┐рдХ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рджреЗрддреА рд╣реИред

рдХреНрдпрд╛ рд╣реБрдЖ рдерд╛?

рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдордиреЗ рдЬрд╝рд╛рд▓реИрдВрдбреЛ рд╕реЗ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬрд╝ рдСрдкрд░реЗрдЯрд░ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЖрдкрдХрд╛ рднрдВрдбрд╛рд░, рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдРрд╕реЗ рдЙрдкрдпреЛрдЧреА рдкреИрдЪ рдХреЗ рд╕рд╛рде рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рд╕рдВрдЧреНрд░рд╣ рднреА рдХрд┐рдпрд╛ рдбреЛрдХрд░ рдЫрд╡рд┐.

рдХрд╛рдВрдЯреЗ рдореЗрдВ рд╕реНрд╡реАрдХреГрдд рдкреАрдЖрд░ рдХреА рд╕реВрдЪреА:

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕рдореБрджрд╛рдп рдЗрди рдкреАрдЖрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг (1.6) рдХреЗ рд╕рд╛рде рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╣реЛ рд╕рдХреЗрдВред

рдмрдХреНрд╢реАрд╢! рдкреНрд░реЛрдбрдХреНрд╢рди рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕рдлрд▓рддрд╛ рдХреА рдХрд╣рд╛рдиреА

рдпрджрд┐ рдЖрдк рдкреЗрдЯреНрд░реЛрдиреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓рд╛рдЗрд╡ рдЙрддреНрдкрд╛рджрди рдХреЛ рдиреНрдпреВрдирддрдо рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рдСрдкрд░реЗрдЯрд░ рдХреЗ рдкрд╛рд╕ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрдкрд┐рд▓реЛ рдЖрдкрдХреЛ S3 рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ Wale, рдЬрдм PgSQL рдмрд╛рдЗрдирд░реА рд▓реЙрдЧ рдХреЛ рдкрд╣рд▓реЗ S3 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рджреНрд╡рд╛рд░рд╛ рдкрдВрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣реИ рддреЛ рдХреНрдпрд╛ рдХрд░реЗрдВ рдирд╣реАрдВ Wal-E рджреНрд╡рд╛рд░рд╛ рдкреБрд░рд╛рдиреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рд╣рдм рдкрд░.

PostgreSQL рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдкреНрд░рдХрд╛рд╢рди рдФрд░ рд╕рджрд╕реНрдпрддрд╛рдПрдБ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд╣реАрдВ рдмрддрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐... рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛ рдЕрд╕рдлрд▓ рд░рд╣реАред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд╛рдЦреЛрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╡рд╛рд▓реА рдХрдИ рднрд░реА рд╣реБрдИ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдереАрдВ, рдЬреЛ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓рдЧрд╛рддрд╛рд░ рдкреБрдирдГрдкреВрд░реНрддрд┐ рдФрд░ рд╣рдЯрд╛ рджреА рдЧрдИ рдереАрдВред рд╕рд░рд▓ рд╕рджрд╕реНрдпрддрд╛ ╤Б copy_data, рдЬрдм рдирдИ рдкреНрд░рддрд┐рдХреГрддрд┐ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рд╕рднреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рддрд╛рд▓рдореЗрд▓ рдирд╣реАрдВ рдмрд┐рдард╛ рдкрд╛рддреА рд╣реИред рд╕рд╛рдордЧреНрд░реА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдореЗрдВ рдПрдХ рд╕рдкреНрддрд╛рд╣ рддрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдХрднреА рдорд╛рд╕реНрдЯрд░ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдкрд╛рдпрд╛ред рдЖрдЦрд╝рд┐рд░рдХрд╛рд░, рдЗрд╕рд╕реЗ рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рд╕реБрд▓рдЭрд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реА рд▓реЗрдЦ рдПрд╡рд┐рдЯреЛ рдХреЗ рд╕рд╣рдХрд░реНрдореА: рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ pg_dump. рдореИрдВ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рд╣рдорд╛рд░реЗ (рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд) рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред

рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реНрд▓реЙрдЯ рд╕реЗ рдЬреБрдбрд╝реА рдПрдХ рдЕрдХреНрд╖рдо рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд▓реЗрдирджреЗрди рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рд╣реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрддреНрдкрд╛рджрди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдБ рдЙрдкрд▓рдмреНрдз рдереАрдВред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐ рдПрдХ рд╕реБрд╕рдВрдЧрдд рдбрдВрдк рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА рдФрд░ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧреАред

рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдж рдХреЗ рдЖрджреЗрд╢ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрд╕реНрдЯ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:

  1. рдорд╛рд╕реНрдЯрд░ - рд╕реНрд░реЛрдд рд╕рд░реНрд╡рд░;
  2. рдкреНрд░рддрд┐рдХреГрддрд┐1 - рдкреБрд░рд╛рдиреЗ рдЙрддреНрдкрд╛рджрди рдкрд░ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░рддрд┐рдХреГрддрд┐;
  3. рдкреНрд░рддрд┐рдХреГрддрд┐2 - рдирдИ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐.

рдкреНрд░рд╡рд╛рд╕ рдпреЛрдЬрдирд╛

1. рд╕реНрдХреАрдорд╛ рдореЗрдВ рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдЯрд░ рдкрд░ рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛рдПрдВ public рдЖрдзрд╛рд░ dbname:

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

2. рдорд╛рд╕реНрдЯрд░ рдкрд░ рдПрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реНрд▓реЙрдЯ рдмрдирд╛рдПрдВ:

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

3. рдкреБрд░рд╛рдиреА рдкреНрд░рддрд┐рдХреГрддрд┐ рдкрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдмрдВрдж рдХрд░реЗрдВ:

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

4. рдорд╛рд╕реНрдЯрд░ рд╕реЗ рд▓реЗрдирджреЗрди рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

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

5. рдкреБрд░рд╛рдиреА рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗ рдбрдВрдк рд╣рдЯрд╛ рджреЗрдВ. рд╣рдо рдЗрд╕реЗ рдХрдИ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА:

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

6. рдбрдВрдк рдХреЛ рдирдП рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ:

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

7. рдбрдВрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

7. рдЖрдЗрдП рдПрдХ рдирдИ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкрд░ рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛рдПрдВ:

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

8. рдЖрдЗрдП рдЬрд╛рдиреЗрдВ oid рд╕рджрд╕реНрдпрддрд╛рдПрдБ:

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

9. рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдпрд╣ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ oid=1000. рдЖрдЗрдП рд▓реЗрдирджреЗрди рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рджрд╕реНрдпрддрд╛ рдкрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:

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

10. рдЖрдЗрдП рдкреНрд░рддрд┐рдХреГрддрд┐ рд╢реБрд░реВ рдХрд░реЗрдВ:

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

11. рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдЬрд╛рдВрдЪреЗрдВ, рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

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

12. рдкреНрд░рддрд┐рдХреГрддрд┐ рд╢реБрд░реВ рд╣реЛрдиреЗ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

13. рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрдЪреНрдЫреЗ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ wiki.postgresql.org рдкрд░ рдЖрд▓реЗрдЦ рдореЗрдВ.

рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреА рдмрджреМрд▓рдд, рд╕реНрд╡рд┐рдЪрдУрд╡рд░ рдиреНрдпреВрдирддрдо рджреЗрд░реА рдХреЗ рд╕рд╛рде рд╣реБрдЖред

рдирд┐рд╖реНрдХрд░реНрд╖

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдСрдкрд░реЗрдЯрд░ рдЖрдкрдХреЛ K8s рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдХрдо рдХрд░рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрдирдХреА рдорджрдж рд╕реЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реНрд╡рдЪрд╛рд▓рди рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣ рдХрдИ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдмрд╛рд░реАрдХрд┐рдпрд╛рдБ рднреА рд▓рд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдкрдиреЗ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдЪреБрдиреЗрдВред

PostgreSQL рдХреЗ рд▓рд┐рдП рддреАрди рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп Kubernetes рдСрдкрд░реЗрдЯрд░реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ Zalando рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреБрдирд╛ред рдФрд░ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрдЦрдж рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕ рдЕрдиреБрднрд╡ рдХреЛ рдХреБрдЫ рдЕрдиреНрдп PgSQL рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдорд╛рди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рд╡рд░рдг рджреЗрдЦрдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреА!

рдкреБрдирд╢реНрдЪ

рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рднреА рдкрдврд╝реЗрдВ:

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ