рд╕рддрдд рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕рд╛рдареА рдбреЙрдХрд░рдордзреАрд▓ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреА

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

рдореЙрдХ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд╕рд╣ рдпреБрдирд┐рдЯ рдЪрд╛рдЪрдгреНрдпрд╛рдВрд╕рд╣ рд╕рдВрдкреВрд░реНрдг рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕ рдХреЛрдб рдХрд╡реНрд╣рд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╣реЗ рдХреЗрд╡рд│ рдЕрдВрд╢рддрдГ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддреЗ рдЖрдгрд┐ рдмрд░реЗрдЪ рдкреНрд░рд╢реНрди рдЖрдгрд┐ рдЕрдбрдЪрдгреА рд╕реЛрдбрддреЗ, рд╡рд┐рд╢реЗрд╖рдд: рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдЪрд╛рдЪрдгреА рдХрд░рддрд╛рдирд╛. рдиреЗрд╣рдореАрдкреНрд░рдорд╛рдгреЗрдЪ, рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рджрд╛рдмрдгрд╛рд░реЗ рдореНрд╣рдгрдЬреЗ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдбреЗрдЯрд╛ рд╕реБрд╕рдВрдЧрддрддрд╛ рддрдкрд╛рд╕рдгреЗ, рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рддрдкрд╛рд╕рдгреЗ рдЖрдгрд┐ рдирдХрд▓реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд▓рд┐рд╣рд┐рддрд╛рдирд╛ рдЪреБрдХреАрдЪреЗ рдЧреГрд╣рд┐рддрдХ рдХрд░рдгреЗ.

рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рд╕рдВрдкреВрд░реНрдг рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕рдЪреА рдЪрд╛рдЪрдгреА рдХрд░реВрди рд╣реЗ рд╕рд░реНрд╡ рдЖрдгрд┐ рдереЛрдбреЗ рдЕрдзрд┐рдХ рд╕реЛрдбрд╡рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдЪрд╛рдЪрдгреНрдпрд╛рдВрдЪреА рд╡реИрдзрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдПрдХ рдирд┐рдГрд╕рдВрд╢рдп рдлрд╛рдпрджрд╛ рдореНрд╣рдгрдЬреЗ рдЙрддреНрдкрд╛рджрдирд╛рдд рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╕рдорд╛рди рдбреЙрдХрд░ рдкреНрд░рддрд┐рдорд╛рдВрдЪреА рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЬрд╛рддреЗ.

рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдЪреЗ рдСрдЯреЛрдореЗрд╢рди рдЕрдиреЗрдХ рд╕рдорд╕реНрдпрд╛ рд╕рд╛рджрд░ рдХрд░рддреЗ, рдЬреНрдпрд╛рдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдЦрд╛рд▓реА рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЬрд╛рдИрд▓:

  • рд╕рдорд╛рди рдбреЙрдХрд░ рд╣реЛрд╕реНрдЯрдордзреАрд▓ рд╕рдорд╛рдВрддрд░ рдХрд╛рд░реНрдпрд╛рдВрдЪреЗ рд╕рдВрдШрд░реНрд╖;
  • рдЪрд╛рдЪрдгреА рдкреБрдирд░рд╛рд╡реГрддреНрддреА рджрд░рдореНрдпрд╛рди рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рд╕рдВрдШрд░реНрд╖;
  • рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕ рддрдпрд╛рд░ рд╣реЛрдгреНрдпрд╛рдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рдд рдЖрд╣реЗ;
  • рдмрд╛рд╣реНрдп рдкреНрд░рдгрд╛рд▓реАрдВрдордзреНрдпреЗ рд▓реЙрдЧ рд╡рд┐рд▓реАрди рдХрд░рдгреЗ рдЖрдгрд┐ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдгреЗ;
  • рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ HTTP рд╡рд┐рдирдВрддреНрдпрд╛ рддрдкрд╛рд╕рдд рдЖрд╣реЗ;
  • рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдЪрд╛рдЪрдгреА (рд╕рд┐рдЧреНрдирд▓рдЖрд░ рд╡рд╛рдкрд░реВрди);
  • OAuth рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЖрдгрд┐ рдЕрдзрд┐рдХреГрддрддрд╛ рдЪрд╛рдЪрдгреА рдХрд░рдд рдЖрд╣реЗ.

рд╣рд╛ рд▓реЗрдЦ рдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ рдорд╛рдЭреЗ рднрд╛рд╖рдг SECR 2019 рд╡рд░. рддреНрдпрд╛рдореБрд│реЗ рдЬреЗ рд╡рд╛рдЪрдгреНрдпрд╛рдд рдЦреВрдк рдЖрд│рд╢реА рдЖрд╣реЗрдд рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА, рдпреЗрдереЗ рднрд╛рд╖рдгрд╛рдЪреЗ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧ рдЖрд╣реЗ.

рд╕рддрдд рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕рд╛рдареА рдбреЙрдХрд░рдордзреАрд▓ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреА

рдпрд╛ рд▓реЗрдЦрд╛рдд рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдЪрд╛рдЪрдгреА рдЕрдВрддрд░реНрдЧрдд рд╕реЗрд╡рд╛, рдбреЙрдХрд░рдордзреНрдпреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ Amazon AWS рд╕реЗрд╡рд╛ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╢реА рд╡рд╛рдкрд░рд╛рдпрдЪреА рддреЗ рд╕рд╛рдВрдЧреЗрди, рдирдВрддрд░ рдкреЛрд╕реНрдЯрдордирд╡рд░ рдЪрд╛рдЪрдгреНрдпрд╛ рдЖрдгрд┐ рддреЗ рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░, рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ рдХрдВрдЯреЗрдирд░ рдерд╛рдВрдмрд╡рд╛ рдЖрдгрд┐ рд╣рдЯрд╡рд╛. рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдХреЛрдб рдмрджрд▓рд▓реНрдпрд╛рд╡рд░ рдЪрд╛рдЪрдгреНрдпрд╛ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡реГрддреНрддреА AWS рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ рд╕реЗрд╡рд╛рдВрд╕рд╣ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдпрд╛рдЪреА рдЖрдореНрд╣реА рдЦрд╛рддреНрд░реА рдХрд░рддреЛ.

рд╕рдорд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд╕рдХ рд╕реНрд╡рддрдГ рддреНрдпрд╛рдВрдЪреНрдпрд╛ Windows рдбреЗрд╕реНрдХрдЯреЙрдкрд╡рд░ рдЖрдгрд┐ Gitlab CI рд╕рд░реНрд╡реНрд╣рд░рджреНрд╡рд╛рд░реЗ Linux рдЕрдВрддрд░реНрдЧрдд рдЪрд╛рд▓рд╡рддрд╛рдд.

рдиреНрдпрд╛рдпреНрдп рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА, рдирд╡реАрди рдЪрд╛рдЪрдгреНрдпрд╛ рд╕рд╛рджрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбреЗрд╡реНрд╣рд▓рдкрд░рдЪреНрдпрд╛ рдХреЙрдореНрдкреНрдпреБрдЯрд░рд╡рд░ рдХрд┐рдВрд╡рд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЬрд┐рдереЗ рдЪрд╛рдЪрдгреНрдпрд╛ рдХрдорд┐рдЯрд╡рд░ рдЪрд╛рд▓рд╡рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рддреНрдпрд╛рд╡рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдзрдиреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рд╛рд╡реА. рдбреЙрдХрд░ рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддреЗ.

