рдХреИрдЪрд░ рдХреЗ рд╕рд╛рде рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдХреА рдПрдВрдб-рдЯреВ-рдПрдВрдб рдЯреЗрд╕реНрдЯрд┐рдВрдЧ

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


рдкрд░реАрдХреНрд╖рдг рдХреНрдпреЛрдВ?


рдореБрдЭреЗ рдИ 2 рдИ рдкрд░реАрдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдорд╛рд░реНрдЯрд┐рди рдлрд╛рдЙрд▓рд░ рд╕рд░рд▓ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЗрд╕реЗ рдЯрд╛рд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ ред


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


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


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


рдФрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рд╣реЛрдВрдЧреЗред


рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреНрдпреЛрдВ?


рджрд░рдЕрд╕рд▓ред рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕реНрдерд╛рди рдкрд░, рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрд┐рддрд╛рдирд╛ рдмрд╣реБрдд рд▓рдВрдмрд╛, рдХрдард┐рди рдФрд░ рдорд╣рдВрдЧрд╛ рд╣реИред рдкреНрд░рдгрд╛рд▓реА рдмрдбрд╝реА рдирд╣реАрдВ рд╣реИ (рдПрдХ рдЖрдо рдХрдлрд╝реНрдХрд╛ рдХреЗ рд╕рд╛рде 10-15 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд░рд╡рд┐рд╕)ред рд╕реАрдЯреАрдУ рдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ "рдкрд░реАрдХреНрд╖рдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред" рдХрдИ рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдкрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред


рдпрд╣ рдХреИрд╕реЗ рджреЗрдЦрд╛ (рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛):


  1. рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рд╣рдордд рд╣реИрдВ (рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)
  2. рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░реЗрдВ
  3. рд░рд┐рдореЛрдЯ рдХрд╛рдлреНрдХрд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ (dmz рдореЗрдВ рдбрдмрд▓ ssh)
  4. K8s рд▓реЙрдЧ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
  5. рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдФрд░ рдХрдлрд╝реНрдХрд╛ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ (рдзрдиреНрдпрд╡рд╛рдж рднрдЧрд╡рд╛рди рдЬреЛрдВрд╕)
  6. рд▓реЙрдЧ рджреЗрдЦреЗрдВ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

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


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


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


рдирдП рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкрдВрдЬреАрдХрд░рдг рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рдерд╛ (рд▓рдЧрднрдЧ):


  1. рдХреЛрдИ рднреА рдбреЗрдЯрд╛ (рдирд╛рдо, рдореЗрд▓ рдЖрджрд┐) рджрд░реНрдЬ рдХрд░реЗрдВ
  2. рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдирд╛ (рдкрддрд╛, рдлреЛрди, рдХреЛрдИ рдХрд░ рдЬрд╛рдирдХрд╛рд░реА)
  3. рдмреИрдВрдХ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдирд╛ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмреИрдВрдХ рдбреЗрдЯрд╛)
  4. 20-40 рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдВ (рдХреНрдпрд╛ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджрд░реНрдж рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ?)
  5. IDNow рдкрд╣рдЪрд╛рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдУ (рдзрдиреНрдпрд╡рд╛рдж, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рджреЗрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдзрдиреНрдпрд╡рд╛рдж, рдордВрдЪ рдкрд░ рдпрд╣ рд▓рдЧрднрдЧ 5 рдорд┐рдирдЯ рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХрднреА-рдХрднреА рдЕрддрд┐рднрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ)
  6. рдЗрд╕ рдХрджрдо рдкрд░, рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдЦрд╛рддрд╛ рдЦреЛрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ ssh рджреНрд╡рд╛рд░рд╛ kafka рдкрд░ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдПрдХ рдореЙрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдпрд╣ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ рдХрд┐ рдЦрд╛рддрд╛ рдЦреБрд▓рд╛ рд╣реИ)
  7. рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдореЙрдбрд░реЗрдЯрд░ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддреЗ рдореЗрдВ рдПрдХ рдФрд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рдкрд░ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВред

рд╕реБрдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдВрдЬреАрдХреГрдд рд╣реИ! рдЕрдм рдорд░рд╣рдо рдореЗрдВ рдереЛрдбрд╝рд╛ рдЙрдбрд╝рдирд╛: рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ 1 рд╕реЗ рдЕрдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдХрднреА-рдХрднреА рдкрд░реАрдХреНрд╖рдг рдкрд╣рд▓реА рдмрд╛рд░ рд╡рд┐рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВред


