GitOps: рдкреБрд▓ рдЖрдгрд┐ рдкреБрд╢ рдкрджреНрдзрддреАрдВрдЪреА рддреБрд▓рдирд╛

рдиреЛрдВрдж. рдЕрдиреБрд╡рд╛рдж: Kubernetes рд╕рдореБрджрд╛рдпрд╛рдордзреНрдпреЗ, GitOps рдирд╛рд╡рд╛рдЪрд╛ рдЯреНрд░реЗрдВрдб рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛрдд рдЖрд╣реЗ, рдЬрд╕реЗ рдХреА рдЖрдкрдг рд╡реИрдпрдХреНрддрд┐рдХрд░рд┐рддреНрдпрд╛ рдкрд╛рд╣рд┐рд▓реЗ рдЖрд╣реЗ, рднреЗрдЯ рджреЗрдКрди KubeCon Europe 2019. рд╣реА рд╕рдВрдЬреНрдЮрд╛ рддреБрд▓рдиреЗрдиреЗ рдЕрд▓реАрдХрдбреАрд▓ рд╣реЛрддреА рд╢реЛрдз рд▓рд╛рд╡рд▓рд╛ Weaveworks рдЪреНрдпрд╛ рдкреНрд░рдореБрдЦрд╛рджреНрд╡рд╛рд░реЗ - рдЕреЕрд▓реЗрдХреНрд╕рд┐рд╕ рд░рд┐рдЪрд░реНрдбрд╕рди - рдЖрдгрд┐ рдпрд╛рдЪрд╛ рдЕрд░реНрде рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдирд╛ рдкрд░рд┐рдЪрд┐рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ (рдкреНрд░рд╛рдореБрдЦреНрдпрд╛рдиреЗ Git, рдореНрд╣рдгреВрди рдирд╛рд╡) рдСрдкрд░реЗрд╢рдирд▓ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рд╕рд╛рдареА. рд╡рд┐рд╢реЗрд╖рддрдГ, рдЖрдореНрд╣реА Git рдордзреНрдпреЗ рддреНрдпрд╛рдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕рдВрдЪрдпрд┐рдд рдХрд░реВрди рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рдмрджрд▓ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рд░реЛрд▓рдЖрдЙрдЯ рдХрд░реВрди рдХреБрдмрд░рдиреЗрдЯрдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдмрджреНрджрд▓ рдмреЛрд▓рдд рдЖрд╣реЛрдд. рдореЕрдерд┐рдпрд╛рд╕ рдЬреЗрдЬреА рдпрд╛ рд▓реЗрдЦрд╛рдд рдпрд╛ рд░реЛрд▓рдЖрдЙрдЯрдЪреНрдпрд╛ рджреЛрди рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓рддреЛ.

GitOps: рдкреБрд▓ рдЖрдгрд┐ рдкреБрд╢ рдкрджреНрдзрддреАрдВрдЪреА рддреБрд▓рдирд╛

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

рдпрд╛ рдкрджреНрдзрддреАрдЪреЗ рдореБрдЦреНрдп рдлрд╛рдпрджреЗ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗрдд::

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

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

рдЙрдкрдпреЛрдЬрди рдкрджреНрдзрддреА

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

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

рдЖрдордЪреНрдпрд╛ рдХрд╛рдорд╛рдд, рдЖрдореНрд╣реА рдорд╣рддреНрддреНрд╡рд╛рдЪреНрдпрд╛ рд╕рд╛рдзрдирд╛рдВрд╕рд╛рдареА рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рд╡рд╛рдкрд░рддреЛ (рдХрд╛рд░рдг рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рдмрд░реНтАНрдпрд╛рдЪ рдЧреЛрд╖реНрдЯреА рдЖрдзреАрдЪ рддрдпрд╛рд░ рдЖрд╣реЗрдд, рдЬреНрдпрд╛рдореБрд│реЗ рдЬреАрд╡рди рдЦреВрдк рд╕реЛрдкреЗ рд╣реЛрддреЗ) рдЖрдгрд┐ рдЖрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЙрдкрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА "рд╢реБрджреНрдз" Kubernetes YAML рдлрд╛рдЗрд▓реНрд╕.

рдУрдврд╛ рдврдХрд▓рд╛

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

