
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдХрдВрдЯреЗрдирд░ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рдордВрдЪ рдмрди рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрднреА рднреА рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░, рдкреНрд░рдмрдВрдзрд┐рдд рдФрд░ рд╕реНрдХреЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░, рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рд╕реБрд░рдХреНрд╖рд╛, рдЯреНрд░реИрдлрд╝рд┐рдХ рдорд╛рд░реНрдЧ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ "рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ" (PaS) рд╕реЗ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХреНрд▓рд╛рдЙрдб рдлрд╛рдЙрдВрдбреНрд░реА рдФрд░ рд╣рд░реЛрдХреВред
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЕрдХреНрд╕рд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдЯрд┐рдВрдЧ, рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд PaS рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рд╕реНрд░реЛрдд-рд╡рд┐рддрд░рдг рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ PaaS рджреНрд╡рд╛рд░рд╛ рдПрдХ рдХрд╕реНрдЯрдо рдХрдВрдЯреЗрдирд░ рдЫрд╡рд┐ рдмрдирд╛рдХрд░, рдЗрд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ, рдПрдХ рдирдпрд╛ рдорд╛рд░реНрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП рдПрдХ DNS рдЙрдкрдбреЛрдореЗрди рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдм git push
рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ (рдЬрд╛рдирдмреВрдЭрдХрд░) рдРрд╕реЗ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдмреБрдирд┐рдпрд╛рджреА рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рдореБрджрд╛рдп рдХреЛ рдЕрдкрдиреЗ рджрдо рдкрд░ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдХреЗрд▓реНрд╕реА рд╣рд╛рдИрдЯреЙрд╡рд░ рдиреЗ рдХрд╣рд╛ :
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╕реНрдерд┐рддрд┐, рд▓реЗрдХрд┐рди рдЦрддреНрдо рдирд╣реАрдВред
рдирддреАрдЬрддрди, рд╣рдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрди рдХрдВрдкрдирд┐рдпреЛрдВ рдХреА рдореЗрдЬрдмрд╛рдиреА рднреА рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдУрдкрдирд╢рдлреНрдЯ рдФрд░ рд░реИрдВрдЪрд░ред рдмрдврд╝рддреЗ рдХреВрдм-рдкрд╛рдПрд╕ рдмрд╛рдЬрд╛рд░ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл, Google рдФрд░ Pivotal рджреНрд╡рд╛рд░рд╛ рдЬреБрд▓рд╛рдИ 2018 рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдЪрд╛рдХреВ, рд░рд┐рдВрдЧ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЪрд╛рдХреВ Google рдФрд░ Pivotal рдХреЗ рдмреАрдЪ рдПрдХ рд╕рд╣рдпреЛрдЧ рдерд╛, рдЖрдИрдмреАрдПрдо, RedHat рдФрд░ Solo.im рдЬреИрд╕реА рдЕрдиреНрдп рдХрдВрдкрдирд┐рдпреЛрдВ рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╣рдпреЛрдЧ рдХреЗ рд╕рд╛рдеред рдпрд╣ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдкрд╛рд╕рд╛ рд╕рд╛рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЪрд╛рдХреВ рдХрд┐рд╕реА рднреА рд╕рдВрдЧрдд рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдРрдб-рдСрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЪрд╛рдХреВ рдХреНрдпрд╛ рд╣реИ?
рдиреИрдЯрд┐рд╡ рдХреЛ "рдЖрдзреБрдирд┐рдХ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрднрд╛рд░ рджреЗрдиреЗ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕-рдЖрдзрд╛рд░рд┐рдд рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред" рдЦреБрдж рдХреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдордВрдЪ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ, рдЪрд╛рдХреВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рде HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдЕрдиреБрдкрд╛рдд рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рддрд╛ рд╣реИред рдЕрдкреНрд░рдпреБрдХреНрдд рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЕрдВрддрддрдГ рд╢реВрдиреНрдп рдкрд░ рд╕реНрдХреЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд░реНрд╡рд░рд▓реЗрд╕ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреА рд╢реИрд▓реА рдореЗрдВ рдСрди-рдбрд┐рдорд╛рдВрдб рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЪрд╛рдХреВ рдореЗрдВ рдХрд┐рд╕реА рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
- рд╕реНрд░реЛрдд рдХреЛрдб ( рдмрд┐рд▓реНрдб рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди) рд╕реЗ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛,
- рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ ( рд╕реЗрд╡рд╛ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛),
- рдбрд┐рдорд╛рдВрдб рдкрд░ рдЖрд╡реЗрджрдиреЛрдВ рдХреА рдбрд┐рд▓реАрд╡рд░реА рдФрд░ рдСрдЯреЛрдореИрдЯрд┐рдХ рд╕реНрдХреЗрд▓рд┐рдВрдЧ ( рд╕реЗрд╡рд╛ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ),
- рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг (рдИрд╡реЗрдВрдЯ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛)ред
рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХ рд╕рд░реНрд╡рд┐рдВрдЧ рд╣реИ, рдЬреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рддрд░рдг, рдСрдЯреЛ-рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдирд┐рдЯрд┐рд╡ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдкреАрдЖрдИ рдХреА рдкреВрд░реНрдг рдкрд╣реБрдВрдЪ рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╣реА рдПрдкреАрдЖрдИ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдХреЗ рдЪрд╛рдХреВ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдореЙрдбреНрдпреВрд▓, рд╕реЗрд╡рд╛рдУрдВ, рдЖрджрд┐)ред
рд╕рд░реНрд╡рд┐рдВрдЧ рднреА рдиреАрд▓реЗ-рд╣рд░реЗ рд░рдВрдЧ рдХреА рдЯреНрд░реИрдлрд╝рд┐рдХ рд░реВрдЯрд┐рдВрдЧ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирдП рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреГрдердХреНрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд╕реНрд╡рдпрдВ рдЪрд╛рдХреВ рдПрдХ рд╕рдВрдЧрдд рдЗрдВрдЧреНрд░реЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдЧреНрд▓реЛ рдПрдкреАрдЖрдИ рдЧреЗрдЯрд╡реЗ рдФрд░ рдЗрд╕реНрддрд┐рдпреЛ рд╕рд░реНрд╡рд┐рд╕ рдореЗрд╖ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рдЙрдкрд▓рдмреНрдз-рд╕рдВрдЪрд╛рд▓рд┐рдд рдХреЛ рдиреИрдЯрд┐рд╡-рдЪрд╛рд▓рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рдпрд╛рддрд╛рдпрд╛рдд рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред
рдЗрд╕реНрддрд┐рдпреЛ рд╕реЗрд╡рд╛ рдореЗрд╖, рдЙрди рдЪрд╛рдХреВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рд▓рдд рдмрди рд╕рдХрддреА рд╣реИ рдЬреЛ рдЗрд╕реНрддрд┐рдпреЛ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЪрд╛рдХреВ рдХреЗрд╡рд▓ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧреНрд▓реЛрд╡ рдХреЛ рдЪрд╛рдХреВ рдХреЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ рдЪрд╛рдХреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ), рд╕рд╛рде рд╣реА рд╕рд╛рде рдХрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдФрд░ рдХрдо рдкрд░рд┐рдЪрд╛рд▓рди рд▓рд╛рдЧрдд рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдмреВрде рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдЪрд╛рдХреВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ GKE рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдирдП рд╕реНрдерд╛рдкрд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛:
kubectl get namespace NAME STATUS AGE default Active 21h kube-public Active 21h kube-system Active 21h
рд╣рдо рдЪрд╛рдХреВ рдФрд░ рджрд╕реНрддрд╛рдиреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдпрд╣ рдХрд┐рд╕реА рднреА рдХреНрд░рдо рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
# Knative-Serving kubectl apply -f \ https://github.com/knative/serving/releases/download/v0.8.0/serving-core.yaml namespace/knative-serving created # ... # Gloo kubectl apply -f \ https://github.com/solo-io/gloo/releases/download/v0.18.22/gloo-knative.yaml namespace/gloo-system created # ...
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рднреА рдкреЙрдб "рд░рдирд┐рдВрдЧ" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ:
kubectl get pod -n knative-serving NAME READY STATUS RESTARTS AGE activator-5dd55958cc-fkp7r 1/1 Running 0 7m32s autoscaler-fd66459b7-7d5s2 1/1 Running 0 7m31s autoscaler-hpa-85b5667df4-mdjch 1/1 Running 0 7m32s controller-85c8bb7ffd-nj9cs 1/1 Running 0 7m29s webhook-5bd79b5c8b-7czrm 1/1 Running 0 7m29s kubectl get pod -n gloo-system NAME READY STATUS RESTARTS AGE discovery-69548c8475-fvh7q 1/1 Running 0 44s gloo-5b6954d7c7-7rfk9 1/1 Running 0 45s ingress-6c46cdf6f6-jwj7m 1/1 Running 0 44s knative-external-proxy-7dd7665869-x9xkg 1/1 Running 0 44s knative-internal-proxy-7775476875-9xvdg 1/1 Running 0 44s
рдЧреНрд▓реЛрдУ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рдЖрдЗрдП рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдХреЗрд▓реЗрдмрд▓ рдЪрд╛рдХреВ рд╕реЗрд╡рд╛ рдмрдирд╛рддреЗ рд╣реИрдВ (рдЗрд╕реЗ kservice рдХрд╣рддреЗ рд╣реИрдВ) рдФрд░ рдЗрд╕реЗ рд╕реАрдзреЗ рдпрд╛рддрд╛рдпрд╛рддред
рдирд┐рдпрдорд┐рдд рддреИрдирд╛рддреА + рд╕реЗрд╡рд╛ + рдЗрдирдЧреНрд░реЗрдб рдореЙрдбрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЖрд╡реЗрджрди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рдХреВ рд╕реЗрд╡рд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ:
apiVersion: serving.knative.dev/v1alpha1 kind: Service metadata: name: helloworld-go namespace: default spec: template: spec: containers: - image: gcr.io/knative-samples/helloworld-go env: - name: TARGET Value: Knative user
рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛, рдлрд┐рд░ рдЗрд╕реЗ рдореЗрд░реЗ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛:
kubectl apply -f ksvc.yaml -n default
рд╣рдо рдЕрдкрдиреЗ ' рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб -рдЧреЛ' kservice рдХреА рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рдмрд╛рдж рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЪрд╛рдХреВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
kubectl get pod -n default NAME READY STATUS RESTARTS AGE helloworld-go-fjp75-deployment-678b965ccb-sfpn8 2/2 Running 0 68s
рдЬрдм рдЖрдк kservice рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдорд╛рд░реА 'рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб-рдЧреЛ' рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдкреЙрдб рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдпрд╛рддрд╛рдпрд╛рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдлрд▓реА рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рдПрдЧреАред рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрджрд┐ рдПрдХ рд╕рд╛рде рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреБрдЫ рдХрд╕реНрдЯрдо рд╕реАрдорд╛ рдореВрд▓реНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдлрд▓реА рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рдПрдЧреАред
kubectl get ingresses.networking.internal.knative.dev -n default NAME READY REASON helloworld-go True
рдЪрд╛рдХреВ рдЖрдВрддрд░рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ 'рдЕрдВрддрд░реНрдЧреНрд░рд╣рдг' рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдкреНрд░рд╡реЗрд╢ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдЧреНрд▓реЛ рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЛ рдмреНрд▓реВ-рдЧреНрд░реАрди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдореЙрдбрд▓, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреАрдПрд▓рдПрд╕, рдЯрд╛рдЗрдордЖрдЙрдЯ рдФрд░ рдЕрдиреНрдп рдЙрдиреНрдирдд рд░реВрдЯрд┐рдВрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕рд╣рд┐рдд, рдкреИрд╕ рдореЗрдВ рдирд┐рд╣рд┐рдд рдЧреБрдгреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИред
рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реА рдлрд▓реА рдЧрд╛рдпрдм рд╣реЛ рдЧрдИ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдирд╣реАрдВ рдерд╛):
kubectl get pod -n default No resources found. kubectl get deployment -n default NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE helloworld-go-fjp75-deployment 0 0 0 0 9m46s
рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЙрди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред рдЬреНрдЮрд╛рдд рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП URL рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдФрд░ рдЖрд╕рд╛рди рд╣реИ
glooctl proxy url --name knative-external-proxy http://35.190.151.188:80
glooctl
рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛, glooctl
рдХреНрдпреВрдм рд╕реЗрд╡рд╛ рдореЗрдВ рдкрддреЗ рдФрд░ рдкреЛрд░реНрдЯ рдХреА рдЬрд╛рд╕реВрд╕реА glooctl
рд╕рдХрддреЗ рд╣реИрдВ:
kubectl get svc -n gloo-system knative-external-proxy NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE knative-external-proxy LoadBalancer 10.16.11.157 35.190.151.188 80:32168/TCP,443:30729/TCP 77m
CURL рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдбреЗрдЯрд╛ рдЪрд▓рд╛рдПрдВ:
curl -H "Host: helloworld-go.default.example.com" http://35.190.151.188 Hello Knative user!
рдЧреНрд▓реЛрдмреЛ рдХреЗ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди, рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╡рд╛рд▓реЗ рдПрдкреАрдЖрдИ рдЧреЗрдЯрд╡реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдмреЙрдХреНрд╕-рдЖрдзрд╛рд░рд┐рдд рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЪрд╛рдХреВ рдирд┐рдХрдЯ-рдкрд╛рд╕рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдиреЛрдЯ рдиреЗ рдХреЗрд╡рд▓ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдЪрд╛рдХреВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рд╡реНрдпрд╛рдкрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЫреВ рд▓рд┐рдпрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдВ рднреАред рдЗрд╕реА рддрд░рд╣ рдЧреНрд▓реЛ рдХреЗ рд╕рд╛рде!
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЪрд╛рдХреВ рдЕрднреА рднреА рдПрдХ рдпреБрд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдЙрдирдХреА рдЯреАрдо рд╣рд░ рдЫрд╣ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░рддреА рд╣реИ, рдЙрдиреНрдирдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреАрдПрд▓рдПрд╕ рддреИрдирд╛рддреА, рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реНрдХреЗрд▓рд┐рдВрдЧред рдПрдХ рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдХрдИ рдХреНрд▓рд╛рдЙрдб рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╣рдпреЛрдЧ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рд╛рде рд╣реА Google рдХреА рдУрд░ рд╕реЗ рдирдП рдХреНрд▓рд╛рдЙрдб рд░рди рдСрдлрд╝рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╕рд░реНрд╡рд░рд▓реЗрд╕ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдФрд░ рдкрд╛ рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЪрд╛рдХреВ рдореБрдЦреНрдп рд╡рд┐рдХрд▓реНрдк рдмрди рд╕рдХрддрд╛ рд╣реИред рдЦрдмрд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ!
рд╕рд╛рдЙрдердмреНрд░рд┐рдЬ рд╕реЗ
рдкрд╛рдардХреЛрдВ рдХреА рд░рд╛рдп рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрдкрд╕реЗ рдЪрд╛рдХреВ, рдХреБрдмреЗрд░рдиреЗрдЯ, рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓реЗрдЦреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ: