рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░рдорд╛ рдорд╛рдЗрдХреНрд░реЛ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг

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

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

рдпреЛ рд╕рдмреИ рд░ рдЕрд▓рд┐ рдмрдвреА рдбрдХрд░ рдХрдиреНрдЯреЗрдирд░рдорд╛ рд╕рдореНрдкреВрд░реНрдг рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕ рдкрд░реАрдХреНрд╖рдг рдЧрд░реЗрд░ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдХреЛ рд╡реИрдзрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣ рдлрд╛рдЗрджрд╛ рднрдиреЗрдХреЛ рдЙрддреНрдкрд╛рджрдирдорд╛ рдЬрд╛рдиреЗ рдЙрд╣реА рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ рдкрд░реАрдХреНрд╖рдг рдЧрд░рд┐рдиреНрдЫред

рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рдирд▓реЗ рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНрджрдЫ, рдЬрд╕рдХреЛ рд╕рдорд╛рдзрд╛рди рддрд▓ рд╡рд░реНрдгрди рдЧрд░рд┐рдиреЗрдЫ:

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

рдпреЛ рд▓реЗрдЦ рдЖрдзрд╛рд░рд┐рдд рдЫ рдореЗрд░реЛ рдмреЛрд▓реА SECR 2019 рдорд╛ред рддреНрдпрд╕реИрд▓реЗ рдкрдвреНрди рдзреЗрд░реИ рдЕрд▓реНрдЫреА рднрдПрдХрд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, рдпрд╣рд╛рдБ рднрд╛рд╖рдгрдХреЛ рд░реЗрдХрд░реНрдбрд┐рдЩ рдЫ.

рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░рдорд╛ рдорд╛рдЗрдХреНрд░реЛ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг

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

рдПрдЙрдЯреИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреБрдмреИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╡рд┐рдиреНрдбреЛрдЬ рдбреЗрд╕реНрдХрдЯрдкрд╣рд░реВрдорд╛ рд░ рд▓рд┐рдирдХреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд Gitlab CI рд╕рд░реНрднрд░рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдЗрдПрдХреЛ рдЫред

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

рдирд┐рдореНрди рдХрд╛рд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрднрд░рдорд╛ рдЪрд▓реНрдиреБ рдкрд░реНрдЫ:

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

рдердк рд░реВрдкрдорд╛, рд╕реНрдЯреНрдпрд╛рдиреНрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрд╡рд╛рдВрдЫрдиреАрдп рдЫ рдХрд┐рдирднрдиреЗ:

  • рдПрдЙрдЯрд╛ рд╕реНрдЯреНрдпрд╛рдиреНрдбрд▓рд╛рдИ рдЦрд░рд╛рдм рдХреЛрдбрд▓реЗ рдорд╛рддреНрд░ рдирднрдИ рд╕рд╣реА рдХреЛрдбрд▓реЗ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рдирд╕рдХреНрдиреЗ рдбреЗрдЯрд╛рджреНрд╡рд╛рд░рд╛ рдкрдирд┐ рднрд╛рдБрдЪреНрди рд╕рдХрд┐рдиреНрдЫ;
  • рд╣рд╛рдореАрд▓реЗ рдкрд░реАрдХреНрд╖рдгрдХреЛ рдХреНрд░рдордорд╛ рдкрд░реАрдХреНрд╖рдгрджреНрд╡рд╛рд░рд╛ рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрди рдЬрддрд┐рд╕реБрдХреИ рдХрдбрд╛ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗ рдкрдирд┐, рдХреЗрд╣рд┐ рдЧрд▓рдд рд╣реБрди рд╕рдХреНрдЫ (рдЕрдиреНрдпрдерд╛, рдХрд┐рди рдкрд░реАрдХреНрд╖рдг?)ред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрдЧрдарди рдмрд╛рд░реЗ

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

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

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛

рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░рдорд╛ рдорд╛рдЗрдХреНрд░реЛ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг

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

SQS рд░ SNS

SQS рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдиреНрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рд▓рд╛рдордорд╛ рд░рд╛рдЦреНрди рд░ HTTPS рдкреНрд░реЛрдЯреЛрдХрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рд╛рдордмрд╛рдЯ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдвреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

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

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рддреНрдпреЗрдХ рд╕рдиреНрджреЗрд╢ рдзреЗрд░реИ рд╕реЗрд╡рд╛рд╣рд░реВрдорд╛ рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдХреЛ рдЖрдлреНрдиреИ рд▓рд╛рдо рд╣реБрдиреБрдкрд░реНрдЫ, рд░ рдзреЗрд░реИ рд▓рд╛рдорд╣рд░реВрдорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЧрд░реНрди SNS рдЖрд╡рд╢реНрдпрдХ рдЫред

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

рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░рдорд╛ рдорд╛рдЗрдХреНрд░реЛ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг

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

рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реЗрд╡рд╛рд╣рд░реВ рдЗрдиреНрдЯрд░рдиреЗрдЯрдмрд╛рдЯ рдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдкрдорд╛ рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рдЫреИрдирдиреНред рдкрд╣реБрдБрдЪ API рдЧреЗрдЯрд╡реЗ рдорд╛рд░реНрдлрдд рд╣реБрдиреНрдЫ, рдЬрд╕рд▓реЗ рдкрд╣реБрдБрдЪ рдЕрдзрд┐рдХрд╛рд░рд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫред рдпреЛ рд╣рд╛рдореНрд░реЛ рд╕реЗрд╡рд╛ рдкрдирд┐ рд╣реЛ, рд░ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдкрдирд┐ рдЫрдиреНред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╕реВрдЪрдирд╛рд╣рд░реВ

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

рдкреНрд░рдЦреНрдпрд╛рдд рдкрд░реАрдХреНрд╖рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг

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

╨Т Microsoft рдмрд╛рдЯ рд▓реЗрдЦ рдпреЛ рдЗрди-рдореЗрдореЛрд░реА рдбрд╛рдЯрд╛рдмреЗрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд░ рдирдХреНрдХрд▓реА рд╡рд╕реНрддреБрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред

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

рдирдХреНрдХрд▓реА рд╡рд╕реНрддреБрд╣рд░реВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗ рд╡рд░реНрдЧрд▓рд╛рдИ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреНрдиреЗ рдмреБрдЭреЗрдХреЛ рд╣рджрд╕рдореНрдо рдореЛрдбреЗрд▓ рдЧрд░реНрдЫрдиреНред

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

рд╕рдорд╛рдзрд╛рдирддрд┐рд░ рд▓рд╛рдЧреМрдВ

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

рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ рдЕрдк рдЧрд░реНрджреИ

рдкрд╣рд┐рд▓реЛ рдХрд╛рдо рднрдиреЗрдХреЛ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреБ рд╣реЛред рдорд╛рдЗрдХреНрд░реЛ рд╕рд░реНрднрд┐рд╕ рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЪрд░рдгрд╣рд░реВ:

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

рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдкрд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдпреЛ рд╣реБрд▓рд╛рдХреАред рдпреЛ рдкрд╣рд┐рд▓реЗ рдЕрд╡рд╕реНрдерд┐рдд рдерд┐рдпреЛ, рддрд░ рдпреЛ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рд╕реБрд░реВ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рд░ рд╕реНрдЯреНрдпрд╛рдиреНрдбрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рддреИрдирд╛рде рдЧрд░рд┐рдПрдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдкрд░реАрдХреНрд╖рдг рдЧрд░рд┐рдпреЛред рдпреЛ рдЙрдкрдХрд░рдгрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдордирдорд╛рдиреА HTTP(S) рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЧрд░реНрди рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдЕрдкреЗрдХреНрд╖рд╛рд╣рд░реВрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ рдХрд┐ рднрдиреЗрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдкреНрд░рд╢реНрдирд╣рд░реВ рд╕рдЩреНрдХрд▓рдирдорд╛ рдЬреЛрдбрд┐рдПрдХрд╛ рдЫрдиреН, рд░ рд╕рдореНрдкреВрд░реНрдг рд╕рдЩреНрдЧреНрд░рд╣ рдЪрд▓рд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред

рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░рдорд╛ рдорд╛рдЗрдХреНрд░реЛ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ?

рдкрд░реАрдХреНрд╖рдгрдХреЛ рдХреНрд░рдордорд╛, рд╕рдмреИ рдХреБрд░рд╛ рдбрдХрд░рдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ: рдкрд░реАрдХреНрд╖рдг рдЕрдиреНрддрд░реНрдЧрдд рд╕реЗрд╡рд╛, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕, рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдЙрдкрдХрд░рдг, рд░ рдкреЛрд╕реНрдЯрдореНрдпрд╛рди, рд╡рд╛ рдпрд╕рдХреЛ рдХрдиреНрд╕реЛрд▓ рд╕рдВрд╕реНрдХрд░рдг - рдиреНрдпреВрдореНрдпрд╛рдиред