рдЦрд╛рд▓реАрд▓ рдХрд╛рд░рдгрд╛рдВрд╕рд╛рдареА рдЪрд╛рдЪрдгреА рд╕реНрдерд╛рдирд┐рдХ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЪрд╛рд▓рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

  • рдиреЗрдЯрд╡рд░реНрдХ рдХрдзреАрд╣реА рдкреВрд░реНрдгрдкрдгреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣ рдирд╕рддреЗ. рд╣рдЬрд╛рд░ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдкреИрдХреА рдПрдХ рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдК рд╢рдХрддреЗ;
    рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреА рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░ рдирд╛рд╣реА, рдХрд╛рд░реНрдп рдерд╛рдВрдмреЗрд▓ рдЖрдгрд┐ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд▓реЙрдЧрдордзреНрдпреЗ рдХрд╛рд░рдг рд╢реЛрдзрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓;
  • рдХрд╛рд╣реА рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реЗрд╡рд╛рдВрджреНрд╡рд╛рд░реЗ рдЦреВрдк рд╡рд╛рд░рдВрд╡рд╛рд░ рд╡рд┐рдирдВрддреНрдпрд╛ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдирд╛рд╣реА.

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд╕реНрдЯрдБрдб рд╡рд╛рдкрд░рдгреЗ рдЕрд╡рд╛рдВрдЫрд┐рдд рдЖрд╣реЗ рдХрд╛рд░рдг:

  • рд╕реНрдЯрдБрдб рдХреЗрд╡рд│ рдЦрд░рд╛рдм рдХреЛрдбрд╡рд░ рдЪрд╛рд▓рдд рдирд╛рд╣реА рддрд░ рдбреЗрдЯрд╛рджреНрд╡рд╛рд░реЗ рджреЗрдЦреАрд▓ рдЦрдВрдбрд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдЬреНрдпрд╛рд╡рд░ рдпреЛрдЧреНрдп рдХреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА;
  • рдЪрд╛рдЪрдгреА рджрд░рдореНрдпрд╛рди рдЪрд╛рдЪрдгреАрджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗрд▓реЗ рд╕рд░реНрд╡ рдмрджрд▓ рдкрд░рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЖрдкрдг рдХрд┐рддреАрд╣реА рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ рддрд░реАрд╣реА рдХрд╛рд╣реАрддрд░реА рдЪреВрдХ рд╣реЛрдК рд╢рдХрддреЗ (рдЕрдиреНрдпрдерд╛, рдЪрд╛рдЪрдгреА рдХрд╛?).

рдкреНрд░рдХрд▓реНрдк рдЖрдгрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрд╕реНрдереЗрдмрджреНрджрд▓

рдЖрдордЪреНтАНрдпрд╛ рдХрдВрдкрдиреАрдиреЗ Amazon AWS рдХреНрд▓рд╛рдЙрдбрдордзреНтАНрдпреЗ рдбреЙрдХрд░рдордзреНтАНрдпреЗ рдЪрд╛рд▓рдгрд╛рд░реЗ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕ рд╡реЗрдм рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рдкреНрд░рдХрд▓реНрдкрд╛рд╡рд░ рдпреБрдирд┐рдЯ рдЪрд╛рдЪрдгреНрдпрд╛ рдЖрдзреАрдЪ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рд╣реЛрддреНрдпрд╛, рдкрд░рдВрддреБ рдЕрдиреЗрдХрджрд╛ рддреНрд░реБрдЯреА рдЖрдврд│рд▓реНрдпрд╛ рдЬреНрдпрд╛ рдпреБрдирд┐рдЯ рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ рдЖрдврд│рд▓реНрдпрд╛ рдирд╛рд╣реАрдд. рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ рдЕреЕрдореЗрдЭреЙрди рд╕реЗрд╡рд╛рдВрд╕рд╣ рд╕рдВрдкреВрд░реНрдг рдорд╛рдпрдХреНрд░реЛрд╕реЗрд╡реЗрдЪреА рдЪрд╛рдЪрдгреА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ.

рдкреНрд░рдХрд▓реНрдк рдПрдХ рдорд╛рдирдХ рд╕рддрдд рдПрдХрддреНрд░реАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд╛рдкрд░рддреЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд┐рдЯрд╕рд╣ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕рдЪреА рдЪрд╛рдЪрдгреА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рддреЗ. рдПрдЦрд╛рджреЗ рдХрд╛рд░реНрдп рдирд┐рдпреБрдХреНрдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рд╡рд┐рдХрд╛рд╕рдХ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕рдордзреНрдпреЗ рдмрджрд▓ рдХрд░рддреЛ, рддреНрдпрд╛рдЪреА рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рдЪрд╛рдЪрдгреА рдХрд░рддреЛ рдЖрдгрд┐ рд╕рд░реНрд╡ рдЙрдкрд▓рдмреНрдз рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреНрдпрд╛ рдЪрд╛рд▓рд╡рддреЛ. рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рд╡рд┐рдХрд╕рдХ рдЪрд╛рдЪрдгреНрдпрд╛ рдмрджрд▓рддреЛ. рдХреЛрдгрддреАрд╣реА рд╕рдорд╕реНрдпрд╛ рдЖрдврд│рд▓реА рдирд╛рд╣реА рддрд░, рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреНрдпрд╛ рд╢рд╛рдЦреЗрдд рдПрдХ рдХрдорд┐рдЯ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдкреНрд░рддреНрдпреЗрдХ рдХрдорд┐рдЯрдирдВрддрд░, рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЪрд╛рдЪрдгреНрдпрд╛ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдЪрд╛рд▓рд╡рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рд╕рд╛рдорд╛рдиреНрдп рд╢рд╛рдЦреЗрдд рд╡рд┐рд▓реАрди рд╣реЛрдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреНрдпрд╛ рд╕реБрд░реВ рдХрд░рдгреЗ рдпрд╢рд╕реНрд╡реА рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдирд╛рдирдВрддрд░ рд╣реЛрддреЗ. рд╕рд╛рдорд╛рдпрд┐рдХ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╢рд╛рдЦреЗрддреАрд▓ рдЪрд╛рдЪрдгреНрдпрд╛ рдЙрддреНрддреАрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рд╕, Amazon рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдХрдВрдЯреЗрдирд░ рд╕рд░реНрд╡реНрд╣рд┐рд╕ (рдмреЗрдВрдЪ) рд╡рд░реАрд▓ рдЪрд╛рдЪрдгреА рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╕реЗрд╡рд╛ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ. рд╕реНрдЯрдБрдб рд╕рд░реНрд╡ рдбреЗрд╡реНрд╣рд▓рдкрд░ рдЖрдгрд┐ рдкрд░реАрдХреНрд╖рдХрд╛рдВрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рддреЗ рддреЛрдбрдгреЗ рдЙрдЪрд┐рдд рдирд╛рд╣реА. рдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рддреАрд▓ рдкрд░реАрдХреНрд╖рдХ рдореЕрдиреНрдпреБрдЕрд▓ рдЪрд╛рдЪрдгреНрдпрд╛ рдХрд░реВрди рдлрд┐рдХреНрд╕ рдХрд┐рдВрд╡рд╛ рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рддрдкрд╛рд╕рддрд╛рдд.

