рд▓рд┐рдирдХреНрд╕ рдкрд░ .NET рдХреЛрд░, рдШреЛрдбрд╝реЗ рдХреА рдкреАрда рдкрд░ DevOps

рд╣рдордиреЗ рджреЗрд╡реЛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд┐рдпрд╛ рдЬреИрд╕рд╛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рдереЗред рд╣рдо рдореЗрдВ рд╕реЗ 8 рдереЗ, рдФрд░ рд╡рд╛рд╕реНрдпрд╛ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдереЗред рдЕрдЪрд╛рдирдХ, рд╡рд╛рд╕рд╛ рдиреЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛, рдФрд░ рдореБрдЭреЗ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд╛рдиреЗ рдХрд╛ рдХрд╛рдо рдорд┐рд▓рд╛ рдЬреЛ рд╡рд┐рдВрдбреЛрдЬ-рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдореИрдВрдиреЗ рдЯреЗрдмрд▓ рдкрд░ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдкреВрд░рд╛ рдвреЗрд░ рдбрд╛рд▓рд╛, рддреЛ рдореБрдЭреЗ рдорд╣рд╕реВрд╕ рд╣реБрдЖ рдХрд┐ рд╕реНрдерд┐рддрд┐ рдПрдХ рджрд░реНрдж рд╣реИ ...

рдЗрд╕рд▓рд┐рдП DevOpsConf рдореЗрдВ рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рд╕рд┐рдирдЪрд┐рдиреЛрд╡ рдХреА рдХрд╣рд╛рдиреА рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдЬрдм рдЕрдЧреНрд░рдгреА рд╡рд┐рдВрдбреЛрдЬ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдиреЗ рдХрдВрдкрдиреА рдЫреЛрдбрд╝ рджреА, рддреЛ рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдерд╛ рдХрд┐ рдЕрдм рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЬрд╛рдПрдБ, рдмрд┐рд▓реНрдХреБрд▓! рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рд╡рд╣ 100,000 рдЕрдВрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдПрдХ рдорд┐рд╕рд╛рд▓ рдФрд░ рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╣рд┐рд╕реНрд╕рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред



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


рдЗрд╕рд▓рд┐рдП, рд╡рд╛рд╕рд╛ рдиреЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛, рдХрд╛рд░реНрдп рдореЗрд░реЗ рд▓рд┐рдП рд╣реИ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдПрдХ рдкрд┐рдЪрдлрд╝рд░реНрдХ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рдЬрдм рдореБрдЭреЗ рдЕрдВрдд рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡рд╛рд╕реНрдпрд╛ рдХреЛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╡реНрдпрд╛рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддрд░ рдЧрдпрд╛ред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╣рдорд╛рд░реЗ рдкрд╛рд░реНрдХ рдореЗрдВ рд╡рд┐рди рд╡реАрдПрдо рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ред рд╕реНрдХреЛрд░ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд╣реАрдВ рдерд╛ред



рдЪреВрдБрдХрд┐ рд╣рдо рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ DevOps рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдПрдХ рдирдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЗрдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдорд╛рдзрд╛рди рдПрдХ рдерд╛ - рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рд╕рдм рдХреБрдЫ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред Google рдиреЗ рдореЗрд░реА рдорджрдж рдХреА - рдЙрд╕ рд╕рдордп .Net рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди!

рдХреНрдпреЛрдВ .NET рдХреЛрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рд╣реИ?


рдЗрд╕рдХреЗ рдХрдИ рдХрд╛рд░рдг рдереЗред "рдкреИрд╕реЗ рдХрд╛ рднреБрдЧрддрд╛рди" рдФрд░ "рднреБрдЧрддрд╛рди рди рдХрд░реЗрдВ" рдХреЗ рдмреАрдЪ, рдмрд╣реБрдордд рдореЗрд░реЗ рдЬреИрд╕реЗ рджреВрд╕рд░реЗ рдХрд╛ рдЪрдпрди рдХрд░реЗрдЧрд╛ред MSDB рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рдХреАрдордд рд▓рдЧрднрдЧ 1,000 рдбреЙрд▓рд░ рд╣реИ, рдПрдХ рд╡рд┐рдВрдбреЛрдЬ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рдмреЗрдбрд╝реЗ рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ рдбреЙрд▓рд░ рдЦрд░реНрдЪ рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдмрдбрд╝реА рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рдЦрд░реНрдЪ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдмрдЪрдд рдкрд╣рд▓рд╛ рдХрд╛рд░рдг рд╣реИ ред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рд╡рд┐рдВрдбреЛрдЬ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЗрдВ рдЕрдкрдиреЗ рд▓рд┐рдирдХреНрд╕ рднрд╛рдЗрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрди рд▓реЗрддреА рд╣реИрдВ - рд╡реЗ рднрд╛рд░реА рд╣реИрдВ ред рдПрдХ рдмрдбрд╝реА рдХрдВрдкрдиреА рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдордиреЗ рд▓рд┐рдирдХреНрд╕ рдХреЛ рдЪреБрдирд╛ред

рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХреЗрд╡рд▓ рдореМрдЬреВрджрд╛ CI рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рд╣рдо рдЦреБрдж рдХреЛ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ DevOps рдорд╛рдирддреЗ рд╣реИрдВ, рд╣рдо рдмрд╛рдВрд╕, рдЬреЗрдирдХрд┐рдВрд╕ рдФрд░ рдЧрд┐рдЯрд▓реИрдм рд╕реАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рдо рд▓рд┐рдирдХреНрд╕ рдкрд░ рд╣реИред

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

рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ


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

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

рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рднрд╛рдЧреЛрдВ рдФрд░ рд╕рдорд░реНрдерди рд╡рд┐рднрд╛рдЧ рдХреЗ рд╕рднреА рдирдП рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдкреНрд░рд╡реЗрд╢ рд╕реАрдорд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд░реНрдд рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рдорд░реНрдерди рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рд╕рд╛рджрдЧреА ред

рд╕рдордп рд╕реАрдорд╛ - рдХрд▓ ред

рд╡рд┐рдХрд╛рд╕ рд╕рдореВрд╣ рдЬреАрддреЛ


рдЙрд╕рдХреЗ рдмрд╛рдж рд╡рд┐рдВрдбреЛрдЬ рдЯреАрдо рдиреЗ рдХреНрдпрд╛ рдХрд╛рдо рдХрд┐рдпрд╛?



рдЕрдм рдореИрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдБ рдХрд┐ IdentityServer4 , ADFS рдХреЗ рд╕рдорд╛рди рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЪреНрдЫрд╛ рдореБрдлреНрдд рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдпрд╛ рдпрд╣ рдХрд┐ Entity Framework Core рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХрд╛ рд╕реНрд╡рд░реНрдЧ рд╣реИ, рдЬрд╣рд╛рдБ рдЖрдк SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ, рд▓реЗрдХрд┐рди OOP рд╢рдмреНрджреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░, рдЬрдм рдПрдХреНрд╢рди рдкреНрд▓рд╛рди рдкрд░ рдЪрд░реНрдЪрд╛ рд╣реБрдИ, рддреЛ рдореИрдВрдиреЗ рдЗрд╕ рд╕реНрдЯреИрдХ рдХреЛ рдПрдХ рд╕реБрдореЗрд░рд┐рдпрди рдХреНрдпреВрдирд┐рдлреЙрд░реНрдо рд▓реЗрдЦрди рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛, рдЬреЛ рдХреЗрд╡рд▓ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдХреНрдпреВрдХреНрдпреВ рдФрд░ рдЬреАрдЖрдИрдЯреА рдХреЛ рдкрд╣рдЪрд╛рди рд░рд╣рд╛ рдерд╛ред

рдЙрд╕ рд╕рдордп, рд╣рдордиреЗ рдкрдкреЗрдЯ рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рд╣рдорд╛рд░реА рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рд╣рдордиреЗ GitLab CI , Elastic , HAProxy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрддреБрд▓рд┐рдд рдЕрддреНрдпрдзрд┐рдХ рднрд░реА рд╣реБрдИ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, Zabbix , Grafana рдФрд░ Prometheus , Jaeger рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛, рдФрд░ VMware рдкрд░ ESXi рдХреЗ рд╕рд╛рде HP рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдпрд╣ рд╕рдм рдШреВрдо рд░рд╣рд╛ рдерд╛ред рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ - рд╢реИрд▓реА рдХрд╛ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХред



рдЖрдЗрдП рджреЗрдЦреЗрдВ рдФрд░ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдЗрди рд╕рднреА рд╣рд╕реНрддрдХреНрд╖реЗрдкреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрдпрд╛ рд╣реБрдЖ рдерд╛ред

рдХреНрдпрд╛ рдерд╛