рдФрд░ рд╡реНрдпрд╡рд╕рд╛рдп рдЯреАрдо рд╕реЗ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рд╕рднреА рдХреЛ рдирд┐рдореНрди рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


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


рдХреБрдЫ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ (рдЖрдорддреМрд░ рдкрд░ рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░) рдХреЛ рдХрд╛рдлреНрдХрд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВред рдФрд░ 80+ рдЕрдХреНрд╖рд░реЛрдВ рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдПрдХ рдмрдЧ рдХреЗ рд╕рд╛рде (рд╣рд░ рдХреЛрдИ tmux рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдерд╛)ред


рдкреЗрд╢реЗрд╡рд░реЛрдВ :


  • рдХреБрдЫ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ / рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╕реАрдзреЗ рдЪрд▓ рд░рд╣реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред
  • рдЙрдЪреНрдЪ рдпреЛрдЧреНрдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рд╕рд╕реНрддрд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдЗрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)

рд╡рд┐рдкрдХреНрд╖ :


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

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреИрд╕реЗ рдХрд░реЗрдВ?


рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдкрдврд╝рдХрд░ рдЕрдкрдирд╛ рд╕рд┐рд░ рд╣рд┐рд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрд╣рддреЗ рд╣реИрдВ: "рд╣рд╛рдБ, рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ," рддреЛ рдЖрдкрдХреЛ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реЛрдЧреАред


рдШрд░ рдХрд╛ рдмрдирд╛ e2e рдкрд░реАрдХреНрд╖рдг рджреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реНрд╡рддрдВрддреНрд░ рдереЗ:


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

рдЬреЛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗред рдХреЛрдИ рд╕рдорд╕реНрдпрд╛?


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


рдкреЗрд╢реЗрд╡рд░реЛрдВ :


  • рд╕реНрд╡рдЪрд╛рд▓рди

рд╡рд┐рдкрдХреНрд╖ :


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

рдХреНрдпрд╛ рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ?


рдмреЗрд╢рдХ, рд╕рд┐рд░реНрдл рдмреАрдбреАрдбреА рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рджреЗрдЦреЗрдВред рдПрдХ рдХрдХрдбрд╝реА рд╣реИ , рдПрдХ рдЧреЗрдЬ рд╣реИ ред


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


рдХрджрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднреА рдПрдХ рдЕрд▓рдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╣реИрдВ рдФрд░ рддреГрддреАрдп-рдкрдХреНрд╖ рдЙрддреНрдкрд╛рджреЛрдВ (рдХрдХрдбрд╝реА / рдЧреЗрдЬ / ...) рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реИрдВред


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:


Customer sign-up ================ * Go to sign up page Customer sign-up ---------------- tags: sign-up, customer * Sign up a new customer with name "John" email "jdoe@test.de" and "password" * Check if the sign up was successful 

рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:


 @Step("Sign up as <customer> with email <test@example.com> and <password>") public void signUp(String customer, String email, String password) { WebDriver webDriver = Driver.webDriver; WebElement form = webDriver.findElement(By.id("new_user")); form.findElement(By.name("user[username]")).sendKeys(customer); form.findElement(By.name("user[email]")).sendKeys(email); form.findElement(By.name("user[password]")).sendKeys(password); form.findElement(By.name("user[password_confirmation]")).sendKeys(password); form.findElement(By.name("commit")).click(); } @Step("Check if the sign up was successful") public void checkSignUpSuccessful() { WebDriver webDriver = Driver.webDriver; WebElement message = webDriver.findElements(By.className("message")); assertThat(message.getText(), is("You have been signed up successfully!")); } 

рдкреВрд░реНрдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдпрд╣рд╛рдБ


рдкреЗрд╢реЗрд╡рд░реЛрдВ :


  • рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреЛ рдорд╛рдирд╡-рдкрдардиреАрдп рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
  • рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП

рд╡рд┐рдкрдХреНрд╖ :


  • рдкреНрд░рдмрдВрдзрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рдкрдврд╝реЗрдВрдЧреЗ рдФрд░ рд▓рд┐рдЦреЗрдВрдЧреЗ
  • рдЖрдкрдХреЛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдФрд░ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреЛрдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдФрд░ рдпрд╣ рдХреЛрдб рдФрд░ рд╕рдВрдкрд╛рджрди рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реИ)

