рдЖрдкрдХрд╛ рдХреЛрдХреАрди Yandex Cloud Platform

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



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


рдЖрдЗрдП рдПрдХ рдЫреЛрдЯреЗ рдмрд╛рджрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдлреНрд▓рд╛рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдмрд╛рджрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ:


рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ, рд╣рдо рдордВрдЪ рдХреА рд╕рдлрд▓рддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗред



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдбреЙрдХрд░ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 3.8 рдХреЗ рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рд╛рде 5 (рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд╛рд▓реЗ) рдорд╢реАрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рднрдВрдбрд╛рд░ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде /etc/apt/source.list.d/reverbrain.list рдмрдирд╛рдПрдБ:
deb http://repo.reverbrain.com/precise/ current/amd64/ deb http://repo.reverbrain.com/precise/ current/all/ 

рдХреБрдВрдЬреА рдЦреАрдВрдЪреЛ:
 curl -O http://repo.reverbrain.com/REVERBRAIN.GPG sudo apt-key add REVERBRAIN.GPG 

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреЛрдХреАрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреМрди рд╕реЗ рдкреИрдХреЗрдЬ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
 apt-get update apt-cache search cocaine 


рдПрд▓рд┐рдкреНрдЯрд┐рдХреНрд╕ рдкрд░ 5 рдорд┐рдирдЯ


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

рдЖрджреЗрд╢реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 sudo apt-get install elliptics=2.24.14.31 elliptics-client=2.24.14.31 mkdir /tmp/history/ && mkdir /tmp/root cp /usr/share/doc/elliptics/examples/ioserv.conf ./tst_ioserv.conf 


Tst_ioserv.conf рдореЗрдВ рдЖрдЧреЗ рд╣рдореЗрдВ рд╢рд╛рдмреНрджрд┐рдХ 3 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рддреЛ:
 group = 1 addr = localhost:1025:2-0 192.168.50.201:1025:2-1 //    IP indexes_shard_count = 16 

рдЙрд╕рдХреЗ рдмрд╛рдж, рд░рди:
 dnet_ioserv -c tst_ioserv.conf 



рдХреЛрдХреАрди-рд░рдирдЯрд╛рдЗрдо + рдбреЛрдХрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛

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

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

рдХрдВрдЯреЗрдирд░реАрдХрд░рдг рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ:

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

рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
 sudo apt-get install cocaine-runtime libcocaine-core2 libcocaine-plugin-docker2 libcocaine-plugin-elliptics=2.24.14.31 elliptics-client=2.24.14.31 



рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЛрдХреАрди-рдЙрдкрдХрд░рдг рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ PyPI , рдорд╛рдирдХ рдкрд╛рдпрдерди рдкреИрдХреЗрдЬ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╣реИред

рдЖрдкрдХреЛ msgpack рдХреЗ рд▓рд┐рдП Python рдореЗрдВ рдмрд╛рдЗрдВрдбрд░реНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
 sudo apt-get install msgpack-python 


рдФрд░ рдлрд┐рд░ рдХреЛрдХреАрди-рдФрдЬрд╛рд░ ред
 sudo pip install cocaine-tools 


рдХреНрдпреЛрдВ msg-python PyPI рд╕реЗ рдирд╣реАрдВ рд╣реИ?
Msgpack-python рдореЗрдВ рджреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред рдПрдХ рд╢реБрджреНрдз-рдкрд╛рдпрдерди рд╣реИ, рджреВрд╕рд░рд╛ рд╕рд╛рдЗрдерди рдореЗрдВ рд╣реИред PyPI рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдмрд╛рдЗрдирд░реА рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╕рд╛рдл рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреБрд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИрдВред рд╣рдордиреЗ рд╕рд╛рдЗрдерди рдХрд╛ рдорд╛рдирдХ рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдпрд╛ред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдЧрд╛рдпрдм рд╣реИрдВ рдФрд░ рдПрдХ рд╕рд╛рдл рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ - рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ - рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрд╢рд╛ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рдерд╛, рдФрд░ рд╢рд╛рдпрдж рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕реНрдерд┐рддрд┐ рд╕рд╣реА рд╣реЛ рдЬрд╛рдПрдЧреАред


рд╣рдо рдбреЙрдХрдЯрд░ рдХреЛ рдХрд┐рд╕реА рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 curl -s https://get.docker.io/ubuntu/ | sudo sh 



