
рдореИрдВ рдирдП рд╕реАрдПрд▓рдЖрдИ рдЯреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ рдореИрдВрдиреЗ рдПрдХ рдкреБрд░рд╛рдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдерд╛ред
рд╕рдорд╕реНрдпрд╛
рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рджреЗрд╡рдкреНрд╕ / рдХреНрд▓рд╛рдЙрдб / рдЖрдИрдЯреА рд╕рдореБрджрд╛рдп рдореЗрдВ рдорд╛рдирдХ рд╣реИред рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЪреАрдЬ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдореЗрдВ рдХрдИ рдХрд╛рдВрдЯреЗ рдФрд░ рд╕рд╛рде рд╣реА рдХрдИ рдХрд╛рдВрдЯреЗ, рддреЗрдЬ рдЪрд╛рдХреВ рдФрд░ рд░реЗрдХ рд╣реИрдВред
рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде, рдирдИ рдЪреАрдЬреЗрдВ рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛, рдмрджрд▓рдирд╛ рдпрд╛ рд╣рдЯрд╛рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рд╣реИ рдФрд░ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдкреВрд░реЗ рдХреНрд▓рд╛рдЙрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдХрд┐рд╕реА рддрд░рд╣ рдорд╣рдВрдЧрд╛ рдФрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред
рдореБрдЭреЗ 2 рдХрд╛рдореЛрдВ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛ, рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ 250+ рдмрд╛рд▓реНрдЯреА рд╣реЛ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдЯреИрд░рдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗрдВред
рдЯреЗрд░рд╛рдлреЛрдо рдореЗрдВ 2014 рд╕реЗ рдПрдХ
рдореБрджреНрджрд╛ рд╣реИ рдЬреЛ 2016 рдореЗрдВ рдЗрд╕ рдЙрдореНрдореАрдж рдХреЗ рд╕рд╛рде рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЖрдпрд╛рдд рд╣реЛрдЧрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рддрд╕реНрд╡реАрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ
рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ: рд▓реЗрдЦрдХ рдЕрдкрдиреЗ рдЖрдзреЗ рдЬреАрд╡рди рдХреЗ рд▓рд┐рдП рд░реВрд╕ рдореЗрдВ рдирд╣реАрдВ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рд░реВрд╕реА рдореЗрдВ рдмрд╣реБрдд рдХрдо рд▓рд┐рдЦрддрд╛ рд╣реИред рд╡рд░реНрддрдиреА рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдБред
рд╕рдорд╛рдзрд╛рди
1. AWS
рдЯреЗрд░рд╛рдлреЙрд░реНрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЯрд░реНрдирдХреА рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕рдорд╛рдзрд╛рди рд╣реИрдВред рдЬрдм рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреА 250+ рдмрд╛рд▓реНрдЯреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЦрд░рд╛рдм рдерд╛ред AWS рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдлреЗрдВрдХ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдорд┐рдВрдЧ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдЗрд╕рдореЗрдВ рдПрдХ рд░реВрдмреА
рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЦрд░рд╛рдм рджрд┐рдЦрддрд╛ рд╣реИ ред рд╢рд╛рдо рдХреЛ 2 рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рд╡рд╣рд╛рдБ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ
рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдмрд┐рд▓реНрдХреБрд▓ рднреА рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИред
рдЯреЗрд░рд╛рдлреЙрд░реНрдорд┐рдВрдЧ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ AWS SDK рд╕реЗ рдбреЗрдЯрд╛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ tf рдФрд░ tfstate рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
3 рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:
1. рдЕрдкрдбреЗрдЯ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдмреИрдХрд▓реЙрдЧ рд░рд╣реЗрдЧрд╛
2. tf рдлрд╛рдЗрд▓реЗрдВ рдХрднреА-рдХрднреА рдЯреВрдЯреА рд╣реБрдИ рдирд┐рдХрд▓ рдЬрд╛рддреА рд╣реИрдВ
3. tfstate рдХреЛ tf рд╕реЗ рдЕрд▓рдЧ рдХрд░рдХреЗ рдПрдХрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдЕрднрд┐рд╕рд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ `рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкреНрд▓рд╛рди` рдпрд╣ рдХрд╣реЗрдЧрд╛ рдХрд┐ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИрдВ
2. `рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдЗрдВрдкреЛрд░реНрдЯ '- рдПрдХ рдмрд┐рд▓реНрдЯ-рдЗрди рдХрдорд╛рдВрдб рдЯреЗрд░рд╛рдлреЙрд░реНрдоред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдЖрдк рд╕рдВрд╕рд╛рдзрди рдХреЗ рдирд╛рдо рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА TF рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдлрд┐рд░ `terraform import` рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдХреА ID рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЙрд▓ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ tfstate рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред
3 рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:
1. рд╣рдо рдХреЗрд╡рд▓ tfstate рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ tf рдЦрд╛рд▓реА рдХреЛ tfstate рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
2. рд╣рд░ рдмрд╛рд░ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдФрд░ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдореБрдЭреЗ 250+ рдмрд╛рд▓реНрдЯреА рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
3. рдЖрдкрдХреЛ рд╕рдВрд╕рд╛рдзрди рдЖрдИрдбреА рдХреЛ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЕрд░реНрдерд╛рдд, рдЖрдкрдХреЛ рдЗрд╕реЗ рдХреЛрдб рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд░рд┐рдгрд╛рдо рдЖрдВрд╢рд┐рдХ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
рдореЗрд░реЗ рдлреИрд╕рд▓реЗ
рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ:
1. рд╕рдВрд╕рд╛рдзрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ tf рдФрд░ tfstate рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА рдмрдХреЗрдЯ / рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдЧреНрд░реБрдк / рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ `рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рдкреНрд▓рд╛рди` рд╡рд╛рдкрд╕ рдЖрдП рддрд╛рдХрд┐ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рди рд╣реЛ
2. рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ GCP + AWS рдХреЗ 2 рдмрд╛рджрд▓
3. рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди рдЬреЛ рд╣рд░ рдмрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ 3 рджрд┐рдиреЛрдВ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди рдкрд░ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
4. рдУрдкрди рд╕реЛрд░реНрд╕ рдмрдирд╛рдПрдВ - рд╕рднреА рдХреЛ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ
рдЧреЛ рд▓реИрдВрдЧреНрд╡реЗрдЬ - рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕рдореЗрдВ HCL рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ + рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ
рдкрд╣рд▓рд╛ рдкреНрд░рдпрд╛рд╕
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рдХрд▓реНрдк рд╢реБрд░реВ рдХрд┐рдпрд╛ред рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдПрд╕рдбреАрдХреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рдЙрдб рддрдХ рдкрд╣реБрдВрдЪ рдФрд░ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЦреЗрддреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ред рдЗрд╕ рдкреНрд░рдпрд╛рд╕ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╕рдореВрд╣ рдореЗрдВ рддреБрд░рдВрдд рдореГрддреНрдпреБ рд╣реЛ рдЧрдИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдХреЗрд╡рд▓ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдореВрд╣ (рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ) рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП 1.5 рджрд┐рди рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдПред рд▓рдВрдмреЗ рдФрд░ рдлрд┐рд░ рдЦреЗрддреЛрдВ рдХреЛ рдмрджрд▓рд╛ / рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рджреВрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕
рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред рдмрд╕ рд▓реЗ рдФрд░ tfstate рдХреЛ tf рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред рд╕рднреА рдбреЗрдЯрд╛ рд╡рд╣рд╛рдБ рд╣реИрдВ рдФрд░ рдлрд╝реАрд▓реНрдб рд╕рдорд╛рди рд╣реИрдВред рдХрдИ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг tfstate рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ?? рддрдм рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП `рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд░рд┐рдлреНрд░реЗрд╢` рдХрдорд╛рдВрдб рдЖрдпрд╛ред terraform рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ tststate рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ ID рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдЦреАрдВрдЪрддрд╛ рд╣реИ рдФрд░ tfstate рдХреЛ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдХреЗрд╡рд▓ рдирд╛рдо рдФрд░ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА tfstate рдмрдирд╛рдПрдВ, `рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рд░рд┐рдлреНрд░реЗрд╢` рдХреЛ рдЪрд▓рд╛рдПрдВ, рд╣рдореЗрдВ рдкреВрд░реНрдг tfateate рдорд┐рд▓рддрд╛ рд╣реИред рд╣реБрд░реНрд░реЗ!
рдЕрдм tfstate рд╕реЗ tf рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдирд╡рд░реНрдЯрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ
рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреЛрд░реНрдиреЛрдЧреНрд░рд╛рдлреА рдХрд░рддреЗ рд╣реИрдВред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХрднреА рдЯрдлрд╕реНрдЯреЗрдЯ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ, рдпрд╣ 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 рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛? рдмрд╕ рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫреЗрдВред рдлрд┐рд░
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдкрд░ рдПрдХ рдФрд░
рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреЛрд░реНрдиреЛрдЧреНрд░рд╛рдлреА рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕рднреА рд╕реНрддрд░реЛрдВ рдкрд░ tststate рдХреЗ рдЕрдВрджрд░ рдЦреЗрддреЛрдВ рдХреА рдЦреЛрдЬ рдХреЗ рд╕рд╛рде
рд╢реБрд░реВ рд╣реБрдИ ред
рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧреА рд╕реАрдПрд▓рдЖрдИ рдЙрдкрдХрд░рдг рдорд┐рд▓рд╛, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рд╣реИ рдФрд░ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдирдпрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдХреЛрдб рд▓рдЧрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдЬреИрд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзред рдмреЗрд╢рдХ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ рдЬрд┐рдирдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрдиреНрд╣реЛрдВрдиреЗ рдЫреЛрдЯреЗ рдЬрд╛рдирд╡рд░ рдЯреЗрд░рд╛рдлреЛрдорд░ рдХреЛ рдмреБрд▓рд╛рдпрд╛ред
рдЕрдиреНрдд
Terrafomer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ рджреЛ рдмрд╛рджрд▓реЛрдВ рд╕реЗ tf + tststate рдХреЛрдб рдХреА 500-700 рд╣рдЬрд╛рд░ рд▓рд╛рдЗрдиреЗрдВ рдЙрддреНрдкрдиреНрди рдХреАрдВред рд╡реЗ рд╡рд┐рд░рд╛рд╕рдд рдХреА рдЪреАрдЬреЗрдВ рд▓реЗ рд╕рдХрддреЗ рдереЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫреВрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рдереЗ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВред рдпрд╣ рдХреЗрд╡рд▓ рдЬрд╛рджреВ рд╣реИ рдЬрдм рдЖрдк рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдмрд╛рджрд▓ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╡рд░реНрдХрд┐рдВрдЧ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░ grep / рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд / git рдФрд░ рдЗрддрдиреЗ рдкрд░ред
рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрдВрдШреА рдХреА рдФрд░ рдЖрджреЗрд╢ рджрд┐рдпрд╛, рдЕрдиреБрдорддрд┐ рдкреНрд░рд╛рдкреНрдд рдХреАред рдЧреБрд░реБрд╡рд╛рд░ (05/02/19) рдХреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЬреАрдереВрдм рдкрд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ред
github.com/GoogleCloudPlatform/terraformerрдкрд╣рд▓реЗ рд╕реЗ рд╣реА 600 рд╕реНрдЯрд╛рд░, 2 рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдиреЗ рдУрдкрдирд╕реНрдЯреИрдХ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдЕрдЪреНрдЫреА рд╕рдореАрдХреНрд╖рд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ
рдореИрдВ рдЙрди рд╕рднреА рдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдЬреЛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рдЕрдиреБрд░реЛрдзреЛрдВ, рдореБрджреНрджреЛрдВ, рд╕рд┐рддрд╛рд░реЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
рдбреЗрдореЛ

рдЕрдкрдбреЗрдЯ: рдиреНрдпреВрдирддрдо рдУрдкрдирд╕реНрдЯреИрдХ рд╕рдорд░реНрдерди рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдЦрд░рд╛рдм рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рд▓реЛрдЧреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж