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

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

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ,
рдбреЙрдХрд░ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо
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 рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ - рдПрд▓рд┐рдкреНрдЯрд┐рдХреНрд╕ )ред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдХреАрди-рд░рдирдЯрд╛рдЗрдо рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рд░рдирд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдкреНрд░реЛрдлрд╛рдЗрд▓, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореИрдирд┐рдлреЗрд╕реНрдЯ рдХреА рдПрдХ рд╕реВрдЪреА рдкрдврд╝рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЧреНрд░рд╣рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЕрддреНрдпрдВрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╡рд┐рддрд░рд┐рдд рдмреАрдорд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕реНрд╡рдпрдВ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред
- рдХреНрд▓рд╛рдЙрдб рдХреЗ рдПрдХрддреНрд░рд┐рдд рдиреЛрдбреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрд╡рдпрдВ рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд▓ рд░рдирдЯрд╛рдЗрдо ред
рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ
рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
/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
рдХрдорд╛рдВрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрд╕ рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдВрдХрдбрд╝реЗред
рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЗрд╕ рдкреНрд░рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЗрддрдиреА рдЫреЛрдЯреА рдЕрдЬрдЧрд░ рд▓рд┐рдкрд┐ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрднреА рднреА рдХреЗрд╡рд▓ рдПрдХ рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рджреВрд╕рд░реЗ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рднреА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдм рдЖрдк
рдбреЙрдХрд░ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░рднреВрдд рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЙрдХрдЯрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА
рдбреЙрдХрд░-рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЫрд╡рд┐рдпреЛрдВ (рдХрдВрдЯреЗрдирд░реЛрдВ) рдХрд╛ рдирд┐рдЬреА рднрдВрдбрд╛рд░ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ
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"
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ред
рдлреНрд▓рд╛рд╕реНрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ 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, . .