ΠΠ·ΠΌΠΈΠ½Π°Ρ Π° Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈ 4 Π΄Π½ΠΈ, ΠΎΡΠΊΠ°ΠΊΡΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ , Π° Π²ΠΎΠ·ΡΡ ΠΎΡΠ΄Π°Π²Π½Π° Π½Π΅ Π΅ ΡΠ°ΠΌ β Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°, Π° HAProxy-WI ΡΠ΅ ΡΡΡΠ΅ΠΌΠΈ Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΡΠ°Π·ΠΈ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ. ΠΠ° Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π±Π΅ΡΠ΅ ΡΠ²ΡΡΡΠ΅Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ° ΠΈ ΡΠ΅Π³Π° ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅: Π΄ΠΎΠ±ΡΠ΅ Π΄ΠΎΡΠ»ΠΈ ΠΏΠΎΠ΄ "ΠΊΠ°Ρ".

1. Π©Π΅ Π·Π°ΠΏΠΎΡΠ½Π° Ρ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΡΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β Π΄ΠΈΠ·Π°ΠΉΠ½ΡΡ. Π‘ΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½ Π²ΡΠΈΡΠΊΠΎ ΡΡΠ°Π½Π° ΠΏΠΎ-Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»Π½ΠΎ :). Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅ Π² ΠΌΠ΅Π½ΡΡΠΎ ΡΡΠ°Π½Π°Ρ
Π° ΠΏΠΎ-ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ.
2. ΠΠΎΡΠ²ΠΈΡ Π° ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΡΡΠ²ΡΡ, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π° ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ. ΠΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:

3. ΠΠΎΡΠ²ΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Nginx! ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ°, ΠΊΠ°ΠΊΡΠΎ Ρ HAProxy, Π·Π° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΡΠΏΡ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΠΎ-ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π² Π±Π΅Π·ΠΏΠ»Π°ΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Nginx, ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅, ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈ Π²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΡΡ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈΡΠ΅, ΡΠ°Π±ΠΎΡΠ° ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ) Π½Π° HAProxy-WI Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° Nginx.

4. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²Π½Π΅Π΄ΡΠΈ ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π΅Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π·Π° HAProxy ΠΈ Nginx! Π’ΠΎΠΉ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ: Grafana, Prometheus ΠΈ Nginx ΠΈ HAProxy Π΅ΠΊΡΠΏΠΎΡΡΠ΅ΡΠΈ. ΠΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ»ΠΈΠΊΠ° ΠΈ Π΄ΠΎΠ±ΡΠ΅ Π΄ΠΎΡΠ»ΠΈ Π² ΡΠ°Π±Π»Π°ΡΠ°!
5. Π ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΠΏΠΎΠ΄ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΠΏΠΎΡΡ ΠΌΠΈ ΠΊΠ°Π·Π°Ρ Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΠΈ, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° bash ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ Π΅ ΠΊΠ°ΡΠΎ Π΄Π° ΡΠΈ ΡΡΡΠ΅Π»ΡΡ Π² ΠΊΡΠ°ΠΊΠ°. Π‘ΡΠ³Π»Π°ΡΠ΅Π½ ΡΡΠΌ Ρ ΡΡΡ ΠΈ Π·Π°ΡΠΎΠ²Π° 95% ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΡΠ΅Π· Ansible. ΠΠ°ΠΈΡΡΠΈΠ½Π° ΡΠ΄ΠΎΠ±Π½ΠΎ, Π° ΠΈ ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ. Π‘Π°ΠΌΠΎ ΠΏΠ»ΡΡΠΎΠ²Π΅ ΠΎΠΊΠΎΠ»ΠΎ Π½Π΅Π³ΠΎ!
6. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠ»Π΅Π»ΠΎΡΠΎ Π² ΠΊΠΎΠ»Π΅Π»ΠΎΡΠΎ? ΠΠ΅ΡΠ΅ Π½Π° ΠΊΠΎΠ»Π΅Π»ΠΎΡΠΎ, ΡΠ°ΠΊΠ° Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅β¦ ΠΠ°Π»ΠΊΠΎ ΡΠ°ΠΊΠΎΠ²Π° Π²Π΅Π»ΠΎΡΠ΅ΠΏΠ΅Π΄ΡΠ΅, Ρ ΡΡΠΈ ΠΊΠΎΠ»Π΅Π»Π° ΡΠΈΠ³ΡΡΠ½ΠΎ: Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΎΡΡΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΏΠΎΡΡΠΎΠ²Π΅ Π·Π° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ, ΠΎΡΠ³ΠΎΠ²ΠΎΡ HTTP ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ° ΠΏΠΎ ΠΊΠ»ΡΡΠΎΠ²Π° Π΄ΡΠΌΠ°. ΠΠ°, Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π·Π°ΡΠΎΠ²Π° ΠΏΡΠΊ Π΅ Π»Π΅ΡΠ½ΠΎ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ π

7. ΠΠ½ΠΎΠ³ΠΎ Π΅ Π³ΠΎΡΠΈΠ½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ HAProxy RunTime API. ΠΠ°ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡΠΈΠ½Π°? Π’Π°ΠΊΠ°Π²Π° ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°ΠΌΠΎ Π½ΠΈΠ΅ ΠΈβ¦ ΠΌΠ°ΠΉ Π²ΡΠΈΡΠΊΠΎ. Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, Π·Π²ΡΡΠΈ ΠΌΠ°Π»ΠΊΠΎ ΠΏΡΠ΅ΡΠ΅Π½ΡΠΈΠΎΠ·Π½ΠΎ, Π½ΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° ΠΌΠΈ Ρ
Π°ΡΠ΅ΡΠ²Π° ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ. ΠΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎ Π»ΡΠ±ΠΈΠΌΠΈ ΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΡΠ°Π·Π΅Π½ΠΈ stick-table:

ΠΠΈΡΠ»Ρ, ΡΠ΅ ΡΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ. ΠΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ° ΡΠ²ΡΡΠ·Π°Π½Π° Ρ Π³ΡΡΠΏΠΈ, ΡΠΎΠ»ΠΈ, ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° Π±ΡΠ³ΠΎΠ²Π΅β¦ Π Π²ΡΡΡΠ½ΠΎΡΡ, Π·Π½Π°Π΅ΡΠ΅ Π»ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ? Π‘Π΅Π³Π° , ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠΌΠ° Π΄Π΅ΠΌΠΎ Π½Π° HAProxy-WI ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ changelog. ΠΡΠΎΡΡΠΎ ΠΌΠΎΠ»Ρ, Π±Π΅Π· "Ρ
Π°Π±ΡΠΎ Π΅ΡΠ΅ΠΊΡ", Π·Π°ΡΠΎΡΠΎ ΠΈΠΌΠ°ΠΌ ΡΠ»Π°Π±ΠΈΡΡΠΊ ΡΡΡΠ²ΡΡ Π·Π° ΡΠ°ΠΉΡΠ° ΠΈ Π΄Π΅ΠΌΠΎΡΠΎ. Π Π»ΠΈΠ½ΠΊ ΠΊΡΠΌ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