рдЯреАрдПрдлрдПрд╕ рдПрдХ рдХрд╛рдлреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬреЛ рди рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдЕрдВрддрд┐рдо рдЙрддреНрдкрд╛рджрди рдорд╢реАрди рдореЗрдВ рдХреЛрдб рд╡рд┐рддрд░рд┐рдд рдХрд░рддреА рд╣реИ, рдмрд▓реНрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд▓рдЪреАрд▓реЗ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯ рд╣реИ - рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реНрддрд░ рдкрд░ рд╕реАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред


рдкрд╣рд▓реЗ, рдпреЗ рдареЛрд╕ рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рдереАрдВред рдЯреАрдПрдлрдПрд╕ рдиреЗ рдХрдИ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдмрд╣реБрдд рд╕рд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рдереЗред рдкреНрд░рддреНрдпреЗрдХ рдПрдЬреЗрдВрдЯ рдХреЗ рдкрд╛рд╕ рдХрд╛рдо рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 3-4 рдХрд░реНрдордЪрд╛рд░реА рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рд┐рд▓реАрдЬрд╝ рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЯреАрдПрдлрдПрд╕ рдиреЗ рддрд╛рдЬрд╛ рдмреЗрдХреНрдб рдмрд┐рд▓реНрдб рдЯреВ рд╡рд┐рдВрдбреЛрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ред

рдЬреЛ рд╣рдо рдЖрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ


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

рдкрд░рд┐рдпреЛрдЬрдирд╛


рдЖрд╡реЗрджрди рдкреНрд░реАрдкреЗрдб рдХрд╛рд░реНрдб рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред



рдЧреНрд░рд╛рд╣рдХ


рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдереЗред рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдиреЗ SSL SHA-2 рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рд╡реЗрд╢ рдХрд░рдХреЗ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рджреВрд╕рд░реЗ рдореЗрдВ рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдкрд╣реБрдВрдЪ рдереАред

HAProxy


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрд░реЛрдз HAProxy рдореЗрдВ рдЧрд┐рд░ рдЧрдпрд╛, рдЬрд┐рд╕рдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛:

  • рдкреНрд░рд╛рдердорд┐рдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг;
  • рдПрд╕рдПрд╕рдПрд▓ рд╕рдорд╛рдкреНрддрд┐
  • HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЯреНрдпреВрдирд┐рдВрдЧ;
  • рдкреНрд░рд╕рд╛рд░рдг рдЕрдиреБрд░реЛрдзред

рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ред рд╣рдо рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╣реИрдВ рдФрд░ рд╣рдо рдЗрд╕реЗ рд╡рд╣рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕реНрд╡рдпрдВ рд╕реЗрд╡рд╛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВред

рддреАрд╕рд░реЗ рдмрд┐рдВрджреБ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рд╣рдо рдЗрд╕рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдПрдВрдЧреЗред

рдмреИрдХрдПрдВрдб


рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рдмреИрдХрдПрдВрдб рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИред рдмреИрдХрдПрдВрдб рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕реВрдЪреА рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░, рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реИрдВ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рддреНрддреАрдп рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рднреЗрдЬрдиреЗ, рдпрд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

HAProxy рдХреЗ рд╕рд╛рде рдмрдЪрдд


рджреЛ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛, рдПрдХ рдкрд╣рдЪрд╛рди рд╕рдВрджрд░реНрдн рднреА рдерд╛ред IdentityServer4 рдмрд╕ рдЖрдкрдХреЛ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрд╣ ADFS рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдПрдирд╛рд▓реЙрдЧ рд╣реИ - рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдлреЗрдбрд░реЗрд╢рди рд╕реЗрд╡рд╛рдПрдБ ред

рдкрд╣рдЪрд╛рди рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдХрдИ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд╣рд▓рд╛ рдХрджрдо - рдЧреНрд░рд╛рд╣рдХ рдмреИрдХрдПрдВрдб рдореЗрдВ рдЧрд┐рд░ рдЧрдпрд╛ , рдЬрд┐рд╕рдиреЗ рдЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЯреЛрдХрди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХреАред рдЕрдЧрд░ рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛, рддреЛ рдЕрдиреБрд░реЛрдз рд╡рд╛рдкрд╕ рдЙрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рд▓реМрдЯ рдЖрдпрд╛ рдЬрд╣рд╛рдВ рд╕реЗ рдпрд╣ рдЖрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЗ рд╕рд╛рде, рдФрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдкрд╣рдЪрд╛рди рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред

рджреВрд╕рд░рд╛ рдЪрд░рдг - рдЕрдиреБрд░реЛрдз IdentityServer рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреГрд╖реНрда рдкрд░ рдЧрдпрд╛, рдЬрд╣рд╛рдВ рдЧреНрд░рд╛рд╣рдХ рдкрдВрдЬреАрдХреГрдд рдерд╛, рдФрд░ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рдЯреЛрдХрди IdentityServer рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред

рддреАрд╕рд░рд╛ рдЪрд░рдг - рдЧреНрд░рд╛рд╣рдХ рдЙрд╕ рд╕рдВрджрд░реНрдн рдкрд░ рд╡рд╛рдкрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╡рд╣ рдЖрдпрд╛ рдерд╛ред



IdentityServer4 рдореЗрдВ рдПрдХ рдЦрд╝рд╛рд╕рд┐рдпрдд рд╣реИ: рдпрд╣ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд┐рдЯрд░реНрди рдЕрдиреБрд░реЛрдз рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИ ред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╣рдордиреЗ рд╕рд░реНрд╡рд░ рд╕реЗрдЯрдЕрдк рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдШрд░реНрд╖ рдХрд┐рдпрд╛, рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рдХрд┐ рд╣рдо рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдкреНрд░рдмреБрджреНрдз рд╣реБрдП, рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдореЗрдВ HTTPS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ URL рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ, рдФрд░ IdentityServer рдиреЗ рдЙрд╕реА рд╕рдВрджрд░реНрдн рдХреЛ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди HTTP рдХреЗ рд╕рд╛рдеред рд╣рдо рд╕рджрдореЗ рдореЗрдВ рдереЗ! рдФрд░ рдпрд╣ рд╕рдм рдкрд╣рдЪрд╛рди рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ HAProxy рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╣реЗрдбрд░ рдореЗрдВ рд╣рдореЗрдВ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ HTTPS рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдерд╛ред

рд╕реБрдзрд╛рд░ рдХреНрдпрд╛ рд╣реИ рдФрд░ рд╡реЗ рдХрд╣рд╛рдВ рдмрдЪ рдЧрдП?

рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реБрд▓реНрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреИрд╕рд╛ рдмрдЪрд╛рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ IdentityServer4 рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЦрдВрдб рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд╣рд╛рдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмреИрдХреЗрдВрдб рдХрддрд╛рдИ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП


рдЗрд╕рд▓рд┐рдП, рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ - рдореИрдЬрд┐рдХ рдмреЙрдХреНрд╕ред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рд▓рд┐рдирдХреНрд╕ рдХреА рдУрд░ рдмрдврд╝рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдЪрд▓реЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред



рдХрдардкреБрддрд▓реА рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИред рд╕реЗрд╡рд╛ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╡рд┐рддрд░рд┐рдд рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╢рд╛рдВрдд рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдкреЗрдВрд╕рд┐рд▓ рд░реЛрд▓ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рддрдиреА рдЬрд▓реНрджреА рдФрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╡рд┐рддрд░рдг рд╡рд┐рдзрд┐ред рдорд╛рдирдХ RPM рд╣реИред рд╣рд░ рдХреЛрдИ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдмрд╛рдж рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп DLL рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдереАред рдЙрдирдореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ 150 рдереЗ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╣реИред рдПрдХрдорд╛рддреНрд░ рд╕рд╛рдордВрдЬрд╕реНрдпрдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдЗрд╕ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдЖрд░рдкреАрдПрдо рдореЗрдВ рдкреИрдХ рдХрд░рдирд╛ рдФрд░ рдЙрд╕рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╣реИред

рд╕рдВрд╕реНрдХрд░рдгред рд╣рдореЗрдВ рдмрд╣реБрдд рдмрд╛рд░ рд░рд┐рд▓реАрдЬ рдХрд░рдирд╛ рдерд╛, рдФрд░ рд╣рдореЗрдВ рдпрд╣ рддрдп рдХрд░рдирд╛ рдерд╛ рдХрд┐ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдпрд╣ рдЯреАрдПрдлрдПрд╕ рдПрдХреАрдХрд░рдг рд╕реНрддрд░ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рдерд╛ред рдЬрдм TFS рдХрд╛рд░реНрдп рдХреЛ рд╣реИрдВрдбрд▓рд░ - рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ - рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕реЗ рдЪрд░ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рднреА рднреЗрдЬрддрд╛ рд╣реИ рдЬреЛ рд╣реИрдВрдбрд▓рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдпреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдирд╛рдо рдмрд┐рд▓реНрдб, рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдирд╛рдо рдФрд░ рдЕрдиреНрдп рдЪрд░ рдирд╛рдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред "рдЖрд░рдкреАрдПрдо рдкреИрдХреЗрдЬ рдХреЛрдбрд╛рдВрддрд░рдг" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВред

рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TFS рдХреА рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ рдХрдореА рдЖрдИ ред рдкрд╣рд▓реЗ, рд╣рдордиреЗ рд╡рд┐рдВрдбреЛрдЬ рдПрдЬреЗрдВрдЯреЛрдВ рдкрд░ рд╕рднреА рд╡рд┐рдВрдбреЛрдЬ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдПрдХрддреНрд░ рдХрд┐рдП, рдФрд░ рдЕрдм рдПрдХ рд▓рд┐рдирдХреНрд╕ рдПрдЬреЗрдВрдЯ рд╣реИ - рдПрдХ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рдЬрд┐рд╕реЗ рдЕрд╕реЗрдВрдмрд▓реА рд╕рдореВрд╣ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреБрдЫ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдореГрджреНрдз, рдмрддрд╛рдПрдВ рдХрд┐ рдЗрд╕ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рдкрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдмрдирд╛рдИ рдЬрд╛рдПрдВрдЧреА, рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред

IdentityServerред ADFS рд╣рдорд╛рд░рд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдУрдкрди рд╕реЛрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдбреВрдм рдЬрд╛рддреЗ рд╣реИрдВред

рдШрдЯрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВред

рдореИрдЬрд┐рдХ рдмреЙрдХреНрд╕


рдЪрд╛рд░ рднрд╛рдЧреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдирддрд╛ рд╣реИред



рд▓рд┐рдирдХреНрд╕ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯред рд▓рд┐рдирдХреНрд╕, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рд░реНрдХрд┐рдХ рд╣реИред рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рддреАрди рдЪрд░рдгреЛрдВ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЧрдпрд╛ред

  • рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рд╡рд┐рддрд░рд┐рдд рдХрд╛рдо рдорд╛рди рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
  • .NET Core 1.x рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдХреНрдпреЛрдВ 1.x рдЬрдм 2.0 рдорд╛рдирдХ рднрдВрдбрд╛рд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рд╣рдордиреЗ рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг 1.09 рдерд╛, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
  • рдЧрд┐рдд 2.x.

RPM рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАред RPM рд╕рдВрдХреБрд▓ рдХреЛ рдХрд╣реАрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдорд╛рди рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╣рдо рдЙрд╕реА рдХреЙрд░реНрдкреЛрд░реЗрдЯ RPM рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╕рднреА рд▓рд┐рдирдХреНрд╕ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд┐рдпрд╛ред рдПрдХ webhook рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕рд░реНрд╡рд░ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рди рд╕реЗ рдЖрд╡рд╢реНрдпрдХ RPM рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдкреИрдХреЗрдЬ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ webhook рдХреЛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

GitLabред рдЪреЗрддрд╛рд╡рдиреА! GitLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдСрдкрд░реЗрд╢рди рд╡рд┐рднрд╛рдЧ рджреНрд╡рд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ, рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рд▓рд┐рдирдХреНрд╕ рдорд╢реАрдиреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдиреБрд╕реНрдЦрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ - рд╕рднреА рдХрдардкреБрддрд▓реА рдореЗрдирд┐рдлреЗрд╕реНрдЯреЛред

рдХрдардкреБрддрд▓реА - рд╕рднреА рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рд╣рдо рдЧрд┐рдЯрд▓реИрдм рд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╣рдо рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВред рдХреИрд╕реЗ DLL RPM рдореЗрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдЖрд░рдкреАрдПрдо рдХреЛ рдбреАрдбреАрдПрд▓ рдбрд┐рд▓реАрд╡рд░реА


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ .NET рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЙрдХ рд╕реНрдЯрд╛рд░ рд╣реИред рдпрд╣ Visual Studio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд░рд┐рд▓реАрдЬрд╝ рд╢рд╛рдЦрд╛ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдЗрд╕реЗ Git рдореЗрдВ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдФрд░ Git рдпрд╣рд╛рдВ рдПрдХ TFS рдЗрдХрд╛рдИ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдбреЗрд╡рд▓рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред



рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЯреАрдПрдлрдПрд╕ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирдИ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдЖ рдЧрдИ рд╣реИред рдХреМрди рд╕рд╛ рдЖрд╡реЗрджрди? рдЯреАрдПрдлрдПрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдПрдХ рд▓реЗрдмрд▓ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рдХреЗ рдкрд╛рд╕ рдХреМрди рд╕реЗ рд╕рдВрд╕рд╛рдзрди рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд╣ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рд╣рдо .NET рдХреЛрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдкреВрд▓ рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рдХрд╛ рдЪрдпрди рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, .NET, npm рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА, рдЖрджрд┐ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╕реНрд╡рдпрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдмрд╛рдж рдореЗрдВ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, рдпрд╣ RPM рдкреИрдХреЗрдЬ рдХреЛ RPM рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред

рджреВрд╕рд░реА рдУрд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрддрд╛ рд╣реИред рд░рдЦрд░рдЦрд╛рд╡ рдЗрдВрдЬреАрдирд┐рдпрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕реАрдзреЗ рддреМрд░ рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ: рдпрд╣ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣рд┐рдпрд░рд╛ рдореЗрдВ рдкреИрдХреЗрдЬ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреБрд╕реНрдЦрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдХрдардкреБрддрд▓реА рдпрдо рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдирдпрд╛ рдкреИрдХреЗрдЬ рдЪреБрдирддрд╛ рд╣реИ, рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред



рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

рдкреИрдХреЗрдЬрд┐рдВрдЧ RPM DLL


TFS рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕реНрд░реЛрдд рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реБрдПред рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рд╕реНрд░реЛрдд рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ ред рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрдИ DLL рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд▓реЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреИрдХ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, JSON рдЕрдиреБрд░реЛрдз рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рд╕реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ RPM рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдирд╛рдо рдФрд░ рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ ред Webhook, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдмрд╛рдд рдХреА рдереА, рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рдкрд░ рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдЗрд╕реА рдкреИрдХреЗрдЬ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдирдИ рдЕрд╕реЗрдВрдмрд▓реА рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддрд╛ рд╣реИред



RPM рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдкреИрдХреЗрдЬ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕реА рдпреЛрдЬрдирд╛ рдХреНрдпреЛрдВ? рдореИрдВ рддреБрд░рдВрдд рдЗрдХрдЯреНрдареЗ рдкреИрдХреЗрдЬ рдХреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рднреЗрдЬ рд╕рдХрддрд╛? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд░реНрдд рд╣реИред рдпрд╣ рдкрд░рд┐рджреГрд╢реНрдп рдмрд╛рд╣рд░реА рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ RPM рдкреИрдХреЗрдЬреЛрдВ рдХреА рдЕрдирдзрд┐рдХреГрдд рдбрд╛рдЙрдирд▓реЛрдбрд┐рдВрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рднреА рд▓рд┐рдирдХреНрд╕ рдорд╢реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реИред

DB рд╕рдВрд╕реНрдХрд░рдг


рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкрд░рд╛рдорд░реНрд╢ рдкрд░, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд▓реЛрдЧ рдПрдордПрд╕ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рдХрд░реАрдм рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧреИрд░-рд╡рд┐рдВрдбреЛрдЬ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдФрд░ рдореБрдЦреНрдп рдХреЗ рд╕рд╛рде PostgreSQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рднреБрдЧрддрд╛рди рдХреА рдЧрдИ рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рддреНрдпрд╛рдЧрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд┐рдпрд╛ред



рдЗрд╕ рднрд╛рдЧ рдореЗрдВ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдордиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдФрд░ рдлреНрд▓рд╛рдИрд╡реЗ рдФрд░ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛрд░ рдХреЗ рдмреАрдЪ рдХреИрд╕реЗ рдЪрдпрди рдХрд┐рдпрд╛ред рдЙрдирдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рд╡рд┐рдкрдХреНрд╖


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

рдлреНрд▓рд╛рдИрд╡реЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рддрд╛рдХрд┐ рд▓реЛрдЧ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрди рди рд▓рд┐рдЦреЗрдВред рд╡реЗ OOP рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЬреНрдпрд╛рджрд╛ рдХрд░реАрдм рд╣реИрдВред рд╣рдордиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рд▓рд┐рдЦреЗ, рдПрдХ SQL рдХреНрд╡реЗрд░реА рдмрдирд╛рдИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЧрдИред рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рддреИрдпрд╛рд░ рд╣реИ, рд▓реБрдврд╝рдХрд╛ рд╣реБрдЖ рд╣реИ - рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛрд░ рдореЗрдВ рдПрдХ рдорд╛рдЗрдирд╕ рд╣реИ - рднрд╛рд░реА рднрд╛рд░ рдХреЗ рддрд╣рдд рдпрд╣ рдЗрд╖реНрдЯрддрдо SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдбреНрд░реЙрдбрд╛рдЙрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдЪреНрдЪ рднрд╛рд░ рд╕реЗрд╡рд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реИрдХрдбрд╝реЛрдВ рдЖрд░рдкреАрдПрд╕ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдордиреЗ рдЗрди рдЬреЛрдЦрд┐рдореЛрдВ рдХреЛ рд▓рд┐рдпрд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдореЗрдВ рд╕реМрдВрдк рджрд┐рдпрд╛ред

