рд╕рдмрдХ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛрдб рдХреА 200,000 рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рд╕реАрдЦрд╛


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


рд░реВрд╕реА рд╕рдВрд╕реНрдХрд░рдг


рдпрд╣ DevopsConf 2019-05-28 рдкрд░ рдореЗрд░реЗ рднрд╛рд╖рдг ( рд╡реАрдбрд┐рдпреЛ рдЖрд░рдпреВ ) рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИред



рдмреИрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдБрдЪрд╛



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


рд╣рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: a text listing of commands to be compiled or assembled into an executable computer program ред рдЕрдЧрд░ рд╣рдо рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛ рдХреЛрдб рдХреА рддрд░рд╣ рдмреИрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдкрд╛рда рдФрд░ рдЖрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рдпрд╣ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╣реИ:


  1. Reproducible : рдЖрдк рдмреИрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрднрд╡рддрдпрд╛ рд╡рд░реНрдХрд┐рдВрдЧ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  2. рд╡рд░реНрдЬрдирд┐рдВрдЧ : рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕рдиреЗ рдХрдм, рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдФрд░ рдХреНрдпрд╛ рдХрд┐рдпрд╛ред
    рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрджрд┐ рдЖрдк рд╕рд░реНрд╡рд░ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдмреИрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдиреЗ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдЦреЛ рджрд┐рдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?


рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд╡рд╕рдВрд░рдЪрдирд╛



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


рд╕реВрдЦреА



рд╣рдо рдПрд╕рдбреАрдПрд╕ (рд╕реЙрдлреНрдЯрд╡реЗрдпрд░-рдбрд┐рдлрд╛рдЗрдВрдб рд╕реНрдЯреЛрд░реЗрдЬ) рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рдереЗред SDS рдореЗрдВ рдХрд╕реНрдЯрдо OS рд╡рд┐рддрд░рдг, upscale рд╕рд░реНрд╡рд░, рдмрд╣реБрдд рд╕реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рд╢рд╛рдорд┐рд▓ рдереЗ, рдирддреАрдЬрддрди, рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд╕рдордп-рд╕рдордп рдкрд░, рдПрд╕рдбреАрдПрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЙрдк-рдХрд╛рд░реНрдп рдерд╛ред рдирдИ рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИ:


  • рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рдПрд╕рдПрдЪред
  • рдПрдХ рдлрд╝рд╛рдЗрд▓ SCPред
  • рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред
  • рдПрдХ рд╕реЗрд╡рд╛ рдЪрд▓рд╛рдПрдВред
  • ...
  • рд▓рд╛рдн!

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


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдереЛрдбрд╝рд╛ рд╣рд┐рдордкрд╛рдд рдХрд╛ рдПрдХ рдЦрдВрдб рдЬреИрд╕рд╛ рдерд╛, рдЬреЛ рдЗрд╕ рдкрд░ рдкреНрд░рддрд┐-рдЪрд┐рдкрдХрд╛рдиреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдерд╛ред рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджрд░реНрдж рднреА рдерд╛ рдЬрдм рд╣рдо рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдмрдирд╛ рд░рд╣реЗ рдереЗ рдпрд╛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рд░рд╣реЗ рдереЗред


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



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


рд╕реАрдПрдлрдПрдо рдХреЗ рд▓рд┐рдП рдареЛрд╕



рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдврд╝ рд░рд╣реА рдереА, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдордиреЗ Ansible рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЙрд╕рдХреЗ рдХрд╛рд░рдг рдереЗ:


  1. рдмреИрд╢ рдореЗрдВ рдЬрдЯрд┐рд▓ рддрд░реНрдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред
  2. рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Ansible рдореЗрдВ рдХреБрдЫ рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдереАред

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


рдПрдХрд▓ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╕рд┐рджреНрдзрд╛рдВрдд



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


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


рдЦреБрд▓реЗ-рдмрдВрдж рд╕рд┐рджреНрдзрд╛рдВрдд



рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдХрд╛рдЗрдпрд╛рдБ ... рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рдмрдВрджред


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


Liskov рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд



рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╢реБрджреНрдзрддрд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдмрд┐рдирд╛ рдЙрдирдХреЗ рдЙрдкрдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓реА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред


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


рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЯреАрдо рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕рдордЭреМрддрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк ibm java рднреВрдорд┐рдХрд╛ рдпрд╛ oracle java рдпрд╛ openjdk рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдЬрд╛рд╡рд╛ рдмрд╛рдЗрдирд░реА рд╣реЛрдЧрд╛ред рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╢реАрд░реНрд╖ * рд╕реНрддрд░ рдХреА рдЕрдВрдп рднреВрдорд┐рдХрд╛рдПрдБ рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рддрд░реНрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЬрд╛рд╡рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


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


рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрд▓рдЧрд╛рд╡ рд╕рд┐рджреНрдзрд╛рдВрдд



рдХрдИ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдВрдЯрд░рдлреЗрд╕ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИрдВред


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


рдирд┐рд░реНрднрд░рддрд╛ рдЙрд▓рдЯрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд



рдПрдХ рдХреЛ "рдЕрдореВрд░реНрддрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, [рдирд╣реАрдВ] рд╕рд╣рдорддрд┐ред"


  • рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рдореНрди-рд╕реНрддрд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджреЛрдиреЛрдВ рдХреЛ рдЕрдореВрд░реНрдд (рдЬреИрд╕реЗ рдЗрдВрдЯрд░рдлреЗрд╕) рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рд╡рд┐рд╡рд░рдг рд╡рд┐рд╡рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рд╡рд░рдг (рдареЛрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдЕрдореВрд░реНрддрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рд╡рд░реНрдгрди рдкреНрд░рддрд┐рд░реВрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред


  1. рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдирд┐рдЬреА рдмрд╛рджрд▓ рдерд╛ред
  2. рд╣рдо рдмрд╛рджрд▓ рдореЗрдВ рд╡реАрдПрдо рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рдереЗред
  3. рд╣рдорд╛рд░рд╛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рддрд░реНрдХ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рдерд╛ рдХрд┐ рдПрдХ VM рдХрд┐рд╕ рд╣рд╛рдЗрдкрд░рд╡рд╛рдЗрдЬрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдо рдПрдХ рдФрд░ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рд╣рдорд╛рд░реЗ IaC рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдереЗ рдХреНрдпреЛрдВрдХрд┐ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдкрд░рд┐рдирд┐рдпреЛрдЬрди рддрд░реНрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рдерд╛ред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рди рдХрд░реЗрдВ


рдЗрдВрдЯрд░реЗрдХреНрд╢рди



рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗрд╡рд▓ рдХреЛрдб рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛрдб <-> DevOps, DevOps <-> DevOps, IaC <-> рд▓реЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╣реИред


рдмрд╕ рдХрд╛рд░рдХ



рдЖрдЗрдП рд╣рдо рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рджреЗрд╡рдУрдкреНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░ рдЬреЙрди рд╣реИрдВред рдЬреЙрди рдЖрдкрдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЬрд╛рдирддрд╛ рд╣реИред рдпрджрд┐ рдЬреЙрди рдмрд╕ рд╕реЗ рдЯрдХрд░рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд▓рдЧрднрдЧ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдорд▓рд╛ рд╣реИред рдХреБрдЫ рд╕рдордп рдмрд╛рддреЗрдВ рд╣реЛрддреА рд╣реИрдВред рдпрджрд┐ рдРрд╕рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЖрдк IaC рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдЮрд╛рди рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреА рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЖрдкрдХреЗ рдмрд╣реБрдд рд╕реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдФрд░ рдЕрдЬреАрдм рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдЧрд╛ред рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВред рдЖрдЗрдП рд╣рдо рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВред


рдЬреЛрдбрд╝реА DevOpsing



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


  • рдСрдирдмреЛрд░реНрдбрд┐рдВрдЧ : рдореЗрдВрдЯрд░ рдФрд░ рдирдП рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдмреИрдХрд▓реЙрдЧ рд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЬреНрдЮрд╛рди рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
  • рд╣рд╛рджрд╕рд╛ рдХреЙрд▓ : рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдХреЗ рджреМрд░рд╛рди, рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ, рд╡реЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдШрдЯрдирд╛ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рд╣реИред рд╡реНрдпрдХреНрддрд┐ рд╕реНрдХреНрд░реАрди рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдп рд▓реЛрдЧ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЙрд╕рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдмреИрд╢ рдЯреНрд░рд┐рдХреНрд╕, рдЧрд▓рддрд┐рдпреЛрдВ, рд▓реЙрдЧ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЖрджрд┐ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛



рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдЖрдкрдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЯреАрдо рдХреЗ рдЕрдВрджрд░ рдЬреНрдЮрд╛рди рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


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

рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рд╕рдореАрдХреНрд╖рдХ рдХреЛ рдШреБрдорд╛ рд░рд╣реЗ рдереЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╣рд░ рджреЛ рджрд┐рди рдореЗрдВ рд╣рдордиреЗ рдПрдХ рдирдпрд╛ рд╕рдореАрдХреНрд╖рдХ рдЪреБрдирд╛ рдФрд░ рд╕рдореАрдХреНрд╖рдХ рд╕рднреА рдорд░реНрдЬ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ред рдирддреАрдЬрддрди, рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдПрдХ рдирдП рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЫреВрдирд╛ рдерд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд╕рдд рдЬреНрдЮрд╛рди рдерд╛ред


рдХреЛрдб рд╢реИрд▓реА



рд╕рдордп рдЯрд┐рдХ рд░рд╣рд╛ рдерд╛, рд╣рдо рдХрднреА-рдХрднреА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рджреМрд░рд╛рди рдмрд╣рд╕ рдХрд░ рд░рд╣реЗ рдереЗ рдХреНрдпреЛрдВрдХрд┐ рд╕рдореАрдХреНрд╖рдХ рдФрд░ рдХрдорд┐рдЯрд░ рдПрдХ рдЕрд▓рдЧ рдХреЛрдб рд╢реИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: 2 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдпрд╛ 4, рдХреИрдорд▓рдХреЗрд╕ рдпрд╛ рд╕реНрдиреЗрдХ_рдХреЗрд╕ ред рд╣рдордиреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкрд┐рдХрдирд┐рдХ рдирд╣реАрдВ рдерд╛ред


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

рдЧреНрд░реАрди рдмрд┐рд▓реНрдб рдорд╛рд╕реНрдЯрд░



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


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

рдпрд╣ рдПрдХ рдХрдард┐рди рдирд┐рд░реНрдгрдп рдерд╛ред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рдореАрдХреНрд╖рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рдХреЛрдб рд╢реИрд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рддрд░реНрдХ рдирд╣реАрдВ рдерд╛ рдФрд░ рдХреЛрдб рдЧрдВрдз рдХреА рдорд╛рддреНрд░рд╛ рдХрдо рд╣реЛ рд░рд╣реА рдереАред


IaC рдкрд░реАрдХреНрд╖рдг



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


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


IaC рдкрд░реАрдХреНрд╖рдг рдкрд┐рд░рд╛рдорд┐рдб



IaC рдкрд░реАрдХреНрд╖рдг: рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдХрдорд┐рдЯрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди, рдЖрдорддреМрд░ рдкрд░, рдХреБрдЫ рдмрд╛рдзрд╛рдПрдБ рд╣реИрдВ:


  • рдХреАрдордд рд╕рдорддрд╛рдк рдордВрдбрд▓ рд╣реИред
  • рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рдЪрд╛рд╣рд┐рдПред

рдЙрдореНрдореАрдж рд╣реИ, рд╡рд╣рд╛рдБ рдХреБрдЫ рдЪрд╛рд▓реЗрдВ рд╣реИрдВред рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреА рдиреАрдВрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓, рддреАрд╡реНрд░, рдЖрджрд┐рдо рдкрд░реАрдХреНрд╖рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред


рдмреИрд╢ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ


рдЖрдЗрдП рд╣рдо рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рдореИрдВ рдПрдХ рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛:


  • рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
  • рд╕рдВрд╢реЛрдзрд┐рдд рдирд╛рдо рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред

рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ:


 for i in * ; do cp $i /some/path/$i.bak done 

рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рдЬрдЧрд╣ рд╣реИ ? рд╣рдо рдЪрддреБрд░ рд▓реЛрдЧ рд╣реИрдВ, рд╣рдо рдЙрджреНрдзрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:


 for i in * ; do cp "$i" "/some/path/$i.bak" done 

рдХреНрдпрд╛ рд╣рдо рдЦрддреНрдо рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ? рдирд╣реАрдВ! рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЦрд╛рд▓реА рд╣реИ? рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЧреНрд▓реЛрдмрд┐рдВрдЧ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


 find . -type f -exec mv -v {} dst/{}.bak \; 

рдХреНрдпрд╛ рд╣рдо рд╕рдорд╛рдкреНрдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ? рдЕрднреА рддрдХ рдирд╣реАрдВ ... рд╣рдо рднреВрд▓ рдЧрдП рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ \n рд╡рд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


 touch x mv x "$(printf "foo\nbar")" find . -type f -print0 | xargs -0 mv -t /path/to/target-dir 

рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдг


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


рднрд╛рд╖рд╛рд╕рд╛рдзрди
рдмрдбрд╝реА рдорд╛рд░Shellcheck
рдЧрд╣рд░реЗ рд▓рд╛рд▓ рд░рдВрдЧ рдХрд╛RuboCop
рдЕрдЬрдЧрд░Pylint
AnsibleрдЕрдиреАрддрд┐ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡реГрдХреНрд╖

IaC рдкрд░реАрдХреНрд╖рдг: рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ



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


рдЬрдм рд╣рдо рд╕реАрдПрдлрдПрдо рдХреЗ рд▓рд┐рдП рдПрд╕рдУрдПрд▓рдЖрдИрдбреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рдереЗ, рддреЛ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рд╕рд░рд▓ рдИрдВрдЯреЛрдВ / рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдм рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ:


  1. рд╕рд░рд▓ рдореЙрдбреНрдпреВрд▓ / рдмреНрд░реЗрдХ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рддреН Ansible рднреВрдорд┐рдХрд╛рдПрдВред
  2. рдПрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдПрдВ рдпрд╛рдиреА рдбреЙрдХрд░ рдпрд╛ рд╡реАрдПрдоред
  3. рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмреНрд░реЗрдХ / рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
  4. рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВред
    ...
  5. рд▓рд╛рдн!

IaC рдкрд░реАрдХреНрд╖рдг: рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг


рд╕реАрдПрдлрдПрдо рдФрд░ рдЖрдкрдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХреНрдпрд╛ рд╣реИ? рдпрд╛рдиреА рдЖрдк рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЖрдк рдЬреИрд╕реЗ рдЙрддреНрдкрд╛рджрди-рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


CFMрд╕рд╛рдзрди
AnsibleTestinfra
рдорд╣рд╛рд░рд╛рдЬinspec
рдорд╣рд╛рд░рд╛рдЬServerspec
saltstackрдЧреЙрд╕

рдЖрдЗрдП testinfra рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рдореИрдВ рдпрд╣ рдЬрд╛рдБрдЪрдирд╛ рдЪрд╛рд╣реВрдБрдЧрд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ test1 , test2 рдореМрдЬреВрдж рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ sshusers рд╕рдореВрд╣ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ:


 def test_default_users(host): users = ['test1', 'test2' ] for login in users: assert host.user(login).exists assert 'sshusers' in host.user(login).groups 

рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрдкрд╛рдп рдХреНрдпрд╛ рд╣реИ? рдЙрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдПрдХ рднреА рдЬрд╡рд╛рдм рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВрдиреЗ 2018-2019 рдХреЗ рджреМрд░рд╛рди рд╣реАрдЯ рдореИрдкреНрд╕ рдмрдирд╛рдП рдФрд░ рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреА рддреБрд▓рдирд╛ рдХреА:



IaC рдкрд░реАрдХреНрд╖рдг рд░реВрдкрд░реЗрдЦрд╛


рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдПрдХ рд╕рд╡рд╛рд▓ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рдХреИрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдП? рдПрдХ рддрд░рдл, рдЖрдк рдЕрдкрдиреЗ рджрдо рдкрд░ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рдорд╣рд╛рди рдЗрдВрдЬреАрдирд┐рдпрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдУрд░, рдЖрдк рдУрдкрдирд╕реЛрд░реНрд╕ рдЙрддреНрдкрд╛рджрди-рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


CFMрд╕рд╛рдзрди
AnsibleрдЕрдгреБ
рдорд╣рд╛рд░рд╛рдЬрдЯреЗрд╕реНрдЯ рдХрд┐рдЪрди
terraformTerratest

рдореИрдВрдиреЗ 2018-2019 рдХреЗ рджреМрд░рд╛рди рд╣реАрдЯ рдореИрдк рдмрдирд╛рдпрд╛ рдФрд░ рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреА рддреБрд▓рдирд╛ рдХреА:



рдЕрдгреБ рдмрдирд╛рдо Testkitchen



рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдордиреЗ рд╣рд╛рдЗрдкрд░- v рдХреЗ рдЕрдВрджрд░ рдЯреЗрд╕реНрдЯреАрдХреЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ ansible рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:


  1. VMs рдмрдирд╛рдПрдБред
  2. рдЙрддреНрддрд░ рджреЗрдиреЗ рдпреЛрдЧреНрдп рднреВрдорд┐рдХрд╛рдПрдБ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
  3. рдЗрдВрд╕реНрдкреЗрдХ рдЪрд▓рд╛рдПрдВред

25-35 рдЕрдВрд╕рд┐рд▓ рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП 40-70 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧрд╛ред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмрд╛ рдерд╛ред



рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдЬреЗрдирдХрд┐рдВрд╕ / docker / Ansible / рдЕрдгреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИ:


  1. рд▓рд┐рдВрдЯ рдЕрдиреНрд╕рд┐рдмрд▓ рдкреНрд▓реЗрдмреБрдХред
  2. рд▓рд┐рдВрдЯ рдЕрдиреНрд╕рд┐рдмрд▓ рднреВрдорд┐рдХрд╛рдПрдБред
  3. рдПрдХ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдПрдВред
  4. рдЙрддреНрддрд░ рджреЗрдиреЗ рдпреЛрдЧреНрдп рднреВрдорд┐рдХрд╛рдПрдБ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
  5. рдЯреЗрд╕реНрдЯрд┐рдирдлреНрд░рд╛ рдЪрд▓рд╛рдПрдВред
  6. рдЖрд▓рд╕реНрдп рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред


40 рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдирд┐рдВрдЧ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рджрд╕ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд▓рдЧрднрдЧ 15 рдорд┐рдирдЯ рд▓рдЧреЗред



рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрдкрд╛рдп рдХреНрдпрд╛ рд╣реИ? рдПрдХ рдУрд░, рдореИрдВ рдЕрдВрддрд┐рдо рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рдмрдирдирд╛ рдЪрд╛рд╣рддрд╛, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдУрд░, рдореИрдВ рдЕрдкрдиреА рдмрд╛рдд рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдХреЛрдИ рдЪрд╛рдВрджреА рдХреА рдЧреЛрд▓реА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЕрдиреНрди рдХреЗ рдЕрдгреБ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди рд╣реИ рддреЛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред


IaC рдкрд░реАрдХреНрд╖рдг: рдПрдХреАрдХрд░рдг рдЯреЗрд╕реНрдЯ



IaC рдкрд░реАрдХреНрд╖рдг рдкрд┐рд░рд╛рдорд┐рдб рдХреЗ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░, рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ ред рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:


  1. рд╕рд░рд▓ рдореЙрдбреНрдпреВрд▓ / рдмреНрд░реЗрдХ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рддреН Ansible рднреВрдорд┐рдХрд╛рдПрдВред
  2. рдПрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдПрдВ рдпрд╛рдиреА рдбреЙрдХрд░ рдпрд╛ рд╡реАрдПрдоред
  3. рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рд╕рд░рд▓ рд╡рд┐рд░рд╛рдо / рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
  4. рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВред
    ...
  5. рд▓рд╛рдн!

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


IaC рдкрд░реАрдХреНрд╖рдг: рдПрдВрдб рдЯреВ рдПрдВрдб рдЯреЗрд╕реНрдЯ



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



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



рдпрд╣ рдпреЛрдЬрдирд╛ рдЙрд╕ рд╕рдордп рдХреА рд╢рд╛рдВрдд рд▓реЙрдЧ рдЕрд╡рдзрд┐ рдХрд╛рдо рдХрд░ рд░рд╣реА рдереА рдЬрдм рдУрдкрдирд╢рд┐рдлреНрдЯ рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЗ рджреМрд░рд╛рди рд╣рдордиреЗ рдЗрд╕реЗ рдУрдкреЗрдВрд╢рдлреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереАред рд╣рдордиреЗ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рдХрдВрдЯреЗрдирд░ (рдирд░рдХ DRY рдлрд┐рд░ рд╕реЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдХреЗрд╡рд▓ рдЖрд╕рдкрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред



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



рдЬрдм рддрдХ рд╣рдо рдПрдХ рдФрд░ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рддреЗ рддрдм рддрдХ рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛: рд╣рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдо рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдерд╛ред рдирддреАрдЬрддрди, рд╣рдо рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ рдФрд░ рдЬреЗрдирдХрд┐рдВрд╕ рдиреМрдХрд░рд┐рдпреЛрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВред


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



рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓ рд╕рдВрд░рдЪрдирд╛ рдпрд╣ рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИ:


  • рдХреЛрдбред
  • рд▓реЛрдЧреЛрдВ рд╕реЗ рдмрд╛рддрдЪреАрддред
  • рдЕрд╡рд╕рдВрд░рдЪрдирд╛ рдкрд░реАрдХреНрд╖рдгред

рд▓рд┐рдВрдХ

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


All Articles