рдкреНрд░рдХрд▓реНрдк рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

рд╕рддрдд рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕рд╛рдареА рдбреЙрдХрд░рдордзреАрд▓ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреА

рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдд рджрд╣рд╛ рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╕реЗрд╡рд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ. рддреНрдпрд╛рддреАрд▓ рдХрд╛рд╣реА .NET Core рдордзреНрдпреЗ рддрд░ рдХрд╛рд╣реА NodeJs рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрд╣реЗрдд. Amazon рд▓рд╡рдЪрд┐рдХ рдХрдВрдЯреЗрдирд░ рд╕реЗрд╡реЗрдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЪрд╛рд▓рддреЗ. рдкреНрд░рддреНрдпреЗрдХрд╛рдЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ Postgres рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрд╕рддреЛ рдЖрдгрд┐ рдХрд╛рд╣реАрдВрдЪрд╛ Redis рджреЗрдЦреАрд▓ рдЕрд╕рддреЛ. рдХреЛрдгрддреЗрд╣реА рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╛рд╣реАрдд. рдЕрдиреЗрдХ рд╕реЗрд╡рд╛рдВрдирд╛ рд╕рдорд╛рди рдбреЗрдЯрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рд╣рд╛ рдбреЗрдЯрд╛, рдЬреЗрд╡реНрд╣рд╛ рддреЛ рдмрджрд▓рддреЛ рддреЗрд╡реНрд╣рд╛, рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡реЗрд╡рд░ SNS (рд╕рд┐рдВрдкрд▓ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд┐рд╕) рдЖрдгрд┐ SQS (Amazon Simple Queue Service) рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рд╕реЗрд╡рд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рддрдВрддреНрд░ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рддреЛ рдЬрддрди рдХрд░рддрд╛рдд.

SQS рдЖрдгрд┐ SNS

SQS рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рдВрджреЗрд╢ рд░рд╛рдВрдЧреЗрдд рдареЗрд╡рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ HTTPS рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд╛рдкрд░реВрди рд░рд╛рдВрдЧреЗрддреАрд▓ рд╕рдВрджреЗрд╢ рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.

рдЬрд░ рдЕрдиреЗрдХ рд╕реЗрд╡рд╛рдВрдиреА рдПрдХ рд░рд╛рдВрдЧ рд╡рд╛рдЪрд▓реА, рддрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рддреНрдпрд╛рдкреИрдХреА рдлрдХреНрдд рдПрдХрд╛рд╡рд░рдЪ рдкреЛрд╣реЛрдЪрддреЛ. рддреНтАНрдпрд╛рдВрдЪреНтАНрдпрд╛рдордзреНтАНрдпреЗ рд▓реЛрдб рд╡рд┐рддрд░реАрдд рдХрд░рдгреНтАНрдпрд╛рд╕рд╛рдареА рд╕рдорд╛рди рд╕реЗрд╡реЗрдЪреА рдЕрдиреЗрдХ рдЙрджрд╛рд╣рд░рдгреЗ рдЪрд╛рд▓рд╡рддрд╛рдирд╛ рд╣реЗ рдЙрдкрдпреЛрдЧреА рдард░рддреЗ.

рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдПрдХрд╛рдзрд┐рдХ рд╕реЗрд╡рд╛рдВрд╡рд░ рд╡рд┐рддрд░рд┐рдд рдХрд░рд╛рдпрдЪрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддреНрдпрд╛рдЪреА рд╕реНрд╡рддрдГрдЪреА рд░рд╛рдВрдЧ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рд╕рдВрджреЗрд╢рд╛рдВрдирд╛ рдПрдХрд╛рдзрд┐рдХ рд░рд╛рдВрдЧрд╛рдВрдордзреНрдпреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА SNS рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

SNS рдордзреНрдпреЗ рддреБрдореНрд╣реА рдПрдХ рд╡рд┐рд╖рдп рддрдпрд╛рд░ рдХрд░рддрд╛ рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рд╕рджрд╕реНрдпрддреНрд╡ рдШреНрдпрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, SQS рд░рд╛рдВрдЧ. рддреБрдореНрд╣реА рд╡рд┐рд╖рдпрд╛рд╡рд░ рд╕рдВрджреЗрд╢ рдкрд╛рдард╡реВ рд╢рдХрддрд╛. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдпрд╛ рд╡рд┐рд╖рдпрд╛рдЪреА рд╕рджрд╕реНрдпрддрд╛ рдШреЗрддрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд░рд╛рдВрдЧреЗрд▓рд╛ рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рд┐рд▓рд╛ рдЬрд╛рддреЛ. SNS рдХрдбреЗ рд╕рдВрджреЗрд╢ рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рдкрджреНрдзрдд рдирд╛рд╣реА. рдбреАрдмрдЧрд┐рдВрдЧ рдХрд┐рдВрд╡рд╛ рдЪрд╛рдЪрдгреА рджрд░рдореНрдпрд╛рди рддреБрдореНрд╣рд╛рд▓рд╛ SNS рд╡рд░ рдХрд╛рдп рдкрд╛рдард╡рд▓реЗ рдЖрд╣реЗ рд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рдПрдХ SQS рд░рд╛рдВрдЧ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛, рдЗрдЪреНрдЫрд┐рдд рд╡рд┐рд╖рдпрд╛рдЪреА рд╕рджрд╕реНрдпрддрд╛ рдШреЗрдК рд╢рдХрддрд╛ рдЖрдгрд┐ рд░рд╛рдВрдЧ рд╡рд╛рдЪреВ рд╢рдХрддрд╛.

рд╕рддрдд рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕рд╛рдареА рдбреЙрдХрд░рдордзреАрд▓ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреА

API рдЧреЗрдЯрд╡реЗ

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

рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рд╕реВрдЪрдирд╛

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

рд╕реБрдкреНрд░рд╕рд┐рджреНрдз рдЪрд╛рдЪрдгреА рджреГрд╖реНрдЯреАрдХреЛрди

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

╨Т рдорд╛рдпрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХрдбреВрди рд▓реЗрдЦ рдЗрди-рдореЗрдорд░реА рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛рдкрд░рдгреЗ рдЖрдгрд┐ рдореЙрдХ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЖрд╣реЗ.

рдЗрди-рдореЗрдорд░реА рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХрджреНрд╡рд╛рд░реЗ рд╕рдорд░реНрдерд┐рдд DBMS рдкреИрдХреА рдПрдХ рдЖрд╣реЗ. рд╣реЗ рд╡рд┐рд╢реЗрд╖рддрдГ рдЪрд╛рдЪрдгреАрд╕рд╛рдареА рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рдЕрд╢рд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдбреЗрдЯрд╛ рдХреЗрд╡рд│ рддреЛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрдкреЗрдкрд░реНрдпрдВрдд рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдпрд╛рд╕рд╛рдареА рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА рдЖрдгрд┐ рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рддрдкрд╛рд╕рдд рдирд╛рд╣реА.