рдбрдХрд░рд▓реЗ рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрдЫ:

  • рд╣реЛрд╕реНрдЯ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдмрд╛рдЯ рд╕реНрд╡рддрдиреНрддреНрд░рддрд╛;
  • рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ: рдбрдХрд░рд▓реЗ рдбрдХрд░ рд╣рдмрдмрд╛рдЯ рдЫрд╡рд┐рд╣рд░реВ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрджрдЫ;
  • рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рдпрд╕рдХреЛ рдореВрд▓ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдлрд░реНрдХрд╛рдЙрдБрджреИ: рдХреЗрд╡рд▓ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╣рдЯрд╛рдЙрдБрджреИред

рдбрдХрд░ - рд░рдЪрдирд╛ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрд▓рд╛рдИ рдПрдХ рднрд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдПрдХрддрд╛рдмрджреНрдз рдЧрд░реНрджрдЫ, рдЗрдиреНрдЯрд░рдиреЗрдЯрдмрд╛рдЯ рдЕрд▓рдЧ, рдЬрд╕рдорд╛ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрд▓реЗ рдбреЛрдореЗрди рдирд╛рдорд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдПрдХрдЕрд░реНрдХрд╛рд▓рд╛рдИ рднреЗрдЯреНрдЯрд╛рдЙрдБрдЫрдиреНред

рдкрд░реАрдХреНрд╖рдг рд╢реЗрд▓ рд▓рд┐рдкрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдиреНрддреНрд░рд┐рдд рдЫред Windows рдорд╛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдЙрди рд╣рд╛рдореА git-bash рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред рдпрд╕рд░реА, рд╡рд┐рдиреНрдбреЛрдЬ рд░ рд▓рд┐рдирдХреНрд╕ рджреБрд╡реИрдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯреИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░реНрдпрд╛рдкреНрдд рдЫред Git рд░ Docker рдкрд░рд┐рдпреЛрдЬрдирд╛ рдорд╛ рд╕рдмреИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдЫрдиреНред рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ Git рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрд╛, git-bash рд╕реНрдерд╛рдкрдирд╛ рд╣реБрдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рд╕рдмреИрд╕рдБрдЧ рддреНрдпреЛ рдкрдирд┐ рд╣реБрдиреНрдЫред

рд▓рд┐рдкрд┐рд▓реЗ рдирд┐рдореНрди рдЪрд░рдгрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ:

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

рдирд┐рдореНрди рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ рдпреА рдЪрд░рдгрд╣рд░реВрдорд╛ рд╕рдВрд▓рдЧреНрди рдЫрдиреН:

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

рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рднреЛрд▓реНрдпреБрдорд╣рд░реВ, рддрдкрд╛рдИрдВрд▓реЗ рдХрдиреНрдЯреЗрдирд░рдорд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдердкреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░ рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреБрдкрд░реНрджреИрдиред рдпрджреНрдпрдкрд┐, рднреЛрд▓реНрдпреБрдорд╣рд░реВ рд╣рд╛рдореНрд░реЛ рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдЫреИрдирдиреН рдХрд┐рдирднрдиреЗ Gitlab CI рдХрд╛рд░реНрдпрд╣рд░реВ рдЖрдлреИрдВ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдорд╛ рдЪрд▓реНрдЫрдиреНред рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕реНрддреЛ рдХрдиреНрдЯреЗрдирд░рдмрд╛рдЯ рдбрдХрд░ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рднреЛрд▓реНрдпреБрдорд╣рд░реВрд▓реЗ рд╣реЛрд╕реНрдЯ рдкреНрд░рдгрд╛рд▓реАрдмрд╛рдЯ рдлреЛрд▓реНрдбрд░рд╣рд░реВ рдорд╛рддреНрд░ рдорд╛рдЙрдиреНрдЯ рдЧрд░реНрджрдЫ, рд░ рдЕрд░реНрдХреЛ рдХрдиреНрдЯреЗрдирд░рдмрд╛рдЯ рд╣реЛрдЗрдиред

рддрдкрд╛рдИрдВрд▓реЗ рд╕рд╛рдордирд╛ рдЧрд░реНрди рд╕рдХреНрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ

рддрдпрд╛рд░реАрдХреЛ рдкреНрд░рддрд┐рдХреНрд╖рд╛рдорд╛

рдЬрдм рд╕реЗрд╡рд╛ рднрдПрдХреЛ рдХрдиреНрдЯреЗрдирд░ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ, рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рдЬрдбрд╛рдирд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрди рддрдпрд╛рд░ рдЫ рднрдиреНрдиреЗ рд╣реЛрдЗрдиред рддрдкрд╛рдИрдВрд▓реЗ рдЬрдбрд╛рди рдЬрд╛рд░реА рд░рд╛рдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХреБрд░реНрдиреБ рдкрд░реНрдЫред

рдпреЛ рд╕рдорд╕реНрдпрд╛ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╣рд▓ рдЧрд░рд┐рдиреНрдЫ рдкрд░реНрдЦрдиреБрд╣реЛрд╕реН, рдЬрд╕рд▓реЗ TCP рдЬрдбрд╛рди рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рдЕрд╡рд╕рд░рдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрд┐рд░рд╣реЗрдХреЛ рдЫред рдпрджреНрдпрдкрд┐, LocalStack рд▓реЗ 502 рдЦрд░рд╛рдм рдЧреЗрдЯрд╡реЗ рддреНрд░реБрдЯрд┐ рдлрд╛рд▓реНрди рд╕рдХреНрдЫред рдердк рд░реВрдкрдорд╛, рдпрд╕рдорд╛ рдзреЗрд░реИ рд╕реЗрд╡рд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН, рд░ рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рддрдпрд╛рд░ рдЫ рднрдиреЗ, рдпрд╕рд▓реЗ рдЕрд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗрд╣реА рдмреЛрд▓реНрджреИрдиред

рдирд┐рд░реНрдгрдп: LocalStack рдкреНрд░рд╛рд╡рдзрд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдЬреБрди SQS рд░ SNS рджреБрд╡реИрдмрд╛рдЯ 200 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреНрдЫред

рд╕рдорд╛рдирд╛рдиреНрддрд░ рдХрд╛рд░реНрдп рджреНрд╡рдиреНрджреНрд╡рд╣рд░реВ

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

рдирд┐рд░реНрдгрдп: рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗ COMPOSE_PROJECT_NAME рдЪрд░рд▓рд╛рдИ рдЕрджреНрд╡рд┐рддреАрдп рдорд╛рдирдорд╛ рд╕реЗрдЯ рдЧрд░реНрдЫред

рд╡рд┐рдиреНрдбреЛрдЬ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ

рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдЪреАрдЬрд╣рд░реВ рдЫрдиреН рдЬреБрди рдо рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдФрдВрд▓реНрдпрд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреБ, рдХрд┐рдирдХрд┐ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдХрд┐рди рджреЗрдЦрд╛ рдкрд░реНрджрдЫ рднрдиреЗрд░ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдпреА рдЕрдиреБрднрд╡рд╣рд░реВ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫрдиреНред

  1. рдХрдиреНрдЯреЗрдирд░рдорд╛ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд▓рд┐рдирдХреНрд╕ рд▓рд╛рдЗрдирдХреЛ рдЕрдиреНрддреНрдп рд╣реБрдиреБрдкрд░реНрдЫред
    рд╢реЗрд▓ CR рдкреНрд░рддреАрдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреНрд░реБрдЯрд┐ рд╣реЛред рддреНрд░реБрдЯрд┐ рд╕рдиреНрджреЗрд╢рдмрд╛рдЯ рдпреЛ рдХреБрд░рд╛ рд╣реЛ рднрдиреЗрд░ рднрдиреНрди рдЧрд╛рд╣реНрд░реЛ рдЫред Windows рдорд╛ рддреНрдпрд╕реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрджрд╛, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЙрдЪрд┐рдд рдкрд╛рда рд╕рдореНрдкрд╛рджрдХ рдЪрд╛рд╣рд┐рдиреНрдЫред рдердк рд░реВрдкрдорд╛, рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдареАрдХрд╕рдБрдЧ рдХрдиреНрдлрд┐рдЧрд░ рд╣реБрдиреБрдкрд░реНрдЫред

рдпреЛ рдХрд╕рд░реА git рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ:

