рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдирд╡реАрди CLI рдЯреВрд▓рдмрджреНрджрд▓ рд╕рд╛рдВрдЧреВ рдЗрдЪреНрдЫрд┐рддреЛ рдЬреЗ рдореА рдЬреБрдиреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗ.
рд╕рдорд╕реНрдпрд╛
рдбреЗрд╡реНрд╣реЙрдкреНрд╕/рдХреНрд▓рд╛рдЙрдб/рдЖрдпрдЯреА рд╕рдореБрджрд╛рдпрд╛рдордзреНрдпреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╣реЗ рдлрд╛рд░ рдкреВрд░реНрд╡реАрдкрд╛рд╕реВрди рдПрдХ рдорд╛рдирдХ рдЖрд╣реЗ. рдХреЛрдб рдореНрд╣рдгреВрди рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрд╢реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╣реА рдЧреЛрд╖реНрдЯ рдЕрддрд┐рд╢рдп рд╕реЛрдпреАрдЪреА рдЖрдгрд┐ рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ. рдЯреЗрд░рд╛рдлреЙрд░реНрдордордзреНрдпреЗ рдЕрдиреЗрдХ рдЖрдирдВрдж рдЖрд╣реЗрдд рддрд╕реЗрдЪ рдЕрдиреЗрдХ рдХрд╛рдЯреЗ, рдзрд╛рд░рджрд╛рд░ рдЪрд╛рдХреВ рдЖрдгрд┐ рд░реЗрдХ рдЖрд╣реЗрдд.
рдЯреЗрд░рд╛рдлреЙрд░реНрдорд╕рд╣ рдирд╡реАрди рдЧреЛрд╖реНрдЯреА рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рдирдВрддрд░ рддреНрдпрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ, рдмрджрд▓рдгреЗ рдХрд┐рдВрд╡рд╛ рд╣рдЯрд╡рдгреЗ рдЦреВрдк рд╕реЛрдпреАрдЪреЗ рдЖрд╣реЗ. рдЬреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рдкреНрд░рдЪрдВрдб рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдЖрд╣реЗрдд рдЖрдгрд┐ рддреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдорджреНрд╡рд╛рд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реАрдд рддреНрдпрд╛рдВрдиреА рдХрд╛рдп рдХрд░рд╛рд╡реЗ? рд╕рдВрдкреВрд░реНрдг рдХреНрд▓рд╛рдЙрдб рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд┐рдгреЗ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ рд╣реЗ рдХрд╛рд╣реАрд╕реЗ рдорд╣рд╛рдЧ рдЖрдгрд┐ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЖрд╣реЗ.
рдорд▓рд╛ рд╣реА рд╕рдорд╕реНрдпрд╛ 2 рдЬреЙрдмреНрд╕рдордзреНрдпреЗ рдЖрд▓реА, рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгрдЬреЗ рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡рдХрд╛рд╣реА Git рдордзреНрдпреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдлрд╛рдЗрд▓реНрд╕рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рд╣рд╡реЗ рдЕрд╕рддреЗ, рдкрд░рдВрддреБ рддреБрдордЪреНрдпрд╛рдХрдбреЗ 250+ рдмрд╛рджрд▓реНрдпрд╛ рдЖрд╣реЗрдд рдЖрдгрд┐ рддреЗ рд╣рд╛рддрд╛рдиреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдордордзреНрдпреЗ рд▓рд┐рд╣рд┐рдгреЗ рдЦреВрдк рдЖрд╣реЗ.
рдЖрд╣реЗрдд
рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рд╕рд░реНрд╡ рдХрд╛рд╣реА рдлрдХреНрдд рдЙрдЬрд╡реАрдХрдбреВрди рдбрд╛рд╡реАрдХрдбреЗ рдЪрд┐рддреНрд░рд╛рдд рдЖрд╣реЗ
рдЪреЗрддрд╛рд╡рдгреА: рд▓реЗрдЦрдХ рдЖрдкрд▓реЗ рдЕрд░реНрдзреЗ рдЖрдпреБрд╖реНрдп рд░рд╢рд┐рдпрд╛рдордзреНрдпреЗ рд░рд╛рд╣рдд рдирд╛рд╣реА рдЖрдгрд┐ рд░рд╢рд┐рдпрдирдордзреНрдпреЗ рдереЛрдбреЗ рд▓рд┐рд╣рд┐рддреЛ. рд╢реБрджреНрдзрд▓реЗрдЦрдирд╛рдЪреНрдпрд╛ рдЪреБрдХрд╛рдВрдкрд╛рд╕реВрди рд╕рд╛рд╡рдз рд░рд╣рд╛.
рдЙрдкрд╛рдп
1. AWS рд╕рд╛рдареА рддрдпрд╛рд░ рдЖрдгрд┐ рдЬреБрдиреЗ рдЙрдкрд╛рдп рдЖрд╣реЗрдд
рдЯреЗрд░рд╛рдлреЙрд░реНрдорд┐рдВрдЧ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ: рддреЗ AWS SDK рд╡рд░реВрди рдбреЗрдЯрд╛ рдШреЗрддреЗ рдЖрдгрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯрджреНрд╡рд╛рд░реЗ tf рдЖрдгрд┐ tfstate рддрдпрд╛рд░ рдХрд░рддреЗ.
рдпреЗрдереЗ 3 рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗрдд:
1. рдЕрджреНрдпрддрдирд╛рдВрдордзреНрдпреЗ рдиреЗрд╣рдореАрдЪ рдЕрдВрддрд░ рд░рд╛рд╣реАрд▓
2. tf рдлрд╛рдЗрд▓реНрд╕ рдХрдзреА рдХрдзреА рддреБрдЯрд▓реЗрд▓реНрдпрд╛ рдмрд╛рд╣реЗрд░ рдпреЗрддрд╛рдд
3. tfstate tf рдкрд╛рд╕реВрди рд╡реЗрдЧрд│реЗ рдЧреЛрд│рд╛ рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдиреЗрд╣рдореА рдПрдХрддреНрд░ рд╣реЛрдд рдирд╛рд╣реА
рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдХреЛрдгрддрд╛рд╣реА рдмрджрд▓ рдЭрд╛рд▓реЗрд▓рд╛ рдирд╛рд╣реА рдЕрд╕реЗ `рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкреНрд▓реЕрди` рд╕рд╛рдВрдЧрддреЗ рдЕрд╕рд╛ рдирд┐рдХрд╛рд▓ рдорд┐рд│рдгреЗ рдХрдареАрдг рдЖрд╣реЗ
2. рдЯреЗрд░рд╛рдлреЙрд░реНрдордордзреНрдпреЗ `рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдЖрдпрд╛рдд` рд╣реА рдЕрдВрдЧрднреВрдд рдХрдорд╛рдВрдб рдЖрд╣реЗ. рд╣реЗ рдХрд╕ рдХрд╛рдо рдХрд░рдд?
рддреБрдореНрд╣реА рдирд╛рд╡ рдЖрдгрд┐ рд╕рдВрд╕рд╛рдзрдирд╛рдЪреНрдпрд╛ рдкреНрд░рдХрд╛рд░рд╛рд╕рд╣ рд░рд┐рдХреНрдд TF рдлрд╛рдЗрд▓ рд▓рд┐рд╣рд╛, рдирдВрддрд░ `рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдЖрдпрд╛рдд` рдЪрд╛рд▓рд╡рд╛ рдЖрдгрд┐ рд╕рдВрд╕рд╛рдзрди рдЖрдпрдбреА рдкрд╛рд╕ рдХрд░рд╛. рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкреНрд░рджрд╛рддреНрдпрд╛рд╢реА рд╕рдВрдкрд░реНрдХ рд╕рд╛рдзрддреЛ, рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЛ рдЖрдгрд┐ tfstate рдлрд╛рдЗрд▓ рдмрдирд╡рддреЛ.
рдпреЗрдереЗ 3 рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗрдд:
1. рдЖрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд tfstate рдлрд╛рдЗрд▓ рдорд┐рд│рддреЗ рдЖрдгрд┐ tf рд░рд┐рдХрд╛рдореА рдЖрд╣реЗ, рддреБрдореНрд╣рд╛рд▓рд╛ рддреА рд╕реНрд╡рд╣рд╕реНрддреЗ рд▓рд┐рд╣рд╛рд╡реА рд▓рд╛рдЧреЗрд▓ рдХрд┐рдВрд╡рд╛ рддреА tfstate рдордзреВрди рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рд╛рд╡реА рд▓рд╛рдЧреЗрд▓.
2. рдПрдХрд╛ рд╡реЗрд│реА рдлрдХреНрдд рдПрдХрд╛ рд╕рдВрд╕рд╛рдзрдирд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХрддреЗ рдЖрдгрд┐ рд╕рд░реНрд╡ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА. рдЖрдгрд┐ 250+ рдмрд╛рджрд▓реНрдпрд╛ рдШреЗрдКрди рдореА рдкреБрдиреНрд╣рд╛ рдХрд╛рдп рдХрд░рд╛рд╡реЗ?
3. рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪрд╛ рдЖрдпрдбреА рдорд╛рд╣рд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ - рдореНрд╣рдгрдЬреЗрдЪ, рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рдХреЛрдбрдордзреНрдпреЗ рдЧреБрдВрдбрд╛рд│рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреНрдпрд╛рдд рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреА рдпрд╛рджреА рдорд┐рд│рддреЗ
рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдкрд░рд┐рдгрд╛рдо рдЕрд░реНрдзрд╡рдЯ рдЕрд╕рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рдкреНрд░рдорд╛рдг рдЪрд╛рдВрдЧрд▓реЗ рдирд╕рддреЗ
рдорд╛рдЭрд╛ рдирд┐рд░реНрдгрдп
рдЖрд╡рд╢реНрдпрдХрддрд╛:
1. рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╕рд╛рдареА tf рдЖрдгрд┐ tfstate рдлрд╛рдЗрд▓реНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рд░реНрд╡ рдмрд╛рджрд▓реНрдпрд╛/рд╕реБрд░рдХреНрд╖рд╛ рдЧрдЯ/рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛ рдЖрдгрд┐ рддреЛ `рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкреНрд▓реЕрди` рдкрд░рдд рдЖрд▓рд╛ рдХреА рддреНрдпрд╛рдд рдХреЛрдгрддреЗрд╣реА рдмрджрд▓ рдирд╛рд╣реАрдд
2. рддреБрдореНрд╣рд╛рд▓рд╛ 2 GCP + AWS рдХреНрд▓рд╛рдЙрдб рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд
3. рдЬрд╛рдЧрддрд┐рдХ рд╕рдорд╛рдзрд╛рди рдЬреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдЕрдкрдбреЗрдЯ рдХрд░рдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ рдЖрдгрд┐ 3 рджрд┐рд╡рд╕рд╛рдВрдЪреНрдпрд╛ рдХрд╛рдорд╛рд╕рд╛рдареА рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрдирд╛рд╡рд░ рд╡реЗрд│ рд╡рд╛рдпрд╛ рдШрд╛рд▓рд╡рдд рдирд╛рд╣реА
4. рд╣реЗ рдореБрдХреНрдд рд╕реНрддреНрд░реЛрдд рдмрдирд╡рд╛ - рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗ
рдЧреЛ рд▓рдБрдЧреНрд╡реЗрдЬрдореБрд│реЗ рдорд▓рд╛ рддреА рдЖрд╡рдбрддреЗ, рдЖрдгрд┐ рддреНрдпрд╛рдд рдЯреЗрд░рд╛рдлреЙрд░реНрдордордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдПрдЪрд╕реАрдПрд▓ рдлрд╛рдЗрд▓реНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╣реЗ + рдЯреЗрд░рд╛рдлреЙрд░реНрдордордзреНрдпреЗ рдмрд░реЗрдЪ рдХреЛрдб рдЬреЗ рдЙрдкрдпреЛрдЧреА рдЕрд╕реВ рд╢рдХрддрд╛рдд.
рдорд╛рд░реНрдЧ
рдкрд╣рд┐рд▓рд╛ рдкреНрд░рдпрддреНрди
рдореА рдПрдХрд╛ рд╕рд╛рдзреНрдпрд╛ рдЖрд╡реГрддреНрддреАрдиреЗ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА. рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдирд╛рд╕рд╛рдареА SDK рджреНрд╡рд╛рд░реЗ рдХреНрд▓рд╛рдЙрдбрд╢реА рд╕рдВрдкрд░реНрдХ рд╕рд╛рдзрдгреЗ рдЖрдгрд┐ рддреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдорд╕рд╛рдареА рдлреАрд▓реНрдбрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдгреЗ. рд╕рд┐рдХреНрдпреБрд░рд┐рдЯреА рдЧреНрд░реБрдкрд╡рд░ рд╣рд╛ рдкреНрд░рдпрддреНрди рддрд╛рдмрдбрддреЛрдм рд╕рдВрдкрд▓рд╛ рдХрд╛рд░рдг рдорд▓рд╛ рдлрдХреНрдд рд╕рд┐рдХреНрдпреБрд░рд┐рдЯреА рдЧреНрд░реБрдкрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА 1.5 рджрд┐рд╡рд╕ рдЖрд╡рдбрд▓реЗ рдирд╛рд╣реАрдд (рдЖрдгрд┐ рддреЗрдереЗ рдмрд░реАрдЪ рд╕рдВрд╕рд╛рдзрдиреЗ рдЖрд╣реЗрдд). рдмрд░рд╛рдЪ рдХрд╛рд│ рдЖрдгрд┐ рдирдВрддрд░ рдлреАрд▓реНрдб рдмрджрд▓рд▓реЗ/рдЬреЛрдбрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд
рджреБрд╕рд░рд╛ рдкреНрд░рдпрддреНрди
рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХрд▓реНрдкрдиреЗрд╡рд░ рдЖрдзрд╛рд░рд┐рдд
рдЖрддрд╛ tfstate рддреЗ tf рд╕рд╛рдареА рдХрдиреНрд╡реНрд╣рд░реНрдЯрд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рд░рд┐рдХрд░реНрд╕рд┐рд╡ рдкреЛрд░реНрдиреЛрдЧреНрд░рд╛рдлреА рдХрд░реВ. рдЬреНрдпрд╛рдВрдиреА tfstate рдХрдзреАрдЪ рд╡рд╛рдЪрд▓реЗ рдирд╛рд╣реА рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рддреЗ JSON рдЖрд╣реЗ, рдкрдг рд╡рд┐рд╢реЗрд╖.
рдпреЗрдереЗ рддреНрдпрд╛рдЪреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рднрд╛рдЧ рдЧреБрдгрдзрд░реНрдо рдЖрд╣реЗрдд
"attributes": {
"id": "default/backend-logging-load-deployment",
"metadata.#": "1",
"metadata.0.annotations.%": "0",
"metadata.0.generate_name": "",
"metadata.0.generation": "24",
"metadata.0.labels.%": "1",
"metadata.0.labels.app": "backend-logging",
"metadata.0.name": "backend-logging-load-deployment",
"metadata.0.namespace": "default",
"metadata.0.resource_version": "109317427",
"metadata.0.self_link": "/apis/apps/v1/namespaces/default/deployments/backend-logging-load-deployment",
"metadata.0.uid": "300ecda1-4138-11e9-9d5d-42010a8400b5",
"spec.#": "1",
"spec.0.min_ready_seconds": "0",
"spec.0.paused": "false",
"spec.0.progress_deadline_seconds": "600",
"spec.0.replicas": "1",
"spec.0.revision_history_limit": "10",
"spec.0.selector.#": "1",
рддреЗрдереЗ рдЖрд╣реЗ:
1. рдЖрдпрдбреА - рд╕реНрдЯреНрд░рд┐рдВрдЧ
2. рдореЗрдЯрд╛рдбреЗрдЯрд╛ - рдЖрдХрд╛рд░ 1 рдЪреА рдЕреЕрд░реЗ рдЖрдгрд┐ рддреНрдпрд╛рдордзреНрдпреЗ рдлреАрд▓реНрдб рдЕрд╕рд▓реЗрд▓реА рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреНрдпрд╛рдЪреЗ рдЦрд╛рд▓реА рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ
3. spec - рдЖрдХрд╛рд░ 1 рдЪрд╛ рд╣реЕрд╢ рдЖрдгрд┐ рдХреА, рддреНрдпрд╛рдд рдореВрд▓реНрдп
рдереЛрдбрдХреНрдпрд╛рдд, рдПрдХ рдордЬреЗрджрд╛рд░ рд╕реНрд╡рд░реВрдк, рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯ рдЕрдиреЗрдХ рдкрд╛рддрд│реНрдпрд╛рдВрд╡рд░ рдЕрд╕реВ рд╢рдХрддреЗ
"spec.#": "1",
"spec.0.min_ready_seconds": "0",
"spec.0.paused": "false",
"spec.0.progress_deadline_seconds": "600",
"spec.0.replicas": "1",
"spec.0.revision_history_limit": "10",
"spec.0.selector.#": "1",
"spec.0.selector.0.match_expressions.#": "0",
"spec.0.selector.0.match_labels.%": "1",
"spec.0.selector.0.match_labels.app": "backend-logging-load",
"spec.0.strategy.#": "0",
"spec.0.template.#": "1",
"spec.0.template.0.metadata.#": "1",
"spec.0.template.0.metadata.0.annotations.%": "0",
"spec.0.template.0.metadata.0.generate_name": "",
"spec.0.template.0.metadata.0.generation": "0",
"spec.0.template.0.metadata.0.labels.%": "1",
"spec.0.template.0.metadata.0.labels.app": "backend-logging-load",
"spec.0.template.0.metadata.0.name": "",
"spec.0.template.0.metadata.0.namespace": "",
"spec.0.template.0.metadata.0.resource_version": "",
"spec.0.template.0.metadata.0.self_link": "",
"spec.0.template.0.metadata.0.uid": "",
"spec.0.template.0.spec.#": "1",
"spec.0.template.0.spec.0.active_deadline_seconds": "0",
"spec.0.template.0.spec.0.container.#": "1",
"spec.0.template.0.spec.0.container.0.args.#": "3",
рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдЬрд░ рдХреЛрдгрд╛рд▓рд╛ рдореБрд▓рд╛рдЦрддреАрд╕рд╛рдареА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдЪреА рд╕рдорд╕реНрдпрд╛ рд╣рд╡реА рдЕрд╕реЗрд▓ рддрд░ рддреНрдпрд╛рдВрдирд╛ рдпрд╛ рдХрд╛рд░реНрдпрд╛рд╕рд╛рдареА рдкрд╛рд░реНрд╕рд░ рд▓рд┐рд╣рд╛рдпрд▓рд╛ рд╕рд╛рдВрдЧрд╛ :)
рдмрдЧрд╢рд┐рд╡рд╛рдп рдкрд╛рд░реНрд╕рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреНрдпрд╛ рдЕрдиреЗрдХ рдкреНрд░рдпрддреНрдирд╛рдВрдирдВрддрд░, рдорд▓рд╛ рддреНрдпрд╛рдЪрд╛ рдХрд╛рд╣реА рднрд╛рдЧ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЛрдбрдордзреНрдпреЗ рд╕рд╛рдкрдбрд▓рд╛ рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рднрд╛рдЧ. рдЖрдгрд┐ рд╕рд░реНрд╡ рдХрд╛рд╣реА рдареАрдХ рдЪрд╛рд▓рд▓реЗ рдЖрд╣реЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ
рддреАрди рдкреНрд░рдпрддреНрди
рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкреНрд░рджрд╛рддреЗ рд╣реЗ рдмрд╛рдпрдирд░реА рдЖрд╣реЗрдд рдЬреНрдпрд╛рдд рдХреНрд▓рд╛рдЙрдб API рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡ рд╕рдВрд╕рд╛рдзрдиреЗ рдЖрдгрд┐ рддрд░реНрдХрд╛рдВрд╕рд╣ рдХреЛрдб рдЕрд╕рддрд╛рдд. рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рдЙрдбрдЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рдкреНрд░рджрд╛рддрд╛ рдЕрд╕рддреЛ рдЖрдгрд┐ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╕реНрд╡рддрдГрдЪ рддреНрдпрд╛рдВрдирд╛ рджреЛрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдордзреАрд▓ RPC рдкреНрд░реЛрдЯреЛрдХреЙрд▓рджреНрд╡рд╛рд░реЗ рдХреЙрд▓ рдХрд░рддреЛ.
рдЖрддрд╛ рдореА рдереЗрдЯ RPC рдХреЙрд▓рджреНрд╡рд╛рд░реЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкреНрд░рджрд╛рддреНрдпрд╛рдВрд╢реА рд╕рдВрдкрд░реНрдХ рд╕рд╛рдзрдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рд╣реЗ рд╕реБрдВрджрд░рдкрдгреЗ рдмрд╛рд╣реЗрд░ рдкрдбрд▓реЗ рдЖрдгрд┐ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкреНрд░рджрд╛рддреЗ рдирд╡реАрдирдордзреНрдпреЗ рдмрджрд▓рдгреЗ рдЖрдгрд┐ рдХреЛрдб рди рдмрджрд▓рддрд╛ рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдорд┐рд│рд╡рдгреЗ рд╢рдХреНрдп рдХреЗрд▓реЗ. рд╣реЗ рджреЗрдЦреАрд▓ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА tfstate рдордзреАрд▓ рд╕рд░реНрд╡ рдлреАрд▓реНрдб tf рдордзреНрдпреЗ рдирд╕рд╛рд╡реА, рдкрд░рдВрддреБ рдЖрдкрдг рдХрд╕реЗ рд╢реЛрдзреВ рд╢рдХрддрд╛? рдлрдХреНрдд рдпрд╛рдмрджреНрджрд▓ рддреБрдордЪреНрдпрд╛ рдкреНрд░рджрд╛рддреНрдпрд╛рд▓рд╛ рд╡рд┐рдЪрд╛рд░рд╛. рдордЧ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдПрдХрддреНрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрдЦреА рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддреА рд╣реЛрдгрд╛рд░реА рдкреЛрд░реНрдиреЛрдЧреНрд░рд╛рдлреА рд╕реБрд░реВ рдЭрд╛рд▓реА, рд╕рд░реНрд╡ рд╕реНрддрд░рд╛рдВрд╡рд░ tfstate рдЖрдд рдлреАрд▓реНрдб рд╢реЛрдзрдгреЗ.
рд╕рд░рддреЗрд╢реЗрд╡рдЯреА, рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд CLI рд╕рд╛рдзрди рдорд┐рд│рд╛рд▓реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕рд░реНрд╡ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкреНрд░рджрд╛рддреНрдпрд╛рдВрд╕рд╛рдареА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рддреБрдореНрд╣реА рд╕рд╣рдЬрдкрдгреЗ рдПрдХ рдирд╡реАрди рдЬреЛрдбреВ рд╢рдХрддрд╛. рддрд╕реЗрдЪ, рд╕рдВрд╕рд╛рдзрдиреЗ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдереЛрдбрд╛ рдХреЛрдб рд▓рд╛рдЧрддреЛ. рддрд╕реЗрдЪ рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╡рд╕реНрддреВ рдЬрд╕реЗ рдХреА рд╕рдВрд╕рд╛рдзрдирд╛рдВрдордзреАрд▓ рдХрдиреЗрдХреНрд╢рди. рдЕрд░реНрдерд╛рдд, рдЕрдиреЗрдХ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреНрдпрд╛ рдЬреНрдпрд╛рдВрдЪреЗ рд╡рд░реНрдгрди рдХрд░рддрд╛ рдпреЗрдгрд╛рд░ рдирд╛рд╣реА.
рдореА рдкреНрд░рд╛рдгреНрдпрд╛рдЪреЗ рдирд╛рд╡ рдЯреЗрд░рд╛рдлреЛрдорд░ рдареЗрд╡рд▓реЗ.
рдЕрдВрддрд┐рдо
рдЯреЗрд░рд╛рдлреЛрдорд░ рд╡рд╛рдкрд░реВрди, рдЖрдореНрд╣реА рджреЛрди рдврдЧрд╛рдВрдордзреВрди tf + tfstate рдХреЛрдбрдЪреНрдпрд╛ 500-700 рд╣рдЬрд╛рд░ рдУрд│реА рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реНрдпрд╛. рдЖрдореНрд╣реА рдкрд░рдВрдкрд░рд╛рдЧрдд рдЧреЛрд╖реНрдЯреА рдШреЗрдК рд╢рдХрд▓реЛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдлрдХреНрдд рдЯреЗрд░рд╛рдлреЙрд░реНрдорджреНрд╡рд╛рд░реЗ рд╕реНрдкрд░реНрд╢ рдХрд░реВ рд╢рдХрд▓реЛ, рдЬрд╕реЗ рдХреА рдХреЛрдб рдХрд▓реНрдкрдирд╛ рдореНрд╣рдгреВрди рд╕рд░реНрд╡реЛрддреНрддрдо рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдордзреНрдпреЗ. рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдПрдХ рдкреНрд░рдЪрдВрдб рдХреНрд▓рд╛рдЙрдб рдШреЗрддрд╛ рдЖрдгрд┐ рддреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╡рд░реНрдХрд░ рдлрд╛рдЗрд▓реНрд╕рдЪреНрдпрд╛ рд░реВрдкрд╛рдд рдЯреАрдорджреНрд╡рд╛рд░реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рддреЗрд╡реНрд╣рд╛ рд╣реА рдлрдХреНрдд рдЬрд╛рджреВ рдЕрд╕рддреЗ. рдЖрдгрд┐ рдирдВрддрд░ grep/replace/git рд╡рдЧреИрд░реЗ.
рдореА рдХрдВрдШреА рдХреЗрд▓реА рдЖрдгрд┐ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдареЗрд╡рд▓реА, рдкрд░рд╡рд╛рдирдЧреА рдорд┐рд│рд╛рд▓реА. рдЧреБрд░реБрд╡рд╛рд░реА (02.05.19/XNUMX/XNUMX) рдкреНрд░рддреНрдпреЗрдХрд╛рд╕рд╛рдареА GitHub рд╡рд░ рд░рд┐рд▓реАрдЭ рдХреЗрд▓реЗ.
рдЖрдзреАрдЪ 600 рддрд╛рд░реЗ, рдУрдкрдирд╕реНрдЯреЕрдХ рдЖрдгрд┐ kubernetes рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА 2 рдкреБрд▓ рд╡рд┐рдирдВрддреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реНрдпрд╛ рдЖрд╣реЗрдд. рдЪрд╛рдВрдЧрд▓рд╛ рдкреНрд░рддрд┐рд╕рд╛рдж. рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдкреНрд░рдХрд▓реНрдк рд▓реЛрдХрд╛рдВрд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ
рдореА рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рд╕рд▓реНрд▓рд╛ рджреЗрддреЛ рдХреА рдЬреНрдпрд╛рдВрдирд╛ рдЯреЗрд░рд╛рдлреЙрд░реНрдорд╕рд╣ рдХрд╛рдо рд╕реБрд░реВ рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ рдЖрдгрд┐ рдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡рдХрд╛рд╣реА рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣реВ рдирдХрд╛.
рдорд▓рд╛ рд╡рд┐рдирдВрддреНрдпрд╛, рд╕рдорд╕реНрдпрд╛, рддрд╛рд░реЗ рдЦреЗрдЪрдгреНрдпрд╛рдд рдЖрдирдВрдж рд╣реЛрдИрд▓.
рдбреЗрдореЛ
рд╕реНрддреНрд░реЛрдд: www.habr.com