рдореЙрдХ рдСрдмреНтАНрдЬреЗрдХреНтАНрдЯ рддреЗ рдмрджрд▓рдд рдЕрд╕рд▓реЗрд▓реНтАНрдпрд╛ рд╡рд░реНрдЧрд╛рдЪреЗ рдореЙрдбреЗрд▓ рдмрдирд╡рддрд╛рдд рдЬреЗрд╡реНтАНрд╣рд╛ рдЪрд╛рдЪрдгреА рд╡рд┐рдХрд╕рдХрд╛рд▓рд╛ рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реЗ рд╕рдордЬрддреЗ.

рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдЪрд╛рдЪрдгреА рдЪрд╛рд▓рд╡рддрд╛ рддреЗрд╡реНрд╣рд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╕реНрдерд▓рд╛рдВрддрд░ рдХрд╕реЗ рдХрд░рд╛рд╡реЗ рд╣реЗ Microsoft рд▓реЗрдЦрд╛рдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реА. рдорд╛рдЭреЗ рд╕рдорд╛рдзрд╛рди рд╣реЗ рдХрд░рддреЗ рдЖрдгрд┐ рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕рдордзреНрдпреЗрдЪ рдЪрд╛рдЪрдгреАрд╕рд╛рдареА рд╡рд┐рд╢реЗрд╖рдд: рдХреЛрдгрддрд╛рд╣реА рдХреЛрдб рдЬреЛрдбрдд рдирд╛рд╣реА.

рдЪрд▓рд╛ рд╕рдорд╛рдзрд╛рдирд╛рдХрдбреЗ рд╡рд│реВрдпрд╛

рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди, рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЭрд╛рд▓реЗ рдХреА рд╕рд░реНрд╡ рд╕рдорд╕реНрдпрд╛ рд╡реЗрд│реЗрд╡рд░ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдпреБрдирд┐рдЯ рдЪрд╛рдЪрдгреНрдпрд╛ рдкреБрд░реЗрд╢рд╛ рдирд╛рд╣реАрдд, рдореНрд╣рдгреВрди рд╡реЗрдЧрд│реНрдпрд╛ рдХреЛрдирд╛рддреВрди рдпрд╛ рд╕рдорд╕реНрдпреЗрдХрдбреЗ рдЬрд╛рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рдд рдЖрд▓рд╛.

рдЪрд╛рдЪрдгреА рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░рдгреЗ

рдкреНрд░рдердо рдХрд╛рд░реНрдп рдЪрд╛рдЪрдгреА рд╡рд╛рддрд╛рд╡рд░рдг рддреИрдирд╛рдд рдХрд░рдгреЗ рдЖрд╣реЗ. рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдкрд╛рдпрд▒реНрдпрд╛:

  • рд╕реНрдерд╛рдирд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╕рд╛рдареА рдЪрд╛рдЪрдгреА рдЕрдВрддрд░реНрдЧрдд рд╕реЗрд╡рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛, рдбреЗрдЯрд╛рдмреЗрд╕рд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддрдкрд╢реАрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рд╛ рдЖрдгрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдордзреНрдпреЗ AWS;
  • Postgres рд╕реБрд░реВ рдХрд░рд╛ рдЖрдгрд┐ Liquibase рдЪрд╛рд▓рд╡реВрди рд╕реНрдерд▓рд╛рдВрддрд░ рдХрд░рд╛.
    рд░рд┐рд▓реЗрд╢рдирд▓ рдбреАрдмреАрдПрдордПрд╕рдордзреНрдпреЗ, рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдбреЗрдЯрд╛ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рддреБрдореНрд╣рд╛рд▓рд╛ рдбреЗрдЯрд╛ рд╕реНрдХреАрдорд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдЯреЗрдмрд▓реНрд╕. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддрд╛рдирд╛, рдЯреЗрдмрд▓реНрд╕ рдирд╡реАрди рдЖрд╡реГрддреНрддреАрджреНрд╡рд╛рд░реЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдлреЙрд░реНрдордордзреНрдпреЗ рдЖрдгрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рд╢рдХреНрдпрддреЛ рдбреЗрдЯрд╛ рди рдЧрдорд╛рд╡рддрд╛. рдпрд╛рд▓рд╛ рд╕реНрдерд▓рд╛рдВрддрд░ рдореНрд╣рдгрддрд╛рдд. рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рд░рд┐рдХрд╛рдореНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ рд╣реА рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдЪреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмрд╛рдм рдЖрд╣реЗ. рд╕реНрдерд▓рд╛рдВрддрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рддрдЪ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. .NET рдЖрдгрд┐ NodeJS рджреЛрдиреНрд╣реАрдХрдбреЗ рд╕реНрдерд▓рд╛рдВрддрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрд╣реЗрдд. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рд╕реБрд░рдХреНрд╖реЗрдЪреНрдпрд╛ рдХрд╛рд░рдгрд╛рд╕реНрддрд╡, рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕ рдбреЗрдЯрд╛ рд╕реНрдХреАрдорд╛ рдмрджрд▓рдгреНрдпрд╛рдЪреНрдпрд╛ рдЕрдзрд┐рдХрд╛рд░рд╛рдкрд╛рд╕реВрди рд╡рдВрдЪрд┐рдд рдЖрд╣реЗрдд рдЖрдгрд┐ рд╕реНрдерд▓рд╛рдВрддрд░ Liquibase рд╡рд╛рдкрд░реВрди рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
  • Amazon LocalStack рд▓рд╛рдБрдЪ рдХрд░рд╛. рдШрд░рдмрд╕рд▓реНрдпрд╛ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА AWS рд╕реЗрд╡рд╛рдВрдЪреА рд╣реА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрд╣реЗ. рдбреЙрдХрд░ рд╣рдмрд╡рд░ рд▓реЛрдХрд▓рд╕реНрдЯреЕрдХрд╕рд╛рдареА рддрдпрд╛рд░ рдкреНрд░рддрд┐рдорд╛ рдЖрд╣реЗ.
  • LocalStack рдордзреНрдпреЗ рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд╛рд▓рд╡рд╛. рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ AWS CLI рд╡рд╛рдкрд░рддрд╛рдд.

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

рд╕рддрдд рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕рд╛рдареА рдбреЙрдХрд░рдордзреАрд▓ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреА

рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреА рдХрд╢реА рдХрд╛рд░реНрдп рдХрд░рддреЗ?

рдЪрд╛рдЪрдгреА рджрд░рдореНрдпрд╛рди, рд╕рд░реНрд╡ рдХрд╛рд╣реА рдбреЙрдХрд░рдордзреНрдпреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ: рдЪрд╛рдЪрдгреА рдЕрдВрддрд░реНрдЧрдд рд╕реЗрд╡рд╛, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕, рд╕реНрдерд▓рд╛рдВрддрд░ рд╕рд╛рдзрди рдЖрдгрд┐ рдкреЛрд╕реНрдЯрдорди рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдРрд╡рдЬреА рддреНрдпрд╛рдЪреА рдХрдиреНрд╕реЛрд▓ рдЖрд╡реГрддреНрддреА - рдиреНрдпреВрдорди.

