ListenNotes.com рдкрд░ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдорд╕реБрдиреЛ рдиреЛрдЯреНрд╕ рдПрдХ рдЦреЛрдЬ рдЗрдВрдЬрди рдФрд░ рдкреЙрдбрдХрд╛рд╕реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рддрдХрдиреАрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЙрдмрд╛рдК рд╣реИред рдХреЛрдИ рдР, рдЧрд╣рд░реА рд╢рд┐рдХреНрд╖рд╛ рдпрд╛ рдмреНрд▓реЙрдХрдЪреЗрди рдирд╣реАрдВред
"рдпрджрд┐ рдЖрдкрдХреЛ рдПрдЖрдИ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рддреЛ рдЖрдк рд░рд┐рдпрд▓ рдПрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ" :)
рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбреЗрд╡рд▓рдкрд░ рдирд╣реАрдВ рд░рдЦрдиреЗ рд╣реЛрдВрдЧреЗред рдпрд╛рдж рд░рдЦреЗрдВ,
рдЬрдм рдЗрдВрд╕реНрдЯрд╛рдЧреНрд░рд╛рдо рдиреЗ $ 57.5 рдорд┐рд▓рд┐рдпрди рдЬреБрдЯрд╛рдП рдФрд░ $ 1 рдмрд┐рд▓рд┐рдпрди рдХреЗ рд▓рд┐рдП рдлреЗрд╕рдмреБрдХ рдкрд░ рдЧрдП , рддреЛ рдЙрдирдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓
13 рдХрд░реНрдордЪрд╛рд░реА рдереЗ - рдФрд░ рдпреЗ рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░ рдирд╣реАрдВ рд╣реИрдВред рдЗрдВрд╕реНрдЯрд╛рдЧреНрд░рд╛рдо рдХреА рдЦрд░реАрдж 2012 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реБрдИред рдЕрдм рд╡рд░реНрд╖ 2019 рд╣реИ, рдФрд░ рдЖрдЬ рдкрд╣рд▓реЗ рд╕реЗ рдХрд╣реАрдВ рдЬреНрдпрд╛рджрд╛ рдпрд╣ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдЯреАрдо рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рд╛рд░реНрдердХ рдмрдирд╛рдпрд╛ рдЬрд╛рдП - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рднреАред
рдпрджрд┐ рдЖрдкрдиреЗ рд╕реБрдиреЗ рдиреЛрдЯ рдирд╣реАрдВ рджреЗрдЦреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдЕрднреА рдЖрдЬрд╝рдорд╛рдПрдБ:

рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрди
рдЖрдЗрдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВред
рд╕реБрдиреЛ рдиреЛрдЯреНрд╕ рджреЛ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
рд╕рдм рдХреБрдЫ AWS рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдХреЗрд╡рд▓ 20 рд╕рд░реНрд╡рд░ (5 рдордИ, 2019 рддрдХ):
рд╕реБрди рдиреЛрдЯреНрд╕ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реЗрд╡рдХрд╣реЛрд╕реНрдЯ рдирд╛рдо рд╕реЗ, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред
- рдЙрддреНрдкрд╛рджрди-рд╡реЗрдм ListenNotes.com рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
- рдЙрддреНрдкрд╛рджрди-рдПрдкреАрдЖрдИ рдпрд╛рддрд╛рдпрд╛рдд рдПрдкреАрдЖрдИ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рд╣рдо рдПрдкреАрдЖрдИ рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (4 рдордИ, 2019 рддрдХ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ: v1api (рдкрджрд╛рд╡рдирдд) рдФрд░ v2api (рдирдпрд╛)
- рдкреНрд░реЛрдбрдХреНрд╢рди-рдбреАрдмреА рдиреЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ PostgreSQL (рдорд╛рд╕реНрдЯрд░ рдФрд░ рдЧреБрд▓рд╛рдо)
- рдЙрддреНрдкрд╛рджрди-рдПрд╕ рдиреЗ рдПрд▓рд┐рдЯрд┐рдХреНрд╕рдЦреЛрдЬ рдХреНрд▓рд╕реНрдЯрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред
- рдкреНрд░реЛрдбрдХреНрд╢рди-рд╡рд░реНрдХрд░ рдкреЙрдбрдХрд╛рд╕реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╣рдореЗрд╢рд╛ рдЕрджреНрдпрддрд┐рдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛рд░реНрдп рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдореИрдЬрд┐рдХ рдлреАрдЪрд░реНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд░реИрдВрдХрд┐рдВрдЧ, рдПрдкрд┐рд╕реЛрдб / рдкреЙрдбрдХрд╛рд╕реНрдЯ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ)ред
- production-lb рдПрдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╣реИред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рд╕рд░реНрд╡рд░ рдкрд░ Redis рдФрд░ RabbitMQ рднреА рдЪрд▓рд╛рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдВрдкреВрд░реНрдг рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реВрдВред :)
- рдЙрддреНрдкрд╛рджрди-рдкрдВрдЧреБ рдПрдХ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдХрднреА-рдХрднреА рдПрдХ рдмрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВред рдкрдВрдЧреБ рдХреНрдпрд╛ рд╣реИ?
рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрдиреНрд╣реЗрдВ
рдЙрддреНрдкрд╛рджрди-рдХреБрдЫ рдХрд╣рддреА рд╣реВрдВ,
рдЙрддреНрдкрд╛рджрди-рдХреБрдЫ -2 , рдЖрджрд┐ ...
рдЙрддреНрдкрд╛рджрди-рдХреБрдЫ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╕рд╛рди
рд╣реИ рдФрд░
рдХреБрдЫ-рдХреБрдЫ рдЙрддреНрдкрд╛рджрди-рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ 4 ред
рдмреИрдХрдПрдВрдб
рдкреВрд░рд╛ рдмреИрдХреЗрдВрдб Django / Python3 рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЙрдмрдВрдЯреВ рд╣реИред
UWSGI рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реЗрдм рдЯреНрд░реИрдлрд┐рдХ рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ uWSGI рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдкрд╣рд▓реЗ
nginx рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рдпрд╣ рдПрдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореБрдЦреНрдп рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕
PostgreSQL рд╣реИ , рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рдЕрдиреБрднрд╡ рд╣реИред рд╕рд┐рджреНрдз рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде, рдЖрдк рд░рд╛рдд рдореЗрдВ рд╢рд╛рдВрддрд┐ рд╕реЗ рд╕реЛрддреЗ рд╣реИрдВред
рд░реЗрдбрд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ (рдЬреИрд╕реЗ рдХреИрд╢рд┐рдВрдЧ, рд╕рд╛рдВрдЦреНрдпрд┐рдХреА ...) рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐
рдПрд▓реАрд╕реНрдЯреЗрдХрд░реНрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛
рд╣реИ ред рд╣рд╛рдВ, рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреЙрдбрдХрд╛рд╕реНрдЯ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдФрд░
рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдмрд╛рдК рдХрдВрдкрдирд┐рдпреЛрдВ рдХреА рддрд░рд╣ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВред
рдЕрдЬрд╡рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдлрд╝рд▓рд╛рдЗрди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐
рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ рдЬреЛ рдХреНрд░реЛрди рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред рдЕрдЧрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕реБрдиреЛ рдиреЛрдЯреНрд╕ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕реЗрд▓реЗрд░реА рдФрд░ рдмреАрдЯ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рд╢рд╛рдпрдж рджреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рдирд┐рдпреЛрдХреНрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛:
ndkale рдФрд░
ndscheduler ред
рд╕реБрдкрд░рд╡рд╛рдЗрдЬрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред
рд░реБрдХреЛ, рдбреЛрдХрд░, рдХреБрдмреЗрд░рдиреЗрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдХреБрдЫ рднреА рдирд╣реАрдВред рдЕрдиреБрднрд╡ рдХреЗ рд╕рд╛рде, рдЖрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рдХрд░рдирд╛ рд╕реАрдЦрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ 2014 рдореЗрдВ рдбреЙрдХрд░ рдХреЗ рд╕рд╛рде рдкрд┐рдЫрд▓реА рдиреМрдХрд░реА рдореЗрдВ рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛: рдПрдХ рдФрд╕рдд рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдерд╛ рдЬреЛ рдПрдХ рдмрд┐рд▓рд┐рдпрди рдбреЙрд▓рд░ рдХреА рдХреАрдордд рд╡рд╛рд▓реА рдПрдХ рдЫреЛрдЯреА рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рд▓рдЧрддрд╛ рд╣реИред
рджреГрд╢реНрдпрдкрдЯрд▓
рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ
React +
Redux +
Webpack +
ES рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрди рджрд┐рдиреЛрдВ рдмрд╣реБрдд рдорд╛рдирдХ рд╣реИред рдЬрдм рдПрдХ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ JS рд╕рдВрдХреБрд▓ рдХреЛ
рдЕрдореЗрдЬрд╝рди S3 рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░
CloudFront рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
ListenNotes.com рдкрд░, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реЗрдм рдкреЗрдЬ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб (
Django рдЯреЗрдореНрдкреНрд▓реЗрдЯ ) рдкрд░ рдЖрдзреЗ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб (
рд░рд┐рдПрдХреНрдЯ ) рдкрд░ рджрд┐рдП рдЧрдП рд╣реИрдВред рд╡реЗрдм рдкреЗрдЬ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрддрд╛ рд╣реИ, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░, рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрдИ рд╡реЗрдм рдкреЗрдЬ рд╕рд░реНрд╡рд░ рдкрд░ рдореЗрд░реЗ рдЖрд▓рд╕реНрдп рдФрд░ рдХреБрдЫ рд╕рдВрднрд╛рд╡рд┐рдд рдПрд╕рдИрдУ рд▓рд╛рднреЛрдВ рдХреЗ рдХрд╛рд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рд╣реИрдВред
рдСрдбрд┐рдпреЛ рдкреНрд▓реЗрдпрд░
рдореИрдВ
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореАрдбрд┐рдпрд╛-рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣
рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд░реВрдк
рдореЗрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЦрд┐рд▓рд╛рдбрд╝реА:
рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдирд┐рд░реНрдорд┐рдд рдЦрд┐рд▓рд╛рдбрд╝реАрдПрдкреАрдЖрдИ
рд╣рдо рдПрдХ рд╕рд░рд▓ рдФрд░ рдордЬрдмреВрдд
рдкреЙрдбрдХрд╛рд╕реНрдЯ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдПрдкреАрдЖрдИ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╡реЗрдмрд╕рд╛рдЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред рдпрд╣рд╛рдБ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рдФрд░ рд░рд┐рдПрдХреНрдЯрдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА Django / рдкрд╛рдпрдерди рд╕реНрдЯреИрдХ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдЯреВрд▓рдмрд╛рд░, рдкреНрд░рд▓реЗрдЦрди ...)ред
рдПрдкреАрдЖрдИ рдЯреВрд▓рдмрд╛рд░ рд╕реБрдиреЗрдВ
рд╕реБрдиреЛ рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрдирдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдореМрдЬреВрджрд╛ рдмрд┐рд▓рд┐рдВрдЧ рдЪрдХреНрд░ рдореЗрдВ рдХрд┐рддрдиреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╢реБрд▓реНрдХ рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рд░реЗрдбрд┐рд╕ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ :)
DevOps
рдорд╢реАрди рдХреА рддреИрдпрд╛рд░реА рдФрд░ рдХреЛрдб рдкрд░рд┐рдирд┐рдпреЛрдЬрди
Ansible рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╛рд╡рдзрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди-рд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдФрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓рд┐рдЦрд╛ред рдореИрдВ рдПрдХ рд╕рд░реНрд╡рд░ рдХреЛ рд╕рднреА рд╕рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рд╕рднреА рд╕реНрдерд╛рдкрд┐рдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣рд╛рдБ рдЗрди Ansible yaml рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ:
рдореИрдВ рдмреЗрд╣рддрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░, рдЕрдм рдмрд╣реБрдд рд╣реЛ рдЧрдпрд╛Ansible рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдХреЛрдб рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ
рддреИрдирд╛рддреАред S рдЖрд╡рд░рдг
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ
macOS рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИ:
./deploy.sh рдЙрддреНрдкрд╛рджрди HEAD рд╡реЗрдм
рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рддреАрди рддрд░реНрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ:
- рдкрд░реНрдпрд╛рд╡рд░рдг : рдЙрддреНрдкрд╛рджрди рдпрд╛ рдордВрдЪрдиред
- рд╢реНрд░реЛрддрд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рднрдВрдбрд╛рд░ : HEAD рдХрд╛ рдЕрд░реНрде рд╣реИ "рдмрд╕ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВред" рдпрджрд┐ рдПрдХ SHA рдкреНрд░рддрд┐рдмрджреНрдз рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреЛрдб рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдЧрд╛ - рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрдм рдореБрдЭреЗ рдЦрд░рд╛рдм рддреИрдирд╛рддреА рдХреЗ рдмрд╛рдж рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
- рд╕рд░реНрд╡рд░ рдХреЗ рдкреНрд░рдХрд╛рд░ : рд╡реЗрдм, рдХрд╛рд░реНрдпрдХрд░реНрддрд╛, рдПрдкреАрдЖрдИ рдпрд╛ рд╕рднреАред рдореБрдЭреЗ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдХрднреА-рдХрднреА рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ, рдлрд┐рд░ рдореБрдЭреЗ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдкреАрдЖрдИ рдпрд╛ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдЫреВрдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╡реЗрдм рдкрд░ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рддреИрдирд╛рддреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ Ansible yaml рдлрд╝рд╛рдЗрд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЖрдпреЛрдЬрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЕрддреНрдпрдВрдд рд╕рд░рд▓ рд╣реИ:
- рдореЗрд░реЗ рдореИрдХрдмреБрдХ рдкреНрд░реЛ рдкрд░ , рдпрджрд┐ рдпрд╣ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рддреИрдирд╛рддреА рд╣реИ, рддреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреИрдХреЗрдЬ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ S3 рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
- рдЯрд╛рд░рдЧреЗрдЯ рд╕рд░реНрд╡рд░ рдкрд░, git рдХреНрд▓реЛрдиреЙрдЬрд╝ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдирд╛рдордХ рдПрдХ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдХреНрд▓реЛрди рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рддреЛ рдирдпрд╛ рдкрд╛рдпрдерди рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
- рд▓рдХреНрд╖реНрдп рд╕рд░реНрд╡рд░реЛрдВ рдкрд░, рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдирд╛рдордХ рдкреВрд░реНрд╡реЛрдХреНрдд рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд╣рдо рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдЗрди рдлреИрдВрд╕реА CI рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдмрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЙрдкрдХрд░рдг рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдЪреЗрддрд╛рд╡рдиреА
рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдЕрд▓рд░реНрдЯ
рдбреЗрдЯрд╛рдбреЙрдЧ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдбреИрд╢рдмреЛрд░реНрдб рдХреБрдЫ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдореАрдЯреНрд░рд┐рдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдЙрдкрджреНрд░рд╡ рд╣реЛрдиреЗ рдкрд░ рдореЗрд░рд╛ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рджрд┐рд╕рдВрдмрд░ 2017 рддрдХ рд╕реБрдиреЛ рдиреЛрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдбреЙрдЧ рдбреИрд╢рдмреЛрд░реНрдбрджрд╛рддрд╛рджреЛрдЧ рдкреЗрдЬрд░рдбреВрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЕрдЧрд░ рдХреБрдЫ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ PagerDuty рдореБрдЭреЗ рдлреЛрди рдФрд░ рдПрд╕рдПрдордПрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рднреЗрдЬреЗрдЧрд╛ред
рдореИрдВ Django рдХреЛрдб рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдФрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП
рд░реЛрд▓рдмрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛
рд╣реВрдВ , рдореБрдЭреЗ рдИрдореЗрд▓ рдФрд░ рд╕реНрд▓реИрдХ рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕реБрд╕реНрдд рдмрд╣реБрдд рд╕рдХреНрд░рд┐рдп рд╣реИред рд╣рд╛рдВ, рдпрд╣ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрдкрдиреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЖрд╡реЗрджрди рд╕реНрддрд░ рдкрд░ рджрд┐рд▓рдЪрд╕реНрдк рдШрдЯрдирд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдбреЗрдЯрд╛реИрдХ рдФрд░ рд░реЛрд▓рдмрд╛рд░ рдХреЛ рд╕реНрд▓реИрдХ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрд▓реИрдХ рдмреИрдХрдПрдВрдб
рд╡реЗрдм рдХреЛрдб рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдВрдЬреАрдХрд░рдг рдпрд╛ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдпреЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдпрд╛ рд╣рдЯрд╛рдиреЗ) рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕реНрд▓реИрдХ рдЗрдирдХрдорд┐рдВрдЧ рд╡реЗрдм рд╣реБрдХ рдХреЛ рднреА рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрдо рдмрд╛рдд рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдореЗрдЬрд╝реЕрди рдпрд╛ рдкреЗрдкрд╛рд▓ рдХреЗ рд╢реБрд░реБрдЖрддреА рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рддрд╛рдмреЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рджреЛрдиреЛрдВ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рдЕрдзрд┐рд╕реВрдЪрдирд╛ рддрдВрддреНрд░ рдерд╛: рдЬрдм рднреА рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рд╕рднреА рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдбрд┐рдВрдЧ" рдзреНрд╡рдирд┐ рд╣реЛрддреА рдереАред
2017 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж рд╕реЗ, рд╕реБрдиреЛ рдиреЛрдЯреНрд╕ рдХреЛ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдЧрдВрднреАрд░ рдбрд╛рдЙрдирдЯрд╛рдЗрдо (5 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ)
рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ ред рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ DevOps рдореЗрдВ рд╣рдореЗрд╢рд╛ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рди рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реВрдВред рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЗрд╕ рдпрд╛ рдХреБрдЫ рдФрд░ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреБрдЫ рднрд╛рд░реА рдЙрдЫрд╛рд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рдУрд╡рд░рд╣реЗрдб рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдбрд┐рдЬрд╝рд╛рдЗрди
рдореИрдВ рд╕реИрди рдлреНрд░рд╛рдВрд╕рд┐рд╕реНрдХреЛ рдореЗрдВ
WeWork рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред рдХреБрдЫ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВ рди рдХреЗрд╡рд▓ рдШрд░ рд╕реЗ рдпрд╛ рдХреБрдЫ рдЖрдХрд╕реНрдорд┐рдХ рдХреИрдлреЗ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВред рдЦреИрд░, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЛ рдорд╣рддреНрд╡ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдкреИрд╕рд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рд╣реЛрдо рдореЗрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИ (рдпрд╛ рдЬреНрдЮрд╛рди / рд░рдЪрдирд╛рддреНрдордХрддрд╛ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреЛрдИ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рджрд┐рди рдореЗрдВ 8 рдШрдВрдЯреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ (рдХреНрд╖рдорд╛ рдХрд░реЗрдВ
996 рд▓реЛрдЧ )ред рдореБрдЭреЗ рд╣рд░ рдорд┐рдирдЯ рдХреА рдЧрд┐рдирддреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдЕрдЪреНрдЫрд╛ рдФрд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдорд╣рдВрдЧрд╛ рдирд┐рдЬреА рдХрд╛рд░реНрдпрд╛рд▓рдп рд╡рд╣ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдПред рд╕рдордп рдХреА рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рдкреИрд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдЗрд╕реЗ рд▓рд╛рднрдкреНрд░рдж рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдкреИрд╕рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реВрдВред
WeWork рдкрд░ рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рд▓рдпрдореИрдВ рдПрдХ рдореИрдХрдмреБрдХ рдкреНрд░реЛ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред
рд╡реИрдЧреНрд░рд╛рдВрдЯ +
рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд▓рдЧрднрдЧ рд╕рдорд╛рди рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдЪрд▓рддрд╛ рд╣реИред рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдХреЗ рд▓рд┐рдП, рд╡реИрдЧрд░реЗрдВрдЯ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд Ansible yaml рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдПрдХ рд╣реА рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдПрдХ
рдЕрдЦрдВрдб рднрдВрдбрд╛рд░ рдХреЗ рджрд░реНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, DevOps рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдлрд╝реНрд░рдВрдЯрдПрдВрдб рдФрд░ рдмреИрдХрдПрдВрдб рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИред рдЗрд╕реЗ GitHub рдкрд░ рдПрдХ рдирд┐рдЬреА рднрдВрдбрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рднреА рд╡рд┐рдХрд╛рд╕ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реИред рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдмреНрд░рдВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдореИрдВ рдХреЛрдб рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рдФрд░
PyCharm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рджреЗрд╡ рд╕рд░реНрд╡рд░ (Django рдзрд╛рд╡рдХ рдФрд░ рд╡реЗрдмрдкреИрдХ рджреЗрд╡ рд╕рд░реНрд╡рд░)
рдЪрд▓рд╛рддрд╛ рд╣реВрдВ ред рд╣рд╛рдВ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдпрд╣ рдЙрдмрд╛рдК рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдпрд╛ рдПрдЯрдо рдпрд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреВрд▓ рдЖрдИрдбреАрдИ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП, Pyharm рдмрд╕ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкреБрд░рд╛рдиреЗ рд╕реНрдХреВрд▓, рдЖрдк рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореЗрд░рд╛ рдкрд╛рдЗрдХреНрд░реЛрдордЕрдиреЗрдХ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣
рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЯрди рд╣реИрдВ рдЬреЛ рдореИрдВ рдПрдХ рдЙрддреНрдкрд╛рдж рдФрд░ рдХрдВрдкрдиреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕реБрдиреЛ рдиреЛрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
рд╢рд╛рдВрдд рд░рд╣реЗрдВ рдФрд░ рдЭрдЯрдХрд╛ рди рджреЗрдВ ...
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рд╕рдордп рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВред рдмрд╣реБрдд рд╕рд╛рд░реЗ рдСрдл-рдж-рд╢реЗрд▓реНрдл рдЙрдкрдХрд░рдг рдФрд░ рд╕реЗрд╡рд╛рдПрдБ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реБрдП, рд╕рдордп рдФрд░ рдкреИрд╕рд╛ рдмрдЪрд╛рддреЗ рд╣реИрдВред рдЕрдм рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдордп рд╣реИ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЯреАрдо (рдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд╕рд╛рде) рд╕рд░рд▓ рдФрд░ рдЙрдмрд╛рдК рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдирд╡рддрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
рд╕рдордп рдХреЗ рд╕рд╛рде, рдХрдВрдкрдирд┐рдпрд╛рдВ рдЫреЛрдЯреА рдФрд░ рдЫреЛрдЯреА рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдЕрдм рдкреВрд░реНрдгрдХрд╛рд▓рд┐рдХ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдЯрди рдХрд┐рд░рд╛рдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╕рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд╕ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдареЗрдХреЗрджрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореВрд▓ рд░реВрдк рд╕реЗ, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рдореБрдЦреНрдп рдмрд╛рдзрд╛ рдЕрддреНрдпрдзрд┐рдХ рд╕реЛрдЪ рд╣реИред рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдХреНрдпрд╛, рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛред рд▓рдбрд╝рдХрд╛, рдХрд┐рд╕реА рдХреЛ рддреБрдореНрд╣рд╛рд░реА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рд╣рд░ рдХреЛрдИ рдЕрдкрдиреЗ-рдЕрдкрдиреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реИред рдХрд┐рд╕реА рдХреЛ рднреА рдЖрдкрдХреА рдФрд░ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдпрд╣ рд╕рд╛рдмрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рдХрд┐ рдЖрдк рдзреНрдпрд╛рди рдХреЗ рдпреЛрдЧреНрдп рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рд▓реЙрдиреНрдЪ рдХреЛ рд▓реЙрдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдИ рднреА рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдмрдбрд╝рд╛ рд╕реЛрдЪреЛ, рдЫреЛрдЯрд╛ рд╢реБрд░реВ рдХрд░реЛ, рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░реЛред рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдмреЛрд░рд┐рдВрдЧ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдХреБрдЫ рд╕рд░рд▓ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрджрд╕реВрд░рдд) рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред
рдЕрдм
рдХрд╛рд░реНрдЧреЛ рдкрдВрде рд╡рд╛рд▓реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЛрдЧ рд╣реИрдВред рд╢реЛрд░ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░реЗрдВред рд╢рд╛рдВрдд рд░рд╣реЗрдВ рдФрд░ рдЭрдЯрдХрд╛ рди рджреЗрдВред