рдЕрдЪреНрдЫрд╛, рдлрд┐рд░ рдХреИрдЪрд░ рдХреНрдпреЛрдВ?


рдмреЗрд╢рдХ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред


рдбреЗрд╡рд▓рдкрд░ рдХреЗрд╡рд▓ json / yaml рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдкрдХрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ рдЙрдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрджрдо рд╣реЛрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


 steps: - http: post: url: '127.0.0.1/save_data' body: {key: '1', data: 'foo'} - postgres: request: conf: 'dbname=test user=test host=localhost password=test' query: 'select * from test where id=1' 

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


 variables: bonus: 5000 initial_value: 1000 steps: - http: post: url: '{{ user_service }}/sign_up' body: {username: 'test_user_{{ RANDOM_INT }}', data: 'stub'} register: {user_id: '{{ OUTPUT.uuid }}' - kafka: consume: server: '{{ kafka }}' topic: '{{ new_users_topic }}' where: equals: {the: '{{ MESSAGE.uuid }}', is: '{{ user_id }}'} register: {balance: '{{ OUTPUT.initial_balance }}'} 

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЖрдк рдкрд░реАрдХреНрд╖рдг рдЪрд░рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:


 - check: # check user's initial balance equals: {the: '{{ balance }}', is: '{{ initial_value + bonus }}'} 

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


 include: file: register_user.yaml as: sign_up steps: # .... some steps - run: include: sign_up # .... some steps 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд╛рд▓рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрди рдХреЗ рдЗрдВрддрдЬрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ (рд╕реЗрд╡рд╛ рд╢реБрд░реВ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ)ред


рд░реЗрдбреА-рдореЗрдб рдмрд┐рд▓реНрдЯ-рдЗрди рд╕реНрдЯреЗрдкреНрд╕ рдФрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ (рд╕рд┐рд░реНрдл рдПрдХреНрд╕рдЯрд░реНрдирд▓рд╕реНрдЯ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ) рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ:


 #!/bin/bash one=$(echo ${1} | jq -r '.add.the') two=$(echo ${1} | jq -r '.add.to') echo $((${one} + ${two})) 

рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:


 --- variables: one: 1 two: 2 steps: - math: add: {the: '{{ one }}', to: '{{ two }}'} register: {sum: '{{ OUTPUT }}'} 

рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдбреЙрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рд╕рд╛рде рд╣реА рдореМрдЬреВрджрд╛ рдкрд░рд┐рд╡реЗрд╢ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрд░рд╛рдерди / K8s рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓ рдореИрдВ рдПрдХ рдмреИрдХреЗрдВрдб (AnsibleTower рдХреЗ рд╕рдорд╛рди) рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдФрд░ рднреА рдЖрд╕рд╛рди рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред


рдкреЗрд╢реЗрд╡рд░реЛрдВ :


  • рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдХреЗрд╡рд▓ рдХрд╕реНрдЯрдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ)
  • рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ (рдкрд╣рдирд╛рд╡рд╛ рдореЗрдВ)
  • рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╢)

рд╡рд┐рдкрдХреНрд╖ :


  • рдЧреИрд░-рдорд╛рдирд╡-рдкрдардиреАрдп рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ (BDD рдЯреВрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ)

рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп


рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЛ рд▓рд┐рдЦрд╛ рдерд╛, рддреЛ рдореИрдВ рд╕рд┐рд░реНрдл рдЙрд╕ рд╕рдордп рдХреЛ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреЛ рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реВрдВред рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдирдИ рдХрдВрдкрдиреА рдХреЛ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рд▓рд┐рдЦрдирд╛ (рдпрд╛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛) рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред


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