рдкреИрдХреЗрдЬреЛрдВ рдХреА рд╕рдлрд▓ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдХреЛрдХреАрди-рд░рдирдЯрд╛рдЗрдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рдХреЛрдХреАрди-рд░рдирдЯрд╛рдЗрдо рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
 sudo service cocaine-runtime stop 


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ /etc/cocaine/cocaine-default.conf рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 { "version": 2, "paths": { "plugins": "/usr/lib/cocaine", "runtime": "/var/run/cocaine" }, "services": { "logging": { "type": "logging" }, "storage": { "type": "storage", "args": { "backend": "core" } }, "node": { "type": "node", "args": { "runlist": "default" } } }, "storages": { "core": { "type": "files", "args": { "path": "/var/lib/cocaine" } }, "cache": { "type": "files", "args": { "path": "/var/cache/cocaine" } } }, "loggers": { "core": { "type": "syslog", "args": { "identity": "cocaine", "verbosity": "info" } } } } 


рдЪрд▓реЛ рдмрд╛рджрд▓ рд╡рд┐рдиреНрдпрд╛рд╕ рдмрдирд╛рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 2 рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
  1. рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ - рдПрд▓рд┐рдкреНрдЯрд┐рдХреНрд╕ )ред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдХреАрди-рд░рдирдЯрд╛рдЗрдо рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рд░рдирд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдкреНрд░реЛрдлрд╛рдЗрд▓, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореИрдирд┐рдлреЗрд╕реНрдЯ рдХреА рдПрдХ рд╕реВрдЪреА рдкрдврд╝рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЧреНрд░рд╣рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЕрддреНрдпрдВрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╡рд┐рддрд░рд┐рдд рдмреАрдорд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕реНрд╡рдпрдВ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред
  2. рдХреНрд▓рд╛рдЙрдб рдХреЗ рдПрдХрддреНрд░рд┐рдд рдиреЛрдбреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрд╡рдпрдВ рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд▓ рд░рдирдЯрд╛рдЗрдо ред

рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, /etc/cocaine/cocaine-cloud.conf )ред

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

  "network" : { "group": "224.168.2.9" }, "services": { ... } 


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

 "storage": { "type": "elliptics" }, "storages" : { "core": { "type": "elliptics", "args": { "nodes" : { "192.168.50.201" : 1025 }, "io-thread-num" : 8, "wait-timeout" : 30, "check-timeout" : 60, "net-thread-num" : 8, "groups" : [1], "verbosity" : 2 } } } 


рдПрд▓рд┐рдкреНрдЯрд┐рдХреНрд╕ рднрдВрдбрд╛рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕реА рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, рд╣рдорд╛рд░реЗ рдкреИрдХреЗрдЬ рд╕реЗ рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ / usr / lib / рдХреЛрдХреАрди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХреЛрдХреЗрди-рд░рдирдЯрд╛рдЗрдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд▓рд┐рдП рджрд┐рдЦрддрд╛ рд╣реИред

рдЕрдм рд╣рдо рдХреЛрдХреАрди рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░реЗрдВрдЧреЗред рдмрдирд╛рдиреЗ
/etc/default/cocaine-runtime :
CONFIG_PATH = "/ etc / рдХреЛрдХреАрди / рдХреЛрдХреАрди-рдХреНрд▓рд╛рдЙрдб редconf"

рдирдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХреЛрдХреАрди-рд░рдирдЯрд╛рдЗрдо рдЪрд▓рд╛рдПрдВ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред


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

рдЖрдк cocaine-tool info рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдиреЛрдб рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЕрднреА рддрдХ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдпрд╛рдж рд░рдЦреЗрдВ - рдпрд╣ рдмрд╣реБрдд рдЬрд▓реНрдж рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред

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


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

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЪрд▓рд╛рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реИред рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рдмрд╛рджрд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреАред рдЕрдкрдиреА рдЖрд╕реНрддреАрди рдКрдкрд░ рд░реЛрд▓, рдЪрд▓реЛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдУред

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

рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред
 git clone git@github.com:cocaine/cocaine-framework-python.git -b v0.11 cd cocaine-framework-python/examples/flask/ 



рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ .json рдпрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИ:
 { "slave": "main.py" } 


рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЪрд▓рд╛рдирд╛ рд╣реИред рдЖрдк рдкрд░реНрдпрд╛рд╡рд░рдг рднреА рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдЬрд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕рдХрд╛ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛:
 cocaine-tool app upload --name example 

рдХреЛрдХреАрди-рдЯреВрд▓ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреИрдХ рдХрд░реЗрдЧрд╛ рдФрд░ рдХреНрд▓рд╛рдЙрдб рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдЧрд╛ред рдФрд░ рдлрд┐рд░ рд╣рдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реВрдЪреА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред



рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ, рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди! рдореБрдЦреНрдп рдмрд╛рдд рдлреНрд▓рд╛рд╕реНрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдирд╣реАрдВ рднреВрд▓рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдХрдВрдЯреЗрдирд░ рдХреЗ рдмрд┐рдирд╛ рдЪрд▓рдиреЗ рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реИред
 sudo apt-get install python-flask 


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

рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЦрд╛рд▓реА JSON {} ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

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


