рдЯреЗрд░рд╛рдлреЙрд░реНрдорд░ - рдХреЛрдб рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛

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

рд╕рдорд╕реНрдпрд╛

рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдбреЗрд╡реЙрдкреНрд╕/рдХреНрд▓рд╛рдЙрдб/рдЖрдИрдЯреА рд╕рдореБрджрд╛рдп рдореЗрдВ рдПрдХ рдорд╛рдирдХ рд░рд╣рд╛ рд╣реИред рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЪреАрдЬрд╝ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдореЗрдВ рдХрдИ рдЖрдирдВрдж рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрдИ рдХрд╛рдВрдЯреЗ, рддреЗрдЬ рдЪрд╛рдХреВ рдФрд░ рд░реЗрдХ рднреА рд╣реИрдВред
рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рдХреЗ рд╕рд╛рде рдирдИ рдЪреАрдЬрд╝реЗрдВ рдмрдирд╛рдирд╛ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛, рдмрджрд▓рдирд╛ рдпрд╛ рд╣рдЯрд╛рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рд╣реИ рдФрд░ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдкреВрд░реЗ рдХреНрд▓рд╛рдЙрдб рдХреЛ рджреЛрдмрд╛рд░рд╛ рд▓рд┐рдЦрдирд╛ рдФрд░ рджреЛрдмрд╛рд░рд╛ рдмрдирд╛рдирд╛ рдХрд┐рд╕реА рддрд░рд╣ рдорд╣рдВрдЧрд╛ рдФрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред
рдореБрдЭреЗ рджреЛ рдиреМрдХрд░рд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рддрдм рд╣реИ рдЬрдм рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ Git рдореЗрдВ рд╣реЛ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ 2+ рдмрдХреЗрдЯ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рд╛рде рд╕реЗ рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред
рд╡рд╣рд╛рдБ рдореБрджреНрджрд╛ 2014 рд╕реЗ рдЯреЗрд░рд╛рдлреЙрдо рдореЗрдВ рдЬреЛ 2016 рдореЗрдВ рдЗрд╕ рдЙрдореНрдореАрдж рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдЖрдпрд╛рдд рд╣реЛрдЧрд╛ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд╛рдПрдВ рд╕реЗ рдмрд╛рдПрдВ рддрдХ рд╣реИ

рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ: рд▓реЗрдЦрдХ рдЕрдкрдиреЗ рдЖрдзреЗ рдЬреАрд╡рди рдХреЗ рд▓рд┐рдП рд░реВрд╕ рдореЗрдВ рдирд╣реАрдВ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рд░реВрд╕реА рдореЗрдВ рдмрд╣реБрдд рдХрдо рд▓рд┐рдЦрддрд╛ рд╣реИред рд╡рд░реНрддрдиреА рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ.

╨а╨╡╤И╨╡╨╜╨╕╤П

1. AWS рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕рдорд╛рдзрд╛рди рдореМрдЬреВрдж рд╣реИрдВ рдЯреЗрд░рд╛рдлреЛрд░реНрдорд┐рдВрдЧ. рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреА 250+ рдмрд╛рд▓реНрдЯрд┐рдпрд╛рдБ рдЙрд╕рдореЗрдВ рд╕реЗ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╡рд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдЦрд╝рд░рд╛рдм рдерд╛ред AWS рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХрдИ рдирдП рд╡рд┐рдХрд▓реНрдк рдкреЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЯреЗрд░рд╛рдлреЙрд░реНрдорд┐рдВрдЧ рдХреЛ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдпрд╣ рд░реВрдмреА рд╣реИ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рд░рд▓ рджрд┐рдЦрддрд╛ рд╣реИ. рд╢рд╛рдо рдХреЛ 2 рдмрдЬреЗ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рднреЗрдЬрд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╡рд╣рд╛рдВ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдРрд╕рд╛ рд╕рдорд╛рдзрд╛рди рдмрд┐рд▓реНрдХреБрд▓ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред
рдЯреЗрд░рд╛рдлреЙрд░реНрдорд┐рдВрдЧ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ: рдпрд╣ AWS SDK рд╕реЗ рдбреЗрдЯрд╛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ tf рдФрд░ tfstate рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ 3 рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:
1. рдЕрдкрдбреЗрдЯ рдореЗрдВ рд╣рдореЗрд╢рд╛ рджреЗрд░реА рд░рд╣реЗрдЧреА
2. tf рдлрд╝рд╛рдЗрд▓реЗрдВ рдХрднреА-рдХрднреА рдЯреВрдЯреА рд╣реБрдИ рдЖрддреА рд╣реИрдВ
3. tfstate рдХреЛ tf рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдЕрднрд┐рд╕рд░рдг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдРрд╕рд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ `рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкреНрд▓рд╛рди` рдХрд╣рддрд╛ рд╣реЛ рдХрд┐ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реИрдВ

2. `рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдЗрдВрдкреЛрд░реНрдЯ` рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрдорд╛рдВрдб рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдЖрдк рд╕рдВрд╕рд╛рдзрди рдХреЗ рдирд╛рдо рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рдЯреАрдПрдл рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдлрд┐рд░ `рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдЖрдпрд╛рдд` рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдЖрдИрдбреА рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рддрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ tfstate рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ 3 рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:
1. рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ tfstate рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ, рдФрд░ tf рдЦрд╛рд▓реА рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдЗрд╕реЗ tfstate рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛
2. рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ 250+ рдмрд╛рд▓реНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
3. рдЖрдкрдХреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрдИрдбреА рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ - рдпрд╛рдиреА, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЙрд╕ рдХреЛрдб рдореЗрдВ рд▓рдкреЗрдЯрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд░рд┐рдгрд╛рдо рдЖрдВрд╢рд┐рдХ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЕрдЪреНрдЫрд╛ рдкреИрдорд╛рдиреЗ рдкрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ

рдореЗрд░рд╛ рдирд┐рд░реНрдгрдп

рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ:
1. рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП tf рдФрд░ tfstate рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА рдмрдХреЗрдЯ/рд╕реБрд░рдХреНрд╖рд╛ рд╕рдореВрд╣/рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ `рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкреНрд▓рд╛рди` рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рдХрд┐ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реИ
2. рдЖрдкрдХреЛ 2 GCP + AWS рдХреНрд▓рд╛рдЙрдб рдЪрд╛рд╣рд┐рдП
3. рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди рдЬреЛ рд╣рд░ рдмрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ 3 рджрд┐рдиреЛрдВ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди рдкрд░ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
4. рдЗрд╕реЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдмрдирд╛рдПрдВ - рд╣рд░ рдХрд┐рд╕реА рдХреА рд╕рдорд╕реНрдпрд╛ рдПрдХ рдЬреИрд╕реА рд╣реИ

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

рдкрде

рдкрд╣рд▓рд╛ рдкреНрд░рдпрд╛рд╕
рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╢реБрд░реБрдЖрдд рдХреАред рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдПрд╕рдбреАрдХреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рдЙрдб рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ред рд╕реБрд░рдХреНрд╖рд╛ рд╕рдореВрд╣ рдкрд░ рдкреНрд░рдпрд╛рд╕ рддреБрд░рдВрдд рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдХреЗрд╡рд▓ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдореВрд╣ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 1.5 рджрд┐рди рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ (рдФрд░ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ)ред рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдФрд░ рдлрд┐рд░ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдмрджрд▓рд╛/рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рджреВрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕
рд╡рд░реНрдгрд┐рдд рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╣рд╛рдВ. рдмрд╕ tfstate рдХреЛ tf рдореЗрдВ рд▓реЗрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВред рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рд╡рд╣рд╛рдБ рд╣реИ рдФрд░ рдлрд╝реАрд▓реНрдб рд╕рдорд╛рди рд╣реИрдВред рдХрдИ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг tfstate рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ?? рдпрд╣реАрдВ рдкрд░ `рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд░рд┐рдлреНрд░реЗрд╢` рдХрдорд╛рдВрдб рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ред рдЯреЗрд░рд╛рдлреЙрд░реНрдо tfstate рдореЗрдВ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░, рдЖрдИрдбреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЙрди рдкрд░ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдФрд░ tfstate рдХреЛ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрддрд╛ рд╣реИред рдпрд╛рдиреА, рдХреЗрд╡рд▓ рдирд╛рдо рдФрд░ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА tfstate рдмрдирд╛рдПрдВ, `terraformrefresh` рдЪрд▓рд╛рдПрдВ рдФрд░ рдлрд┐рд░ рд╣рдореЗрдВ рдкреВрд░реНрдг tfstates рдорд┐рд▓рддреЗ рд╣реИрдВред рд╣реБрд░реНрд░реЗ!
рдЕрдм рдЖрдЗрдП 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. рд╕реНрдкреЗрдХ - рдЖрдХрд╛рд░ 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",

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ рдХреЛрдИ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ :)
рдмрдЧ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдХрдИ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЛрдб рдореЗрдВ рдорд┐рд▓рд╛, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ред рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрд╛

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

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

рдЕрдВрддрд┐рдо

рдЯреЗрд░рд╛рдлреЛрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдордиреЗ рджреЛ рдмрд╛рджрд▓реЛрдВ рд╕реЗ tf + tfstate рдХреЛрдб рдХреА 500-700 рд╣рдЬрд╛рд░ рд▓рд╛рдЗрдиреЗрдВ рддреИрдпрд╛рд░ рдХреАрдВред рд╣рдо рд╡рд┐рд░рд╛рд╕рдд рдХреА рдЪреАрдЬреЛрдВ рдХреЛ рд▓реЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ рдФрд░ рдХреЗрд╡рд▓ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЫреВрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рдереЗ, рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдб рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░реНрд╡реЛрддреНрддрдо рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВред рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЬрд╛рджреВ рд╣реИ рдЬрдм рдЖрдк рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдмрд╛рджрд▓ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╡рд░реНрдХрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЯреАрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░ grep/replace/git рдЗрддреНрдпрд╛рджрд┐ред

рдореИрдВрдиреЗ рдЙрд╕реЗ рдХрдВрдШреА рдХрд░рдХреЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛, рдЕрдиреБрдорддрд┐ рдорд┐рд▓ рдЧрдпреАред рдЧреБрд░реБрд╡рд╛рд░ (02.05.19/XNUMX/XNUMX) рдХреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП GitHub рдкрд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ред github.com/GoogleCloudPlatform/terraformer
рдУрдкрдирд╕реНрдЯреИрдХ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 600 рд╕рд┐рддрд╛рд░реЗ, 2 рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реБрдП рд╣реИрдВред рдЕрдЪреНрдЫреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛. рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ
рдореИрдВ рдЙрди рд╕рднреА рдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдЬреЛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рдЕрдиреБрд░реЛрдзреЛрдВ, рдореБрджреНрджреЛрдВ, рд╕рд┐рддрд╛рд░реЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

рдбреЗрдореЛ
рдЯреЗрд░рд╛рдлреЙрд░реНрдорд░ - рдХреЛрдб рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