git config core.autocrlf input

  1. Git-bash рд▓реЗ рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕ рдлреЛрд▓реНрдбрд░рд╣рд░реВ рдЕрдиреБрдХрд░рдг рдЧрд░реНрджрдЫ рд░, exe рдлрд╛рдЗрд▓ (docker.exe рд╕рд╣рд┐рдд) рдХрд▓ рдЧрд░реНрджрд╛, Windows рдкрдерд╣рд░реВрд╕рдБрдЧ рдирд┐рд░рдкреЗрдХреНрд╖ рд▓рд┐рдирдХреНрд╕ рдкрдерд╣рд░реВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрджрдЫред рдпрджреНрдпрдкрд┐, рдпрд╕рд▓реЗ рд╕реНрдерд╛рдиреАрдп рдореЗрд╕рд┐рди (рд╡рд╛ рдХрдиреНрдЯреЗрдирд░рдорд╛ рдкрдерд╣рд░реВ) рдорд╛ рдирднрдПрдХрд╛ рдорд╛рд░реНрдЧрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрде рд░рд╛рдЦреНрджреИрдиред рдпреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрд╕рдХреНрд╖рдо рд╣реБрди рд╕рдХреНрджреИрдиред

рдирд┐рд░реНрдгрдп: рдкрдердХреЛ рд╕реБрд░реБрдорд╛ рдердк рд╕реНрд▓реНрдпрд╛рд╢ рдердкреНрдиреБрд╣реЛрд╕реН: //bin рдХреЛ рд╕рдЯреНрдЯрд╛ //binред рд▓рд┐рдирдХреНрд╕рд▓реЗ рддреНрдпрд╕реНрддрд╛ рдорд╛рд░реНрдЧрд╣рд░реВ рдмреБрдЭреНрджрдЫ; рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐, рдзреЗрд░реИ рд╕реНрд▓реНрдпрд╛рд╢рд╣рд░реВ рдПрдЙрдЯреИ рд╣реБрдиреНред рддрд░ git-bash рд▓реЗ рддреНрдпрд╕реНрддрд╛ рдорд╛рд░реНрдЧрд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрджреИрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджреИрдиред

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

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

рдореМрд▓рд┐рдХ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рдиреИ рдерд┐рдпреЛ рдбрдХрдХрд░-рд░рдЪрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЭрдгреНрдбрд╛ рдЫреИрди -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 рдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред

рдирд┐рд░реНрдгрдп: рдпреА рдЕрд╡рд╕реНрдерд╛рдорд╛ рдпрд╕рд▓реЗ рдорджреНрджрдд рдЧрд░реНрди рд╕рдХреНрдЫ MockServer, рдЬрд╕рдорд╛ рд░реЗрдбрд┐рдореЗрдб рдЫрд╡рд┐ рдЫ рдбрдХрд░ рд╣рдмред рдЕрдкреЗрдХреНрд╖рд┐рдд рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд░ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВ HTTP рдЕрдиреБрд░реЛрдзрджреНрд╡рд╛рд░рд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред API рдХрд╛рдЧрдЬрд╛рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдкреЛрд╕реНрдЯрдореНрдпрд╛рдирдмрд╛рдЯ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЧрд░реНрдЫреМрдВред

OAuth рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкрд░реАрдХреНрд╖рдг

рд╣рд╛рдореА OAuth рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫреМрдВ JSON рд╡реЗрдм рдЯреЛрдХрди (JWT)ред рдкрд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореАрд▓реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреЗ OAuth рдкреНрд░рджрд╛рдпрдХ рдЪрд╛рд╣рд┐рдиреНрдЫред

рд╕реЗрд╡рд╛ рд░ OAuth рдкреНрд░рджрд╛рдпрдХ рдмреАрдЪрдХреЛ рд╕рдмреИ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рджреБрдИ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдорд╛ рдЖрдЙрдБрдЫ: рдкрд╣рд┐рд▓реЛ, рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рдПрдХреЛ рдЫред /.well-known/openid-configuration, рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдЮреНрдЬреА (JWKS) рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдмрд╛рдЯ рдареЗрдЧрд╛рдирд╛рдорд╛ рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рдПрдХреЛ рдЫред рдпреЛ рд╕рдмреИ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рд╣реЛред