рдПрдирдмреА! GitOps рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреЗ рд╕рд░реНрд╡ рдлрд╛рдпрджреЗ рджреЛрдиреНрд╣реА рдкрджреНрдзрддреАрдВрд╕рд╛рдареА рд╕рд╛рд░рдЦреЗрдЪ рд░рд╛рд╣рддрд╛рдд.

рдЦреЗрдЪрд╛ рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯреАрдХреЛрди

GitOps: рдкреБрд▓ рдЖрдгрд┐ рдкреБрд╢ рдкрджреНрдзрддреАрдВрдЪреА рддреБрд▓рдирд╛

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

рд╕рд╛рдзрдХ:

  1. рдХреЛрдгрддреНрдпрд╛рд╣реА рдмрд╛рд╣реНрдп рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдмрджрд▓ рдХрд░рдгреНрдпрд╛рдЪреЗ рдЕрдзрд┐рдХрд╛рд░ рдирд╛рд╣реАрдд; рд╕рд░реНрд╡ рдЕрджреНрдпрддрдиреЗ рдЖрддреВрди рдЖрдгрд▓реА рдЬрд╛рддрд╛рдд.
  2. рдХрд╛рд╣реА рдЯреВрд▓реНрд╕ рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдЕрдкрдбреЗрдЯреНрд╕ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдХреНрд▓рд╕реНрдЯрд░рд╢реА рд▓рд┐рдВрдХ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд.
  3. рдбреЙрдХрд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реА рдирд╡реАрди рдЖрд╡реГрддреНрддреНрдпрд╛рдВрд╕рд╛рдареА рд╕реНрдХреЕрди рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдирд╡реАрди рдкреНрд░рддрд┐рдорд╛ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реНрдпрд╛рд╕, Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдЖрдгрд┐ рдЙрдкрдпреЛрдЬрди рдирд╡реАрди рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.
  4. рдкреБрд▓ рдЯреВрд▓реНрд╕ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ Git рд░рд┐рдкреЙрдЭрд┐рдЯрд░реАрдЬ рдЖрдгрд┐ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛рдВрд╕рд╣ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рдорд▓реНрдЯреАрдЯреЗрдирдВрдЯ рдореЙрдбреЗрд▓ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЯреАрдо рдП рдиреЗрдорд╕реНрдкреЗрд╕ A рд╡рд╛рдкрд░реВ рд╢рдХрддреЗ, рдЯреАрдо рдмреА рдиреЗрдорд╕реНрдкреЗрд╕ рдмреА рд╡рд╛рдкрд░реВ рд╢рдХрддреЗ рдЖрдгрд┐ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЯреАрдо рдЧреНрд▓реЛрдмрд▓ рд╕реНрдкреЗрд╕ рд╡рд╛рдкрд░реВ рд╢рдХрддреЗ.
  5. рдПрдХ рдирд┐рдпрдо рдореНрд╣рдгреВрди, рд╕рд╛рдзрдиреЗ рдЦреВрдк рд╣рд▓рдХреЗ рдЖрд╣реЗрдд.
  6. рдСрдкрд░реЗрдЯрд░ рд╕рд╛рд░рдЦреНрдпрд╛ рд╕рд╛рдзрдирд╛рдВрд╕рд╣ рдПрдХрддреНрд░рд┐рдд рдмрд┐рдЯрдирд╛рдореА рд╕реАрд▓рдмрдВрдж рд░рд╣рд╕реНрдпреЗ, рдЧреБрдкрд┐рддреЗ Git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд.
  7. рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдЙрдкрдпреЛрдЬрди рд╣реЛрдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ рд╕реАрдбреА рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╢реА рдХреЛрдгрддреЗрд╣реА рдХрдиреЗрдХреНрд╢рди рдирд╛рд╣реА.

рдорд┐рдирд┐рдиреНрд╕:

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

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

GitOps: рдкреБрд▓ рдЖрдгрд┐ рдкреБрд╢ рдкрджреНрдзрддреАрдВрдЪреА рддреБрд▓рдирд╛

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

╨Я╨╗╤О╤Б╤Л:

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

рдорд┐рдирд┐рдиреНрд╕:

  1. рдХреНрд▓рд╕реНрдЯрд░ рдНрдХреНрд╕реЗрд╕ рдбреЗрдЯрд╛ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рдЖрд╣реЗ.
  2. рдЙрдкрдпреЛрдЬрди рдХрдВрдЯреЗрдирд░ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреЗ рдкреБрд▓ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╣ рдЕрджреНрдпрд╛рдк рд╕реЛрдкреЗ рдЖрд╣реЗ.
  3. рд╕реАрдбреА рд╕рд┐рд╕реНрдЯреАрдорд╡рд░ рдЦреВрдк рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡, рдХрд╛рд░рдг рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрджрд╛рдЪрд┐рдд рдЧрд┐рдЯрд▓реЕрдм рд░рдирд░реНрд╕рд╕рд╛рдареА рд▓рд┐рд╣рд┐рд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЕрд╕рддреАрд▓ рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░ рдЯреАрдордиреЗ Azure DevOps рдХрд┐рдВрд╡рд╛ Jenkins рд╡рд░ рдЬрд╛рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛... рдЖрдгрд┐ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдмрд┐рд▓реНрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реНрдерд▓рд╛рдВрддрд░рд┐рдд рдХрд░рд╛рд╡реНрдпрд╛ рд▓рд╛рдЧрддреАрд▓.

рдкрд░рд┐рдгрд╛рдо: рдкреБрд╢ рдХрд┐рдВрд╡рд╛ рдкреБрд▓?

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

рдереЛрдбрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓реНрдпрд╛рд╡рд░, рдореА рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдирд┐рд╖реНрдХрд░реНрд╖рд╛рд╡рд░ рдЖрд▓реЛ рдХреА рд╣реЗ рддрд╕реЗ рдирд╛рд╣реА. рдЬрд░ рдЖрдореНрд╣реА рдЕрд╢рд╛ рдШрдЯрдХрд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓рд▓реЛ рдЬреНрдпрд╛рдВрдирд╛ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рд╕рдВрд░рдХреНрд╖рдг рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рддрд░ рдпрд╛ рд╕реВрдЪреАрдордзреНрдпреЗ рдЧреБрдкреНрдд рд╕реНрдЯреЛрд░реЗрдЬ, CI/CD рд╕рд┐рд╕реНрдЯрдо рдЖрдгрд┐ Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рддреАрд▓. рддреНрдпрд╛рдВрдЪреНрдпрд╛рддреАрд▓ рдорд╛рд╣рд┐рддреА рдЕрддрд┐рд╢рдп рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рд╕рдВрд░рдХреНрд╖рдгрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЬрд░ рдХреЛрдгреА рддреБрдордЪреНрдпрд╛ Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рдЖрд▓рд╛ рдЖрдгрд┐ рддреЗрдереЗ рдХреЛрдб рдкреБрд╢ рдХрд░реВ рд╢рдХрддреЛ, рддрд░ рддреЗ рддреНрдпрд╛рдВрдирд╛ рд╣рд╡реЗ рддреЗ рдЙрдкрдпреЛрдЬрд┐рдд рдХрд░реВ рд╢рдХрддрд╛рдд (рдордЧ рддреЗ рдкреБрд▓ рдХрд┐рдВрд╡рд╛ рдкреБрд╢) рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рдШреБрд╕рдЦреЛрд░реА рдХрд░реВ рд╢рдХрддрд╛рдд. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрд╡рд╛рдЪреЗ рдШрдЯрдХ рдЬреНрдпрд╛рдВрдирд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рддреЗ рдореНрд╣рдгрдЬреЗ рдЧрд┐рдЯ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдЖрдгрд┐ рд╕реАрдЖрдп/рд╕реАрдбреА рд╕рд┐рд╕реНрдЯрдо, рдХреНрд▓рд╕реНрдЯрд░ рдХреНрд░реЗрдбреЗрдиреНрд╢рд┐рдпрд▓реНрд╕ рдирд╡реНрд╣реЗ. рдЬрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╕рд┐рд╕реНрдЯреАрдорд╕рд╛рдареА рдзреЛрд░рдгреЗ рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдирд┐рдпрдВрддреНрд░рдгреЗ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реА рдЕрд╕рддреАрд▓ рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдХреНрд░реЗрдбреЗрдиреНрд╢рд┐рдпрд▓реНрд╕ рдХреЗрд╡рд│ рдЧреБрдкрд┐рддреЗ рдореНрд╣рдгреВрди рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рдХрд╛рдврд▓реА рдЧреЗрд▓реА рдЕрд╕рддреАрд▓, рддрд░ рдкреБрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдЪреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд░рдХреНрд╖рд╛ рдореВрд│ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдореВрд▓реНрдпрд╡рд╛рди рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА.

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

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

рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рдпрд╛ рд╡рд┐рд╖рдпрд╛рд╡рд░реАрд▓ рдорд╛рдЭрд╛ рдЕрдиреБрднрд╡ рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рдЙрдкрдпреЛрдЬрди рдкреНрд░рдХрд╛рд░рд╛рд╕рд╛рдареА рдХреЛрдгрддреА рдкрджреНрдзрдд рдЕрдзрд┐рдХ рдпреЛрдЧреНрдп рдЖрд╣реЗ рд╣реЗ рдард░рд╡рд┐рдгреНрдпрд╛рдд рдорджрдд рдХрд░реЗрд▓ рдЖрдгрд┐ рддреБрдордЪреЗ рдордд рдРрдХреВрди рдорд▓рд╛ рдЖрдирдВрдж рд╣реЛрдИрд▓.

рдЕрдиреБрд╡рд╛рджрдХрд╛рдХрдбреВрди рдкреАрдПрд╕ рдЯреАрдк

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

рдпрд╛ рдЕрд░реНрдерд╛рдиреЗ, рдкреБрд╢ рдореЙрдбреЗрд▓ рдЖрдореНрд╣рд╛рд▓рд╛ рд░реЛрд▓рдЖрдЙрдЯрдЪреА рдХрд┐рдорд╛рди рдХрд╛рд╣реА рд╣рдореА рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ, рдХрд╛рд░рдг рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪреЗ рдЖрдпреБрд╖реНрдп рд░реЛрд▓рдЖрдЙрдЯрдЪреНрдпрд╛ рдЖрдпреБрд╖реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

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

  1. рдкреБрд▓ рдореЙрдбреЗрд▓ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рд╡рд░ рд╕рд┐рд╕реНрдЯрдо рдШрдЯрдХрд╛рдВрдЪреЗ рдЕрджреНрдпрддрдиреЗ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ (рдкрд╣рд╛. рдНрдбрдСрди-рдСрдкрд░реЗрдЯрд░ рдмрджреНрджрд▓ рд▓реЗрдЦ).
  2. GitLab CI рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдкреБрд╢ рдореЙрдбреЗрд▓ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рд╡рд╛рдкрд░реВрди рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдЯреВрд▓ рд╡рд╛рдкрд░реВрди рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреАрд▓ рдЙрдкрдпреЛрдЬрдирд╛рдВрдЪреНрдпрд╛ рд░реЛрд▓рдЖрдЙрдЯрдЪреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗрд▓реЗ рдЬрд╛рддреЗ werf. рддрд╕реЗ, рдЖрдордЪреНрдпрд╛ рдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд, рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА KubeCon Europe'19 рдпреЗрдереЗ рдЖрдордЪреНрдпрд╛ рд╕реНрдЯрдБрдбрд╡рд░ DevOps рдЕрднрд┐рдпрдВрддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛рдВрдмрджреНрджрд▓ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА рддреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рд╕рддрдд тАЬGitOpsтАЭ рдРрдХрд▓реЗ.

рдЕрдиреБрд╡рд╛рджрдХрд╛рдХрдбреВрди PPS

рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:

рдХреЗрд╡рд│ рдиреЛрдВрджрдгреАрдХреГрдд рд╡рд╛рдкрд░рдХрд░реНрддреЗрдЪ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрд╛рдд рднрд╛рдЧ рдШреЗрдК рд╢рдХрддрд╛рдд. рд╕рд╛рдЗрди рдЗрди рдХрд░рд╛, рдЖрдкрд▓реЗ рд╕реНрд╡рд╛рдЧрдд рдЖрд╣реЗ.

рддреБрдореНрд╣реА GitOps рд╡рд╛рдкрд░рдд рдЖрд╣рд╛рдд?

  • рд╣реЛрдп, рдкреБрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрди

  • рд╣реЛрдп, рдврдХрд▓рдгреЗ

  • рд╣реЛрдп, рдкреБрд▓ + рдкреБрд╢

  • рд╣реЛрдп, рджреБрд╕рд░реЗ рдХрд╛рд╣реАрддрд░реА

  • рдХреЛрдгрддреНрдпрд╛рд╣реА

30 рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдиреА рдорддрджрд╛рди рдХреЗрд▓реЗ. 10 рд╡рд╛рдкрд░рдХрд░реНрддреЗ рджреВрд░ рд░рд╛рд╣рд┐рд▓реЗ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