рдЕрдВрдд рдореЗрдВ, рд╡рд╣ рдХреНрд╖рдг рдЖ рдЧрдпрд╛ рд╣реИ рдЬрдм рдЖрдк рд╕реНрд╡рд┐рдЪ рдХреЛ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:
 cocaine-tool app start --name example --profile default 



рдЕрдм cocaine-tool info рдХрдорд╛рдВрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрд╕ рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдВрдХрдбрд╝реЗред

рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЗрд╕ рдкреНрд░рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЗрддрдиреА рдЫреЛрдЯреА рдЕрдЬрдЧрд░ рд▓рд┐рдкрд┐ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
 #!/usr/bin/env python from cocaine.services import Service app = Service("example") print(app.enqueue("write", "DATA").get()) print(app.enqueue("read", "DATA").get()) 


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

рдбреЙрдХрдЯрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА


рдбреЙрдХрд░-рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЫрд╡рд┐рдпреЛрдВ (рдХрдВрдЯреЗрдирд░реЛрдВ) рдХрд╛ рдирд┐рдЬреА рднрдВрдбрд╛рд░ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ docker рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

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

рдбреЙрдХрд░-рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдбреЙрдХрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдбреЙрдХрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдКрдкрд░ рджреЗрдЦреЗрдВ) рдФрд░ рдХрдорд╛рдВрдб рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдЫрд╡рд┐ рджреЗрдВред
 sudo docker run -p 5000:5000 registry 


рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЫрд╡рд┐ рдХреЛ рдкрд╣рд▓реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА, рдХреИрд╢реНрдб рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд▓реА рдмрд╛рд░ рдпрд╣ рдЬрд▓реНрджреА рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдПрдХ рдмрд╛рд░ рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдбреЙрдХрд░-рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкреЛрд░реНрдЯ 5000 рдкрд░ рд╕реБрдиреЗрдЧреАред рд╣рдордиреЗ рдЙрд╕реЗ рдкрд┐рдВрдЧ рдХрд┐рдпрд╛:
 curl "http://192.168.50.4:5000/_ping" 

рдпрд╣ рд╕реЗрдЯрдЕрдк рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рддреИрдирд╛рддреА рдХрд░реЗрдВ


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

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

рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЖрдкрдХреЛ рдЗрдиреНрд╕реБрд▓реЗрд╢рди рдбреЙрдХрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВред
 { "queue-limit": 1000, "pool-limit": 10, "isolate": { "type": "docker", "args": { "memory_limit": 1000000000, "endpoint": "unix:///var/run/docker.sock", "registry": "registry.cloud.net:5000", "cpu_shares": 0 } }, "concurrency": 200 } 

рд╣рдордиреЗ рдлрд╛рдЗрд▓ рдХреЛ docker-profile.json рдирд╛рдо рд╕реЗ рдлрд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рд╣реИ, рдЗрд╕реЗ docker-profile рдирд╛рдо рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ
 cocaine-tool profile upload --name docker-profile --profile=docker-profile.json 


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реБрдЖ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╣реИ, рдФрд░ рдХреНрд▓рд╛рдЙрдб рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
 sudo cocaine-tool app upload --docker=unix:///var/run/docker.sock --registry=registry.cloud.net:5000 --manifest manifest-docker.json --name example-docker --timeout 20000 

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


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

рдПрдХрддреНрд░реАрдХрд░рдг рдиреЛрдб рд╡рд┐рдиреНрдпрд╛рд╕


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

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

рд╢рдмреНрджреЛрдВ рд╕реЗ рдХрд░реНрдореЛрдВ рддрдХред рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
 sudo apt-get install cocaine-runtime libcocaine-core2 libcocaine-plugin-ipvs2 libcocaine-plugin-elliptics=2.24.14.31 elliptics-client=2.24.14.31 



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

рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдХреЗ рдЙрдк-рднрд╛рдЧ рдХреЗ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдХреНрд╢рди рдХрд╛ рдЬреЛрдбрд╝ рд░рдирдЯрд╛рдЗрдо рдХреЛ рдПрдХ рд╕рдореБрдЪреНрдЪрдп рдиреЛрдб рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐, рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд┐рдЧ рдХреА рдХреЙрдкреА рдХреЛ рд╕рд╣реА рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рднрдВрдбрд╛рд░рдг рд╕реЗрд╡рд╛ рдХреЛ рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рд╕рдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ - рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЬрд▓реНрдж рд╣реА рд╣реЛрдЧреАред
  "network": { "group": "224.168.2.9", "gateway": { "type": "ipvs" // adhoc } }, "services"... 


sudo service cocane-runtime restart , рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:
 cocaine /usr/bin/cocaine-runtime --daemonize --configuration /etc/cocaine/cocaine-gateway.conf --pidfile /var/run/cocaine/runtime.pid 


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ (рдЖрдк рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдЖрдЗрдП рд▓реЙрдЧ рдЦреЛрд▓реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ syslog рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ)ред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рджреЛ рдиреЛрдбреНрд╕ рдХрд╛ рдХрдиреЗрдХреНрд╢рди рдкрдВрдЬреАрдХреГрдд рдерд╛, рдФрд░ рдлрд┐рд░ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред рдЖрдк рдЕрдкрдиреЗ рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЦреЛрдЬ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдХреЛрдХреАрди рд╕реЗ рджреЗрд╢реА-рдкреНрд░реЙрдХреНрд╕реА


рдХреЛрдХреАрди-рджреЗрд╢реА-рдкреНрд░реЙрдХреНрд╕реА рдЖрдкрдХреЛ HTTP рдкрд░ рдХреНрд▓рд╛рдЙрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИред
 apt-get install cocaine-native-proxy 


рдлрд┐рд░ рд╣рдореЗрдВ рд▓реЛрдХреЗрдЯрд░ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдПрдХрддреНрд░рд┐рдд рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдиреЛрдб рд╣реИред рдХрдбрд╝рд╛рдИ рд╕реЗ рдмреЛрд▓рддреЗ рд╣реБрдП, рд╡рд╣рд╛рдВ рдЖрдк рд╕реНрдерд╛рди рдФрд░ рдиреЛрдбреНрд╕ рдХреЗ рдкрддреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХрддреНрд░реАрдХрд░рдг рдореЛрдб рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдмреБрд░рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдиреЛрдб рдХреЛ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдкрд░ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реЛрдЧреАред рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг github.com/cocaine/cocaine-native-proxy/blob/master/README.md рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
 { "endpoints": [ "0.0.0.0:8080" ], "backlog": 2048, "threads": 2, "application": { "locators": ["192.168.50.103:10053"], "service_pool": 5, "reconnect_timeout": 180, "request_timeout": 5 } } 


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

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдЕрдм рдХреНрд▓рд╛рдЙрдб рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рдХреЗ рдкрддреЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ - 192.168.50.103ред
 #!/usr/bin/env python from cocaine.services import Service app = Service("example", host="192.168.50.103") print(app.enqueue("write", "DATA").get()) print(app.enqueue("read", "DATA").get()) 


рдлреНрд▓рд╛рд╕реНрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ http рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, HTTP рдкреНрд░реЙрдХреНрд╕реА рджреЛ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХрд┐рд╕ рдЗрд╡реЗрдВрдЯ рдХреЛ рдХрд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рднреЗрдЬрдирд╛ рд╣реИред рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдорд╛рдирддреА рд╣реИ рдХрд┐ рдкрд╛рд░рд┐рдд URL рдкреИрдЯрд░реНрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: ///tail?arg=1&args=2. URL . /tail?arg=1&args=2 . .

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .
///tail?arg=1&args=2. URL . /tail?arg=1&args=2 . .

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .
 ///tail?arg=1&args=2.  URL   .       /tail?arg=1&args=2 .      . 

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .
///tail?arg=1&args=2. URL . /tail?arg=1&args=2 . .

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .

///tail?arg=1&args=2. URL . /tail?arg=1&args=2 . .

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .

///tail?arg=1&args=2. URL . /tail?arg=1&args=2 . .

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .
 ///tail?arg=1&args=2.  URL   .       /tail?arg=1&args=2 .      . 

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .
///tail?arg=1&args=2. URL . /tail?arg=1&args=2 . .

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .
 ///tail?arg=1&args=2.  URL   .       /tail?arg=1&args=2 .      . 

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .
///tail?arg=1&args=2. URL . /tail?arg=1&args=2 . .

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .
 ///tail?arg=1&args=2.  URL   .       /tail?arg=1&args=2 .      . 

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .
///tail?arg=1&args=2. URL . /tail?arg=1&args=2 . .

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .

///tail?arg=1&args=2. URL . /tail?arg=1&args=2 . .

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .

///tail?arg=1&args=2. URL . /tail?arg=1&args=2 . .

X-Cocaine-Service, X-Cocaine-Event . nginx .

, :
curl "http://localhost:8080/read" -H "X-Cocaine-Service: example" -H "X-Cocaine-Event: http" curl "http://localhost:8080/example/http/read"



. , . , . . . , , (, 5%). . . , , .

. example , exampleGroup . example 1000 . .
service/locator: adding group 'exampleGroup'


exampleGroup . , , app.py hello:
@app.route('/') def hello(name=None): return "HELLO! I'm version #2"

, example2 .



curl "http://localhost:8080/exampleGroup/http/"

, . example2 0 , HTTP-proxy . , HTTP-proxy . , .


, , . , Cocaine , c, . .

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


All Articles