рдирд┐рд░реНрдгрдп: рд╣рд╛рдореНрд░реЛ рдкрд░реАрдХреНрд╖рдг OAuth рдкреНрд░рджрд╛рдпрдХ рдПрдХ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рд╕рд░реНрднрд░ рд░ рдпрд╕рдорд╛ рджреБрдИ рдлрд╛рдЗрд▓рд╣рд░реВ рдЫрдиреНред рдЯреЛрдХрди рдПрдХ рдкрдЯрдХ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ рд░ Git рдорд╛ рдкреНрд░рддрд┐рдмрджреНрдз рдЫред

SignalR рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реБ

рдкреЛрд╕реНрдЯрдореНрдпрд╛рдирд▓реЗ рд╡реЗрдмрд╕рдХреЗрдЯрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИрдиред SignalR рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред

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

Newman рдЧреНрд░рд╛рд╣рдХ рд╕рдВрдЧ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрджрдЫред рдзреЗрд░реИ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓рд╛рдИ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗ рд╕рдмреИрд▓рд╛рдИ рдбреЗрд▓рд┐рднрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреА рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕реБрд░реБ рдЧрд░рд┐рдПрдХреЛ рдЫред

рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░рдорд╛ рдорд╛рдЗрдХреНрд░реЛ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг

рдзреЗрд░реИ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВ рдЪрд▓рд╛рдЙрди рд╡рд┐рдХрд▓реНрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН -- рдорд╛рдкрди рдбрдХрд░-рдХрдореНрдкреЛрдЬ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдорд╛ред

рдЪрд▓реНрдиреБ рдЕрдШрд┐, рдкреЛрд╕реНрдЯрдореНрдпрд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗ рдЬрдбрд╛рдирд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдмреИ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреНрдЫред
рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдЬрдбрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреЗ рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕рд╛рдордирд╛ рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫреМрдВред рддрд░ рддреНрдпрд╣рд╛рдБ рд╕рд░реНрднрд░рд╣рд░реВ рдерд┐рдП, рд░ рдпрд╣рд╛рдБ рдЧреНрд░рд╛рд╣рдХ рдЫред рдлрд░рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЪрд╛рд╣рд┐рдиреНрдЫред

рдирд┐рд░реНрдгрдп: рдХрдиреНрдЯреЗрдирд░рдорд╛ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдореЗрдХрд╛рдирд┐рдЬреНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдБрдЪрд╣реЛрд╕реНрдЯрдорд╛ рд▓рд┐рдкрд┐рд▓рд╛рдИ рдпрд╕рдХреЛ рд╕реНрдерд┐рддрд┐ рдмрд╛рд░реЗ рдЬрд╛рдирдХрд╛рд░реА рдЧрд░рд╛рдЙрдиред рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рд░реНрдЧрдорд╛ рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ, рднрдиреНрдиреБрд╣реЛрд╕реН /рд╣реЗрд▓реНрдердЪреЗрдХ, рдЬрдбрд╛рди рд╕реНрдерд╛рдкрд┐рдд рд╣реБрдиреЗ рдмрд┐рддреНрддрд┐рдХреИред рдбрдХрд░ рдлрд╛рдЗрд▓рдорд╛ HealthCheck рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

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

рдЯреЛрд▓реА рдбрдХрд░ рдирд┐рд░реАрдХреНрд╖рдг рдХрдиреНрдЯреЗрдирд░рдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐, рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕реНрдерд┐рддрд┐ рд░ рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрдиреЗ рдХреЛрдб рджреЗрдЦрд╛рдЙрдБрдЫред

рдиреНрдпреВрдореНрдпрд╛рдирд▓реЗ рдкреВрд░рд╛ рдЧрд░реЗрдкрдЫрд┐, рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗ рдХреЛрдб реж рдХреЛ рд╕рд╛рде, рдХреНрд▓рд╛рдЗрдиреНрдЯрд╕рдБрдЧ рднрдПрдХрд╛ рд╕рдмреИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╕рдорд╛рдкреНрдд рднрдПрдХреЛ рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫред

Happinnes рдЕрд╡рд╕реНрдерд┐рдд рдЫ

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

рдпреА рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрд▓реЗ 30+ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдЯреЛрд▓реАрд▓рд╛рдИ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВрдмрд╛рдЯ 10+ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рд╣рд░реВрдХреЛ рдЬрдЯрд┐рд▓ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕рд╛рде рдмрд╛рд░рдореНрдмрд╛рд░ рддреИрдирд╛рддреАрд╣рд░реВрдмрд╛рдЯ рдЬреЛрдЧрд╛рдЙрдБрдЫред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди