рд╕рдорд╕реНрдпрд╛рдУрдВ
рдмрдбрд╝реА рдФрд░ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕ рдкрд░, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХрдИ рд╡рд┐рддрд░рд┐рдд рдЯреАрдореЗрдВ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдХреА рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдХрдВрдкрдирд┐рдпрд╛рдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд░рддреА рд╣реИрдВред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╣рдорд╛рд░реЗ рдХрдИ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд╛рдЭреЗрджрд╛рд░ рдЕрдкрдиреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рдирд╡реАрдирддрдо / рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ (CI / CD) рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рдЗрд╕реЗ рдмрд╛рдХреА рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдИрдУрдПрд╕, рдПрдВрдбреНрд░реЙрдЗрдб, рдЖрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдХреЗ рдпрджрд┐ рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдпрджрд┐ рд╣рдо рдмреИрдХрдПрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдбреЙрдХ рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдбреЙрдХ-рдЗрдореЗрдЬ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗред рдмрдбрд╝реА рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рд╣рд░ рдмрд╛рд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдВрдзрдХ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдирд┐рд░реНрдгрдп рдЙрдЪрд┐рдд рд╣реИ рдФрд░ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рдирд╣реАрдВ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рд░рд┐рд▓реАрдЬ рдЕрдХреНрд╕рд░ рдЬрд╛рд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг (рджреЗрд╡ / рд╕реНрдЯреЗрдЬ рдкрд░реНрдпрд╛рд╡рд░рдг) рдХреЗ рд▓рд┐рдП, "рдореИрдиреБрдЕрд▓" рдЯреВрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрдЯрд┐рд▓рддрд╛, рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЫрд╛рдкреЛрдВ рдХрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдШрдЯрди, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рд╕рдВрдЧрддрд┐рдпрд╛рдВ рдпрд╛ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рдЗрддрд┐рд╣рд╛рд╕ рдХреА рдХрдореА рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╣рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдерд╛ рдФрд░ рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рдирд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдмреИрдХрдПрдВрдб рдкрд░ 6-8 рдирдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдФрд░ рд╕реАрдЖрдИ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдлреНрд░рдВрдЯрдПрдВрдб рдкрд░ 2-3 рд╕рдВрд╕реНрдХрд░рдг рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рджреИрдирд┐рдХ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдереЗ, рдЬрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдг рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЛ рд▓реЛрдб рдХреЗ рд╕рд╛рде рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рдерд╛ред рдЗрд╕ рдмрд╛рдд рдХреА рдирд┐рд░рдВрддрд░ рдХрдореА рдереА рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдлреНрд░рдВрдЯ / рдмреИрдХрдПрдВрдб рдкрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд┐рд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡
рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди CI / CD рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЕрдХреНрд╕рд░ рдЧреНрд░рд╛рд╣рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдЕрдХреНрд╕рд░ рдЬреЗрди / рд╕реАрдбреА рд╕рд┐рд╕реНрдЯрдо рдЬреИрд╕реЗ рдХрд┐ рдЬреЗрдирдХрд┐рдВрд╕, рдЯреАрдорд╕рд┐рдЯреА, рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ, рд╕рд░реНрдХрд▓ рд╕реАрдЖрдИ, рдЧрд┐рдЯрд▓реИрдм рд╕реАрдЖрдИ, рдПрдЯрд▓рд╕рд┐рдпрди рдмрдореНрдмреВ рдЖрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдХрднреА-рдХрднреА рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рдирд┐рд╣рд┐рдд рд╣реИред
рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг / рд╕рддрдд рд╡рд┐рддрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреАрдПрдлрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг 2018 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ рдкреВрд░реНрдг рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдЪрдХреНрд░, рдЕрд░реНрдерд╛рддреН рдмрдирд╛рдиреЗ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
- рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг (рдореБрджреНрджреЗ, рдХреАрдбрд╝реЗ, рдХрд╛рд░реНрдп);
- рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рднрдВрдбрд╛рд░рдг;
- рд╡рд┐рднрд┐рдиреНрди рдУрдПрд╕ (рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕, рдореИрдХрдУрдПрд╕) рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб-рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рддреИрдирд╛рддреА;
- "рдореИрдиреБрдЕрд▓" рдореЛрдб рдФрд░ CI рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛;
- "рдореИрдиреБрдЕрд▓" рдореЛрдб рдФрд░ рд╕реАрдбреА рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рддреИрдирд╛рддреА;
- рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ;
- рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрд┐рддрд╛рдП рдЧрдП рд╕рдордп рдФрд░ рдХрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдЧрдарди рдЬреЛ рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдЯреАрдПрдлрдПрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдбрдмреНрд▓реНрдпреВрдЖрдИрдЯреА рдореЗрдВ рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ (рдЗрд╕ рд░реВрдк рдореЗрдВ, рдЯреАрдПрдлрдПрд╕ рдиреЗ рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рд░реЗрдбрдорд╛рдЗрди рдХреА рдЬрдЧрд╣ рд▓реА рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА, рд░рд┐рдкреЛрд░реНрдЯ рдЖрджрд┐ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд╕рд░рд▓ рдХрд░ рджрд┐рдпрд╛)ред )ред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреА рдЗрдЪреНрдЫрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЯреАрдПрдлрдПрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрддреЗ рд╣реБрдП, рдЯреАрдПрдлрдПрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╡рд┐рднрд┐рдиреНрди рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдХреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг / рд░рд┐рд▓реАрдЬрд╝ рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдХреЗ TFS рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ microservice рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЬрдирд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕рдорд╛рдзрд╛рди: TFS рдФрд░ рддреГрддреАрдп-рдкрдХреНрд╖ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлрд╝реНрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ:
- рдЖрд░реНрдХреЗрд╕реНрдЯреНрд░рд╛ - рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЕрдиреНрдп рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдЯреВрд▓реНрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП docker swarm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдореНрдкреЛрд╕рд┐рдЯ рдЙрдкрдпреЛрдЧрд┐рддрд╛, рдЬреЛ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
- рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯреНрд╕ - рд▓рд┐рдирдХреНрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╡реА.рдПрдо.
- рд╕реНрд░реЛрдд рднрдВрдбрд╛рд░ - рдЯреАрдПрдлрдПрд╕-рдЖрдзрд╛рд░рд┐рдд рдЧрд┐рдЯред
- рдЫрд╡рд┐ рднрдВрдбрд╛рд░рдг - VM рдкрд░ docker рд░рдЬрд┐рд╕реНрдЯреНрд░реАред
рдмрд┐рд▓реНрдбреНрд╕ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╡рд╛рд▓ рдкрд░
- рдореМрдЬреВрджрд╛ рдирд╛рдордХрд░рдг рдорд╛рдирдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ ред
- рд╣рдо рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рдирд╛рдо рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ рдЖрдк рд╕рд╣реА рдирд╛рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ (рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреЛрдб рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдлрд┐рд░ рд╕реЗ рд╕реАрдЖрдИ рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рд╕реЗ рдмрд╣реБрдд рдХрдо рд╕рдВрдмрдВрдз рд╣реИ)ред
- "рдбреАрдмрдЧрд┐рдВрдЧ" рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП CI рдореЛрдб рдореЗрдВ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
- рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд TFS рдПрдХреНрд╕рдЯреЗрдВрд╢рди
- рд╡рд░реНрддрдорд╛рди рддрд┐рдерд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирдВрдмрд░рд┐рдВрдЧ рдФрд░ рдЙрд╕ рджрд┐рди рдирдВрдмрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг;
- рдмрд┐рд▓реНрдб рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдорд┐рдЯрдореЗрдВрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ред
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╛рдзрд╛рди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд╕реЗрд╡рд╛ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдХрдИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдирд┐рд░реНрдгрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
1. TFS2018 рдореЗрдВ, SibEDGE Semver рдирд╛рдордХ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЖрдпрд╛рдд рдХрд░реЗрдВ
рдЪрд┐рддреНрд░рд╛ 1 - TFS 2018 рдореЗрдВ рднрдВрдбрд╛рд░ рдореЗрдВ рд╕рд┐рдмрдбреЗрдЬ рд╕реЗрд╡рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ2. рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ (
рд▓рд┐рдВрдХ ) рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓реА рдиреЛрдб рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВред
FROM node:7 WORKDIR /usr/src/app COPY package.json app.js LICENSE /usr/src/app/ COPY lib /usr/src/app/lib/ LABEL license MIT COPY tests tests ENV NODE_ENV dev RUN npm config set strict-ssl false RUN npm update && \ npm install -g mocha CMD ["mocha", "tests/test.js", "--reporter", "spec"]
рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1 - рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░рдлрд╛рдЗрд▓
3. рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдкрд░ (рдбреЙрдХрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗ рд╕рд╛рде), рдЬрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдПрдХ рдЭреБрдВрдб рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рдореЗрдВ рдПрдХ рд╕рд░реНрд╡рд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред
$ docker swarm init
4. рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ (
рд▓рд┐рдВрдХ ) рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрд╕ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ yml-file рдмрдирд╛рдПрдБред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
vm-docker-registry.development.com:5000
рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рднрдВрдбрд╛рд░ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдерд╛ред рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд╕реНрдЯреИрдВрдб рдХреЗ рд▓рд┐рдП, /etc/docker/certs.d/ <repository рдирд╛рдо> /ca.crt рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдЯреИрдВрдб рдкрд░ ssl рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
version: '3.6' services: #--- # Portainer for manage Docker #--- portainer: image: portainer/portainer:1.15.3 command: --templates http://templates/templates.json -d /data -H unix:///var/run/docker.sock networks: - semver-network ports: - 9000:9000 volumes: - /var/run/docker.sock:/var/run/docker.sock #--- #----Service Calculator Test# #--- semver-calc: image: vm-docker-registry.development.com:5000/calculator:latest networks: - semver-network #--- #----Pminder - Nginx# #--- nginx: image: nginx:1.9.6 depends_on: - mysql ports: - "8888:80" - "6443:443" networks: - semver-network # #----------------------------- # START NoSQL - Redis. #--- redis: image: redis:4.0 networks: - semver-network ports: - "8379:6379" # # END NoSQL - Redis. #--- #----Pminder - DB# #--- mysql: image: mysql:5.7 ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: 'ODdsX0xcN5A9a6q' MYSQL_DATABASE: 'semver' MYSQL_USER: 'user' MYSQL_PASSWORD: 'uXcgTQS8XUm1RzR' networks: - semver-network #--- #----PhpMyAdmin # #--- phpmyadmin: image: phpmyadmin/phpmyadmin depends_on: - mysql environment: PMA_HOST: 'mysql' PMA_USER: 'user' PMA_PASSWORD: 'uXcgTQS8XUm1RzR' ports: - "8500:80" - "8600:9000" networks: - semver-network #--- networks: semver-network:
рд╕реНрдХреНрд░рд┐рдкреНрдЯ 2 рд╕реЗрдореНрд╡рд░.рдорд╛рдЗрд▓ рдлрд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рд╣реИ, рдЬреЛ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓ рд╣реИред
5. TFS2018 (рдмрд┐рд▓реНрдб рдбреЗрдлрд┐рдирд┐рд╢рди) рдореЗрдВ рдПрдХ рдмрд┐рд▓реНрдб рд╡рд┐рд╡рд░рдг рдмрдирд╛рдПрдВред
6. рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкрд╣рд▓реА рдХреНрд░рд┐рдпрд╛ рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдЗрдореЗрдЬ рдмрдирд╛рдирд╛ рд╣реИ:
рдЪрд┐рддреНрд░ 2 - TFS 2018 рдореЗрдВ рд╣рдорд╛рд░реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд╡рд┐ рдХрд╛ рдирд┐рд░реНрдорд╛рдг7. рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдорд╢реАрди рдкрд░ рдирд┐рд░реНрдорд┐рдд рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдЗрдореЗрдЬ рднреЗрдЬреЗрдВ:
рдЪрд┐рддреНрд░ 3 - TFS 2018 рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣рдорд╛рд░реА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдЯрд░-рдЗрдореЗрдЬ рд╕реЗрд╡ рдХрд░рдирд╛8. рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлрд╝реНрдЯ рд╡рд┐рд╡рд░рдг рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдкрд░ рдкреВрд░реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдЫрд╡рд┐ рдирд╛рдо рдХреЛ рдПрдХ рдирдП рдореЗрдВ рдмрджрд▓реЗрдВ:
рдЪрд┐рддреНрд░ 4 - TFS 2018 рдореЗрдВ рд╣рдорд╛рд░реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЫрд╡рд┐ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛9. рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдкрд░, рдЖрдВрддрд░рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдЫрд╡рд┐ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдбреЙрдХрдЯрд░ рдЭреБрдВрдб рдореЗрдВ рд╕реЗрд╡рд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:
рдЪрд┐рддреНрд░ 5 - рдЯреАрдПрдлрдПрд╕ 2018 рдореЗрдВ рдЫрд╡рд┐ рд╕реЗ рд╣рдорд╛рд░реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдХреЛ рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдирд╛рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬрдм рд╣рдо TFS рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ yml рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбреЙрдХрдЯрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрджрд▓реЗ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд░рд┐рд▓реАрдЬрд╝ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИред
10. рд╣рдо рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдореЗрдВ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд╕реЗрд╡рд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
$ docker service ls
рдЪрд┐рддреНрд░ 6 - рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд╕реЗрд╡рд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдкрд░ рдЗрд╕рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдбреЙрдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЗрдореЗрдЬ рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ (рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд░ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓ рдЧрдпрд╛ рд╣реИ)ред рдПрдХ рдЕрд▓рдЧ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ (yml рд╡рд┐рд╡рд░рдг рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ, рдХрд┐рд╕реА рднреА рд╕рдордп рдЖрдк рдПрдХ рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХреНрдпреВрдП рдбрд┐рд╡реАрдЬрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░реАрдХреНрд╖рдг (рдкреНрд░рддрд┐рдЧрдорди, рд▓реЛрдб рдЖрджрд┐) рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрд░реНрдлрд╝ рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдФрд░ рдРрд╕реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдЕрдиреНрдп рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдВрддрд┐рдо рдирд┐рд░реНрдгрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ рдХрд┐ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд░рд┐рд▓реАрдЬ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЦрдбрд╝реЗ рд╣реЛ рдЬрд╛рдУред
рд╕рд╛рд░рд╛рдВрд╢ - рдЖрдкрдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ рдХреНрдпрд╛ рдорд┐рд▓рд╛
рдорд╛рдЗрдХреНрд░реЛрд╕реИрд╕рд╡рд░реНрдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдгрдХрд░рдг рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЕрд░рд╛рдЬрдХрддрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХрдо рд╣реЛ рдЧрдИ рд╣реИ;
- рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрдХ рдирдП рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рддреИрдирд╛рддреА рдХреА рдЧрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ;
- рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИ рдФрд░ рдЙрдирдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕реНрддрд░ рдХрдо рд╣реБрдЖ рд╣реИ;
- рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреА рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐;
- рд╡рд┐рднрд╛рдЧреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИ;
- DevOps рдХреЗ рдХрд╛рдо рдореЗрдВ рдирдИ рджрд┐рд╢рд╛рдПрдБ рд╣реИрдВред
PS рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рдХрд┐рд░рд┐рд▓ рдмреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред