рдбрдХрд░ рдЦреЗрд▓реМрдирд╛ рд╣реЛ рдХрд┐ рд╣реЛрдЗрди? рд╡рд╛ рдпреЛ рдЕрдЭреИ рдкрдирд┐ рд╕рддреНрдп рд╣реЛ?

рдирдорд╕реНрдХрд╛рд░!

рдо рд╕рд╛рдБрдЪреНрдЪреИ рд╡рд┐рд╖рдпрд╡рд╕реНрддреБрдорд╛ рдкреБрдЧреНрди рдЪрд╛рд╣рдиреНрдЫреБ, рддрд░ рдпреЛ рдореЗрд░реЛ рдХрдерд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдереЛрд░реИ рдмрддрд╛рдЙрди рдЕрдЭ рд╕рд╣реА рд╣реБрдиреЗрдЫ:

рдкреНрд░рд╡реЗрд╢

рдо рд╕рд░реНрднрд░рдорд╛ рдлреНрд░рдиреНрдЯрдПрдиреНрдб рдПрдХрд▓ рдкреГрд╖реНрда рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ, рд╕реНрдХрд╛рд▓рд╛/рдЬрд╛рднрд╛ рд░ рдиреЛрдбрдЬрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдЕрдиреБрднрд╡ рднрдПрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реБрдБред

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

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

рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рд░рдгрд╣рд░реВ

рдореИрд▓реЗ рдХрд┐рди рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдВ? рд╕рд╛рдпрдж рдирд┐рдореНрди рдХрд╛рд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐:

  • рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕реБрд░реБрд╡рд╛рдд, 99% рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН
  • рдлреНрд░рдиреНрдЯрдПрдиреНрдб рд╡рд┐рддрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ nginx рд╕реБрд░реБ рдЧрд░реНрджреИ рд░ рдмреНрдпрд╛рдХрдЗрдиреНрдбрдорд╛ рдкреНрд░реЛрдХреНрд╕реА рдЧрд░реНрджреИ
  • рддрдкрд╛рдИрд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдбрдХрд░ рдЫрд╡рд┐рдорд╛ рдкреНрдпрд╛рдХреЗрдЬ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдпрд╕ рддрд░рд┐рдХрд╛рд▓реЗ рдореЗрд░реЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫ рдЬрд╣рд╛рдБ рдбрдХрд░ рдЕрд╡рд╕реНрдерд┐рдд рдЫ, рд╡рд┐рддрд░рдг рд╕рдорд╕реНрдпрд╛ рддреБрд░реБрдиреНрддреИ рд╣рд▓ рд╣реБрдиреНрдЫред
  • рдмрдХреНрд╕ рдмрд╛рд╣рд┐рд░ рд╕реЗрд╡рд╛ рдЦреЛрдЬ, рддрдкрд╛рдИрдВ microservices рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдкреНрд░рддреНрдпреЗрдХ рдХрдиреНрдЯреЗрдирд░ (рд╕рд╛рдорд╛рдиреНрдп рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдЬрдбрд╛рди) рд╕рдЬрд┐рд▓реИ рдПрдХ рдЙрдкрдирд╛рдо рдорд╛рд░реНрдлрдд рдЕрд░реНрдХреЛ рдкреБрдЧреНрди рд╕рдХреНрдЫ, рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ
  • рдХрдиреНрдЯреЗрдирд░ рдмрдирд╛рдЙрди рд░ рдпрд╕рдорд╛ "рдЦреЗрд▓реНрдиреБ" рд░рдорд╛рдЗрд▓реЛ рдЫред

рдорд▓рд╛рдИ рд╕рдзреИрдВ рдбрдХрд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рдорди рдкрд░реНрджреИрди:

  • рдореЗрд░реЛ рдЖрд╡реЗрджрди рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдорд▓рд╛рдИ рд╕рд░реНрднрд░рдорд╛ рдбрдХрд░ рдЪрд╛рд╣рд┐рдиреНрдЫред рдпрджрд┐ рдореЗрд░реЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ jre рд╡рд╛ nodejs рдорд╛ рдЪрд▓реНрдЫрдиреН рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рддрд╛рд╡рд░рдг рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рд░реНрднрд░рдорд╛ рдЫ рднрдиреЗ рдорд▓рд╛рдИ рдХрд┐рди рдпреЛ рдЖрд╡рд╢реНрдпрдХ рдЫ?
  • рдпрджрд┐ рдо рдореЗрд░реЛ (рдирд┐рдЬреА) рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдирд┐рд░реНрдорд┐рдд рдЫрд╡рд┐ рд░рд┐рдореЛрдЯ рд╕рд░реНрднрд░рдорд╛ рдЪрд▓рд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреБ рднрдиреЗ, рдорд▓рд╛рдИ рдореЗрд░реЛ рдЖрдлреНрдиреИ рдбрдХрд░ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдЪрд╛рд╣рд┐рдиреНрдЫ, рдорд▓рд╛рдИ рдХрддреИ рдХрд╛рдо рдЧрд░реНрди рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЪрд╛рд╣рд┐рдиреНрдЫ рд░ рдореИрд▓реЗ https рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдкрдирд┐ рдЖрд╡рд╢реНрдпрдХ рдЫ, рдХрд┐рдирднрдиреЗ рдбрдХрд░ рдХреНрд▓реАрд▓реЗ рдорд╛рддреНрд░ https рдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫред рдУрд╣реЛ... рддреНрдпрд╣рд╛рдБ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЫрдиреН, рдЕрд╡рд╢реНрдп рдкрдирд┐, рдЫрд╡рд┐рд▓рд╛рдИ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдмрдЪрдд рдЧрд░реНрди docker save рд░ рдХреЗрд╡рд▓ scp рдорд╛рд░реНрдлрдд рдЫрд╡рд┐ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН... рддрд░ рддреНрдпреЛ рдзреЗрд░реИ рд╢рд░реАрд░рдХреЛ рдЪрд╛рд▓ рд╣реЛред рд░ рдпрд╕ рдмрд╛рд╣реЗрдХ, рдпреЛ рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рднрдгреНрдбрд╛рд░ рджреЗрдЦрд╛ рдкрд░реНрджрд╛ рд╕рдореНрдо "рдмрд╕рд╛рдЦреА" рд╕рдорд╛рдзрд╛рди рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ
  • docker-composeред рдпреЛ рдХреЗрд╡рд▓ рдХрдиреНрдЯреЗрдирд░ рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпрддрд┐ рдиреИред рдЙрд╕рд▓реЗ рдЕрд░реВ рдХреЗрд╣реА рдЧрд░реНрди рд╕рдХреНрджреИрдиред Docker-compose рдпрд╕рдХреЛ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдХреЛ рдЧреБрдЪреНрдЫрд╛ рдЫ, рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ред рдпреЛ рдЬрддрд┐рд╕реБрдХреИ рдШреЛрд╖рдгрд╛рддреНрдордХ рднрдП рдкрдирд┐, рдо рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХрд╛рдЧрдЬрд╛рдд рдкрдвреНрди рдЪрд╛рд╣рдиреНрдиред рдорд▓рд╛рдИ рдЕрд░реВ рдХрддреИ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред
  • рдЯреЛрд▓реАрдорд╛ рдХрд╛рдо рдЧрд░реНрджрд╛, рдзреЗрд░реИрдЬрд╕реЛ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓реЗ рдбрдХрд░рдлрд╛рдЗрд▓ рдзреЗрд░реИ рдмрд╛рдЩреНрдЧреЛ рд░реВрдкрдорд╛ рд▓реЗрдЦреНрдЫрдиреН, рдпреЛ рдХрд╕рд░реА рдХреНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреНрдиреЗ рдмреБрдЭреНрджреИрдирдиреН, рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рд╕рдмреИ рдХреБрд░рд╛ рдердкреНрдиреБрд╣реЛрд╕реН рд░ рдЫрд╡рд┐рдорд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди, рдбрдХрд░рд╣рдм рд╡рд╛ рдирд┐рдЬреА рднрдгреНрдбрд╛рд░рдорд╛ рдирднрдПрдХрд╛ рдЫрд╡рд┐рд╣рд░реВрдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдХреЗрд╣реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред docker-compose рдбрд╛рдЯрд╛рдмреЗрд╕ рднрдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рд░ рдХреЗрд╣реА рдкрдирд┐ рд░рд╣рдБрджреИрдиред рдПрдХреИ рд╕рдордпрдорд╛, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЧрд░реНрд╡рдХрд╛ рд╕рд╛рде рдШреЛрд╖рдгрд╛ рдЧрд░реНрдЫрдиреН рдХрд┐ рдбрдХрд░ рд░рд╛рдореНрд░реЛ рдЫ, рд╕рдмреИ рдХреБрд░рд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ, рд░ HR рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЦрд╛рд▓реА рдард╛рдЙрдБрдорд╛ рд▓реЗрдЦреНрдЫ: "рд╣рд╛рдореА рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫреМрдВ рд░ рд╣рд╛рдореАрд▓рд╛рдИ рдпрд╕реНрддреЛ рдХрд╛рд░реНрдп рдЕрдиреБрднрд╡ рднрдПрдХреЛ рдЙрдореНрдореЗрджреНрд╡рд╛рд░ рдЪрд╛рд╣рд┐рдиреНрдЫред"
  • рдо рдбрдХрд░рдорд╛ рд╕рдмреИ рдХреБрд░рд╛ рдЙрдард╛рдЙрдиреЗ рдмрд╛рд░реЗ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рддрд╛рдбрд┐рдд рдЫреБ: postgresql, kafka, redisред рдпреЛ рджреБрдГрдЦрдХреЛ рдХреБрд░рд╛ рд╣реЛ рдХрд┐ рд╕рдмреИ рдХреБрд░рд╛ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрджреИрди, рд╕рдмреИ рдХреБрд░рд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд░ рдЪрд▓рд╛рдЙрди рд╕рдЬрд┐рд▓реЛ рдЫреИрдиред рдпреЛ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЫ, рд░ рд╡рд┐рдХреНрд░реЗрддрд╛рд╣рд░реВ рдЖрдлреИрдВрд▓реЗ рд╣реЛрдЗрдиред рд░ рд╡реИрд╕реЗ, рдкреНрд░рд╢реНрди рддреБрд░реБрдиреНрддреИ рдЙрдареНрдЫ: рд╡рд┐рдХреНрд░реЗрддрд╛рд╣рд░реВ рдбрдХрд░рдорд╛ рдЖрдлреНрдирд╛ рдЙрддреНрдкрд╛рджрдирд╣рд░реВ рдХрд╛рдпрдо рд░рд╛рдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЪрд┐рдиреНрддрд╛ рдЧрд░реНрджреИрдирдиреН, рдпреЛ рдХрд┐рди рд╣реЛ, рд╕рд╛рдпрдж рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рдХреЗрд╣рд┐ рдерд╛рд╣рд╛ рдЫ?
  • рдкреНрд░рд╢реНрди рд╕рдзреИрдВ рдХрдиреНрдЯреЗрдирд░ рдбрд╛рдЯрд╛ рдХреЛ рджреГрдврддрд╛ рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдЙрдареНрдЫред рд░ рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдЗрдБ рд╕реЛрдЪреНрдиреБрд╣реБрдиреНрдЫ, рдХреЗ рдореИрд▓реЗ рд╣реЛрд╕реНрдЯ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдорд╛рдЙрдиреНрдЯ рдЧрд░реНрдиреЗ рд╡рд╛ рдбрдХрд░ рднреЛрд▓реНрдпреБрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рд╡рд╛ рдбрд╛рдЯрд╛ рдХрдиреНрдЯреЗрдирд░ рдмрдирд╛рдЙрдиреБ рдкрд░реНрдЫ рдЬреБрди рдЕрд╣рд┐рд▓реЗ рдЫ deprecated? рдпрджрд┐ рдореИрд▓реЗ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдорд╛рдЙрдиреНрдЯ рдЧрд░реНрдЫреБ рднрдиреЗ, рдХрдиреНрдЯреЗрдирд░рдорд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ uid рд░ gid рдХрдиреНрдЯреЗрдирд░ рд╕реБрд░реБ рдЧрд░реНрдиреЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдЖрдИрдбреАрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ рднрдиреНрдиреЗ рдХреБрд░рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЕрдиреНрдпрдерд╛ рдХрдиреНрдЯреЗрдирд░рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдореВрд▓ рдЕрдзрд┐рдХрд╛рд░рд╣рд░реВрд╕рдБрдЧ рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреЗрдЫрдиреНред рдпрджрд┐ рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреБ volume рддреНрдпрд╕рдкрдЫрд┐ рдбрд╛рдЯрд╛ рдХреЗрд╡рд▓ рдХреЗрд╣рд┐ рдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреЗрдЫ /usr/* рд░ рдкрд╣рд┐рд▓реЛ рдХреЗрд╕рдорд╛ рдЬрд╕реНрддреИ uid рд░ gid рд╕рдБрдЧ рдЙрд╕реНрддреИ рдХрдерд╛ рд╣реБрдиреЗрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рд╕реБрд░реБ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд▓реЗ рдХрд╛рдЧрдЬрд╛рдд рдкрдвреНрдиреБ рдкрд░реНрдЫ рд░ рдкреНрд░рд╢реНрдирдХреЛ рдЬрд╡рд╛рдл рдЦреЛрдЬреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ: "рдХреБрди рдХрдиреНрдЯреЗрдирд░ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реВрдорд╛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд▓реЗ рдлрд╛рдЗрд▓рд╣рд░реВ рд▓реЗрдЦреНрдЫ?"

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

Ansible рдХреЛ рдкрд░рд┐рдЪрдп

рднрд░реНрдЦрд░реИ (рддреАрди рдорд╣рд┐рдирд╛ рдЕрдШрд┐), рдореИрд▓реЗ рдПрдХ DevOps рдЯреЛрд▓реАрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реЗрдВ, рдЬрд╕рдХреЛ рд▓рдЧрднрдЧ рдкреНрд░рддреНрдпреЗрдХ рд╕рджрд╕реНрдпрдХреЛ рдбрдХрд░рдкреНрд░рддрд┐ рдирдХрд╛рд░рд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдерд┐рдпреЛред рдХрд╛рд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐:

  • docker рдирд┐рдпрдо iptables (рдпрджреНрдпрдкрд┐ рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ daemon.json рдорд╛ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ)
  • рдбрдХрд░ рдмрдЧреНрдЧреА рдЫ рд░ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдЙрддреНрдкрд╛рджрдирдорд╛ рдЪрд▓рд╛рдЙрдиреЗ рдЫреИрдиреМрдВ
  • рдпрджрд┐ рдбрдХрд░ рдбреЗрдорди рдХреНрд░реНрдпрд╛рд╕ рд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕ рдЕрдиреБрд╕рд╛рд░ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдХреНрд░реНрдпрд╛рд╕ рднрдПрдХрд╛ рд╕рдмреИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ
  • рдбрдХрд░ рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЫреИрди
  • рдпрджрд┐ рдЙрддреНрддрд░рджрд╛рдпреА рд░ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рдЫрдиреН рднрдиреЗ рдбрдХрд░ рдХрд┐рди

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

рдбрд╛рдЯрд╛рдмреЗрд╕ рдЬрд╕реНрддрд╛ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдЪрд▓рд╛рдЙрдирдХрд╛ рд▓рд╛рдЧрд┐ рдбрдХрд░

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

рдпреЛ рдЖрджреЗрд╢рд▓реЗ рдореЗрд░реЛ рд╕реНрдерд╛рдиреАрдп рдкреЛрд░реНрдЯрд▓рд╛рдИ postgresql рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рд░рд┐рдореЛрдЯ рд╕рд░реНрднрд░рдорд╛ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрдЫ:

ssh -L 9000:localhost:5432 [рдИрдореЗрд▓ рд╕реБрд░рдХреНрд╖рд┐рдд]

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

рдореИрд▓реЗ рднрд░реНрдЦрд░реИ рдкрдвреЗрдВ рдХрд┐ SSH рдЯрдиреЗрд▓рд╣рд░реВ рдирд┐рдпрдорд┐рдд VPN рдХреЛ рд╕реАрдорд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реБрдиреН! рддрдкрд╛рдИрдВ рдХреЗрд╡рд▓ OpenVPN рд╡рд╛ рдЕрдиреНрдп VPN рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рджрд┐рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпреЛ рдзреЗрд░реИ рд░рд╛рдореНрд░реЛ рдЫ!

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

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

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

рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ рд░ рд╡рд┐рддрд░рдгрдХреЛ рдмрд╛рд░реЗрдорд╛ рдереЛрд░реИ

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

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

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

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

CI рдорд╛ рдбрдХрд░

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

рдпреА рдХрдореНрдкрдиреАрд╣рд░реВрд▓реЗ рдЙрдиреАрд╣рд░реВрдХреЛ рд╕рд░реНрднрд░рдорд╛ рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН рдЬрд╣рд╛рдБ CI рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд▓реНрдЫред рдкреНрд░рд╢реНрди: рддрдкрд╛рдЗрдБ рдХрд┐рди рддрдкрд╛рдЗрдБрдХреЛ рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдбрдХрд░ рдХрдиреНрдЯреЗрдирд░рдорд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ? рдХрд┐рди рдирд┐рд░реНрдорд╛рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рддрд╛рд╡рд░рдг рддрдпрд╛рд░ рдирдЧрд░реНрдиреЗ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдПрдЙрдЯрд╛ рдЙрддреНрддрд░рджрд╛рдпреА рдкреНрд▓реЗрдмреБрдХ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН рдЬрд╕рд▓реЗ рдирд┐рд░реНрдорд╛рдг рд╣реБрдиреЗ рд╕рд░реНрднрд░рдорд╛ nodejs, php, jdk, рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ ssh рдХреБрдЮреНрдЬреАрд╣рд░реВ, рдЖрджрд┐ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗрдЫ?

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

  • рдлреЗрд░рд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдбрдХрд░ рдЫрд╡рд┐ рдЪрд╛рд╣рд┐рдиреНрдЫред рддрдкрд╛рдИрдВрд▓реЗ рдЫрд╡рд┐ рдЦреЛрдЬреНрди рд╡рд╛ рдЖрдлреНрдиреИ рдбрдХрд░рдлрд╛рдЗрд▓ рд▓реЗрдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
  • 90% рдЬреБрди рддрдкрд╛рдЗрдБрд▓реЗ рдХреЗрд╣рд┐ ssh рдХреБрдЮреНрдЬреАрд╣рд░реВ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЧреЛрдкреНрдп рдбрд╛рдЯрд╛ рдЬреБрди рддрдкрд╛рдЗрдБ рдбрдХрд░ рдЫрд╡рд┐рдорд╛ рд▓реЗрдЦреНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдиред
  • рдХрдиреНрдЯреЗрдирд░ рдмрдирд╛рдЗрдиреНрдЫ рд░ рдорд░реНрдЫ, рд╕рдмреИ рдХреНрдпрд╛рд╕рд╣рд░реВ рд╕рдБрдЧреИ рд╣рд░рд╛рдЙрдБрдЫрдиреНред рдЕрд░реНрдХреЛ рдирд┐рд░реНрдорд╛рдгрд▓реЗ рд╕рдмреИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рдкреБрди: рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдиреЗрдЫ, рдЬреБрди рд╕рдордп рдЦрдкрдд рд░ рдЕрдкреНрд░рднрд╛рд╡реА рдЫ, рд░ рд╕рдордп рдкреИрд╕рд╛ рд╣реЛред

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

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

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

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

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

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЕрдЭреИ рдкрдирд┐ рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐:

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

PS:

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

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

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

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