upd


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


  • рдПрдВрдб-рдЯреВ-рдПрдВрдб рдкрд░реАрдХреНрд╖рдг рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реИрдВред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдПрдоред рдлрд╛рдЙрд▓рд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдкрд░реАрдХреНрд╖рдг рдмреИрдХреЗрдВрдб рдкрд░рд┐рдпреЛрдЬрдирд╛ (рдорд╛рдирдХ tests рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛) рдореЗрдВ рд╣реИрдВ рдФрд░ рд╣рд░ рдмрд╛рд░ рд╕реАрдЖрдИ рдореЗрдВ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдФрд░ e2e рдкрд░реАрдХреНрд╖рдг рдПрдХ рдЕрд▓рдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рд╡реЗ рдЖрдорддреМрд░ рдкрд░ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрддреЗ рд╣реИрдВ, рд╕рднреА рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛рдУрдВ рдХреА рдмрд╛рддрдЪреАрдд рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдХреЛрдб (рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред
  • рдЖрдкрдХреЛ рдПрдХреАрдХрд░рдг (рдФрд░ рдиреАрдЪреЗ) рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдорд╣рдВрдЧрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ YP рдкрд░ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ 2 рдпрд╛ рдЕрдзрд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдлреИрд▓реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • рдХреИрдЪрд░ рднреА рдПрдХ рдмреАрдбреАрдбреА рд╣реИред рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЧреЗрдЬ / рдХрдХрдбрд╝реА рдкрд░ рдореБрдЦреНрдп рд▓рд╛рдн рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рд╛ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИред рдЕрдВрддрд┐рдо рдХрдВрдкрдиреА рдореЗрдВ, рдореИрдВрдиреЗ рдорд╛рдирдХ рдШрдЯрдХреЛрдВ рдкрд░ рд╕рднреА 4 рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗ, рдмрд┐рдирд╛ рдХреБрдЫ рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд┐рдПред рддрджрдиреБрд╕рд╛рд░, рдпреЛрдЧреНрдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ (рдФрд░ рдРрд╕реЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХреА рдХреАрдордд) рдХрдо рд╣реЛрдЧреАред рдХреЗрд╡рд▓ json / yaml рдХреЗ рдЬреНрдЮрд╛рди рдФрд░ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • рдХреИрдЪрд░ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреИрдЪрд░-рдбреАрдПрд╕рдПрд▓ рд╕реАрдЦрдирд╛ рд╣реЛрдЧрд╛ред рдХрд╛рд╢, рдпрд╣ рд╕рдЪ рд╣реИред рдкрд╣рд▓реЗ рдореИрдВ рдорд╛рдЗрдХреНрд░реЛрдлрд╝реЛрди рд╕реЗ рд╕рд╣реА, рдЦреБрдж рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╡реЗ рддрдм рдореБрдЭреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЖрдЧ рд▓рдЧрд╛ рджреЗрдВрдЧреЗ;) рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдХреИрдЪрд░ рдбреАрдПрд╕рдПрд▓ рдорд╛рдирдХ рдЬреЛрдВрд╕ / рдпрд╛рдореНрд▓ рдФрд░ рд╕реНрдЯреЗрдк рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдиреНрд╕ рд╣реИред рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рд╣реИред
  • рдЖрдк рдорд╛рдирдХ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдЦреБрдж рдХреА рдХреБрдЫ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рддрдХрдиреАрдХреЛрдВ рдФрд░ рдкрд░рдорд╛рдгреБ рд╣рдерд┐рдпрд╛рд░реЛрдВ рдФрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЯреАрдо рд╣реИред рдФрд░ рдЕрдЧрд░ рдЬрд╛рд╡рд╛ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП junit + testcontainers рд╕реНрдкрд╖реНрдЯ рдкрд╕рдВрдж рд╣реИ, рддреЛ erlang рдЯреАрдо рдХреБрдЫ рдФрд░ рдЪреБрдиреЗрдЧреАред рд╢реАрд░реНрд╖ рдкрд░ 30+ рдЯреАрдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реА рдХрдВрдкрдиреА рдореЗрдВ, рд╡реЗ рддрдп рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдирдП рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ / рдХреНрдпреВрдП рдЯреАрдо рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рдПрдВред рдХреНрдпрд╛ рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдЗрд╕ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдореЗрдВ рдХрд┐рддрдиреЗ рдЦреБрд╢ рд╣реИрдВ?
  • рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ 4-5 рдИ 2 рдИ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ, рддреЛ рдЖрдк рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рддрд░реНрдХ рд╕рдордп рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ 2-4 рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рд╕реАрдзреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдШрдЯрдХреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ рдЖрдк рдЕрдкрдиреЗ рдХреИрдЪрд░ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдмрд╕ рдЗрддрдирд╛ рд▓рдЪреАрд▓рд╛ рдирд╣реАрдВред рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдореБрдЭреЗ 4 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рдЧреЗ;)

Source: https://habr.com/ru/post/hi435452/


All Articles