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

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

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

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

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

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

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

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

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

рдПрдХ рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдпрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреЗ рд╡рд┐рдВрдбреЛрдЬ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд Gitlab CI рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдИ рдЬрд╛рддреА рд╣реИред

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

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

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

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

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

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

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

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

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

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

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

рдПрд╕рдХреНрдпреВрдПрд╕ рдФрд░ рдПрд╕рдПрдирдПрд╕

рдПрд╕рдХреНрдпреВрдПрд╕ рдЖрдкрдХреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдПрдХ рдХрддрд╛рд░ рдореЗрдВ рд░рдЦрдиреЗ рдФрд░ HTTPS рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрддрд╛рд░ рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

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

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

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

рдПрдкреАрдЖрдИ рдЧреЗрдЯрд╡реЗ

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

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

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

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

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

╨Т рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╕реЗ рд▓реЗрдЦ рдЗрди-рдореЗрдореЛрд░реА рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдирдХрд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИред

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

рдореЙрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЙрд╕ рд╡рд░реНрдЧ рдХрд╛ рдореЙрдбрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╡реЗ рдХреЗрд╡рд▓ рдЙрд╕ рд╕реАрдорд╛ рддрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдбреЗрд╡рд▓рдкрд░ рд╕рдордЭ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

рдЪрд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реИрдВ

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

рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

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

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

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

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

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

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

рдбреЙрдХрд░ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ:

  • рдореЗрдЬрдмрд╛рди рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░рддрд╛;
  • рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛: рдбреЙрдХрд░ рдбреЙрдХрд░ рд╣рдм рд╕реЗ рдЫрд╡рд┐рдпрд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ;
  • рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЙрд╕рдХреА рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓реМрдЯрд╛рдирд╛: рдмрд╕ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ред

docker-рд░рдЪрдирд╛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЕрд▓рдЧ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдПрдХрдЬреБрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдбреЛрдореЗрди рдирд╛рдо рд╕реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВред

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

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреА рд╣реИ:

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдВ рдЗрди рдЪрд░рдгреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

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

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

рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рд╕рдорд╕реНрдпрд╛рдПрдБ рдЖ рд╕рдХрддреА рд╣реИрдВ

рддрддреНрдкрд░рддрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ

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

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрднреА-рдХрднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ.рд╢, рдЬреЛ рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд▓реЛрдХрд▓рд╕реНрдЯреИрдХ 502 рдЦрд╝рд░рд╛рдм рдЧреЗрдЯрд╡реЗ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдореЗрдВ рдХрдИ рд╕реЗрд╡рд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рддреИрдпрд╛рд░ рд╣реИ, рддреЛ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИред

рд╕рдорд╛рдзрд╛рди: рд▓реЛрдХрд▓рд╕реНрдЯреИрдХ рдкреНрд░реЛрд╡рд┐рдЬрдирд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдПрд╕рдХреНрдпреВрдПрд╕ рдФрд░ рдПрд╕рдПрдирдПрд╕ рджреЛрдиреЛрдВ рд╕реЗ 200 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреА рд╣реИред

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

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

рд╕рдорд╛рдзрд╛рди: рд╕реНрдХреНрд░рд┐рдкреНрдЯ COMPOSE_PROJECT_NAME рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рддреА рд╣реИред

рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ

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

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

рдЗрд╕ рдкреНрд░рдХрд╛рд░ git рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

git config core.autocrlf input

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

рд╕рдорд╛рдзрд╛рди: рдкрде рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрд▓реИрд╢ рдЬреЛрдбрд╝реЗрдВ: /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}}, рдЬрд┐рд╕реЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рдорд╛рди рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд▓реЛрдХрд▓рд╕реНрдЯреИрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╣рдпреЛрдЧ

рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рдХреА рдЬрд╛ рд░рд╣реА рд╕реЗрд╡рд╛ рдХрд┐рд╕реА SQS рдХрддрд╛рд░ рдХреЛ рдкрдврд╝рддреА рдпрд╛ рд▓рд┐рдЦрддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдХреЛ рднреА рдЗрд╕ рдХрддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рдорд╛рдзрд╛рди: рдкреЛрд╕реНрдЯрдореИрди рд╕реЗ рд▓реЛрдХрд▓рд╕реНрдЯреИрдХ рддрдХ рдЕрдиреБрд░реЛрдзред

AWS рд╕реЗрд╡рд╛ API рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ, рдЬреЛ SDK рдХреЗ рдмрд┐рдирд╛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдпрджрд┐ рдХреЛрдИ рд╕реЗрд╡рд╛ рдХрд┐рд╕реА рдХрддрд╛рд░ рдореЗрдВ рд▓рд┐рдЦрддреА рд╣реИ, рддреЛ рд╣рдо рдЙрд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрджреЗрд╢ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред

рдпрджрд┐ рд╕реЗрд╡рд╛ рдПрд╕рдПрдирдПрд╕ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрддреА рд╣реИ, рддреЛ рддреИрдпрд╛рд░реА рдХреЗ рдЪрд░рдг рдореЗрдВ рд▓реЛрдХрд▓рд╕реНрдЯреИрдХ рднреА рдПрдХ рдХрддрд╛рд░ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдПрд╕рдПрдирдПрд╕ рд╡рд┐рд╖рдп рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддрд╛ рд╣реИред рдлрд┐рд░ рдпрд╣ рд╕рдм рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдмрд╛рддреЛрдВ рдкрд░ рдЖ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рд╕реЗрд╡рд╛ рдХреЛ рдХрддрд╛рд░ рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдкрд┐рдЫрд▓реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд░рдг рдореЗрдВ рд╣рдо рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рдкрд░реАрдХреНрд╖рдг рдХреЗ рддрд╣рдд рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рд╕реЗ рдЙрддреНрдкрдиреНрди HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг

рдХреБрдЫ рд╕реЗрд╡рд╛рдПрдБ AWS рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде HTTP рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдФрд░ рдХреБрдЫ AWS рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд▓реЛрдХрд▓рд╕реНрдЯреИрдХ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИрдВред

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

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

рд╣рдо OAuth рдФрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ JSON рд╡реЗрдм рдХреИрдо (JWT). рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ OAuth рдкреНрд░рджрд╛рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

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

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

рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдкрд░реАрдХреНрд╖рдг рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ

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

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

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

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

рдПрдХрд╛рдзрд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ --рдкреИрдорд╛рдирд╛ рдбреЙрдХрд░-рдХрдВрдкреЛрдЬрд╝ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ред

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

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

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

рдЯреАрдо рдбреЛрдХрд░ рдирд┐рд░реАрдХреНрд╖рдг рдХрдВрдЯреЗрдирд░ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐, рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕реНрдерд┐рддрд┐ рдФрд░ рдирд┐рдХрд╛рд╕ рдХреЛрдб рджрд┐рдЦрд╛рддрд╛ рд╣реИред

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

рд╣реИрдкреНрдкреАрдиреЗрд╕ рдореМрдЬреВрдж рд╣реИ

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

рдпреЗ рдкрд░реАрдХреНрд╖рдг 30+ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдПрдХ рдЯреАрдо рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рддреИрдирд╛рддреА рдХреЗ рд╕рд╛рде 10+ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреА рдЬрдЯрд┐рд▓ рдмрд╛рддрдЪреАрдд рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрд╛рддреЗ рд╣реИрдВред

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

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