рдбреЙрдХрд░ рдЕрдиреЗрдХ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддреЗ:

  • рд╣реЛрд╕реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдкрд╛рд╕реВрди рд╕реНрд╡рд╛рддрдВрддреНрд░реНрдп;
  • рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ: рдбреЙрдХрд░ рдбреЙрдХрд░ рд╣рдмрд╡рд░реВрди рдкреНрд░рддрд┐рдорд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЛ;
  • рд╕рд┐рд╕реНрдЯрдорд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рдореВрд│ рд╕реНрдерд┐рддреАрдд рдкрд░рдд рдХрд░рдгреЗ: рдлрдХреНрдд рдХрдВрдЯреЗрдирд░ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреЗ.

рдбреЙрдХрд░-рдХрдВрдкреЛрдЬ рдХрдВрдЯреЗрдирд░реНрд╕рдирд╛ рдПрдХрд╛ рдЖрднрд╛рд╕реА рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рдПрдХрддреНрд░ рдХрд░рддреЗ, рдЗрдВрдЯрд░рдиреЗрдЯрдкрд╛рд╕реВрди рд╡реЗрдЧрд│реЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдХрдВрдЯреЗрдирд░ рдбреЛрдореЗрди рдирд╛рд╡рд╛рдВрджреНрд╡рд╛рд░реЗ рдПрдХрдореЗрдХрд╛рдВрдирд╛ рд╢реЛрдзрддрд╛рдд.

рдЪрд╛рдЪрдгреА рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрджреНрд╡рд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ. рд╡рд┐рдВрдбреЛрдЬрд╡рд░ рдЪрд╛рдЪрдгреА рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА git-bash рд╡рд╛рдкрд░рддреЛ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рд╡рд┐рдВрдбреЛрдЬ рдЖрдгрд┐ рд▓рд┐рдирдХреНрд╕ рджреЛрдиреНрд╣реАрд╕рд╛рдареА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд░реЗрд╢реА рдЖрд╣реЗ. Git рдЖрдгрд┐ Docker рдкреНрд░рдХрд▓реНрдкрд╛рд╡рд░реАрд▓ рд╕рд░реНрд╡ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдиреА рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗрдд. рд╡рд┐рдВрдбреЛрдЬрд╡рд░ рдЧрд┐рдЯ рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛рдирд╛, рдЧрд┐рдЯ-рдмреЕрд╢ рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рддреНрдпрд╛рдореБрд│реЗ рдкреНрд░рддреНрдпреЗрдХрд╛рдХрдбреЗ рддреЗрд╣реА рдЕрд╕рддреЗ.

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦрд╛рд▓реАрд▓ рдкрд╛рдпрд▒реНрдпрд╛ рдкрд╛рд░ рдкрд╛рдбрддреЗ:

  • рдбреЙрдХрд░ рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ
    docker-compose build
  • рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ рд▓реЛрдХрд▓рд╕реНрдЯреЕрдХ рд▓рд╛рдБрдЪ рдХрд░рдд рдЖрд╣реЗ
    docker-compose up -d <╨║╨╛╨╜╤В╨╡╨╣╨╜╨╡╤А>
  • рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдерд▓рд╛рдВрддрд░ рдЖрдгрд┐ рд▓реЛрдХрд▓рд╕реНрдЯреЕрдХрдЪреА рддрдпрд╛рд░реА
    docker-compose run <╨║╨╛╨╜╤В╨╡╨╣╨╜╨╡╤А>
  • рдЪрд╛рдЪрдгреА рдЕрдВрддрд░реНрдЧрдд рд╕реЗрд╡рд╛ рд╕реБрд░реВ рдХрд░рдд рдЖрд╣реЗ
    docker-compose up -d <╤Б╨╡╤А╨▓╨╕╤Б>
  • рдЪрд╛рдЪрдгреА рдЪрд╛рд▓рд╡рдгреЗ (рдиреНрдпреВрдореЕрди)
  • рд╕рд░реНрд╡ рдХрдВрдЯреЗрдирд░ рдерд╛рдВрдмрд╡рдд рдЖрд╣реЗ
    docker-compose down
  • рд╕реНрд▓реЕрдХрдордзреНрдпреЗ рдкрд░рд┐рдгрд╛рдо рдкреЛрд╕реНрдЯ рдХрд░рдгреЗ
    рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЪреЕрдЯ рдЖрд╣реЗ рдЬрд┐рдереЗ рд╣рд┐рд░рд╡рд╛ рдЪреЗрдХрдорд╛рд░реНрдХ рдХрд┐рдВрд╡рд╛ рд▓рд╛рд▓ рдХреНрд░реЙрд╕ рдЕрд╕рд▓реЗрд▓реЗ рд╕рдВрджреЗрд╢ рдЖрдгрд┐ рд▓реЙрдЧрдЪреА рд▓рд┐рдВрдХ рдЬрд╛рддреЗ.

рдЦрд╛рд▓реАрд▓ рдбреЙрдХрд░ рдкреНрд░рддрд┐рдорд╛ рдпрд╛ рдЪрд░рдгрд╛рдВрдордзреНрдпреЗ рд╕рд╛рдореАрд▓ рдЖрд╣реЗрдд:

  • рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЬрд╛рдд рдЕрд╕рд▓реЗрд▓реА рд╕реЗрд╡рд╛ рдЙрддреНрдкрд╛рджрдирд╛рд╕рд╛рдареА рд╕рдорд╛рди рдкреНрд░рддрд┐рдорд╛ рдЖрд╣реЗ. рдЪрд╛рдЪрдгреАрдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╣реЗ рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
  • Postgres, Redis рдЖрдгрд┐ LocalStack рд╕рд╛рдареА, Docker Hub рдордзреАрд▓ рддрдпрд╛рд░ рдкреНрд░рддрд┐рдорд╛ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. Liquibase рдЖрдгрд┐ Newman рд╕рд╛рдареА рддрдпрд╛рд░ рдкреНрд░рддрд┐рдорд╛ рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд. рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рд╛рдВрдЧрд╛рдбреНрдпрд╛рд╡рд░ рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдлрд╛рдИрд▓реНрд╕ рдЬреЛрдбрддреЛ.
  • LocalStack рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рддрдпрд╛рд░ AWS CLI рдкреНрд░рддрд┐рдорд╛ рд╡рд╛рдкрд░рддрд╛ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрд╕рд▓реЗрд▓реА рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░рд╛.

рд╡рд╛рдкрд░рдд рдЖрд╣реЗ рдЦрдВрдб, рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдлрд╛рдЗрд▓реНрд╕ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдбреЙрдХрд░ рдЗрдореЗрдЬ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. рддрдерд╛рдкрд┐, рдЖрдордЪреНрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╕рд╛рдареА рд╡реНрд╣реЙрд▓реНрдпреВрдо рдпреЛрдЧреНрдп рдирд╛рд╣реАрдд рдХрд╛рд░рдг Gitlab CI рдХрд╛рд░реНрдпреЗ рд╕реНрд╡рддрдГ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЪрд╛рд▓рддрд╛рдд. рддреБрдореНрд╣реА рдЕрд╢рд╛ рдХрдВрдЯреЗрдирд░рдордзреВрди рдбреЙрдХрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реВ рд╢рдХрддрд╛, рдкрд░рдВрддреБ рд╡реНрд╣реЙрд▓реНрдпреВрдореНрд╕ рдлрдХреНрдд рд╣реЛрд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдордордзреВрди рдлреЛрд▓реНрдбрд░ рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛рдд, рдЖрдгрд┐ рджреБрд╕рд░реНрдпрд╛ рдХрдВрдЯреЗрдирд░рдордзреВрди рдирд╛рд╣реА.

рд╕рдорд╕реНрдпрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдпреЗрдК рд╢рдХрддрд╛рдд

рддрдпрд╛рд░реАрдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рдд рдЖрд╣реЗ

рд╕реЗрд╡реЗрд╕рд╣ рдХрдВрдЯреЗрдирд░ рдЪрд╛рд▓реВ рдЕрд╕рддрд╛рдирд╛, рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдирд╛рд╣реА рдХреА рддреЛ рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░рдгреНрдпрд╛рд╕ рддрдпрд╛рд░ рдЖрд╣реЗ. рдЖрдкрдг рдХрдиреЗрдХреНрд╢рди рд╕реБрд░реВ рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

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

рдирд┐рд░реНрдгрдп: LocalStack рдкреНрд░реЛрд╡реНрд╣рд┐рдЬрдирд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдЬреНрдпрд╛ SQS рдЖрдгрд┐ SNS рджреЛрдиреНрд╣реАрдХрдбреВрди 200 рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛рдд.

рд╕рдорд╛рдВрддрд░ рдХрд╛рд░реНрдп рд╕рдВрдШрд░реНрд╖

рдПрдХрд╛рдЪ рдбреЙрдХрд░ рд╣реЛрд╕реНрдЯрд╡рд░ рдЕрдиреЗрдХ рдЪрд╛рдЪрдгреНрдпрд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЪрд╛рд▓реВ рд╢рдХрддрд╛рдд, рддреНрдпрд╛рдореБрд│реЗ рдХрдВрдЯреЗрдирд░ рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХрдЪреА рдирд╛рд╡реЗ рдпреБрдирд┐рдХ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╢рд┐рд╡рд╛рдп, рдПрдХрд╛рдЪ рд╕реЗрд╡реЗрдЪреНрдпрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╢рд╛рдЦрд╛рдВрдордзреАрд▓ рдЪрд╛рдЪрдгреНрдпрд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЪрд╛рд▓рд╡рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рддреНрдпрд╛рдореБрд│реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкреЛрдЭ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рддреНрдпрд╛рдВрдЪреА рдирд╛рд╡реЗ рд▓рд┐рд╣рд┐рдгреЗ рдкреБрд░реЗрд╕реЗ рдирд╛рд╣реА.

рдирд┐рд░реНрдгрдп: рд╕реНрдХреНрд░рд┐рдкреНрдЯ COMPOSE_PROJECT_NAME рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдЕрдирдиреНрдп рдореВрд▓реНрдпрд╛рд╡рд░ рд╕реЗрдЯ рдХрд░рддреЗ.

рд╡рд┐рдВрдбреЛрдЬ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ

рд╡рд┐рдВрдбреЛрдЬрд╡рд░ рдбреЙрдХрд░ рд╡рд╛рдкрд░рддрд╛рдирд╛ рдорд▓рд╛ рдмрд░реНтАНрдпрд╛рдЪ рдЧреЛрд╖реНрдЯреА рд╕рд╛рдВрдЧрд╛рдпрдЪреНрдпрд╛ рдЖрд╣реЗрдд рдХрд╛рд░рдг рддреНрд░реБрдЯреА рдХрд╛ рдпреЗрддрд╛рдд рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдЕрдиреБрднрд╡ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗрдд.

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

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ git рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЖрд╣реЗ:

git config core.autocrlf input

  1. Git-bash рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕ рдлреЛрд▓реНрдбрд░реНрд╕рдЪреЗ рдЕрдиреБрдХрд░рдг рдХрд░рддреЗ рдЖрдгрд┐ exe рдлрд╛рдИрд▓ (docker.exe рд╕рд╣) рдХреЙрд▓ рдХрд░рддрд╛рдирд╛, Windows рдкрдерд╛рдВрд╕рд╣ рдкрд░рд┐рдкреВрд░реНрдг Linux рдкрде рдмрджрд▓рддреЗ. рддрдерд╛рдкрд┐, рд╕реНрдерд╛рдирд┐рдХ рдорд╢реАрдирд╡рд░ рдирд╕рд▓реЗрд▓реНрдпрд╛ рдкрдерд╛рдВрд╕рд╛рдареА (рдХрд┐рдВрд╡рд╛ рдХрдВрдЯреЗрдирд░рдордзреАрд▓ рдкрде) рдпрд╛рдЪрд╛ рдЕрд░реНрде рдирд╛рд╣реА. рд╣реЗ рд╡рд░реНрддрди рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА.

рдирд┐рд░реНрдгрдп: рдкрдерд╛рдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрд▓реЕрд╢ рдЬреЛрдбрд╛: /bin рдРрд╡рдЬреА //bin. рд▓рд┐рдирдХреНрд╕рд▓рд╛ рдЕрд╕реЗ рдорд╛рд░реНрдЧ рд╕рдордЬрддрд╛рдд; рддреНрдпрд╛рд╕рд╛рдареА рдЕрдиреЗрдХ рд╕реНрд▓реЕрд╢ рдПрдХрд╕рд╛рд░рдЦреЗ рдЕрд╕рддрд╛рдд. рдкрд░рдВрддреБ git-bash рдЕрд╕реЗ рдорд╛рд░реНрдЧ рдУрд│рдЦрдд рдирд╛рд╣реА рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреЗ рд░реВрдкрд╛рдВрддрд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдд рдирд╛рд╣реА.

рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ

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

рдореВрд│ рдЙрдкрд╛рдп рдХрд░рд╛рдпрдЪрд╛ рд╣реЛрддрд╛ рдбреЙрдХрд░-рддрдпрд╛рд░ рдХрд░рд╛ рдзреНрд╡рдЬ рдирд╛рд╣реА -d, рдкрд░рдВрддреБ рд╢реЗрд▓ рдХреНрд╖рдорддрд╛ рд╡рд╛рдкрд░реВрди, рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╛рд░реНрд╢реНрд╡рднреВрдореАрд╡рд░ рдкрд╛рдард╡рд╛:

docker-compose up <service> &

рдбреЙрдХрд░рдХрдбреВрди рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реЗрд╡реЗрдХрдбреЗ рд▓реЙрдЧ рдкрд╛рдард╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдИрдкрд░реНрдпрдВрдд рд╣реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдбреЙрдХрд░-рддрдпрд╛рд░ рдХрд░рд╛ рдХрдиреНрд╕реЛрд▓рд╡рд░ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдгреЗ рдерд╛рдВрдмрд╡рд▓реЗ. рдорд╛рддреНрд░, рд╕рдВрдШрд╛рдиреЗ рдХрд╛рдо рдХреЗрд▓реЗ рдбреЙрдХрд░ рд╕рдВрд▓рдЧреНрди.

рдирд┐рд░реНрдгрдп:

docker attach --no-stdin ${COMPOSE_PROJECT_NAME}_<╤Б╨╡╤А╨▓╨╕╤Б>_1 &

рдЪрд╛рдЪрдгреА рдкреБрдирд░рд╛рд╡реГрддреНрддреА рджрд░рдореНрдпрд╛рди рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рд╕рдВрдШрд░реНрд╖

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

