рдХрд╛рдлреА рд░реБрдЪрд┐ рддрдХрдиреАрдХреА рд╕рдореБрджрд╛рдп рдХреЗ рдмреАрдЪ
рдбреЙрдХрдЯрд░ рдФрд░
рдЕрдиреНрд╕рд┐рдмрд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИ , рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрд╕ рдмреНрдпрд╛рдЬ рдХреЛ рднреА рд╕рд╛рдЭрд╛ рдХрд░реЗрдВрдЧреЗред рдЖрдк рд░реЗрд▓реНрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдФрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдВрд╕рд┐рдмрд▓ рдФрд░ рдбреЙрдХрд░ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдХреМрд╢рд▓ рдХреЛ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред
"рдЖрдк рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓реЗрддреЗ рдФрд░ рд╣рд░реЛрдХреВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВ?" рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдХрд┐рд╕реА рднреА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдорд╢реАрди рдкрд░ рдбреЙрдХрд░ рдФрд░ рдЕрдиреНрд╕рд┐рдмрд▓ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВред рджреВрд╕рд░реЗ, рдореИрдВ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓рд╛рдкрди рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ, рдХреЗрд╡рд▓ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реА рдирд╣реАрдВ, рдХреБрдЫ рднреА рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдкрдиреА рдЖрддреНрдорд╛ рдореЗрдВ рдПрдХ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдордЬрд╝рд╛ рдЖрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд░реЛрдХреВ рдХрд╛ рдореВрд▓ рдЖрдзрд╛рд░ рдПрдХ рд▓рд┐рдирдХреНрд╕ рдХрдВрдЯреЗрдирд░ рд╣реИред рд╡рд╣реА рддрдХрдиреАрдХ рдбреЙрдХрд░ рдХреЗ рдореВрд▓ рдореЗрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдбреЙрдХрд░ рдХрд╛ рдПрдХ рдЖрджрд░реНрд╢ рд╡рд╛рдХреНрдп "рдХрдВрдЯреЗрдирд░реАрдХрд░рдг рдПрдХ рдирдпрд╛ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рд╣реИред"
рдХреНрдпреЛрдВ?
рд╢реЗрдл рдХреЗ 4 рд╕рд╛рд▓ рдХреЗ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж, рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдердХрд╛рдК рд╣реЛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рдЙрд╕ рдХреЛрдб рдкрд░ рдЕрдзрд┐рдХ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рдЬреЛ рдореЗрд░реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ рд╣реА рдирд╣реАрдВред рдХреЛрдИ рднреА рдмрджрд▓рд╛рд╡, рдЪрд╛рд╣реЗ рдХрд┐рддрдирд╛ рднреА рдЫреЛрдЯрд╛ рдХреНрдпреЛрдВ рди рд╣реЛ, рдереЛрдбрд╝реЗ рд╕реЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЕрдиреНрд╕рд┐рдмрд▓ рдХреЗ рд╕рд╛рде, рдПрдХ рдУрд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдбреЗрдЯрд╛ рд╣реИ, рджреВрд╕рд░реА рдУрд░, рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреА рдмрд╛рддрдЪреАрдд рдХреЗ рдмреАрдЪ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВред рдпрд╣ рдореЙрдбрд▓ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдпрд╣ рдЖрдкрдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореЗрд░рд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпреВрдирд┐рдХреНрд╕ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдирдиреЛрди рдПрдХрд▓ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдореЙрдбреНрдпреВрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдирдВрдд рддрд░реАрдХреЛрдВ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Ansible рдХреЗ рдкрд╛рд╕ рдкрд╛рдпрдерди рдФрд░ SSH рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдЕрдиреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрд╕реЗ рджреВрд░рд╕реНрде рдорд╢реАрдиреЛрдВ рдкрд░ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╡рд╣ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХрдЪрд░рд╛ рдирд╣реАрдВ рдЫреЛрдбрд╝рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рд╕рдм рдХреБрдЫ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХреЗ рдПрдХ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред
рдХреНрдпреЛрдВ рдбреЙрдХрдЯрд░?
рдбреЙрдХрд░ рдПрдХ рдорд╢реАрди рдкрд░ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрдж рдХреЛ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ mysqld рд╕реЗ рд░реЗрдбрд┐рд╕ рддрдХ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рд░реЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЧрд┐рдЯ рд╕реНрдиреИрдкрд╢реЙрдЯ рдФрд░ рдХреЛрдб рд╡рд┐рддрд░рдг рдХреЗ рд╕рдорд╛рди рдХреБрд╢рд▓ рддрд░реАрдХреЗ рд╕реЗ, рдбреЙрдХрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реА рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╡рд╣ рдЙрд╕ рдорд╢реАрди рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕ рдкрд░ рд╡рд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
VM рдХреЗ рд╕рд╛рде Docker рдХрдВрдЯреЗрдирд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореБрдЦреНрдп, рд▓реЗрдХрд┐рди рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдЧрд▓рддреАред рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддрд┐ рдХрдВрдЯреЗрдирд░ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛ рдФрд░ рд╕рдорд░реНрдерди рдХреА рд╕рд░рд▓рддрд╛ рдорд┐рд▓рддреА рд╣реИред рдпрд╣ рдореЙрдбрд▓ рдпреВрдирд┐рдХреНрд╕ рджрд░реНрд╢рди рдореЗрдВ рд╕рдордп рдХреА рдХрд╕реМрдЯреА рдкрд░ рдЦрдбрд╝рд╛ рд╣реИ, рдпрд╣ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдареЛрд╕ рдЖрдзрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд╕рдорд╛рдпреЛрдЬрди
рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ Ansible рд╕реЗ рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдорд╢реАрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ: AWS, Linode, Rackspace рдпрд╛ DigitalOceanред рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ 1 рдорд┐рдирдЯ 25 рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдореНрд╕реНрдЯрд░реНрдбрдо 2 рдХреНрд╖реЗрддреНрд░ рдореЗрдВ DigitalOcean рдкрд░ 2GB рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рдЫреЛрдЯреА рдмреВрдВрдж рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Ansible рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдПрдХ рдФрд░ 1 рдорд┐рдирдЯ рдФрд░ 50 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП, рдореИрдВ рдбреЙрдХрд░ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЕрдм рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдзрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рд╣реИ, рддреЛ рдореИрдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдбреЙрдХрд░ рдиреЗ рдЦреБрдж рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрд╛ред
SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреВрд░рд╕реНрде рдорд╢реАрдиреЛрдВ рдкрд░ рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрддрд╛ рд╣реИред рд╕реНрдерд╛рдиреАрдп SSsh- рдПрдЬреЗрдВрдЯ рдореЗрдВ рдкрдбрд╝реА рдореЗрд░реА SSH рдХреБрдВрдЬрд┐рдпрд╛рдБ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ Ansible SSH рд╕рддреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╛рдЭрд╛ рдХреА рдЬрд╛рдПрдВрдЧреАред рдЬрдм, рд░рд┐рдореЛрдЯ рдорд╢реАрди рдкрд░, рдореЗрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдХреЛрдб рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдЧрд┐рдЯ рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рд╕реЗ рдлреЙрд░рд╡рд░реНрдб рдХрд┐рдП рдЧрдП ssh- рдПрдЬреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдбреЙрдХрд░ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд┐рд░реНрднрд░рддрд╛
рдореБрдЭреЗ рдпрд╣ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг, рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓, рд░реВрдмреА рд░рддреНрди рдпрд╛ рдиреЛрдб.рдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдпрд╣ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдпрд╛ рдПрдХ рдХрддрд╛рд░ рд╕рд░реНрд╡рд░, рд╡реЗ рдЙрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдлрд┐рд▓рд╣рд╛рд▓ рдХреНрдпрд╛ рдЙрдкрд▓рдмреНрдз рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣
DevOps рдЖрдВрджреЛрд▓рди рдХреЗ рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд▓реЗрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдбреЙрдХрд░ рдореМрдЬреВрджрд╛ рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХрддрд╛ рдФрд░ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕ рдХрд╛рдо рдХреЛ рдЖрд╕рд╛рди рдФрд░ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрддрд╛ рд╣реИред
рдореЗрд░рд╛ рдЖрд╡реЗрджрди MySQL 5.5 рдФрд░ Redis 2.8 рдЬреИрд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ
.docker_container_dependencies
рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
gerhard/mysql:5.5 gerhard/redis:2.8
Ansible playbook рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рджреЗрдЦреЗрдЧрд╛ рдФрд░ рдбреЙрдХрдЯрд░ рдХреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рд╕реЗ рд╕рд╣реА рдЪрд┐рддреНрд░ рд▓реЗрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреЗ рдХрдВрдЯреЗрдирд░ рдореЗрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХрдВрдЯреЗрдирд░ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ
рдбреЙрдХрд░ 0.6.5 рдХреА
рдШреЛрд╖рдгрд╛ рдкрд░ рдПрдХ рдирдЬрд╝рд░
рдбрд╛рд▓реЗрдВрдореЗрд░рд╛ рдЖрд╡реЗрджрди рднреА рдПрдХ рдбреЙрдХрдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдЬреЛ рд░реВрдмреА рдбреЛрдХрд░ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред рдЬрдм рдЫрд╡рд┐ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ рдХрджрдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд░реВрдмреА рдХрд╛ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рд╣реЛред
FROM howareyou/ruby:2.0.0-p353 ADD ./ /terrabox RUN \ . /.profile ;\ rm -fr /terrabox/.git ;\ cd /terrabox ;\ bundle install --local ;\ echo '. /.profile && cd /terrabox && RAILS_ENV=test bundle exec rake db:create db:migrate && bundle exec rspec' > /test-terrabox ;\ echo '. /.profile && cd /terrabox && export RAILS_ENV=production && rake db:create db:migrate && bundle exec unicorn -c config/unicorn.rails.conf.rb' > /run-terrabox ;\
рдкрд╣рд▓рд╛ рдХрджрдо рдореЗрд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рднреА рдХреЛрдб рдХреЛ рдбреЙрдХрд░ рдЫрд╡рд┐ рдореЗрдВ рдХреЙрдкреА рдХрд░рдирд╛ рдФрд░ рдкрд┐рдЫрд▓реА рдЫрд╡рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝реЗ рдЧрдП рд╡реИрд╢реНрд╡рд┐рдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реВрдмреА рдбреЙрдХрд░ рдЫрд╡рд┐, рдкрдерд░реА рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░реВрдмреА рдХреЗ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрде рдЬреЛрдбрд╝рддреА рд╣реИред
рдЕрдЧрд▓рд╛, рдореИрдВ рдЧрд┐рдЯ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рд╕рднреА рд░рддреНрдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдПрдХ / рдкрд░реАрдХреНрд╖рдг-рдЯреЗрд░рд╛рдмреЙрдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реВрдВ рдЬреЛ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд▓рддреА рд╣реИред рдЗрди рд╕рднреА рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп "рдХреИрдирд░реА" рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдЙрд╕рдХреЗ рд╕рднреА рдЖрд╢реНрд░рд┐рддреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдХрд┐ рд╕рднреА рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ рдФрд░ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЖрд╡реЗрджрди рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реЙрдиреНрдЪ рд╕реЗ рдкрд╣рд▓реЗ рдкрд╛рд░рд┐рдд рд╣реЛ рдЧрдП рд╣реИрдВред
рдирдпрд╛ рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХрдорд╛рдВрдб рдХреЛ рд╕реАрдПрдордбреА рдЪрд░рдг рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЯреЗрд╕реНрдЯ рд░рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рд╕реНрдЯрд╛рд░реНрдЯ / рд░рди-рдЯреЗрд░рд╛рдмреЙрдХреНрд╕ рдХрдорд╛рдВрдб рдХреЛ рдмрд┐рд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
Dockerfile рдореЗрдВ рдЖрдЦрд┐рд░реА рдирд┐рд░реНрджреЗрд╢ Docker рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╕реЗ 3000 рдкреЛрд░реНрдЯ рдХреЛ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ Docker рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдХреМрди рд╕рд╛ рд╕рд░реНрд╡рд░ рдпрд╛ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдореЗрд░реЗ рдХрдВрдЯреЗрдирд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд░реЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд▓рд╛рдирд╛
рдПрдХ рдФрд╕рдд рд░реЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП, рд▓рдЧрднрдЧ 100 рдЬрд╡рд╛рд╣рд░рд╛рдд рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рд░реЗрд▓ рдХреЗ рдиреАрдЪреЗ рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдм 2GB рдФрд░ 2 рдкрд░рдорд╛рдгреБ рдорд╢реАрди рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП 8 рдорд┐рдирдЯ 16 рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп рд▓реЗрддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реНрдерд╛рдиреАрдп рдбреЙрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗред рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдорд╢реАрди рдкрд░ рдПрдХ рд░реВрдмреА, рдореИрд╕рдХрд▓ рдФрд░ рд░реЗрдбрд┐рд╕ рдЫрд╡рд┐ рд╣реИ, рддреЛ 4 рдорд┐рдирдЯ 45 рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЗрд░реЗ рдЖрд╡реЗрджрди рдХреА рдПрдХ рд╕рдВрджрд░реНрдн рдЫрд╡рд┐ рд╣реИ, рддреЛ 2 рдорд┐рдирдЯ 23 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ MySQL рдФрд░ Redis рдЬреИрд╕реА рдирд┐рд░реНрднрд░рддрд╛ рд╕рд╣рд┐рдд рдПрдХ рдирдИ рд░реЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рддреИрдирд╛рддреА рдореЗрдВ 2 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред
рдпрд╣ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрд╡реЗрджрди рдХреА рддреИрдирд╛рддреА рдореЗрдВ рдЙрди рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдПрдХ рдорд┐рдирдЯ, рд╕рдордп рд╕реЗ рдЕрдВрдд рддрдХ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред
рдЕрддрд┐рд╢рдпреЛрдХреНрддрд┐ рдХреЗ рдмрд┐рдирд╛, рдбреЙрдХрд░ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рд╛рдзрди рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдХреЗрд╡рд▓ рд╢реЛрдз рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрддрд╛ рд╣реИ, рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдирдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрдВрдЯреЗрдирд░ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЕрдЪрд╛рдирдХ, рдореИрдВ рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рдирдП рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ рдкреГрдердХ рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдорд┐рдирдЯреЛрдВ рдореЗрдВ рд▓реЛрдб рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╡реАрдПрдо рдХреЗ рд╡рд┐рдкрд░реАрдд, рдбреЙрдХрд░ рдЗрд╕ рдкрд░ рд╕реЗрдХрдВрдб рдмрд┐рддрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдмрд╛рд░ рдореИрдВрдиреЗ рдбреЙрдХрд░ рдЫрд╡рд┐ рдмрдирд╛ рд▓реА рд╣реИ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдореЗрд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдореИрдВ рдЫрд╡рд┐ рдХреЛ рдПрдХ рдирд┐рдЬреА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдбреЙрдХрд░ рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рдорд╢реАрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирдП рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдм рд╕реЗрдХрдВрдб рдореЗрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
Ansible рдиреЗ рдореБрдЭреЗ рдЕрд╡рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдбреЙрдХрд░ рдиреЗ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдФрд░ рд╕реНрдерд┐рд░рддрд╛ рджреА рдЬрдм рдпрд╣ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдХрд╛рд╕ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рд╡рд┐рддрд░рдг рдЪрд░рдгред рд╕рдВрдпреЛрдЬрди рдореЗрдВ, рд╡реЗ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрдВред
рдЦрд░реЛрдВрдЪ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд░реЗрд▓ рдЖрд╡реЗрджрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХреЗрд╡рд▓ 12 рдорд┐рдирдЯ рдореЗрдВ рдХрд┐рд╕реА рднреА рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИред рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рдЪрд▓ рд░рд╣реЗ "рдХрд╛рдо" рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛, рдЖрд╡реЗрджрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдореБрдлреНрдд рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рд╕рддрдд рдПрдХреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдпрд╣ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИред рдпрд╣ рдореБрдЭреЗ рд╣рд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рддрдХ рдкрд╣реБрдВрдЪрдХрд░, рдореИрдВ рдХреЗрд╡рд▓ рдЖрд╢рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдореЗрд░реЗ рд╕рд╛рде рдЕрдкрдиреА рдЦреБрд╢реА рд╕рд╛рдЭрд╛ рдХрд░реЗрдВрдЧреЗред