GitOps: рдкреБрд▓ рдФрд░ рдкреБрд╢ рддрд░реАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛

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



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

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдореБрдЦреНрдп рд▓рд╛рдн рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ :

  1. рд╕рдВрд╕реНрдХрд░рдг рддреИрдирд╛рддреА рдФрд░ рдЗрддрд┐рд╣рд╛рд╕ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ ред рдкреВрд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рддреИрдирд╛рддреА рдХреЗрд╡рд▓ рдХрдорд┐рдЯ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддрд┐рдмрджреНрдз рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  2. рдкрд░рд┐рдЪрд┐рдд Git рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдХрдмреИрдХ ред рдПрдХ рд╕рд╛рдзрд╛рд░рдг git reset рдЖрдкрдХреЛ рддреИрдирд╛рддреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рддреНрдпрд╛рдЧрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ; рдкрд┐рдЫрд▓реЗ рд░рд╛рдЬреНрдп рд╣рдореЗрд╢рд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВред
  3. рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг рддреИрдпрд╛рд░ ред рдЖрдорддреМрд░ рдкрд░, Git рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЧреЛрдкрдиреАрдп рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрдВрдкрдирд┐рдпрд╛рдВ рдЗрд╕рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджреЗрддреА рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рдпрд╣ рд╕реБрд░рдХреНрд╖рд╛ рддреИрдирд╛рддреА рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рддрдХ рдлреИрд▓реА рд╣реБрдИ рд╣реИред
  4. рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдиреАрддрд┐рдпрд╛рдВ ред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рд╢реБрд░реВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдорд╛рд╕реНрдЯрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЯреАрдо рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рджрд╕реНрдп рдХреЛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкрд╣реБрдБрдЪ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде, рд╕рдорд╛рди рдиреАрддрд┐рдпрд╛рдБ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрджреНрдпрддрди рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред

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

рддреИрдирд╛рддреА рдХреЗ рддрд░реАрдХреЗ


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

  1. рджреЗрд╢реА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ / рдХрд╕реНрдЯрдорд╛рдИрдЬ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ ред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░ рдореВрд▓ YAML рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╣реА рдкреИрдЯрд░реНрди рдХреЗ рдирд┐рд░рдВрддрд░ рдкреБрдирд░реНрд▓реЗрдЦрди рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, Kustomize рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╣ Kubernetes рдкреИрдЯрд░реНрди рдХреЛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ)ред рд▓рдЧрднрдЧред рдЯреНрд░рд╛рдВрд╕ред : рдХреБрдмреЗрд░рдиреЗрдЯ рдХреЛ 1.14 рдХреА рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде Kubectl рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  2. рдЪрд╛рд░реНрдЯреНрд╕ рд╣реЗрд▓реНрдо ред рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдЖрдкрдХреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ, рдЗрдирд┐рдЯ рдХрдВрдЯреЗрдирд░, рд╕рд╛рдЗрдбрдХрд╛рд░реЛрд╡ рдЗрддреНрдпрд╛рджрд┐ рдХреЗ рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ-рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯ YAML рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╣реЗрд▓реНрдо рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рднрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдЯрд┐рд▓рд░ рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИ, рдХреНрд▓рд╕реНрдЯрд░ рдШрдЯрдХ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдкрдбреЗрдЯ рдФрд░ рд░реЛрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣реЗрд▓реНрдо рдмрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдпрд╣ рдкрд╛рд░рдВрдкрд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рд╕рднреА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣реЗрд▓реНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдорд╛рд░рд╛ рд▓реЗрдЦ рдкрдврд╝реЗрдВ - рд▓рдЧрднрдЧред ред) ред рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд┐рдзрддрд╛ рд╣реИред
  3. рд╡реИрдХрд▓реНрдкрд┐рдХ рдЙрдкрдХрд░рдг ред рдХрдИ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЙрдкрдХрд░рдг рд╣реИрдВред рд╡реЗ рд╕рднреА рдЗрд╕ рддрдереНрдп рд╕реЗ рдПрдХрдЬреБрдЯ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХреБрдЫ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдЕрдиреБрдХреВрд▓ рдпрдореНрд▓ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдорд╛рд░реЗ рдХрд╛рдо рдореЗрдВ, рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░ рд╣реИрдВ, рдЬреЛ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ) рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ "рдХреНрд▓реАрди" YAML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдорд╛рд░реЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЦреАрдВрдЪреЛ рдФрд░ рдзрдХреНрдХрд╛ рджреЛ


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

рдирд╛рдпрдм! GitOps рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рднреА рд▓рд╛рднреЛрдВ рдХреЛ рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд░рдХрд░рд╛рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрдзрд╛рд░ рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг




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

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

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

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

  1. рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рд╕реЗ рддреИрдирд╛рддреА рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдЙрдиреНрд╣реЗрдВ рд╕реАрдХреНрд░реЗрдЯ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛, рдХрд╣рдирд╛, рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рд╡реЗ рдкреБрд▓ рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВред рддрдм рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдирд╛рдд рд░рд╣рд╕реНрдпреЛрдВ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣реЗрд▓реНрдо рдореЗрдВ рд░рд┐рд▓реАрдЬ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╣реЗрд▓реНрдо рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд░рд╣рд╕реНрдп рдмрдирд╛рдирд╛ рд╣реИ, рдЗрд╕реЗ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ рдФрд░ рдЧрд┐рдЯ рдореЗрдВ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░рдирд╛ рд╣реИред
  2. рдкреБрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдРрд╕реЗ рдЯреВрд▓ рд╕реЗ рдмрдВрдзреЗ рдкрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдкреБрд▓ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Kustomize рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рдЗрд╕реЗ Git рдореЗрдВ рдЕрдВрддрд┐рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИрдВред

рдкреБрд╢ рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг




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

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

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

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

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

рдирд┐рдЪрд▓рд╛ рд░реЗрдЦрд╛: рдкреБрд╢ рдпрд╛ рдкреБрд▓?


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

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

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

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

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

рдкреАрдПрд╕ рдиреЛрдЯ рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ


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

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

рд╣рдордиреЗ рджреЛрдиреЛрдВ рдореЙрдбрд▓реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рд╕рдорд╛рди рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдЖрдП:

  1. рдкреБрд▓ рдореЙрдбрд▓ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдШрдЯрдХ рдЕрдкрдбреЗрдЯ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ ( рдПрдбрдСрди-рдСрдкрд░реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рджреЗрдЦреЗрдВ)ред
  2. рдЧреЗрдЯрд▓реИрдм рд╕реАрдЖрдИ-рдЖрдзрд╛рд░рд┐рдд рдкреБрд╢ рдореЙрдбрд▓ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИред рдЗрд╕ рд░реЛрд▓рдЖрдЙрдЯ рддреИрдирд╛рддреА рдореЗрдВ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЗ рднреАрддрд░ werf рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдЧрд░рд╛рдиреА рдХреА рдЬрд╛рддреА рд╣реИред рд╡реИрд╕реЗ, рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рд╣рдордиреЗ рд▓рдЧрд╛рддрд╛рд░ "GitOps" рд╕реБрдирд╛ рдЬрдм рд╣рдордиреЗ KubeCon Europe'19 рдореЗрдВ рдЕрдкрдиреЗ рдмреВрде рдкрд░ DevOps рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреА рджрдмрд╛рд╡ рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреАред

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдкреА.рдПрд╕.


рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ:

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


All Articles