рдЖрдХрд░реНрд╖рдг рдЖрддреЗ рд╣реИрдВ


рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛрд░ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ , рдФрд░ рдлреНрд▓рд╛рдИрд╡реЗ рдореМрдЬреВрджрд╛ рд╕реАрдЖрдИ рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ ред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ :)

рд░реЛрд▓-рдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛


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

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЯреЛрдХрди, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкрд╛рд╕рд╡рд░реНрдб, рдпрд╣ рд╕рдм рдХрдардкреБрддрд▓реА рдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдореЗрдВ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╡реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВред

рдЯреАрдПрдлрдПрд╕ рдореБрджреНрджреЗ


рдЬрдм рд╣рдордиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЯреАрдПрдлрдПрд╕ рдореЗрдВ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рди-рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдбрд┐рдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ - рдЬрд▓реНрджреА рдпрд╛ рдирд╣реАрдВ, рд╣рдо / рд░рд┐рд▓реАрдЬ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рдереЗ, рдФрд░ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛рдПрдВ рдорд┐рд▓реАрдВред ред

рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ 12-15 рдорд┐рдирдЯ рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ - рдпрд╣ рдПрдХ рд▓рдВрдмрд╛ рд╕рдордп рд╣реИ, рдЖрдк рдЗрд╕ рддрд░рд╣ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддреЗред рдПрдХ рддреНрд╡рд░рд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдиреЗ I / O рдкрд░ рдПрдХ рднрдпрд╛рдирдХ рдЧрд┐рд░рд╛рд╡рдЯ рджрд┐рдЦрд╛рдИ, рдФрд░ рдпрд╣ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рд╣реИред

рдХрдВрдкреЛрдиреЗрдВрдЯ рд╡рд╛рдЗрдЬ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдкрд░, рдореИрдВрдиреЗ рддреАрди foci рдХреА рдкрд╣рдЪрд╛рди рдХреАред рдкрд╣рд▓рд╛ рд╣реИ Kaspersky рдПрдВрдЯреАрд╡рд╛рдпрд░рд╕ , рдЬреЛ рд╕рднреА рд╡рд┐рдВрдбреЛрдЬ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯреЛрдВ рдкрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рд╡рд┐рдВрдбреЛрдЬ рдЗрдВрдбреЗрдХреНрд╕рд░ рд╣реИред рдпрд╣ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯреЛрдВ рдкрд░ рддреИрдирд╛рддреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рд╕рдм рдХреБрдЫ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрднреА-рдХрднреА рдПрдХ рдкреВрд░реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рднрд╛рдЧ рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рд╢рд╛рдВрдд рдерд╛, рд▓реЗрдХрд┐рди рдЗрдХрдЯреНрдареЗ, рд▓реБрдврд╝рдХрд╛ рд╣реБрдЖ - рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣рдо рдпрд╣ рд╕рдордЭрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ - рд╣рд╛рдБ, рдирд┐рд░реНрднрд░рддрд╛ рдкреИрдХреЗрдЬ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгред

рдирд┐рд░реНрдгрдп


  • рдПрд╡реА рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕реНрд░реЛрддред
  • рдЕрдиреБрдХреНрд░рдордг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ред
  • Npm ci рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред

Npm ci рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдмрд╛рд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдкреЗрдбрд╝ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ , рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкреИрдХреЗрдЬ рдХреА рдПрдХ рдЕрдк-рдЯреВ-рдбреЗрдЯ рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡рд╣ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдЬрд┐рддрдирд╛ рдЪрд╛рд╣реЗ рдЙрддрдирд╛ рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЙрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдордп рдмрдЪрд╛рддрд╛ рд╣реИ рдЬреЛ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рд╡рд┐рдиреНрдпрд╛рд╕


рдЕрдм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ред рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдо рдЖрдВрддрд░рд┐рдХ REPO рд╕рд╣рд┐рдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Nexus рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рднреА рдШрдЯрдХ рдЬреЛ рд╣рдо рдЖрдВрддрд░рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрдЗрд╕ рдЖрдВрддрд░рд┐рдХ рднрдВрдбрд╛рд░ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред



рд╣рдо NuGet рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реИред

рдкрд░рд┐рдгрд╛рдо


рд╣рдордиреЗ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдФрд╕рдд рдмрд┐рд▓реНрдб рд╕рдордп рдХреЛ 12 рдорд┐рдирдЯ рд╕реЗ рдШрдЯрд╛рдХрд░ 7 рдХрд░ рджрд┐рдпрд╛ рдерд╛ред

рдпрджрд┐ рд╣рдо рдЙрди рд╕рднреА рдорд╢реАрдиреЛрдВ рдХреЛ рдЧрд┐рдирддреЗ рд╣реИрдВ рдЬреЛ рд╣рдо рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдП, рддреЛ рд╣рдордиреЗ рд▓рдЧрднрдЧ 10,000 рдбреЙрд▓рд░ рдмрдЪрд╛рдПред рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкрд░ рд╣реИ, рдФрд░ рд╕рд╛рдордЧреНрд░реА рдкрд░ рд╡рд┐рдЪрд╛рд░ - рдЕрдзрд┐рдХред

рдпреЛрдЬрдирд╛рдУрдВ


рдЕрдЧрд▓реА рддрд┐рдорд╛рд╣реА рдореЗрдВ, рдпреЛрдЬрдирд╛ рдиреЗ рдХреЛрдб рд╡рд┐рддрд░рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд рдбреЙрдХрд░ рдЫрд╡рд┐ рдореЗрдВ рд╕рдВрдХреНрд░рдордг ред TFS рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╢рд╛рдВрдд рдЪреАрдЬрд╝ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрд╕реЗрдВрдмрд▓реА рд╕рд╣рд┐рдд, рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреЙрдХрдЯрд░ рдЫрд╡рд┐ред рд╣рдо рдПрдХ рд╣реА рдкреИрдХреЗрдЬ- lock.json рдкрд░ рдЗрд╕ рдЯреНрд░рд┐рдЧрд░ рдХреЛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЕрдЧрд░ рдХрд┐рд╕реА рддрд░рд╣ рдШрдЯрдХреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирдИ рдбреЙрдХрд░ рдЫрд╡рд┐ рд╣реЛрдЧреАред рдмрд╛рдж рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрдВрдЯреЗрдирд░ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рдпрд╣ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдПрдХ рдорд╛рдЗрдХреНрд░реЛ-рд╕рд░реНрд╡рд┐рд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИ рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЙрддреНрдкрд╛рджрди рд╕рдорд╛рдзрд╛рди рдкрд░реЛрд╕ рд░рд╣реА рд╣реИред

рд╕рд╛рд░рд╛рдВрд╢


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

GitHub рдкрд░ рд╕реНрдкреАрдХрд░ рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рд╕рд┐рдирдЪрд┐рдиреЛрд╡ рдХреА рдкреНрд░реЛрдлрд╛рдЗрд▓ред

DevOps Conf рдкреЗрд╢реЗрд╡рд░реЛрдВ рд╕реЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕, рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдПрдХреАрдХрд░рдг рдкрд░ рдПрдХ рд╕рдореНрдореЗрд▓рди рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╕рд┐рдХрдВрджрд░ рдиреЗ рдЬрд┐рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА? рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдФрд░ рдХрд╛рдо рдХрд░рдирд╛, рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рджрд┐рди рджреЛ рд╕рдлрд▓ рд░рд┐рд▓реАрдЬрд╝ рдХрд┐рдП рдЧрдП рдереЗред 27 рдФрд░ 28 рдордИ рдХреЛ RIT ++ рдкрд░ DevOps Conf рдкрд░ рдЪрд┐рдХрд┐рддреНрд╕рдХреЛрдВ рдХреА рдУрд░ рд╕реЗ рдРрд╕реЗ рдФрд░ рднреА рдорд╛рдорд▓реЗ рд╕рд╛рдордиреЗ рдЖрдПрдВрдЧреЗред рдЖрдк рдЕрднреА рднреА рдЕрдВрддрд┐рдо рдЧрд╛рдбрд╝реА рдореЗрдВ рдХреВрдж рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЬрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ , рдпрд╛ рдЕрдкрдирд╛ рд╕рдордп рдмреБрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рд╕реНрдХреЛрд▓реНрдХреЛрд╡реЛ рдореЗрдВ рдореБрдЭрд╕реЗ рдорд┐рд▓реЛ!

Source: https://habr.com/ru/post/hi448496/


All Articles