рдЙрддреНрд╕рд╡рдХреЛ рдПрдХ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рдЖрдпреЛрдЬрд┐рдд DevOpsConf 27 рд╕рдореНрдореЗрд▓рдирдХреЛ рдореБрдЦреНрдп рд╣рд▓рдорд╛ рдореЗ 2019
рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдкрдЫрд┐, рд╣рд╛рдореНрд░реЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ (рдкрд╣рд┐рд▓реЗ dapp рднрдиреЗрд░ рдЪрд┐рдирд┐рдиреНрдереНрдпреЛ) рдХреЛ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдорд╛рдЗрд▓рд╕реНрдЯреЛрдирдорд╛ рдкреБрдЧреЗрдХреЛ рдЫ GitHub рдорд╛ 1000 рддрд╛рд░рд╛рд╣рд░реВ тАФ рд╣рд╛рдореА рдЖрд╢рд╛ рдЧрд░реНрдЫреМрдВ рдХрд┐ рдпрд╕рдХреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдмрдвреНрджреЛ рд╕рдореБрджрд╛рдпрд▓реЗ рдзреЗрд░реИ DevOps рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд╣рд░реВрдХреЛ рдЬреАрд╡рдирд▓рд╛рдИ рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдиреЗрдЫред
рддреНрдпрд╕реИрд▓реЗ, рдкрд░рд┐рдЪрдп рдЧрд░реМрдВ
Kubernetes рд▓рд╛рдИ рдХреЛрдб рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрджреИ
рдХреБрд░рд╛рдХрд╛рдиреА рдЕрдм werf рдХреЛ рдмрд╛рд░реЗ рдорд╛ рд╣реБрдиреЗрдЫреИрди, рддрд░ Kubernetes рдорд╛ CI/CD рдХреЛ рдмрд╛рд░реЗ рдорд╛, рд╣рд╛рдореНрд░реЛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдбрдХрд░ рдХрдиреНрдЯреЗрдирд░ рдорд╛ рдкреНрдпрд╛рдХ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗрд░ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫред (рдореИрд▓реЗ рдпрд╕ рдмрд╛рд░реЗ рдорд╛ рдХреБрд░рд╛ рдЧрд░реЗрдХреЛ рдЫреБ
Kubernetes рдорд╛ рдбреЗрд▓рд┐рднрд░реА рдХрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ?
- рддреНрдпрд╣рд╛рдБ рдХреЛрдб рд░ рдпрд╕рд▓рд╛рдИ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдХреЛ рд╕рд╛рде рдПрдХ Git рднрдгреНрдбрд╛рд░ рдЫред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдбрдХрд░ рдЫрд╡рд┐рдорд╛ рдирд┐рд░реНрдорд┐рдд рдЫ рд░ рдбрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЫред
- рдПрдЙрдЯреИ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реАрд▓реЗ рдХрд╕рд░реА рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрдиреЗ рд░ рдЪрд▓рд╛рдЙрдиреЗ рдмрд╛рд░реЗ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рдЪрд░рдгрдорд╛, рдпреА рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдорд╛ рдкрдард╛рдЗрдиреНрдЫ, рдЬрд╕рд▓реЗ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдмрд╛рдЯ рдЗрдЪреНрдЫрд┐рдд рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫ рд░ рдпрд╕рд▓рд╛рдИ рд╕реБрд░реВ рдЧрд░реНрджрдЫред
- рд╕рд╛рдереИ, рддреНрдпрд╣рд╛рдБ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЫрдиреНред рдпреА рдордзреНрдпреЗ рдХреЗрд╣реА рдЫрд╡рд┐ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрджрд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рддрдкрд╛рдИрдВ рдкрдирд┐ (рдЙрд╣реА рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрдЫреНрдпрд╛рдПрд░) рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ (рдЕрд▓рдЧ K8s рдиреЗрдорд╕реНрдкреЗрд╕ рд╡рд╛ рдЫреБрдЯреНрдЯреИ рдХреНрд▓рд╕реНрдЯрд░рдорд╛) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рддреНрдпрд╣рд╛рдБ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
- рдЕрдиреНрддрдорд╛, рддрдкрд╛рдИрдВрд▓рд╛рдИ CI рдкреНрд░рдгрд╛рд▓реА рдЪрд╛рд╣рд┐рдиреНрдЫ рдЬрд╕рд▓реЗ Git (рд╡рд╛ рдмрдЯрди рдХреНрд▓рд┐рдХрд╣рд░реВ) рдмрд╛рдЯ рдШрдЯрдирд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫ рд░ рд╕рдмреИ рддреЛрдХрд┐рдПрдХрд╛ рдЪрд░рдгрд╣рд░реВ рдХрд▓ рдЧрд░реНрджрдЫ: рдирд┐рд░реНрдорд╛рдг, рдкреНрд░рдХрд╛рд╢рд┐рдд, рддреИрдирд╛рддреА, рдкрд░реАрдХреНрд╖рдгред
рдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯрд╣рд░реВ рдЫрдиреН:
- рдХрд┐рдирднрдиреЗ рд╣рд╛рдореАрд╕рдБрдЧ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдЫ (рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреВрд░реНрд╡рд╛рдзрд╛рд░), рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЫрд╡рд┐ рдЬреБрди рд╕рдмреИ рдЪрд░рдгрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ (рд╕реНрдЯреЗрдЬрд┐рдЩ, рдЙрддреНрдкрд╛рджрди, рдЖрджрд┐), рддреНрдпрд╣рд╛рдБ рдПрдХ рд╣реБрдиреБрдкрд░реНрдЫ. рдореИрд▓реЗ рдпрд╕ рдмрд╛рд░реЗ рдердк рд╡рд┐рд╡рд░рдг рд░ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХрд╛ рд╕рд╛рде рдХреБрд░рд╛ рдЧрд░реЗрдВред
рдпрд╣рд╛рдБ . - рдХрд┐рдирднрдиреЗ рд╣рд╛рдореА рдкреВрд░реНрд╡рд╛рдзрд╛рд░рд▓рд╛рдИ рдХреЛрдбрдХреЛ рд░реВрдкрдорд╛ рдкрдЫреНрдпрд╛рдЙрдБрдЫреМрдВ (IaC), рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдХреЛрдб, рдПрд╕реЗрдореНрдмрд▓ рдЧрд░реНрди рд░ рд╕реБрд░реБ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рд╣реБрдиреБрдкрд░реНрдЫ рдареНрдпрд╛рдХреНрдХреИ рдПрдЙрдЯрд╛ рднрдгреНрдбрд╛рд░рдорд╛. рдпрд╕ рдмрд╛рд░реЗ рдердк рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд▓рд╛рдЧрд┐, рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН
рдПрдЙрдЯреИ рд░рд┐рдкреЛрд░реНрдЯ . - рдбреЗрд▓рд┐рднрд░реА рдЪреЗрди (рд╡рд┐рддрд░рдг) рд╣рд╛рдореА рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпрд╕рд▓рд╛рдИ рдпреЛ рдЬрд╕реНрддреИ рджреЗрдЦреНрдЫреМрдВ: рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднреЗрд▓рд╛, рдкрд░реАрдХреНрд╖рдг, рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ (рд╡рд┐рдореЛрдЪрди рдЪрд░рдг) рд░ рддреНрдпреЛ рд╣реЛ - рдбреЗрд▓рд┐рднрд░реА рднрдПрдХреЛ рдЫред рддрд░ рд╡рд╛рд╕реНрддрд╡рдорд╛, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рддрдкрд╛рдИрд▓реЗ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реЗрдХреЛ рдХреБрд░рд╛ рдкрд╛рдЙрдБрдЫ, рдЫреИрди рддреНрдпрд╕реЛрднрдП рдЬрдм рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдЙрддреНрдкрд╛рджрдирдорд╛ рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрдиреБрднрдпреЛ, рд░ рдЬрдм рдЙрдиреА рддреНрдпрд╣рд╛рдБ рдЬрд╛рди рд╕рдХреНрд╖рдо рднрдП рд░ рдпреЛ рдЙрддреНрдкрд╛рджрдирд▓реЗ рдХрд╛рдо рдЧрд░реНрдпреЛред рддреНрдпрд╕реИрд▓реЗ рдорд▓рд╛рдИ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЫ рдХрд┐ рдбреЗрд▓рд┐рднрд░реА рдЪреЗрди рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫ рдХреЗрд╡рд▓ рдкрд░рд┐рдЪрд╛рд▓рди рдЪрд░рдгрдорд╛ (рджреМрдб), рд╡рд╛ рдердк рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛, рдХреЛрдб рдЙрддреНрдкрд╛рджрдирдмрд╛рдЯ рд╣рдЯрд╛рдЗрдПрдХрд╛ рдХреНрд╖рдгрдорд╛ рдкрдирд┐ (рдпрд╕рд▓рд╛рдИ рдирдпрд╛рдБрд╕рдБрдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрджреИ)ред
Kubernetes рдорд╛ рдорд╛рдерд┐рдХреЛ рдбреЗрд▓рд┐рднрд░реА рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдлрд░реНрдХреМрдВ: рдпреЛ рдХреЗрд╡рд▓ рд╣рд╛рдореА рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдПрди, рддрд░ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдкрдорд╛ рдпрд╕ рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрдиреЗ рд╕рдмреИрд▓реЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЧрд░реЗрдХрд╛ рдерд┐рдПред рд╡рд╛рд╕реНрддрд╡рдорд╛, рдпреЛ рдврд╛рдБрдЪрд╛ рдЕрдм GitOps рднрдирд┐рдиреНрдЫ (рддрдкрд╛рдИрд▓реЗ рд╢рдмреНрдж рд░ рдпрд╕рдХреЛ рдкрдЫрд╛рдбрд┐ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рдмрд╛рд░реЗ рдердк рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
рд╕реНрдЯреЗрдЬ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рддрдкрд╛рдЗрдБ реирежрезреп рдорд╛ рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЬрдм рд╕рдмреИрд▓рд╛рдИ рдбрдХрд░рдлрд╛рдЗрд▓рд╣рд░реВ рдХрд╕рд░реА рд▓реЗрдЦреНрдиреЗ рд░ рдЪрд▓рд╛рдЙрдиреЗ рднрдиреЗрд░ рдерд╛рд╣рд╛ рдЫред docker build
?.. рдпрд╣рд╛рдБ рдо рдзреНрдпрд╛рди рджрд┐рди рдЪрд╛рд╣рдиреНрдЫреБ рдХрд┐ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдЫрдиреН:
- рдЫрд╡рд┐ рд╡рдЬрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ, рддреНрдпрд╕реИрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдмрд╣реБ-рдЪрд░рдг рдЫрд╡рд┐рдорд╛ рдорд╛рддреНрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЫреЛрдбреНрди рдЬреБрди рдЕрдкрд░реЗрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рд╕реНрддрд╡рдореИ рдЖрд╡рд╢реНрдпрдХ рдЫред - рддрд╣рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЪреЗрдирд╣рд░реВ рд╕рдВрдпреЛрдЬрди рдЧрд░реЗрд░ рдиреНрдпреВрдиреАрдХрд░рдг рдЧрд░реНрдиреБрдкрд░реНрдЫ
RUN
- рдЕрд░реНрде рдЕрдиреБрд╕рд╛рд░ рдЖрджреЗрд╢ред - рддрд░, рдпрд╕рд▓реЗ рд╕рдорд╕реНрдпрд╛ рдердкреНрдЫ рдбрд┐рдмрдЧрд┐рдЩ, рдХрд┐рдирднрдиреЗ рдЬрдм рдПрд╕реЗрдореНрдмрд▓реА рдХреНрд░реНрдпрд╛рд╕ рд╣реБрдиреНрдЫ, рддрдкрд╛рдИрд▓реЗ рд╕рдорд╕реНрдпрд╛рдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЪреЗрдирдмрд╛рдЯ рд╕рд╣реА рдЖрджреЗрд╢ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБ рдкрд░реНрдЫред
- рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЧрддрд┐ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХрд┐рдирднрдиреЗ рд╣рд╛рдореА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЫрд┐рдЯреЛ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрди рд░ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рд╣реЗрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджрд╛ рднрд╛рд╖рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдорд╛ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдиред
- рдЕрдХреНрд╕рд░ рдПрдХ Git рднрдгреНрдбрд╛рд░рдмрд╛рдЯ рддрдкрд╛рдИрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреНрдЫ рдзреЗрд░реИ рдЫрд╡рд┐рд╣рд░реВ, рдЬрд╕рд▓рд╛рдИ Dockerfiles рдХреЛ рд╕реЗрдЯ (рд╡рд╛ рдПрдЙрдЯрд╛ рдлрд╛рдЗрд▓рдорд╛ рдирд╛рдо рдЧрд░рд┐рдПрдХрд╛ рдЪрд░рдгрд╣рд░реВ) рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЕрд╕реЗрдВрдмрд▓реАрдХреЛ рд╕рд╛рде Bash рд╕реНрдХреНрд░рд┐рдкреНрдЯрджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
рдпреЛ рд╕рдмреИрд▓реЗ рд╕рд╛рдордирд╛ рдЧрд░реНрдиреЗ рд╣рд┐рдорд╢реИрд▓реАрдХреЛ рдЯреБрдкреНрдкреЛ рдорд╛рддреНрд░ рдерд┐рдпреЛред рддрд░ рддреНрдпрд╣рд╛рдБ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреН, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА:
- рдЕрдХреНрд╕рд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЪрд░рдгрдорд╛ рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗрд╣рд┐ рдЪрд╛рд╣рд┐рдиреНрдЫ рдорд╛рдЙрдиреНрдЯ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ apt рдЬрд╕реНрддрд╛ рдЖрджреЗрд╢рдХреЛ рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН)ред
- рд╣рд╛рдореА рдЪрд╛рд╣рдиреНрдЫреМрдВ рдЕрдЬреНрдЮрд╛рдд рдЦреЛрд▓рдорд╛ рд▓реЗрдЦреНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ред
- рд╣рд╛рдореА рдЪрд╛рд╣рдиреНрдЫреМрдВ рдбрдХрд░ рдмрд┐рдирд╛ рдирд┐рд░реНрдорд╛рдг (рд╣рд╛рдореАрд▓рд╛рдИ рдХрд┐рди рдЕрддрд┐рд░рд┐рдХреНрдд рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рдЪрд╛рд╣рд┐рдиреНрдЫ рдЬрд╕рдорд╛ рд╣рд╛рдореАрд▓реЗ рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рдХреБрд░рд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЬрдм рд╣рд╛рдореАрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдЫ рдЬрд╕рдорд╛ рд╣рд╛рдореА рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдЫреМрдВ?)
- рд╕рдорд╛рдирд╛рдиреНрддрд░ рд╕рднрд╛, рдЬреБрди рд╡рд┐рднрд┐рдиреНрди рддрд░рд┐рдХрд╛рдорд╛ рдмреБрдЭреНрди рд╕рдХрд┐рдиреНрдЫ: рдбрдХрд░рдлрд╛рдЗрд▓рдмрд╛рдЯ рдлрд░рдХ рдЖрджреЗрд╢рд╣рд░реВ (рдпрджрд┐ рдмрд╣реБ-рдЪрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ), рдПрдЙрдЯреИ рднрдгреНрдбрд╛рд░рдХрд╛ рдзреЗрд░реИ рдХрдорд┐рдЯрд╣рд░реВ, рдзреЗрд░реИ рдбрдХрд░рдлрд╛рдЗрд▓рд╣рд░реВред
- рд╡рд┐рддрд░рдг рд╕рднрд╛: рд╣рд╛рдореА рдкреЛрдбрд╣рд░реВрдорд╛ рдЪреАрдЬрд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ рдЬреБрди "рдЕрд╕реНрдерд╛рдпреА" рд╣реЛ рдХрд┐рдирднрдиреЗ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХреНрдпрд╛рд╕ рдЧрд╛рдпрдм рд╣реБрдиреНрдЫ, рдЬрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рдХрддреИ рдЫреБрдЯреНрдЯреИ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
- рдЕрдиреНрддрдорд╛, рдореИрд▓реЗ рдЗрдЪреНрдЫрд╛рд╣рд░реВрдХреЛ рд╢рд┐рдЦрд░рдХреЛ рдирд╛рдо рджрд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд: рд░рд┐рдкреЛрдЬрд┐рдЯрд░реАрдорд╛ рдЬрд╛рдиреБ, рдХреЗрд╣реА рдХрдорд╛рдгреНрдб рдЯрд╛рдЗрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдХрд╕рд░реА рд░ рдХреЗ рд╕рд╣реА рддрд░рд┐рдХрд╛рд▓реЗ рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмреБрдЭрд╛рдЗрдХреЛ рд╕рд╛рде рдПрдХ рддрдпрд╛рд░ рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдпреЛ рдЖрджрд░реНрд╢ рд╣реБрдиреЗрдЫред рдпрджреНрдпрдкрд┐, рдо рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдкрдорд╛ рдирд┐рд╢реНрдЪрд┐рдд рдЫреИрди рдХрд┐ рд╕рдмреИ рд╕реВрдХреНрд╖реНрдорддрд╛рд╣рд░реВ рдпрд╕ рддрд░рд┐рдХрд╛рд▓реЗ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
рд░ рдпрд╣рд╛рдБ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдЫрдиреН:
-
moby/buildkit - рдбрдХрд░ рдЗрдВрдХ (рдкрд╣рд┐рд▓реЗ рдиреИ рдбрдХрд░рдХреЛ рд╣рд╛рд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рдПрдХреАрдХреГрдд) рдХреЛ рдПрдХ рдмрд┐рд▓реНрдбрд░, рдЬрд╕рд▓реЗ рдпреА рд╕рдмреИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫ; -
рдХрдирд┐рдХреЛ - рдЧреБрдЧрд▓рдмрд╛рдЯ рдПрдХ рдмрд┐рд▓реНрдбрд░ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдбрдХрд░ рдмрд┐рдирд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ; -
Buildpacks.io - CNCF рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЬрд╛рджреБрдИ рдмрдирд╛рдЙрди рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпрд╛рд╕ рд░, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рддрд╣рд╣рд░реБ рдХреЛ рд▓рд╛рдЧреА рд░рд┐рдмреЗрд╕ рд╕рдВрдЧ рдПрдХ рд░реЛрдЪрдХ рд╕рдорд╛рдзрд╛рди; - рд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрдХреЛ рдЧреБрдЪреНрдЫрд╛, рдЬрд╕реНрддреИ
рдмрд┐рд▓реНрдбрд╣ ,genuinetools/img ...
...рд░ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН GitHub рдорд╛ рдХрддрд┐ рддрд╛рд░рд╛рд╣рд░реВ рдЫрдиреНред рдЕрд░реНрдерд╛рддреН рдПрдХрд╛рддрд┐рд░, docker build
рдЕрд╡рд╕реНрдерд┐рдд рдЫ рд░ рдХреЗрд╣рд┐ рдЧрд░реНрди рд╕рдХреНрдЫ, рддрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рдорд╛ рд╕рдорд╕реНрдпрд╛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рдорд╛рдзрд╛рди рднрдПрдХреЛ рдЫреИрди - рдпрд╕рдХреЛ рдкреНрд░рдорд╛рдг рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд▓реЗрдХреНрдЯрд░рд╣рд░реВрдХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рд╡рд┐рдХрд╛рд╕ рд╣реЛ, рдЬрд╕рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХрд▓реЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдХреЗрд╣реА рдЕрдВрд╢ рд╣рд▓ рдЧрд░реНрджрдЫред
werf рдорд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛
рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рдкрд╛рдпреМрдВ
рдиреАрд▓реЛрдорд╛ рдЫрд╛рдпрд╛рдВрдХрди рдЧрд░рд┐рдПрдХрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднрдЗрд╕рдХреЗрдХрд╛ рдЫрдиреН, рд╕рдорд╛рдирд╛рдиреНрддрд░ рдирд┐рд░реНрдорд╛рдг рдПрдЙрдЯреИ рд╣реЛрд╕реНрдЯ рднрд┐рддреНрд░ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рд░ рдкрд╣реЗрдВрд▓реЛрдорд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░рд┐рдПрдХрд╛ рдореБрджреНрджрд╛рд╣рд░реВ рдЧрд░реНрдореАрдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдкреВрд░рд╛ рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдЫред
рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рдкреНрд░рдХрд╛рд╢рдирдХреЛ рдЪрд░рдг (рдкреНрд░рдХрд╛рд╢рди)
рд╣рд╛рдореАрд▓реЗ рдбрд╛рдпрд▓ рдЧрд░реНрдпреМрдВ docker push
... - рдХреЗ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб рдЧрд░реНрди рдЧрд╛рд╣реНрд░реЛ рд╣реБрди рд╕рдХреНрдЫ? рд░ рддреНрдпрд╕рдкрдЫрд┐ рдкреНрд░рд╢реНрди рдЙрдареНрдЫ: "рдореИрд▓реЗ рдЫрд╡рд┐рдорд╛ рдХреБрди рдЯреНрдпрд╛рдЧ рд░рд╛рдЦреНрдиреБ рдкрд░реНрдЫ?" рдпреЛ рд╣рд╛рдореАрд╕рдБрдЧ рднрдПрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ Gitflow (рд╡рд╛ рдЕрдиреНрдп Git рд░рдгрдиреАрддрд┐) рд░ Kubernetes, рд░ рдЙрджреНрдпреЛрдЧрд▓реЗ Kubernetes рдорд╛ рдХреЗ рд╣реБрдиреНрдЫ Git рдорд╛ рдХреЗ рд╣реБрдиреНрдЫ рддреНрдпрд╕рд▓рд╛рдИ рдкрдЫреНрдпрд╛рдЙрдиреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдХреЛрд╢рд┐рд╕ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫред рдЖрдЦрд┐рд░, Git рд╣рд╛рдореНрд░реЛ рд╕рддреНрдпрдХреЛ рдПрдХ рдорд╛рддреНрд░ рд╕реНрд░реЛрдд рд╣реЛред
рдпрд╕рдорд╛ рдХреЗ рдЧрд╛рд╣реНрд░реЛ рдЫ? рдкреНрд░рдЬрдирди рдХреНрд╖рдорддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН: Git рдорд╛ рдХрдорд┐рдЯрдмрд╛рдЯ, рдЬреБрди рдкреНрд░рдХреГрддрд┐рдорд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЫ (рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп), рдбрдХрд░ рдЫрд╡рд┐рдорд╛, рдЬреБрди рдЙрд╕реНрддреИ рд░рд╛рдЦреНрдиреБрдкрд░реНрдЫред
рдпреЛ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдкрдирд┐ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ рдЙрддреНрдкрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рдг, рдХрд┐рдирдХрд┐ рд╣рд╛рдореА рдХреБрди рдХрдорд┐рдЯрдмрд╛рдЯ Kubernetes рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдмрдирд╛рдЗрдПрдХреЛ рдерд┐рдпреЛ рднрдиреЗрд░ рдмреБрдЭреНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ (рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдбрд┐рдл рд░ рд╕рдорд╛рди рдЪреАрдЬрд╣рд░реВ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ)ред
рдЯреНрдпрд╛рдЧрд┐рдЩ рд░рдгрдиреАрддрд┐рд╣рд░реВ
рдкрд╣рд┐рд▓реЛ рд╕рд░рд▓ рдЫ git рдЯреНрдпрд╛рдЧред рд╣рд╛рдореАрд╕рдБрдЧ рдЯреНрдпрд╛рдЧ рдЧрд░рд┐рдПрдХреЛ рдЫрд╡рд┐рдХреЛ рд╕рд╛рде рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЫ 1.0
ред Kubernetes рдХреЛ рд╕реНрдЯреЗрдЬ рд░ рдЙрддреНрдкрд╛рджрди рдЫ, рдЬрд╣рд╛рдБ рдпреЛ рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб рдЧрд░рд┐рдПрдХреЛ рдЫред Git рдорд╛ рд╣рд╛рдореА рдХрдорд┐рдЯ рдЧрд░реНрдЫреМрдВ рд░ рдХреЗрд╣рд┐ рдмрд┐рдиреНрджреБрдорд╛ рд╣рд╛рдореА рдЯреНрдпрд╛рдЧ рдЧрд░реНрдЫреМрдВ 2.0
ред рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рднрдгреНрдбрд╛рд░рдмрд╛рдЯ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдЕрдиреБрд╕рд╛рд░ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдЫреМрдВ рд░ рдпрд╕рд▓рд╛рдИ рдЯреНрдпрд╛рдЧрдХреЛ рд╕рд╛рде рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рд░рд╛рдЦреНрдЫреМрдВ 2.0
ред рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╕реНрдЯреЗрдЬрдорд╛ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрдЫреМрдВ рд░, рдпрджрд┐ рд╕рдмреИ рдареАрдХ рдЫ рднрдиреЗ, рдЙрддреНрдкрд╛рджрдирдорд╛ред
рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпреЛ рд╣реЛ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдЯреНрдпрд╛рдЧ рд░рд╛рдЦреНрдпреМрдВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдорд╛рддреНрд░ рдкрд░реАрдХреНрд╖рдг рд░ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрдпреМрдВред рдХрд┐рди? рдкрд╣рд┐рд▓реЛ, рдпреЛ рдХреЗрд╡рд▓ рдЕрддрд╛рд░реНрдХрд┐рдХ рдЫ: рд╣рд╛рдореАрд▓реЗ рд╕рдлреНрдЯрд╡реЗрдпрд░рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдЧрд░реНрджреИрдЫреМрдВ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рдкрд░реАрдХреНрд╖рдг рдЧрд░реЗрдХрд╛ рдЫреИрдиреМрдВ (рд╣рд╛рдореА рдЕрдиреНрдпрдерд╛ рдЧрд░реНрди рд╕рдХреНрджреИрдиреМрдВ, рдХрд┐рдирдХрд┐ рдЬрд╛рдБрдЪ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдЯреНрдпрд╛рдЧ рд░рд╛рдЦреНрдиреБ рдкрд░реНрдЫ)ред рджреЛрд╕реНрд░реЛ, рдпреЛ рдорд╛рд░реНрдЧ Gitflow рд╕рдВрдЧ рдЙрдкрдпреБрдХреНрдд рдЫреИрдиред
рджреЛрд╕реНрд░реЛ рд╡рд┐рдХрд▓реНрдк рд╣реЛ git рдХрдорд┐рдЯ + рдЯреНрдпрд╛рдЧред рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛рдорд╛ рдЯреНрдпрд╛рдЧ рдЫ 1.0
; рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ - рдЙрддреНрдкрд╛рджрдирдорд╛ рддреИрдирд╛рде рдЧрд░рд┐рдПрдХреЛ рдЫрд╡рд┐ред рдердк рд░реВрдкрдорд╛, Kubernetes рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд░ рд╕реНрдЯреЗрдЬрд┐рдЩ рд░реВрдкрд░реЗрдЦрд╛рд╣рд░реВ рдЫрдиреНред рдЕрд░реНрдХреЛ рд╣рд╛рдореА Gitflow рд▓рд╛рдИ рдкрдЫреНрдпрд╛рдЙрдБрдЫреМрдВ: рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛рдорд╛ (develop
) рд╣рд╛рдореА рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдмрдирд╛рдЙрдБрдЫреМрдВ, рдЬрд╕рдХреЛ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╕рдБрдЧ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╣реБрдиреНрдЫ #c1
ред рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдЫреМрдВ рд░ рдпреЛ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрдЫреМрдВ (#c1
)ред рдЙрд╣реА рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рдХреЛ рд╕рд╛рде рд╣рд╛рдореА рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЧрд░реНрди рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрдЫреМрдВред рд╣рд╛рдореА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╕рдВрдЧ рддреНрдпрд╕реНрддреИ рдЧрд░реНрдЫреМрдВ #c2
╨╕ #c3
.
рдЬрдм рд╣рд╛рдореАрд▓реЗ рдорд╣рд╕реБрд╕ рдЧрд░реНрдпреМрдВ рдХрд┐ рддреНрдпрд╣рд╛рдБ рдкрд░реНрдпрд╛рдкреНрдд рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдЫрдиреН, рд╣рд╛рдореА рд╕рдмреИ рдХреБрд░рд╛ рд╕реНрдерд┐рд░ рдЧрд░реНрди рдерд╛рд▓реНрдЫреМрдВред Git рдорд╛ рдПрдЙрдЯрд╛ рд╢рд╛рдЦрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН release_1.1
(рдЖрдзрд╛рд░рдорд╛ #c3
рдмрд╛рдЯ develop
)ред рдпреЛ рд░рд┐рд▓реАрдЬ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрди, рдХрд┐рдирднрдиреЗ ... рдпреЛ рдЕрдШрд┐рд▓реНрд▓реЛ рдЪрд░рдгрдорд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рддреНрдпрд╕рдХрд╛рд░рдг, рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╕реНрдЯреЗрдЬрд┐рдЩрдорд╛ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред рд╣рд╛рдореА рдмрдЧрд╣рд░реВ рдареАрдХ рдЧрд░реНрдЫреМрдВ #c4
рд░ рддреНрдпрд╕реИ рдЧрд░реА рд╕реНрдЯреЗрдЬрд┐рдЩрдорд╛ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдПрдХреИ рд╕рдордпрдорд╛, рд╡рд┐рдХрд╛рд╕ рднрдЗрд░рд╣реЗрдХреЛ рдЫ develop
, рдЬрд╣рд╛рдБрдмрд╛рдЯ рдЖрд╡рдзрд┐рдХ рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд▓рд┐рдЗрдиреНрдЫ release_1.1
ред рдХреЗрд╣рд┐ рдмрд┐рдиреНрджреБрдорд╛, рд╣рд╛рдореА рдПрдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХрдореНрдкрд╛рдЗрд▓ рд░ рд╕реНрдЯреЗрдЬрд┐рдЩрдорд╛ рдЕрдкрд▓реЛрдб рдЧрд░реНрдЫреМрдВ, рдЬреБрди рд╣рд╛рдореА рдЦреБрд╕реА рдЫреМрдВ (#c25
).
рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА (рдлрд╛рд╕реНрдЯ-рдлрд░реНрд╡рд╛рд░реНрдб рд╕рдВрдЧ) рд░рд┐рд▓реАрдЬ рд╢рд╛рдЦрд╛ (release_1.1
) рдорд╛рд╕реНрдЯрд░ рдорд╛ред рд╣рд╛рдореАрд▓реЗ рдпрд╕ рдХрдорд┐рдЯрдорд╛ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрдХреЛ рд╕рд╛рде рдЯреНрдпрд╛рдЧ рд░рд╛рдЦреНрдпреМрдВ (1.1
)ред рддрд░ рдпреЛ рдЫрд╡рд┐ рдкрд╣рд┐рд▓реЗ рдиреИ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░рд┐рдПрдХреЛ рдЫ, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рд▓рд╛рдИ рдлреЗрд░рд┐ рд╕рдЩреНрдХрд▓рди рдирдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдХреЗрд╡рд▓ рдЕрд╡рд╕реНрдерд┐рдд рдЫрд╡рд┐рдорд╛ рджреЛрд╕реНрд░реЛ рдЯреНрдпрд╛рдЧ рдердкреНрдЫреМрдВ (рдЕрд╣рд┐рд▓реЗ рдпреЛ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рдЯреНрдпрд╛рдЧрд╣рд░реВ рдЫрдиреНред #c25
╨╕ 1.1
)ред рддреНрдпрд╕ рдкрдЫрд┐, рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдЙрддреНрдкрд╛рджрдирдорд╛ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрдЫреМрдВред
рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдХрдордЬреЛрд░реА рдЫ рдХрд┐ рд╕реНрдЯреЗрдЬрд┐рдЩрдорд╛ рдПрдЙрдЯрд╛ рдорд╛рддреНрд░ рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб рдЧрд░рд┐рдПрдХреЛ рдЫ (#c25
), рд░ рдЙрддреНрдкрд╛рджрди рдорд╛ рдпреЛ рдлрд░рдХ рдкреНрд░рдХрд╛рд░рдХреЛ рдЫ (1.1
), рддрд░ рд╣рд╛рдореАрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХрд┐ "рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдкрдорд╛" рдпреА рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдмрд╛рдЯ рдПрдЙрдЯреИ рдЫрд╡рд┐ рд╣реБрдиреНред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣рд╛рдирд┐ рдпреЛ рд╣реЛ рдХрд┐ рдорд░реНрдЬ рдХрдорд┐рдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХреБрдиреИ рд╕рдорд░реНрдерди рдЫреИрди, рддрдкрд╛рдИрдВрд▓реЗ рдЫрд┐рдЯреЛ-рдЕрдЧрд╛рдбрд┐ рдЧрд░реНрдиреБ рдкрд░реНрдЫред
рд╣рд╛рдореА рдЕрдЧрд╛рдбрд┐ рдЬрд╛рди рд╕рдХреНрдЫреМрдВ рд░ рдПрдХ рдЪрд╛рд▓ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ... рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдбрдХрд░рдлрд╛рдЗрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдг рд╣реЗрд░реМрдВ:
FROM ruby:2.3 as assets
RUN mkdir -p /app
WORKDIR /app
COPY . ./
RUN gem install bundler && bundle install
RUN bundle exec rake assets:precompile
CMD bundle exec puma -C config/puma.rb
FROM nginx:alpine
COPY --from=assets /app/public /usr/share/nginx/www/public
рдирд┐рдореНрди рд╕рд┐рджреНрдзрд╛рдиреНрдд рдЕрдиреБрд╕рд╛рд░ рдпрд╕рдмрд╛рдЯ рдлрд╛рдЗрд▓ рдирд┐рд░реНрдорд╛рдг рдЧрд░реМрдВ:
- рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХрд╛ рдЫрд╡рд┐рд╣рд░реВрдХреЛ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╣рд░реВрдмрд╛рдЯ SHA256 (
ruby:2.3
╨╕nginx:alpine
), рдЬреБрди рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рд╛рдордЧреНрд░реАрдХреЛ рдЪреЗрдХрд╕рдорд╣рд░реВ рд╣реБрдиреН; - рд╕рдмреИ рдЯреЛрд▓реА (
RUN
,CMD
рд░ рдпрд╕реНрддреИред); - рдердкрд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВрдмрд╛рдЯ SHA256ред
... рд░ рддреНрдпрд╕реНрддреЛ рдлрд╛рдЗрд▓рдмрд╛рдЯ рдЪреЗрдХрд╕рдо (рдлреЗрд░рд┐ SHA256) рд▓рд┐рдиреБрд╣реЛрд╕реНред рдпреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдбрдХрд░ рдЫрд╡рд┐рдХреЛ рд╕рд╛рдордЧреНрд░реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреЗ рд╕рдмреИ рдХреБрд░рд╛ред
рд╣рд╛рдореА рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдорд╛ рдлрд░реНрдХреМрдВ рд░ рдХрдорд┐рдЯрдХреЛ рд╕рдЯреНрдЯрд╛ рд╣рд╛рдореА рддреНрдпрд╕реНрддрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ, рдЕрд░реНрдерд╛рддреН рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рд╣рд┐рдд рдЫрд╡рд┐рд╣рд░реВ рдЯреНрдпрд╛рдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдЕрдм, рдЬрдм рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд░рд┐рд▓реАрдЬрдмрд╛рдЯ рдорд╛рд╕реНрдЯрд░рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдорд░реНрдЬ рдЧрд░реНрди, рд╣рд╛рдореА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд░реНрдЬ рдХрдорд┐рдЯ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ: рдпрд╕рдорд╛ рдлрд░рдХ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реБрдиреЗрдЫ, рддрд░ рдПрдЙрдЯреИ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ред рдЙрд╣реА рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рдХреЛ рд╕рд╛рде рд╣рд╛рдореА рдЙрддреНрдкрд╛рджрдирдорд╛ рдЫрд╡рд┐ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрдиреЗрдЫреМрдВред
рдмреЗрдлрд╛рдЗрджрд╛ рдпреЛ рд╣реЛ рдХрд┐ рдЕрдм рдпреЛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫреИрди рдХрд┐ рдХрд╕реНрддреЛ рдкреНрд░рдХрд╛рд░рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдЙрддреНрдкрд╛рджрдирдорд╛ рдзрдХреЗрд▓рд┐рдпреЛ - рдЪреЗрдХрд╕рдорд╣рд░реВ рдорд╛рддреНрд░ рдПрдХ рджрд┐рд╢рд╛рдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫред рдпреЛ рд╕рдорд╕реНрдпрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛рдХреЛ рд╕рд╛рде рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╣ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдЧрд░рд┐рдПрдХреЛ рдЫ - рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрдЫрд┐ рдмрддрд╛рдЙрдиреЗрдЫреБред
werf рдорд╛ рдЯреНрдпрд╛рдЧ рдЧрд░реНрджреИ
werf рдорд╛ рд╣рд╛рдореА рдЕрдЭ рдЕрдЧрд╛рдбрд┐ рдЧрдпреМрдВ рд░ рдПрдХ рдореЗрд╕рд┐рдирдорд╛ рднрдгреНрдбрд╛рд░рдг рдирдЧрд░рд┐рдПрдХреЛ рдХреНрдпрд╛рд╕рдХреЛ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд рдмрд┐рд▓реНрдб рдЧрд░реНрдиреЗ рддрдпрд╛рд░реА рдЧрд░реНрджреИрдЫреМрдВ... рддреНрдпрд╕реИрд▓реЗ, рд╣рд╛рдореА рджреБрдИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджреИрдЫреМрдВ, рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдмреЛрд▓рд╛рдЙрдБрдЫреМрдВред рдЪрд░рдг ╨╕ рдЫрд╡рд┐.
werf Git рднрдгреНрдбрд╛рд░рд▓реЗ рдирд┐рд░реНрдорд╛рдг-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рднрдгреНрдбрд╛рд░ рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рдирд┐рд░реНрдорд╛рдгрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЪрд░рдгрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫ (рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБ рдЕрдШрд┐, рд╕реНрдерд╛рдкрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╕реЗрдЯрдЕрдк рдЕрдШрд┐, рд╕реЗрдЯрдЕрдк)ред рд╣рд╛рдореА рдкрд╣рд┐рд▓реЛ рдЪрд░рдгрдХреЛ рдЪреЗрдХрд╕рдордХреЛ рд░реВрдкрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░рдХреЛ рд╕рд╛рде рдкрд╣рд┐рд▓реЛ рдЪрд░рдгрдХреЛ рдЫрд╡рд┐ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдЫреМрдВред рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рд╕реНрд░реЛрдд рдХреЛрдб рдердкреНрдЫреМрдВ, рдирдпрд╛рдБ рдЪрд░рдгрдХреЛ рдЫрд╡рд┐рдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореА рдпрд╕рдХреЛ рдЪреЗрдХрд╕рдо рдЧрдгрдирд╛ рдЧрд░реНрдЫреМрдВ... рдпреА рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рдмреИ рдЪрд░рдгрд╣рд░реВрдорд╛ рджреЛрд╣реЛрд░реНрдпрд╛рдЗрдиреНрдЫ, рдЬрд╕рдХреЛ рдкрд░рд┐рдгрд╛рдо рд╕реНрд╡рд░реВрдк рд╣рд╛рдореАрд▓реЗ рдЪрд░рдг рдЫрд╡рд┐рд╣рд░реВрдХреЛ рд╕реЗрдЯ рдкрд╛рдЙрдБрдЫреМрдВред рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдЕрдиреНрддрд┐рдо рдЫрд╡рд┐ рдмрдирд╛рдЙрдБрдЫреМрдВ, рдЬрд╕рдорд╛ рдпрд╕рдХреЛ рдЙрддреНрдкрддреНрддрд┐рдХреЛ рдмрд╛рд░реЗрдорд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкрдирд┐ рд╕рдорд╛рд╡реЗрд╢ рдЫред рд░ рд╣рд╛рдореА рдпрд╕ рдЫрд╡рд┐рд▓рд╛рдИ рд╡рд┐рднрд┐рдиреНрди рддрд░рд┐рдХрд╛рдорд╛ рдЯреНрдпрд╛рдЧ рдЧрд░реНрдЫреМрдВ (рд╡рд┐рд╡рд░рдг рдкрдЫрд┐)ред
рдорд╛рдиреНрдиреБрд╣реЛрд╕реН рдХрд┐ рдпрд╕ рдкрдЫрд┐ рдирдпрд╛рдБ рдХрдорд┐рдЯ рджреЗрдЦрд╛ рдкрд░реНрджрдЫ рдЬрд╕рдорд╛ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХреЛ рдЫред рдХреЗ рд╣реБрдиреЗрдЫ? рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдкреНрдпрд╛рдЪ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреЗрдЫ рд░ рдирдпрд╛рдБ рдЪрд░рдг рдЫрд╡рд┐ рддрдпрд╛рд░ рдЧрд░рд┐рдиреЗрдЫред рдпрд╕рдХреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреБрд░рд╛рдиреЛ рдЪрд░рдгрдХреЛ рдЫрд╡рд┐ рд░ рдирдпрд╛рдБ рдкреНрдпрд╛рдЪрдХреЛ рдЪреЗрдХрд╕рдордХреЛ рд░реВрдкрдорд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░рд┐рдиреЗрдЫред рдпреЛ рдЫрд╡рд┐рдмрд╛рдЯ рдирдпрд╛рдБ рдЕрдиреНрддрд┐рдо рдЫрд╡рд┐ рдмрдирд╛рдЗрдиреЗрдЫред рдпрд╕реНрддреИ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдиреНрдп рдЪрд░рдгрд╣рд░реВрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдВрдЧ рд╣реБрдиреЗрдЫред
рддрд╕рд░реНрде, рд╕реНрдЯреЗрдЬ рдЫрд╡рд┐рд╣рд░реВ рдПрдХ рдХреНрдпрд╛рд╕ рд╣реЛ рдЬреБрди рд╡рд┐рддрд░рд┐рдд рд░реВрдкрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд░ рдпрд╕рдмрд╛рдЯ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рдЫрд╡рд┐рд╣рд░реВ рдбрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рдЕрдкрд▓реЛрдб рд╣реБрдиреНрдЫрдиреНред
рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕рдлрд╛ рдЧрд░реНрджреИ
рд╣рд╛рдореА рддрд╣рд╣рд░реВ рдореЗрдЯрд╛рдЙрдиреЗ рдХреБрд░рд╛ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреИрдиреМрдВ рдЬреБрди рдореЗрдЯрд╛рдЗрдПрдХрд╛ рдЯреНрдпрд╛рдЧрд╣рд░реВ рдкрдЫрд┐ рдЭреБрдгреНрдбрд┐рдПрдХреЛ рдерд┐рдпреЛ - рдпреЛ рдбрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдХреЛ рдПрдХ рдорд╛рдирдХ рд╕реБрд╡рд┐рдзрд╛ рд╣реЛред рд╣рд╛рдореА рдПрдХ рдЕрд╡рд╕реНрдерд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрджреИрдЫреМрдВ рдЬрдм рдзреЗрд░реИ рдбрдХрд░ рдЯреНрдпрд╛рдЧрд╣рд░реВ рдЬрдореНрдорд╛ рд╣реБрдиреНрдЫрдиреН рд░ рд╣рд╛рдореА рдмреБрдЭреНрдЫреМрдВ рдХрд┐ рд╣рд╛рдореАрд▓рд╛рдИ рдЕрдм рддреА рдордзреНрдпреЗ рдХреЗрд╣реА рдЖрд╡рд╢реНрдпрдХ рдЫреИрди, рддрд░ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдард╛рдЙрдБ рд▓рд┐рдиреНрдЫрдиреН (рд░/рд╡рд╛ рд╣рд╛рдореА рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рддрд┐рд░реНрдЫрдиреН)ред
рд╕рд░рд╕рдлрд╛рдИ рд░рдгрдиреАрддрд┐ рдХреЗ рд╣реЛ?
- рддрдкрд╛рдИрд▓реЗ рдХреЗрд╣рд┐ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди рд╕рдлрд╛ рдирдЧрд░реНрдиреБрд╣реЛрд╕реНред рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдЯреНрдпрд╛рдЧрд╣рд░реВрдХреЛ рдареВрд▓реЛ рдЯреНрдпрд╛рдЩреНрдЧрд▓ рдЦреЛрд▓реНрдиреБ рднрдиреНрджрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдард╛рдЙрдБрдХреЛ рд▓рд╛рдЧрд┐ рдереЛрд░реИ рддрд┐рд░реНрди рд╡рд╛рд╕реНрддрд╡рдореИ рд╕рдЬрд┐рд▓реЛ рд╣реБрдиреНрдЫред рддрд░ рдпреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдиреНрджреБ рд╕рдореНрдо рдорд╛рддреНрд░ рдХрд╛рдо рдЧрд░реНрджрдЫред
- рдкреВрд░реНрдг рд░рд┐рд╕реЗрдЯред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╕рдмреИ рдЫрд╡рд┐рд╣рд░реВ рдореЗрдЯрд╛рдЙрдиреБрднрдпреЛ рд░ CI рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╣рд╛рд▓рдХрд╛ рдЫрд╡рд┐рд╣рд░реВ рдорд╛рддреНрд░ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрди рд╕рдХреНрдЫред рдпрджрд┐ рдХрдиреНрдЯреЗрдирд░ рдЙрддреНрдкрд╛рджрдирдорд╛ рдкреБрди: рд╕реБрд░реБ рднрдпреЛ рднрдиреЗ, рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдЫрд╡рд┐ рд▓реЛрдб рдЧрд░рд┐рдиреЗрдЫ - рдЬреБрди рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рдХрд╕реИрджреНрд╡рд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред рдпрд╕рд▓реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдХреЛ рд╡рд┐рдЪрд╛рд░рд▓рд╛рдИ рдорд╛рд░реНрдЫред
- рдирд┐рд▓реЛ рд╣рд░рд┐рдпреЛред рдПрдЙрдЯрд╛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдУрднрд░рдлреНрд▓реЛ рд╣реБрди рдерд╛рд▓реНрдпреЛ - рд╣рд╛рдореА рдЫрд╡рд┐рд╣рд░реВ рдЕрд░реНрдХреЛрдорд╛ рдЕрдкрд▓реЛрдб рдЧрд░реНрдЫреМрдВред рдЕрдШрд┐рд▓реНрд▓реЛ рд╡рд┐рдзрд┐рдорд╛ рдЬрд╕реНрддреИ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛: рддрдкрд╛рдЗрдБ рдХреБрди рдмрд┐рдиреНрджреБрдорд╛ рдУрднрд░рдлреНрд▓реЛ рдЧрд░реНрди рд╕реБрд░реБ рднрдПрдХреЛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЦрд╛рд▓реА рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ?
- рд╕рдордпрдореИред рез рдорд╣рд┐рдирд╛ рднрдиреНрджрд╛ рдкреБрд░рд╛рдирд╛ рд╕рдмреИ рдЫрд╡рд┐рд╣рд░реВ рдореЗрдЯреНрдиреЗ рд╣реЛ? рддрд░ рддреНрдпрд╣рд╛рдБ рдкрдХреНрдХреИ рдПрдХ рд╕реЗрд╡рд╛ рд╣реБрдиреЗрдЫ рдЬреБрди рдПрдХ рдорд╣рд┐рдирд╛рджреЗрдЦрд┐ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди ...
- рд╣рд╛рддрджреНрд╡рд╛рд░рд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдореЗрдЯрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ рднрдиреЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рддреНрдпрд╣рд╛рдБ рджреБрдИ рд╕рд╛рдБрдЪреНрдЪреИ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЫрдиреН: рд╕рдлрд╛ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН рд╡рд╛ рдиреАрд▓реЛ-рд╣рд░рд┐рдпреЛ + рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдкрдЫрд┐рд▓реНрд▓реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореА рдирд┐рдореНрди рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрджреИрдЫреМрдВ: рдЬрдм рддрдкрд╛рдЗрдБ рдмреБрдЭреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рдпреЛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕рдлрд╛ рдЧрд░реНрдиреЗ рд╕рдордп рд╣реЛ, рддрдкрд╛рдЗрдБ рдПрдХ рдирдпрд╛рдБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рд░ рдпрд╕рдорд╛ рд╕рдмреИ рдирдпрд╛рдБ рдЫрд╡рд┐рд╣рд░реВ рдердкреНрдиреБрд╣реЛрд╕реН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдПрдХ рдорд╣рд┐рдирд╛ред рд░ рдПрдХ рдорд╣рд┐рдирд╛ рдкрдЫрд┐, Kubernetes рдорд╛ рдХреБрди рдкреЛрдбрд╣рд░реВ рдЕрдЭреИ рдкреБрд░рд╛рдиреЛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рдЫрдиреН рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН, рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкрдирд┐ рдирдпрд╛рдБ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рд╣рд╛рдореА рдХреЗрдорд╛ рдЖрдПрдХрд╛ рдЫреМрдВ рд╡рд╛рдл? рд╣рд╛рдореА рд╕рдЩреНрдХрд▓рди:
- Git head: рд╕рдмреИ рдЯреНрдпрд╛рдЧрд╣рд░реВ, рд╕рдмреИ рд╢рд╛рдЦрд╛рд╣рд░реВ - рд╣рд╛рдореАрд▓рд╛рдИ рдЫрд╡рд┐рд╣рд░реВрдорд╛ Git рдорд╛ рдЯреНрдпрд╛рдЧ рдЧрд░рд┐рдПрдХреЛ рд╕рдмреИ рдХреБрд░рд╛ рдЪрд╛рд╣рд┐рдиреНрдЫ рднрдиреЗрд░ рдорд╛рдиреНрджреИ (рд░ рдпрджрд┐ рд╣реЛрдЗрди рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ Git рдорд╛ рдиреИ рдореЗрдЯрд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ);
- рд╕рдмреИ рдкреЛрдбрд╣рд░реВ рдЬреБрди рд╣рд╛рд▓ Kubernetes рдорд╛ рдкрдореНрдк рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН;
- рдкреБрд░рд╛рдиреЛ ReplicaSets (рдХреЗ рд╣рд╛рд▓реИ рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ), рд░ рд╣рд╛рдореА рдкрдирд┐ Helm рд░рд┐рд▓реАрдЬ рд╕реНрдХреНрдпрд╛рди рд░ рддреНрдпрд╣рд╛рдБ рдирд╡реАрдирддрдо рдЫрд╡рд┐рд╣рд░реВ рдЪрдпрди рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдЫред
... рд░ рдпрд╕ рд╕реЗрдЯрдмрд╛рдЯ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН - рдЫрд╡рд┐рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдореЗрдЯрд╛рдЙрдиреЗ рдЫреИрдиреМрдВред рд╣рд╛рдореА рдЕрд░реВ рд╕рдмреИ рд╕рдлрд╛ рдЧрд░реНрдЫреМрдВ, рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдЕрдирд╛рде рд╕реНрдЯреЗрдЬ рдЫрд╡рд┐рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдЫреМрдВ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкрдирд┐ рдореЗрдЯрд╛рдЙрдБрдЫреМрдВред
рд╕реНрдЯреЗрдЬ рддреИрдирд╛рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН
рднрд░рдкрд░реНрджреЛ рдШреЛрд╖рдгрд╛рддреНрдордХрддрд╛
рдкрд╣рд┐рд▓реЛ рдмрд┐рдиреНрджреБ рдЬреБрди рдо рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯрдорд╛ рдзреНрдпрд╛рдирд╛рдХрд░реНрд╖рдг рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ рднрдиреЗрдХреЛ рдЕрдкрдбреЗрдЯ рдЧрд░рд┐рдПрдХреЛ рд╕рдВрд╕рд╛рдзрди рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рд░реЛрд▓рдЖрдЙрдЯ рд╣реЛ, рдШреЛрд╖рдгрд╛рддреНрдордХ рд░реВрдкрдорд╛ рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдПрдХреЛред Kubernetes рд╕реНрд░реЛрддрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗ рдореВрд▓ YAML рдХрд╛рдЧрдЬрд╛рдд рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдкрд░рд┐рдгрд╛рдордмрд╛рдЯ рд╕рдзреИрдВ рдзреЗрд░реИ рдлрд░рдХ рд╣реБрдиреНрдЫред рдХрд┐рдирднрдиреЗ Kubernetes рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдердкреНрдЫ:
- рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╣рд░реВ;
- рд╕реЗрд╡рд╛ рдЬрд╛рдирдХрд╛рд░реА;
- рдзреЗрд░реИ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдирд╣рд░реВ;
- рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╕рдВрдЧ рдЦрдгреНрдб;
- рдкреНрд░рд╡реЗрд╢ рд╡реЗрдмрд╣реБрдХрдХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ;
- рд╡рд┐рднрд┐рдиреНрди рдирд┐рдпрдиреНрддреНрд░рдХ (рд░ рдЕрдиреБрд╕реВрдЪрдХ) рдХреЛ рдХрд╛рдо рдХреЛ рдкрд░рд┐рдгрд╛рдоред
рддреНрдпрд╕рдХрд╛рд░рдг, рдЬрдм рдирдпрд╛рдБ рд╕реНрд░реЛрдд рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рджреЗрдЦрд┐рдиреНрдЫ (рдирдпрд╛рдБ), рд╣рд╛рдореАрд▓реЗ рд╣рд╛рд▓рдХреЛ, "рд▓рд╛рдЗрдн" рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд▓рд╛рдИ рдпрд╕рдХреЛ рд╕рд╛рде рд▓рд┐рди рд░ рдЕрдзрд┐рд▓реЗрдЦрди рдЧрд░реНрди рд╕рдХреНрджреИрдиреМрдВ (рдмрд╛рдБрдЪреНрди)ред рдпреЛ рдЧрд░реНрди рд╣рд╛рдореАрд▓реЗ рддреБрд▓рдирд╛ рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫ рдирдпрд╛рдБ рдкрдЫрд┐рд▓реНрд▓реЛ рд▓рд╛рдЧреВ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╕рдВрдЧ (рдкрдЫрд┐рд▓реНрд▓реЛ рдкрдЯрдХ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ) рд░ рд░реЛрд▓ рдорд╛ рдмрд╛рдБрдЪреНрди рдкреНрдпрд╛рдЪ рдкреНрд░рд╛рдкреНрдд рднрдпреЛред
рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рднрдирд┐рдиреНрдЫ реи-рдорд╛рд░реНрдЧ рдорд░реНрдЬред рдпреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣реЗрд▓реНрдордорд╛ред
рдкрдирд┐ рдЫ реи-рдорд╛рд░реНрдЧ рдорд░реНрдЬ, рдЬреБрди рдпрд╕рдорд╛ рдлрд░рдХ рдЫ:
- рддреБрд▓рдирд╛ рдЧрд░реНрджреИ рдкрдЫрд┐рд▓реНрд▓реЛ рдкрдЯрдХ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ ╨╕ рдирдпрд╛рдБ, рд╣рд╛рдореА рдХреЗ рдореЗрдЯрд╛рдЗрдПрдХреЛ рдерд┐рдпреЛ рд╣реЗрд░реНрдЫреМрдВ;
- рддреБрд▓рдирд╛ рдЧрд░реНрджреИ рдирдпрд╛рдБ ╨╕ рдмрд╛рдБрдЪреНрди, рд╣рд╛рдореА рдХреЗ рдердкрд┐рдПрдХреЛ рд╡рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХреЛ рдЫ рд╣реЗрд░реНрдЫреМрдВ;
- рд╕рдВрдХреНрд╖реЗрдк рдкреНрдпрд╛рдЪ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ рдмрд╛рдБрдЪреНрди.
рд╣рд╛рдореАрд▓реЗ рд╣реЗрд▓реНрдорд╕рдБрдЧ резрежрежреж+ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд╣рд░реВ рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрдЫреМрдВ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рд╡рд╛рд╕реНрддрд╡рдорд╛ реи-рддрд░реНрдлреА рдорд░реНрдЬрд╕рдБрдЧ рдмрд╛рдБрдЪрд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВред рдпрджреНрдпрдкрд┐, рдпрд╕рдорд╛ рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреН рдЬреБрди рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░рд╛ рдкреНрдпрд╛рдЪрд╣рд░реВрд╕рдБрдЧ рд╣рд▓ рдЧрд░реЗрдХрд╛ рдЫреМрдВ, рдЬрд╕рд▓реЗ рд╣реЗрд▓реНрдорд▓рд╛рдИ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджрдЫред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реЛрд▓рдЖрдЙрдЯ рд╕реНрдерд┐рддрд┐
рд╣рд╛рдореНрд░реЛ CI рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рдЕрд░реНрдХреЛ рдШрдЯрдирд╛рдорд╛ рдЖрдзрд╛рд░рд┐рдд Kubernetes рдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдЙрддреНрдкрдиреНрди рдЧрд░реЗрдкрдЫрд┐, рдпрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╕рд╛рд░рдг рдЧрд░реНрджрдЫред (рдирд┐рд╡реЗрджрди рдЧрд░реНрдиреБ) рдХреНрд▓рд╕реНрдЯрд░рдорд╛ - рд╣реЗрд▓рдо рд╡рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ kubectl apply
ред рдЕрд░реНрдХреЛ, рдкрд╣рд┐рд▓реЗ рдиреИ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ N-way рдорд░реНрдЬ рд╣реБрдиреНрдЫ, рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ Kubernetes API рд▓реЗ CI рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рдЕрдиреБрдореЛрджрди рдЧрд░реНрджреИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рдиреНрдЫ, рд░ рддреНрдпреЛ рдпрд╕рдХреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИред
рдпрджреНрдпрдкрд┐, рддреНрдпрд╣рд╛рдБ рдПрдХ рдареВрд▓реЛ рд╕рдорд╕реНрдпрд╛ рдЫ: рдЖрдЦрд┐рд░ рд╕рдлрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдорддрд▓рдм рд╕рдлрд▓ рд░реЛрд▓рдЖрдЙрдЯ рд╣реЛрдЗрдиред рдпрджрд┐ Kubernetes рд▓реЗ рдХреБрди рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдмреБрдЭреНрдЫ рд░ рдпрд╕рд▓рд╛рдИ рд▓рд╛рдЧреВ рдЧрд░реНрдЫ рднрдиреЗ, рд╣рд╛рдореАрд▓рд╛рдИ рдЕрдЭреИ рдкрдирд┐ рдерд╛рд╣рд╛ рдЫреИрди рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╣реБрдиреЗрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдлреНрд░рдиреНрдЯрдПрдиреНрдбрдорд╛ рдкреЛрдбрд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд░ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрди рд╕рдлрд▓ рд╣реБрди рд╕рдХреНрдЫ, рддрд░ рдмреНрдпрд╛рдХрдПрдиреНрдбрдорд╛ рд╣реЛрдЗрди, рд░ рд╣рд╛рдореАрд▓реЗ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЫрд╡рд┐рд╣рд░реВрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫреМрдВред
рд╕рдмреИ рдХреБрд░рд╛ рд╕рд╣реА рддрд░рд┐рдХрд╛рд▓реЗ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдпреЛ рдпреЛрдЬрдирд╛рд▓рд╛рдИ рдердк рд▓рд┐рдЩреНрдХ рдЪрд╛рд╣рд┐рдиреНрдЫ - рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЯреНрд░реНрдпрд╛рдХрд░ рдЬрд╕рд▓реЗ Kubernetes API рдмрд╛рдЯ рд╕реНрдерд┐рддрд┐ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫ рд░ рдЪреАрдЬрд╣рд░реВрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрд╡рд╕реНрдерд╛рдХреЛ рдердк рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╕рд╛рд░рдг рдЧрд░реНрдиреЗрдЫред рд╣рд╛рдореАрд▓реЗ Go рдорд╛ рдПрдЙрдЯрд╛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдпреМрдВ -
werf рд╕реНрддрд░рдорд╛ рдпреЛ рдЯреНрд░рдпрд╛рдХрд░рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯ рд╡рд╛ рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯрд╣рд░реВрдорд╛ рд░рд╛рдЦрд┐рдПрдХрд╛ рдПрдиреЛрдЯреЗрд╕рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫред рдореБрдЦреНрдп рдЯрд┐рдкреНрдкрдгреА - fail-mode
- рдирд┐рдореНрди рдЕрд░реНрде рдмреБрдЭреНрдЫ:
-
IgnoreAndContinueDeployProcess
- рд╣рд╛рдореА рдпреЛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрдЫреМрдВ рд░ рддреИрдирд╛рддреА рдЬрд╛рд░реА рд░рд╛рдЦреНрдЫреМрдВ; -
FailWholeDeployProcessImmediately
- рдпреЛ рдШрдЯрдХ рдорд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рддреИрдирд╛рддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд░реЛрдХреНрдЫ; -
HopeUntilEndOfDeployProcess
тАФ рд╣рд╛рдореА рдЖрд╢рд╛ рдЧрд░реНрдЫреМрдВ рдХрд┐ рдпреЛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд▓реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрдирдХреЛ рдЕрдиреНрддреНрдпрд╕рдореНрдо рдХрд╛рдо рдЧрд░реНрдиреЗрдЫред
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕реНрд░реЛрдд рд░ рдПрдиреЛрдЯреЗрд╕рди рдорд╛рдирд╣рд░реВрдХреЛ рдпреЛ рд╕рдВрдпреЛрдЬрди fail-mode
:
рдЬрдм рд╣рд╛рдореА рдкрд╣рд┐рд▓реЛ рдкрдЯрдХ рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрдЫреМрдВ, рдбрд╛рдЯрд╛рдмреЗрд╕ (MongoDB) рдЕрдЭреИ рддрдпрд╛рд░ рдирд╣реБрди рд╕рдХреНрдЫ - рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯрд╣рд░реВ рдЕрд╕рдлрд▓ рд╣реБрдиреЗрдЫрдиреНред рддрд░ рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рд╕реБрд░реБ рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рддреИрдирд╛рддреА рдЕрдЭреИ рдкрдирд┐ рд╣реБрдиреЗрдЫред
werf рдорд╛ kubedog рдХреЛ рд▓рд╛рдЧреА рджреБрдИ рдердк рдПрдиреЛрдЯреЗрд╕рдирд╣рд░реВ рдЫрдиреН:
-
failures-allowed-per-replica
- рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдХреГрддрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЧрд┐рд░рд╛рд╡рдЯрдХреЛ рд╕рдВрдЦреНрдпрд╛; -
show-logs-until
- рд╕рдмреИ рд░реЛрд▓ рдЖрдЙрдЯ рдкреЛрдбрд╣рд░реВрдмрд╛рдЯ werf (stdout рдорд╛) рд▓рдЧрд╣рд░реВ рджреЗрдЦрд╛рдЙрдиреЗ рдХреНрд╖рдгрд▓рд╛рдИ рдирд┐рдпрдорди рдЧрд░реНрджрдЫред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЫPodIsReady
(рдкреНрдпрд╛рдбрдорд╛ рдЯреНрд░рд╛рдлрд┐рдХ рдЖрдЙрди рдерд╛рд▓реЗрдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ рдирдЪрд╛рд╣рд┐рдиреЗ рд╕рдиреНрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрди), рддрд░ рдорд╛рдирд╣рд░реВ рдкрдирд┐ рдорд╛рдиреНрдп рдЫрдиреН:ControllerIsReady
╨╕EndOfDeploy
.
рд╣рд╛рдореА рддреИрдирд╛рддреАрдмрд╛рдЯ рдЕрд░реВ рдХреЗ рдЪрд╛рд╣рдиреНрдЫреМрдВ?
рдкрд╣рд┐рд▓реЗ рдиреИ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ рджреБрдИ рдмрд┐рдиреНрджреБрд╣рд░реВрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рд╛рдореА рдЪрд╛рд╣рдиреНрдЫреМрдВ:
- рд╣реЗрд░реНрди рд▓рдЧрд╣рд░реВ - рд░ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХрд╣рд░реВ, рд░ рдкрдЩреНрдХреНрддрд┐рдорд╛ рд╕рдмреИ рдХреБрд░рд╛ рд╣реЛрдЗрди;
- рдЯреНрд░реНрдпрд╛рдХ рдкреНрд░рдЧрддрд┐, рдХрд┐рдирдХрд┐ рдпрджрд┐ рдХрд╛рдо рдзреЗрд░реИ рдорд┐рдиреЗрдЯрдХреЛ рд▓рд╛рдЧрд┐ "рдЪреБрдкрдЪрд╛рдк" рдЭреБрдгреНрдбрд┐рдПрдХреЛ рдЫ рднрдиреЗ, рддреНрдпрд╣рд╛рдБ рдХреЗ рднрдЗрд░рд╣реЗрдХреЛ рдЫ рднрдиреЗрд░ рдмреБрдЭреНрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ;
- рд╣реБрдиреБ рдкрд░реНрдЫ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реЛрд▓рдмреНрдпрд╛рдХ рдпрджрд┐ рдХреЗрд╣рд┐ рдЧрд▓рдд рднрдпреЛ рднрдиреЗ (рд░ рддреНрдпрд╕рдХрд╛рд░рдг рдпреЛ рддреИрдирд╛рддреАрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдЬрд╛рдиреНрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ)ред рд░реЛрд▓рдЖрдЙрдЯ рдкрд░рдорд╛рдгреБ рд╣реБрдиреБрдкрд░реНрдЫ: рдпрд╛ рдд рдпреЛ рдЕрдиреНрддреНрдпрдорд╛ рдЬрд╛рдиреНрдЫ, рд╡рд╛ рд╕рдмреИ рдЖрдлреНрдиреЛ рдЕрдШрд┐рд▓реНрд▓реЛ рд╕реНрдерд┐рддрд┐рдорд╛ рдлрд░реНрдХрдиреНрдЫред
рдкрд░рд┐рдгрд╛рдорд╣рд░реВ
рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдПрдХ рдХрдореНрдкрдиреАрдХреЛ рд░реВрдкрдорд╛, рд╡рд┐рддрд░рдгрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЪрд░рдгрд╣рд░реВрдорд╛ (рдирд┐рд░реНрдорд╛рдг, рдкреНрд░рдХрд╛рд╢рди, рдбрд┐рдкреНрд▓реЛрдп) рдорд╛ рд╕рдмреИ рд╡рд░реНрдгрд┐рдд рд╕реВрдХреНрд╖реНрдорддрд╛рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди, рдПрдХ CI рдкреНрд░рдгрд╛рд▓реА рд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдЫред
рдПрдЙрдЯрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЛ рд╕рдЯреНрдЯрд╛:
werf рдХреЛ рд╕рд╣рдпреЛрдЧрдорд╛, рд╣рд╛рдореАрд▓реЗ DevOps рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдирдорд╛ рд░рд╛рдореНрд░реЛ рдкреНрд░рдЧрддрд┐ рдЧрд░реЗрдХрд╛ рдЫреМрдВ рд░ рд╡реНрдпрд╛рдкрдХ рд╕рдореБрджрд╛рдпрд▓реЗ рдХрдореНрддрд┐рдорд╛ рдкрдирд┐ рдпреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд▓рд╛рдИ рдХрд╛рд░реНрдпрдорд╛ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдорд╛ рдЦреБрд╕реА рд╣реБрдиреЗрдЫреМрдВред рд╕рдБрдЧреИ рд░рд╛рдореНрд░реЛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рд╣реБрдиреЗрдЫред
рднрд┐рдбрд┐рдпреЛ рд░ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ
рдкреНрд░рджрд░реНрд╢рдирдмрд╛рдЯ рднрд┐рдбрд┐рдпреЛ (~ релреж рдорд┐рдиреЗрдЯ):
рдкреНрд░рддрд┐рд╡реЗрджрди рдкреНрд░рд╕реНрддреБрддрд┐:
PS
рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ Kubernetes рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЕрдиреНрдп рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВ:
- ┬л
Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕реНрд░реЛрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди ┬╗ (рджрд┐рдорд┐рддреНрд░реА рд╕реНрдЯреЛрд▓реНрдпрд╛рд░реЛрдн; 27 рдЕрдкреНрд░рд┐рд▓, 2019 "рд╕реНрдЯреНрд░рд╛рдЗрдХ" рдорд╛); - ┬л
Kubernetes рд╡рд┐рд╕реНрддрд╛рд░ рд░ рдкреВрд░рдХ ┬╗ (Andrey Polovov; рдЕрдкреНрд░рд┐рд▓ 8, 2019 рд╕реЗрдиреНрдЯ рд╣рд╛рдИрд▓реЛрдб++ рдорд╛); - ┬л
рдбрд╛рдЯрд╛рдмреЗрд╕ рд░ Kubernetes ┬╗ (рджрд┐рдорд┐рддреНрд░реА рд╕реНрдЯреЛрд▓реНрдпрд╛рд░реЛрдн; рдиреЛрднреЗрдореНрдмрд░ 8, 2018 HighLoad++ рдорд╛); - ┬л
рдирд┐рдЧрд░рд╛рдиреА рд░ Kubernetes ┬╗ (рджрд┐рдорд┐рддреНрд░реА рд╕реНрдЯреЛрд▓реНрдпрд╛рд░реЛрдн; рдореЗ реирео, реирежрезрео рд░реВрдЯрдХрдиреНрдлрдорд╛); - ┬л
Kubernetes рд░ GitLab рд╕рдВрдЧ CI/CD рдЙрддреНрддрдо рдЕрднреНрдпрд╛рд╕рд╣рд░реВ ┬╗ (рджрд┐рдорд┐рддреНрд░реА рд╕реНрдЯреЛрд▓реНрдпрд╛рд░реЛрдн; рдиреЛрднреЗрдореНрдмрд░ 7, 2017 HighLoad++ рдорд╛); - ┬л
рд╕рд╛рдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ Kubernetes рд╕рдВрдЧ рд╣рд╛рдореНрд░реЛ рдЕрдиреБрднрд╡ ┬╗ (рджрд┐рдорд┐рддреНрд░реА Stolyarov; рдЬреБрди 6, 2017 RootConf рдорд╛).
рд╕реНрд░реЛрдд: www.habr.com