рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдЖрдЬ рд╣рдо рдЕрдкрдиреЗ рдПрдХ DevOps рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рд╣рдордиреЗ рдПрдХ microservice рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ .Net рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧреА, рдФрд░ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реЛрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рджреЛрдиреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдорд╛рдкрдиреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдореЗрдВ рдПрдХ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдпрджрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдПрдХ рдмреНрд▓реЙрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмрд╛рдХреА рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдорд╛рдзрд╛рди рдХреА рддреИрдирд╛рддреА рд╕рд╣рд┐рдд рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛:
- ред рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлрд╝реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП .рдиреЗрдЯ рдХреЛрд░ред рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдиреЗ рд╕рдВрд╕реНрдХрд░рдг 2.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛,
- рд╕реВрдХреНрд╖реНрдордЬреАрд╡реЛрдВ рдХреЗ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕,
- рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░,
- рдПрдХреАрдХрд░рдг рдмрд╕ рдЦрд░рдЧреЛрд╢ рдПрдордХреНрдпреВ рдФрд░ рдорд╛рд╕ рдЯреНрд░рд╛рдВрдЬрд┐рдЯ,
- рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрд▓рд┐рдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рдФрд░ рдХрд┐рдмрд╛рдирд╛,
- CI / CD рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TFSред
рдпрд╣ рд▓реЗрдЦ рд╣рдорд╛рд░реЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд┐рд╡рд░рдг рд╕рд╛рдЭрд╛ рдХрд░реЗрдЧрд╛ред