рддреЗ рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдХрддрд░ рдЖрдпрдбреА рдЕрджреНрд╡рд┐рддреАрдп рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХрд┐рдВрд╡рд╛ рдЪрд╛рдЪрдгреАрджреНрд╡рд╛рд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рд╡рд╕реНрддреВ рд╣рдЯрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдХрд╛рд╣реА рд╡рд╕реНрддреВ рдЖрд╡рд╢реНрдпрдХрддреЗрдореБрд│реЗ рд╣рдЯрд╡рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реАрдд.

рдирд┐рд░реНрдгрдп: рдкреЛрд╕реНрдЯрдорди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░реВрди GUID рддрдпрд╛рд░ рдХрд░рд╛.

var uuid = require('uuid');
var myid = uuid.v4();
pm.environment.set('myUUID', myid);

рдирдВрддрд░ рдХреНрд╡реЗрд░реАрдордзреНрдпреЗ рдЪрд┐рдиреНрд╣ рд╡рд╛рдкрд░рд╛ {{myUUID}}, рдЬреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреНрдпрд╛ рдореВрд▓реНрдпрд╛рдиреЗ рдмрджрд▓рд▓реЗ рдЬрд╛рдИрд▓.

LocalStack рджреНрд╡рд╛рд░реЗ рд╕рд╣рдпреЛрдЧ

рдЬрд░ рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЬрд╛рдд рдЕрд╕рд▓реЗрд▓реА рд╕реЗрд╡рд╛ SQS рд░рд╛рдВрдЧреЗрдд рд╡рд╛рдЪрдд рдЕрд╕реЗрд▓ рдХрд┐рдВрд╡рд╛ рд▓рд┐рд╣рд┐рдд рдЕрд╕реЗрд▓, рддрд░ рд╣реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЪрд╛рдЪрдгреАрдиреЗ рджреЗрдЦреАрд▓ рдпрд╛ рд░рд╛рдВрдЧреЗрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдирд┐рд░реНрдгрдп: рдкреЛрд╕реНрдЯрдордирдХрдбреВрди рд▓реЛрдХрд▓рд╕реНрдЯреЕрдХрд▓рд╛ рд╡рд┐рдирдВрддреНрдпрд╛.

AWS рд╕реЗрд╡рд╛ API рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдХреЗрд▓реЗ рдЖрд╣реЗ, SDK рд╢рд┐рд╡рд╛рдп рдХреНрд╡реЗрд░реА рдХрд░рддрд╛ рдпреЗрддреЗ.

рдЬрд░ рдПрдЦрд╛рджреА рд╕реЗрд╡рд╛ рд░рд╛рдВрдЧреЗрдд рд▓рд┐рд╣рд┐рдд рдЕрд╕реЗрд▓ рддрд░ рдЖрдореНрд╣реА рддреЗ рд╡рд╛рдЪрддреЛ рдЖрдгрд┐ рд╕рдВрджреЗрд╢рд╛рдЪреА рд╕рд╛рдордЧреНрд░реА рддрдкрд╛рд╕рддреЛ.

рдЬрд░ рд╕реЗрд╡рд╛ SNS рд▓рд╛ рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рддреЗ, рддрд░ рддрдпрд╛рд░реАрдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ LocalStack рджреЗрдЦреАрд▓ рдПрдХ рд░рд╛рдВрдЧ рддрдпрд╛рд░ рдХрд░рддреЗ рдЖрдгрд┐ рдпрд╛ SNS рд╡рд┐рд╖рдпрд╛рдЪреА рд╕рджрд╕реНрдпрддрд╛ рдШреЗрддреЗ. рдордЧ рд╣реЗ рд╕рд░реНрд╡ рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЧреЛрд╖реНрдЯреАрдВрд╡рд░ рдпреЗрддреЗ.

рд╕реЗрд╡реЗрд▓рд╛ рд░рд╛рдВрдЧреЗрддреАрд▓ рд╕рдВрджреЗрд╢ рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рдорд╛рдЧреАрд▓ рдЪрд╛рдЪрдгреА рдЪрд░рдгрд╛рдд рдЖрдореНрд╣реА рд╣рд╛ рд╕рдВрджреЗрд╢ рд░рд╛рдВрдЧреЗрдд рд▓рд┐рд╣рд┐рддреЛ.

рдЪрд╛рдЪрдгреА рдЕрдВрддрд░реНрдЧрдд рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕рдордзреВрди рдЙрджреНрднрд╡рд▓реЗрд▓реНрдпрд╛ HTTP рд╡рд┐рдирдВрддреНрдпрд╛ рддрдкрд╛рд╕рдд рдЖрд╣реЗ

рдХрд╛рд╣реА рд╕реЗрд╡рд╛ HTTP рд╡рд░ AWS рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдЗрддрд░ рдЧреЛрд╖реНрдЯреАрдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рдЖрдгрд┐ рдХрд╛рд╣реА AWS рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ LocalStack рдордзреНрдпреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реАрдд.

рдирд┐рд░реНрдгрдп: рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рддреЗ рдорджрдд рдХрд░реВ рд╢рдХрддреЗ рдореЙрдХрд╕рд░реНрд╡реНрд╣рд░, рдЬреНрдпрд╛рдордзреНрдпреЗ рддрдпрд╛рд░ рдкреНрд░рддрд┐рдорд╛ рдЖрд╣реЗ рдбреЙрдХрд░ рд╣рдм. рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдкреНрд░рддрд┐рд╕рд╛рдж HTTP рд╡рд┐рдирдВрддреАрджреНрд╡рд╛рд░реЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. API рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдкреЛрд╕реНрдЯрдордирдХрдбреВрди рд╡рд┐рдирдВрддреА рдХрд░рддреЛ.

OAuth рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЖрдгрд┐ рдЕрдзрд┐рдХреГрддрддрд╛ рдЪрд╛рдЪрдгреА рдХрд░рдд рдЖрд╣реЗ

рдЖрдореНрд╣реА OAuth рд╡рд╛рдкрд░рддреЛ рдЖрдгрд┐ JSON рд╡реЗрдм рдЯреЛрдХрди (JWT). рдЪрд╛рдЪрдгреАрд╕рд╛рдареА OAuth рдкреНрд░рджрд╛рддрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреЛ рдЖрдореНрд╣реА рд╕реНрдерд╛рдирд┐рдХ рдкрд╛рддрд│реАрд╡рд░ рдЪрд╛рд▓рд╡реВ рд╢рдХрддреЛ.

рд╕реЗрд╡рд╛ рдЖрдгрд┐ OAuth рдкреНрд░рджрд╛рддрд╛ рдпрд╛рдВрдЪреНрдпрд╛рддреАрд▓ рд╕рд░реНрд╡ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рджреЛрди рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╡рд░ рдпреЗрддреЛ: рдкреНрд░рдердо, рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреА рд╡рд┐рдирдВрддреА рдХреЗрд▓реА рдЬрд╛рддреЗ /.well-known/openid-configuration, рдЖрдгрд┐ рдирдВрддрд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреАрд▓ рдкрддреНрддреНрдпрд╛рд╡рд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреА (JWKS) рдЪреА рд╡рд┐рдирдВрддреА рдХреЗрд▓реА рдЬрд╛рддреЗ. рд╣реЗ рд╕рд░реНрд╡ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рдЖрд╣реЗ.

рдирд┐рд░реНрдгрдп: рдЖрдордЪрд╛ рдЪрд╛рдЪрдгреА OAuth рдкреНрд░рджрд╛рддрд╛ рдПрдХ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рджреЛрди рдлрд╛рдЗрд▓реНрд╕ рдЖрд╣реЗрдд. рдЯреЛрдХрди рдПрдХрджрд╛ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ Git рд▓рд╛ рд╡рдЪрдирдмрджреНрдз рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдЪрд╛рдЪрдгреАрдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ

рдкреЛрд╕реНрдЯрдорди рд╡реЗрдмрд╕реЙрдХреЗрдЯрд╕рд╣ рдХрд╛рдо рдХрд░рдд рдирд╛рд╣реА. рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдЪрд╛рдЪрдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдзрди рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ.

рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдХреНрд▓рд╛рдпрдВрдЯ рдлрдХреНрдд рдмреНрд░рд╛рдЙрдЭрд░рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрд╕реВ рд╢рдХрддреЛ. рддреНрдпрд╛рд╕рд╛рдареА .NET Core рдЕрдВрддрд░реНрдЧрдд рдХреНрд▓рд╛рдпрдВрдЯ рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╣реЗ. .NET Core рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдХреНрд▓рд╛рдпрдВрдЯ, рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЛ, рдкреНрд░рдорд╛рдгреАрдХреГрдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рд╕рдВрджреЗрд╢рд╛рдВрдЪреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд░рдорд╛рдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рддреЛ. рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реНрдпрд╛рд╕ рдХрд┐рдВрд╡рд╛ рдХрдиреЗрдХреНрд╢рди рддреБрдЯрд▓реНрдпрд╛рд╕, рдХреНрд▓рд╛рдпрдВрдЯ 1 рдЪреНрдпрд╛ рдХреЛрдбрд╕рд╣ рдмрд╛рд╣реЗрд░ рдкрдбрддреЛ. рд╢реЗрд╡рдЯрдЪрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реНрдпрд╛рд╕, рдХреНрд▓рд╛рдпрдВрдЯ 0 рдЪреНрдпрд╛ рдХреЛрдбрд╕рд╣ рдмрд╛рд╣реЗрд░ рдкрдбрддреЛ.

рдиреНрдпреВрдорди рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╣ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдХрд╛рд░реНрдп рдХрд░рддреЛ. рдЬреНрдпрд╛рдВрдирд╛ рддреНрдпрд╛рдВрдЪреА рдЧрд░рдЬ рдЖрд╣реЗ рдЕрд╢рд╛ рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рд╣реЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдиреЗрдХ рдХреНрд▓рд╛рдпрдВрдЯ рд▓реЙрдиреНрдЪ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.

рд╕рддрдд рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕рд╛рдареА рдбреЙрдХрд░рдордзреАрд▓ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреА

рдПрдХрд╛рдзрд┐рдХ рдХреНрд▓рд╛рдпрдВрдЯ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░рд╛ --рд╕реНрдХреЗрд▓ рдбреЙрдХрд░-рдХрдВрдкреЛрдЬ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирд╡рд░.

рдЪрд╛рд▓рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдкреЛрд╕реНрдЯрдорди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд░реНрд╡ рдХреНрд▓рд╛рдпрдВрдЯ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ.
рдЖрдореНрд╣рд╛рд▓рд╛ рдХрдиреЗрдХреНрд╢рдирдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рдгреНрдпрд╛рдЪреА рд╕рдорд╕реНрдпрд╛ рдЖрдзреАрдЪ рдЖрд▓реА рдЖрд╣реЗ. рдкрдг рд╕рд░реНрд╡реНрд╣рд░ рд╣реЛрддреЗ, рдЖрдгрд┐ рдпреЗрдереЗ рдХреНрд▓рд╛рдпрдВрдЯ рдЖрд╣реЗ. рд╡реЗрдЧрд│реНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдЪреА рдЧрд░рдЬ рдЖрд╣реЗ.

рдирд┐рд░реНрдгрдп: рдХрдВрдЯреЗрдирд░рдордзреАрд▓ рдХреНрд▓рд╛рдпрдВрдЯ рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рддреЛ рдЖрд░реЛрдЧреНрдп рддрдкрд╛рд╕рдгреАрд╣реЛрд╕реНрдЯрд╡рд░реАрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рджреЗрдгреНрдпрд╛рд╕рд╛рдареА. рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛рдЪ рдХреНрд▓рд╛рдпрдВрдЯ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рд░реНрдЧрд╛рд╡рд░ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рддреЛ, рдореНрд╣рдгрд╛ /рдЖрд░реЛрдЧреНрдп рддрдкрд╛рд╕рдгреА. рдбреЙрдХрд░ рдлрд╛рдЗрд▓рдордзреАрд▓ рд╣реЗрд▓реНрдердЪреЗрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрд╕реЗ рджрд┐рд╕рддреЗ:

HEALTHCHECK --interval=3s CMD if [ ! -e /healthcheck ]; then false; fi

рд╕рдВрдШ рдбреЙрдХрд░ рддрдкрд╛рд╕рдгреА рдХрдВрдЯреЗрдирд░рд╕рд╛рдареА рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддреА, рдЖрд░реЛрдЧреНрдп рд╕реНрдерд┐рддреА рдЖрдгрд┐ рдирд┐рд░реНрдЧрдорди рдХреЛрдб рджрд░реНрд╢рд╡рд┐рддреЗ.

рдиреНрдпреВрдорди рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдкрд╛рд╕рддреЗ рдХреА рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╣ рд╕рд░реНрд╡ рдХрдВрдЯреЗрдирд░ 0 рдХреЛрдбрд╕рд╣ рд╕рдВрдкреБрд╖реНрдЯрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗрдд.

рд╣реЕрдкрд┐рдиреЗрд╕ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗ

рдЖрдореНрд╣реА рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЕрдбрдЪрдгреАрдВрд╡рд░ рдорд╛рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╕реНрдерд┐рд░ рдЪрд╛рд▓реВ рдЪрд╛рдЪрдгреНрдпрд╛рдВрдЪрд╛ рд╕рдВрдЪ рд╣реЛрддрд╛. рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ, рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ Amazon LocalStack рд╕рд╣ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзреВрди, рдПрдХрд▓ рдпреБрдирд┐рдЯ рдореНрд╣рдгреВрди рдХрд╛рд░реНрдп рдХрд░рддреЗ.

рдпрд╛ рдЪрд╛рдЪрдгреНрдпрд╛ 30+ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдЪреНрдпрд╛ рдЯреАрдорд▓рд╛ рд╡рд╛рд░рдВрд╡рд╛рд░ рдЙрдкрдпреЛрдЬрдирд╛рдВрд╕рд╣ 10+ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдЪреНрдпрд╛ рдЬрдЯрд┐рд▓ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рд╕рд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рддреАрд▓ рддреНрд░реБрдЯреАрдВрдкрд╛рд╕реВрди рд╕рдВрд░рдХреНрд╖рдг рдХрд░рддрд╛рдд.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