рдпрд╣ .NET рдореАрдЯрд┐рдВрдЧ рдореЗрдВ рд╣рдорд╛рд░реЗ рднрд╛рд╖рдг рдХрд╛ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рдпрд╣рд╛рдВ рднрд╛рд╖рдг
рдХреЗ рд╡реАрдбрд┐рдпреЛ рдХрд╛ рд▓рд┐рдВрдХ рд╣реИ ред
рд╣рдорд╛рд░реЗ рд╡реНрдпрд╛рдкрд╛рд░ рдЪреБрдиреМрддреА
рд╣рдорд╛рд░рд╛ рдЧреНрд░рд╛рд╣рдХ рдПрдХ рд╕рдВрдШреАрдп рдХрдВрдкрдиреА рд╣реИ рдЬрд╣рд╛рдВ рд╡реНрдпрд╛рдкрд╛рд░реА рд╣реИрдВ - рдпреЗ рд╡реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рджреБрдХрд╛рдиреЛрдВ рдореЗрдВ рд╕рд╛рдорд╛рди рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рдФрд░ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╣реИрдВ - рдпреЗ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдиреЗрддрд╛ рд╣реИрдВред
рдХрдВрдкрдиреА рдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдХрд╛рдо рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреА рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рд╕рдорд╛рдзрд╛рди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
1. рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдПрдХ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдПрдХ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдорд╛рд▓ рдХреЗ рдХрд╛рдо рдореЗрдВ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
2. рдЗрд╕рдХреЗ рдмрд╛рдж, рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдЙрд╕ рдХрд░реНрдордЪрд╛рд░реА рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдХрд╛рдо рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдПрдЧреАред рдкреНрд░рд╢реНрди рджрд┐рдирд╛рдВрдХ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред
3. рдЗрд╕рдХреЗ рдмрд╛рдж, рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЗ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред
4. рдлрд┐рд░ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдХреЛ рднрд░рдХрд░ рдкреЛрд░реНрдЯрд▓ рдкрд░ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
5. рдкреЛрд░реНрдЯрд▓ рдкрд░рд┐рдгрд╛рдо рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рдорд╛рдЗрдХреНрд░реЛрд╕реЛрд░реНрд╕реЗрдЬ рд╣рдореЗрдВ рддреАрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛:
1. рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдкрдиреА рдореЗрдВ рдХрдИ рд╕рдорд╛рди рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВред
2. рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдорд╛рдзрд╛рди рджреЛрд╖рдкреВрд░реНрдг рд╣реЛред рдпрджрд┐ рдХреЛрдИ рднрд╛рдЧ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рд╕рдорд╛рдзрд╛рди рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рдЕрдкрдиреЗ рдЖрдк рд╣реА рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рдФрд░ рдПрдХ рднрд╛рдЧ рдХреА рд╡рд┐рдлрд▓рддрд╛ рд╕рдВрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧреАред
3. рдЬрд┐рд╕ рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рд╣рдо рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХреА рдХрдИ рд╢рд╛рдЦрд╛рдПрдБ рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рд╕рдорд╛рдзрд╛рди рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓рдЧрд╛рддрд╛рд░ рдмрдврд╝ рд░рд╣реА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рди рдХрд░реЗред
рдирддреАрдЬрддрди, рд╣рдордиреЗ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрдИ рдЧреИрд░-рддреБрдЪреНрдЫ рдирд┐рд░реНрдгрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред
рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рди рддрдХрдиреАрдХреЛрдВ рдиреЗ рдорджрдж рдХреА:
тАв рдбреЙрдХрд░ рд╕рдорд╛рдзрд╛рди рд╡рд┐рддрд░рдг рдХреЗ рд╡рд┐рддрд░рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд┐рддрд░рдг microservice рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ
тАв рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдХрдИ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдХреБрдмреЗрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
тАв рд╣рдо .net Core рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
тАв рдЧреНрд░рд╛рд╣рдХ рдкрд░ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рдФрд░ рд╡рд┐рддрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣рд╛рдБ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рд╣рдорд╛рд░рд╛ рдкреВрд░рд╛ рд╕реЗрдЯ рд╣реИ:
тАвред рдиреЗрдЯ рдХреЛрд░ рд╣рдо microservices рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ,
тАв рдорд╛рдЗрдХреНрд░реЛрд╕реНтАНрдХреЛрд░реНрд╕ рдХреЛ рдбреЙрдХрд░ рдЗрдореЗрдЬ рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ,
тАв рдЯреАрдПрдлрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рдФрд░ рдирд┐рд░рдВрддрд░ рд╡рд┐рддрд░рдг рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
тАв рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдХреЛ рдХреЛрдгреАрдп рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ,
тАв рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд▓рд╛рд╕реНрдЯрд┐рд╕рд░реНрдЪ рдФрд░ рдХрд┐рдмрд╛рдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ,
тАв RabbitMQ рдФрд░ MassTransit рдХреЛ рдПрдХреАрдХрд░рдг рдмрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓рд┐рдирдХреНрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП .NET рдХреЛрд░
рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд▓рд╛рд╕рд┐рдХ .Net рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреНрдпрд╛ рд╣реИред рдордВрдЪ рдХрд╛ рдореБрдЦреНрдп рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдирд╣реАрдВ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рд╣рдо Docker рдореЗрдВ Linux рдХреЗ рд▓рд┐рдП .Net рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЙрдХрд░ рдореЗрдВ C # рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Microsoft рдиреЗ .Net рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдмрдирд╛рдпрд╛ .Net рдХреЛрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдпрд╛ред рдФрд░ рдЙрдиреНрд╣реАрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Microsoft рдиреЗ .Net рдорд╛рдирдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рдпрд╛ред .Net Standart рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ .Net рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ .Net рдХреЛрд░ рджреЛрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ - рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд░реНрд╡рд┐рд╕ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП
рдХреБрдмреЗрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдореБрдЦреНрдп рд▓рд╛рдн рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
- рдЖрд╕рд╛рдиреА рд╕реЗ microservices рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ,
- рдкрд░реНрдпрд╛рд╡рд░рдг рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ (рджреЗрд╡, рдХреНрдпреВрдП, рд╕реНрдЯреЗрдЬ),
- рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХреНрдпреВрд▓ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдкрд░ рд╕рдВрддреБрд▓рди рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╕рдорд╛рдзрд╛рди рд╡рд╛рд╕реНрддреБрдХрд▓рд╛
рдХрд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдордиреЗ рдЦреБрдж рд╕реЗ рдкреВрдЫрд╛ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдореЗрдВ рдХреИрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╡рд┐рднрд╛рдЬрди рдПрдХ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреЗрд╡рд▓ рдПрдХ рд╕реНрддрд░ рдкрд░ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХред рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдПрдХ рд╕реЗрд╡рд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдирд╛ рд╣реИ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЕрдиреНрдп рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдирд╛ред рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдиреЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдХреНрд╖реЗрддреНрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред
рдирддреАрдЬрддрди, рд╣рдордиреЗ рдРрд╕реА рд╕реЗрд╡рд╛рдПрдВ рджрд┐рдЦрд╛рдИ рд╣реИрдВ рдЬреЛ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдЗрдХреНрд░реЛ рд╕рд░реНрд╡рд┐рд╕, рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдЗрдХреНрд░реЛ рд╕рд░реНрд╡рд┐рд╕ рдФрд░ рдЕрдиреНрдп рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ред

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

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

рдиреЛрдб 1, рдиреЛрдб 2 рдФрд░ рдиреЛрдб 3 рдПрдХ рд╣реА рдорд╛рдЗрдХреНрд░реЛрд╕реИрд╕ рд╕рд░реНрд╡рд┐рд╕ рдХреА рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рд╣реИрдВред рдпрджрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЛрдб рдХреЛ рдЕрдиреНрдп рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░ рджреЗрдЧрд╛ред
рднреМрддрд┐рдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛
рдпрд╣рд╛рдВ рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рдЖрдпреЛрдЬрди рдХрд┐рдпрд╛ рд╣реИ:
тАв рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдХрд╛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реЛрддрд╛ рд╣реИ (рдпрджрд┐ рд╡рд╣, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ), рдЕрдиреНрдп рд╕реЗрд╡рд╛рдПрдВ рджреВрд╕рд░реЗ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддреА рд╣реИрдВред
тАв рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдмрд▓реНрд╕ рдХреЗрд╡рд▓ RabbitMQ + рдорд╛рд╕ рдЯреНрд░рд╛рдВрдЬрд┐рдЯ рдмрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╕рд╛рде рд╣реА рд╕рд╛рде HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред
тАв рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХреА рдЕрдкрдиреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИред
тАв рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рдо рд╕реЗрд░реАрд▓реЙрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓рд╛рдЯрд┐рд╕рд┐рд╕рд░реНрдЪ рдФрд░ рдХрд┐рдмрд╛рдирд╛ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

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

рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╡рд╛рддрд╛рд╡рд░рдг рднреА рд╣реИрдВ - рдкреВрд░реНрд╡-рдЙрддреНрдкрд╛рджрди рдФрд░ рдЙрддреНрдкрд╛рджрдиред рдЙрддреНрдкрд╛рджрди рдХреЗ рд╕рдордп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреВрд░реНрд╡-рдмрд┐рдХреНрд░реА рдФрд░ рдЙрддреНрдкрд╛рдж рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рд╣реИрдВред рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЕрдкрдиреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ рдПрдХ рдИрдПрд▓рдХреЗ рд╕рд░реНрд╡рд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ 10 рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрд╕ рдХреЗ рд╕рд╛рде 5 рд╡рд╛рддрд╛рд╡рд░рдг рдХреИрд╕реЗ рддреИрдирд╛рдд рдХрд░реЗрдВ?
рдФрд╕рддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ 10 рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ рдФрд░ рддреАрди рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИрдВ: рдХреНрдпреВрдП, рдбреАрдИрд╡реА, рд╕реНрдЯреЗрдЬ, рдЬрд┐рд╕ рдкрд░ рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рд▓рдЧрднрдЧ 30 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рддреИрдирд╛рдд рд╣реИрдВред рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ рд╣реИ! рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ 2 рдФрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рд╣рдореЗрдВ 50 рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдорд┐рд▓рддреЗ рд╣реИрдВред

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдХрдИ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЗрд╕рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рддреЗ рд╣реИрдВред
рдЖрджреЗрд╢ рдореЗрдВ рдПрдХ microservice рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЪрд╛рд╣рд┐рдП
тАв рд╡рд┐рд╕реНрддрд╛рд░ рдЧреБрдкреНрдд,
тАв рдирд┐рдпреЛрдЬрди рдХреА рддреИрдирд╛рддреА,
тАв рд╕реЗрд╡рд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред
рдиреАрдЪреЗ рдЧреБрдкреНрдд рд░рд╣рд╕реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
рддреИрдирд╛рддреА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд░ рдХреЗ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛ред рдпрд╣рд╛рдВ рд╡рд╣ рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рддреИрдирд╛рдд рд╣реИ:
kubectl apply -f .\(yaml deployment-) --namespace=DEV
apiVersion: apps/v1beta1 kind: Deployment metadata: name: imtob-etr-it-dictionary-api spec: replicas: 1 template: metadata: labels: name: imtob-etr-it-dictionary-api spec: containers: - name: imtob-etr-it-dictionary-api image: nexus3.company.ru:18085/etr-it-dictionary-api:18289 resources: requests: memory: "256Mi" limits: memory: "512Mi" volumeMounts: - name: secrets mountPath: /app/secrets readOnly: true volumes: - name: secrets secret: secretName: secret-appsettings-dictionary
рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ рдХрд┐ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (imtob-etr-it-dictionary-api), рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЕрдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред рдЧреБрдкреНрдд рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВрдЧреЗред
рддреИрдирд╛рддреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╣рдореЗрдВ рд╕реЗрд╡рд╛ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЬрдм рдмрд╛рд╣рд░ рд╕реЗ рдорд╛рдЗрдХреНрд░реЛ рд╕реЗрд╡рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рд╕реЗрд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред
kubectl apply -f .\imtob-etr-it-dictionary-api.yml --namespace=DEV
apiVersion: v1 kind: Service metadata: name: imtob-etr-it-dictionary-api-services spec: ports: - name: http port: 80 targetPort: 80 protocol: TCP selector: name: imtob-etr-it-dictionary-api
рдЖрдорддреМрд░ рдкрд░ рд╕реЗрд╡рд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рд╣рдо рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо рджреЗрдЦрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдХреИрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреЛрд░реНрдЯ рдирдВрдмрд░ред
рдирддреАрдЬрддрди, рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИ
тАв рд╕рднреА рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рд▓рд┐рдП рд░рд╣рд╕реНрдпреЛрдВ рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ,
тАв рд╕рднреА microservices рдХреА рддреИрдирд╛рддреА рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ,
тАв рд╕рднреА microservices рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯред
рд╣рдо рдЗрди рд╕рднреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред
рд╕рдорд╛рдзрд╛рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдорд┐рд▓рд╛:
тАв рд░рд╣рд╕реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ - рдпреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИрдВ,
тАв рд╕рднреА рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рд▓рд┐рдП рддреИрдирд╛рддреА рд╡рд╛рд▓рд╛ рдлрд╝реЛрд▓реНрдбрд░,
рдХреБрдЫ microservices рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде тАв рдлрд╝реЛрд▓реНрдбрд░,
рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ - рджрд╕ рдЯреАрдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ microserviceред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдХреЙрдиреНрдлреНрд▓реБрдПрдВрд╕ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдкреЗрдЬ рдмрдирд╛рдпрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдПрдХ рдирдП рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ (рдЧреБрдкреНрдд рдФрд░ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╕реЗрдЯ рд╣реИрдВ):
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд▓рд┐рдкрд┐kubectl рд▓рд╛рдЧреВ рдХрд░реЗрдВ -fред \ imtob-etr-it-image-api.yml - namespp = v
kubectl apply -fред \ imtob-etr-it-mobile-api.yml - namespp = v
kubectl рд▓рд╛рдЧреВ рдХрд░реЗрдВ -fред \ imtob-etr-it-planning-api.yml --namespp =V
kubectl apply -fред \ imtob-etr-it-result-api.yml --namespp =V
kubectl рд▓рд╛рдЧреВ рдХрд░реЗрдВ -fред \ imtob-etr-it-web.yml --namespace = DEV
kubectl apply -fред \ imtob-etr-it-report-api.yml --namespp =V
kubectl apply -fред \ imtob-etr-it-template-constructor-api.yml --namespace = DEV
kubectl apply -fред \ imtob-etr-it-dictionary-api.yml --namespp =V
kubectl apply -fред \ imtob-etr-it-рдПрдХреАрдХрд░рдг-api.yml --namespp =V
kubectl apply -fред \ imtob-etr-it-identity-api.yml --namespp =V
рд╕реАрдЖрдИ / рд╕реАрдбреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИ, рд╕рд╛рде рд╣реА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ microservice рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рд▓реНрдб рдбреЗрдлрд┐рдирд┐рд╢рди рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдбреЗрдлрд┐рдирд┐рд╢рди рднреА рд╣реИред рд╣рдордиреЗ рдЙрдЪрд┐рдд рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдпрд╛ рдЙрдкрдпреБрдХреНрдд рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХрдорд┐рдЯ рдХрд░рддреЗ рд╕рдордп рдмрд┐рд▓реНрдб рдбреЗрдлрд╝рд┐рдирд┐рд╢рди рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ред рдпрджрд┐ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдорд╛рдЗрдХреНрд░реЛрд╕рд┐рд╕реНрдЯрд░реНрд╕ рддреИрдирд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдРрд╕реЗ рдмрд┐рд▓реНрдб рд╕рдВрдЧрдарди рдХреЗ рдХреНрдпрд╛ рдлрд╛рдпрджреЗ рд╣реИрдВ?
1. рд╕рдорд╛рдзрд╛рди рдПрдХ рдЧрд┐рдЯ рднрдВрдбрд╛рд░ рдореЗрдВ рд╣реИ,
2. рдХрдИ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрд╕ рдореЗрдВ рдмрджрд▓рддреЗ рд╕рдордп, рдЕрд╕реЗрдВрдмрд▓реА рдлреНрд░реА рдЕрд╕реЗрдВрдмрд▓реА рдПрдЬреЗрдВрдЯреНрд╕ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ,
3. рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рд▓реНрдб рдкрд░рд┐рднрд╛рд╖рд╛ рдЫрд╡рд┐ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЗрд╕реЗ рдиреЗрдХреНрд╕рд╕ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдзрдХреЗрд▓рдиреЗ рд╕реЗ рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдкрд░рд┐рднрд╛рд╖рд╛ рдмрдирд╛рдПрдБ
рд╡реАрдПрд╕рдЯреАрдПрд╕ рдПрдЬреЗрдВрдЯ рдХреЛ рдХреИрд╕реЗ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рд╣рдордиреЗ рдкрд╣рд▓реЗ
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд
рдХрд┐рдпрд╛ рдерд╛ ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдмрд┐рд▓реНрдб рдбреЗрдлрд┐рдирд┐рд╢рди рдЖрддрд╛ рд╣реИред TFS VSTS рдХрдорд╛рдВрдб рдореЗрдВ, рдПрдЬреЗрдВрдЯ рдиреЗ Dockerfile рдмрд┐рд▓реНрдб рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рдХреА рдЫрд╡рд┐ рдорд┐рд▓рддреА рд╣реИред рдпрд╣ рдЫрд╡рд┐ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕рд╣реЗрдЬреА рдЬрд╛рддреА рд╣реИ рдЬрд╣рд╛рдВ VSTS рдПрдЬреЗрдВрдЯ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
рдмрд┐рд▓реНрдб рдХреЗ рдмрд╛рдж, рдкреБрд╢ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЙрд╕ рдЫрд╡рд┐ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИ рдЬреЛ рд╣рдордиреЗ рдиреЗрдХреНрд╕рд╕ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЗ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдерд╛ред рдЕрдм рдЗрд╕реЗ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдиреЗрдХреНрд╕рд╕ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдПрдХ рддрд░рд╣ рдХрд╛ рдиреВрдЧреЗрдЯ рд╣реИ, рди рдХреЗрд╡рд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдбреЛрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдПред
рдЫрд╡рд┐ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдФрд░ рдмрд╛рд╣рд░ рд╕реЗ рд╕реБрд▓рдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЗрд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд░рд┐рд▓реАрдЬрд╝ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИред рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рд╣рдо рд╕реЗрдЯ рдЗрдореЗрдЬ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
kubectl set image deployment/imtob-etr-it-dictionary-api imtob-etr-it-dictionary-api=nexus3.company.ru:18085/etr-it-dictionary-api:$(Build.BuildId)
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╡рд╣ рд╡рд╛рдВрдЫрд┐рдд microservice рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рдПрдХ рдирдпрд╛ рдХрдВрдЯреЗрдирд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛ред рдирддреАрдЬрддрди, рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЧрдИ рд╣реИред
рдЪрд▓рд┐рдП рдЕрдм Dockerfile рдХреЗ рд╕рд╛рде рдФрд░ рдмрд┐рдирд╛ рдмрд┐рд▓реНрдб рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред

Dockerfile рдХреЗ рдмрд┐рдирд╛, рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЪрд░рдг рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА .net рдмрд╛рд░реАрдХрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВред рджрд╛рдИрдВ рдУрд░ рд╣рдо рдПрдХ рдбреЙрдХрд░ рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рджреЗрдЦрддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдЫрд╡рд┐ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбреЛрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рдЗрд╕ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдбреАрдмрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреБрд▓: рд╣рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдФрд░ рдкрд╛рд░рджрд░реНрд╢реА CI / CD рдорд┐рд▓рд╛ рд╣реИ
1. рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛ рдкреГрдердХреНрдХрд░рдгред рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдХрдВрдзреЛрдВ рдкрд░ рд╕реНрдерд┐рдд рд╣реИред
2. рдЬрдм CI / CD рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдХрд╛рдо рдХреЗрд╡рд▓ Dockerfile рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
3. рд╣рдо рдХреЗрд╡рд▓ рдмрджрд▓реЗ рд╣реБрдП рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ K8S рдореЗрдВ RabbitMQ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рд╣рдордиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ
рдЕрд▓рдЧ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ред
рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рд╕реНрдерд╛рдкрдирд╛
рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рд╣рдо microservices рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рд░реВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ Appsettings.json рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдРрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ рдЬреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред
рдЙрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ appsettings.secret.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рд╣рд╕реНрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдордиреЗ
рдХреБрдмрд░рдиреЗрдЯ рдкрд░ ASP.NET рдХреЛрд░ рдРрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд┐рдпрд╛ред
var configuration = new ConfigurationBuilder() .AddJsonFile($"appsettings.json", true) .AddJsonFile("secrets/appsettings.secrets.json", optional: true) .Build();
Appsettings.secrets.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдЦреЛрдЬ рдЕрдиреБрдХреНрд░рдорд┐рдд рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред
{ "Serilog": { "WriteTo": [ { "Name": "Elasticsearch", "Args": { "nodeUris": "http://192.168.150.114:9200", "indexFormat": "dev.etr.it.ifield.api.dictionary-{0:yyyy.MM.dd}", "templateName": "dev.etr.it.ifield.api.dictionary", "typeName": "dev.etr.it.ifield.api.dictionary.event" } } ] }, "ConnectionStrings": { "DictionaryDbContext": "Server=192.168.154.162;Database=DEV.ETR.IT.iField.Dictionary;User Id=it_user;Password=PASSWORD;" } }
Kubernetes рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдХреБрдмреЗрд░рдиреЗрдЯрд┐рд╕ рддреИрдирд╛рддреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреИрдирд╛рддреА рдХрд╛ рд╡рд░реНрдгрди рд╣реИ рдХрд┐ рдХрд┐рд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реА рдЧреБрдкреНрдд рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдХрд┐рд╕ рдЧреБрдкреНрдд рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдмрджреНрдз рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
apiVersion: apps/v1beta1 kind: Deployment metadata: name: imtob-etr-it-dictionary-api spec: replicas: 1 template: metadata: labels: name: imtob-etr-it-dictionary-api spec: containers: - name: imtob-etr-it-dictionary-api image: nexus3.company.ru:18085/etr-it-dictionary-api:18289 resources: requests: memory: "256Mi" limits: memory: "512Mi" volumeMounts: - name: secrets mountPath: /app/secrets readOnly: true volumes: - name: secrets secret: secretName: secret-appsettings-dictionary
рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдХреБрдмреЗрдЯреЗрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд░рд╣рд╕реНрдп рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдпрд╣рд╛рдВ рд░рд╣рд╕реНрдп рдХрд╛ рдирд╛рдо рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рджреЗрдЦрддреЗ рд╣реИрдВред рд╣рдо рдЙрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдирд╛рдо рдХрд╛ рднреА рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рд░рд╣рд╕реНрдп рдмрдирд╛рддреЗ рд╣реИрдВред
kubectl create secret generic secret-appsettings-dictionary
--from-file=./Dictionary/appsettings.secrets.json --namespace=DEMO
рдирд┐рд╖реНрдХрд░реНрд╖
рдЪреБрдиреЗ рд╣реБрдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ
1. рдЙрдЪреНрдЪ рдкреНрд░рд╡реЗрд╢ рджрд╣рд▓реАрдЬред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕ рддрд░рд╣ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдмрд╣реБрдд рд╕реА рдирдИ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреАред
2. рдорд╛рдЗрдХреНрд░реЛрд╕рд┐рд╕реНрдЯрд░реНрд╕ тЖТ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдбрд┐рдЬрд╛рдЗрдиред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрдИ рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрдЦрдВрдб рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рд╣реИред
3. рдбреЙрдХрд░ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИред рд╕рдм рдХреБрдЫ microservice рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдмрдХрд┐ SSRS рдХрд░реНрддрд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рдПрдХ рд╕реНрд╡-рдкрд░реАрдХреНрд╖рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ
1. рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдПрдХ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ
рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╕реНрд░реЛрдд рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд╕рдордп, рдЖрдкрдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
2. рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕реНрддрд░ рдкрд░ рдФрд░ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕реНрддрд░ рдкрд░ рджреЛрдиреЛрдВ рд╕реНрдХреЗрд▓рд┐рдВрдЧред
3. рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдЫреВрддрд╛ рд╣реИ
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧ рдирд╣реАрдВ рд╣реИрдВ, рдЬрд┐рд╕рдХреА рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рд╣реЛрддреА рд╣реИред
4. рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рддреЗрдЬреА рд╕реЗ рд╡рд┐рддрд░рдг
рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реНрдХреНрд░рд╛рдЗрдмрд░реЛрдВ рдореЗрдВ, рдЬрд┐рдирдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╕рдордиреНрд╡рдп рдФрд░ рдорд╛рдирд╡ рдХрд╛рд░рдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ 2 рдорд┐рдирдЯ рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо рд╕рдордп рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдирд┐рд╖реНрдХрд░реНрд╖
1. .NET рдХреЛрд░ рдкрд░, рдЖрдк рдФрджреНрдпреЛрдЧрд┐рдХ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
2. K8S рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рджрд┐рдпрд╛, рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдЕрджреНрдпрддрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛, рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХреАред
3. рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП CI / CD рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TFS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред