āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ˜āĻŸāĻ¨āĻžāĻ•ā§āĻ°āĻŽā§‡ āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻœāĻŋāĻ‡āĻ‰āĻ†āĻ‡ āĻ˛ā§‡āĻ–āĻž āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¨

āĻ†āĻŽāĻŋ āĻ˛āĻŋāĻ–ā§‡āĻ›āĻŋ āĻĻā§āĻ‡ āĻŦāĻ›āĻ° 4 āĻĻāĻŋāĻ¨ āĻšāĻ¯āĻŧā§‡ āĻ—ā§‡āĻ›ā§‡ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ˜āĻŸāĻ¨āĻžāĻ•ā§āĻ°āĻŽā§‡ āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻœāĻŋāĻ‡āĻ‰āĻ†āĻ‡ āĻ˛āĻŋāĻ–āĻŦā§‡āĻ¨, āĻāĻŦāĻ‚ āĻœāĻŋāĻ¨āĻŋāĻ¸āĻ—ā§āĻ˛āĻŋ āĻĻā§€āĻ°ā§āĻ˜āĻĻāĻŋāĻ¨ āĻ§āĻ°ā§‡ āĻ¨ā§‡āĻ‡ - āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āĻ°āĻ›ā§‡ āĻāĻŦāĻ‚ HAProxy-WI āĻāĻ‡ āĻĒā§āĻ°āĻŦāĻŖāĻ¤āĻžāĻŸāĻŋ āĻŽā§‡āĻ˛āĻžāĻ¨ā§‹āĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ›ā§‡āĨ¤ āĻĻā§āĻ‡ āĻŦāĻ›āĻ°ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ•āĻžāĻœ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻŦāĻ‚ āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ–āĻ¨ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻ˛āĻ¤ā§‡ āĻšāĻžāĻ‡, āĻ¤āĻžāĻ‡: "āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛" āĻ āĻ¸ā§āĻŦāĻžāĻ—āĻ¤āĻŽāĨ¤

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ˜āĻŸāĻ¨āĻžāĻ•ā§āĻ°āĻŽā§‡ āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻœāĻŋāĻ‡āĻ‰āĻ†āĻ‡ āĻ˛ā§‡āĻ–āĻž āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¨

1. āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻ†āĻŽāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻœāĻŋāĻ¨āĻŋāĻ¸āĻŸāĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻŦ āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¨āĻœāĻ° āĻ•ā§‡āĻĄāĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨āĨ¤ āĻ†āĻŽāĻžāĻ° āĻŽāĻ¤ā§‡, āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ†āĻ°āĻ“ āĻ¯ā§ŒāĻ•ā§āĻ¤āĻŋāĻ•, āĻŦā§‹āĻ§āĻ—āĻŽā§āĻ¯ āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• āĻāĻŦāĻ‚ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻšāĻ¯āĻŧā§‡ āĻ‰āĻ ā§‡āĻ›ā§‡ :)āĨ¤ āĻŽā§‡āĻ¨ā§ āĻŦāĻŋāĻ­āĻžāĻ—āĻ—ā§āĻ˛āĻŋ āĻ†āĻ°āĻ“ āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ—āĻ¤ āĻšāĻ¯āĻŧā§‡ āĻ‰āĻ ā§‡āĻ›ā§‡āĨ¤

2. āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§ƒāĻˇā§āĻ āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻĒā§ƒāĻĨāĻ• āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒ āĻŦā§‹āĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ•āĨ¤ āĻāĻŸāĻŋ āĻāĻ‡ āĻŽāĻ¤ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ:

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ˜āĻŸāĻ¨āĻžāĻ•ā§āĻ°āĻŽā§‡ āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻœāĻŋāĻ‡āĻ‰āĻ†āĻ‡ āĻ˛ā§‡āĻ–āĻž āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¨

3. Nginx āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡! āĻĻā§āĻ°ā§āĻ­āĻžāĻ—ā§āĻ¯āĻŦāĻļāĻ¤, Nginx-a-āĻāĻ° āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡āĻ° āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§‡āĻ° āĻĻāĻ°āĻŋāĻĻā§āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡ HAProxy-āĻāĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻ‡āĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻšāĻ¤ āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻ¤āĻŦā§‡ HAProxy-āĻāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ (āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž, āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻŦāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨, āĻ•āĻžāĻœ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ)āĨ¤ -WI āĻāĻ–āĻ¨āĻ“ nginx āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§āĨ¤

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ˜āĻŸāĻ¨āĻžāĻ•ā§āĻ°āĻŽā§‡ āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻœāĻŋāĻ‡āĻ‰āĻ†āĻ‡ āĻ˛ā§‡āĻ–āĻž āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¨

4. āĻ†āĻĒāĻ¨āĻŋ HAProxy āĻāĻŦāĻ‚ Nginx āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨! āĻāĻ¤ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡: Grafana, Prometheus āĻāĻŦāĻ‚ Nginx āĻāĻŦāĻ‚ HAProxy āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋāĻ•āĻžāĻ°āĻ•āĨ¤ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻŋāĻ• āĻāĻŦāĻ‚ āĻĄā§āĻ¯āĻžāĻļāĻŦā§‹āĻ°ā§āĻĄā§‡ āĻ¸ā§āĻŦāĻžāĻ—āĻ¤āĻŽ!

5. āĻ†āĻ—ā§‡āĻ° āĻĒā§‹āĻ¸ā§āĻŸā§‡āĻ° āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§‡, āĻ†āĻŽāĻžāĻ•ā§‡ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŦāĻžāĻ° āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¯ā§‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻžāĻļ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¨āĻŋāĻœā§‡āĻ° āĻĒāĻžāĻ¯āĻŧā§‡ āĻ—ā§āĻ˛āĻŋ āĻ•āĻ°āĻ›ā§‡āĨ¤ āĻ†āĻŽāĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŽāĻ¤ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ā§‡āĻ° 95% āĻāĻ–āĻ¨ āĻ‰āĻ¤ā§āĻ¤āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ‡ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ•, āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĨ¤ āĻšāĻžāĻ°āĻĒāĻžāĻļā§‡ āĻāĻ• āĻĒā§‡āĻļāĻžāĻĻāĻžāĻ°!

6. āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻšāĻžāĻ•āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻšāĻžāĻ•āĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¨āĻž? āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ‡āĻ¸āĻžāĻ‡āĻ•ā§‡āĻ˛ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻļāĻŋāĻļā§, āĻ¤āĻžāĻ‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻ¤ā§‡ ... āĻāĻ‡āĻ°āĻ•āĻŽ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻ¸āĻžāĻ‡āĻ•ā§‡āĻ˛, āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻ¤āĻŋāĻ¨ āĻšāĻžāĻ•āĻžāĻ°: āĻĒā§‹āĻ°ā§āĻŸ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§āĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§‹āĻ°ā§āĻŸāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž, āĻāĻ•āĻŸāĻŋ HTTP āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž, āĻāĻŦāĻ‚ āĻ•ā§€āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§āĻ¨ā§ˇ āĻšā§āĻ¯āĻžāĻ, āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻž āĻ¸āĻšāĻœ 🙂ā§ˇ

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ˜āĻŸāĻ¨āĻžāĻ•ā§āĻ°āĻŽā§‡ āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻœāĻŋāĻ‡āĻ‰āĻ†āĻ‡ āĻ˛ā§‡āĻ–āĻž āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¨

7. HAProxy RunTime API āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ–ā§āĻŦ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻ•āĻžāĻœāĨ¤ āĻāĻ¤ āĻļāĻžāĻ¨ā§āĻ¤ āĻ•ā§‡āĻ¨? āĻāĻŸāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻŦāĻ‚ ... āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§āĨ¤ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻāĻ•āĻŸā§ āĻ†āĻĄāĻŧāĻŽā§āĻŦāĻ°āĻĒā§‚āĻ°ā§āĻŖ āĻļā§‹āĻ¨āĻžāĻšā§āĻ›ā§‡, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻŋ āĻāĻŸāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¤āĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ‡ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°āĻŋāĨ¤ āĻāĻ•āĻ‡ āĻ¸āĻžāĻĨā§‡ āĻ¸ā§āĻŸāĻŋāĻ•-āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ˜ā§ƒāĻŖāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻāĻ‡āĻ°āĻ•āĻŽ āĻĻā§‡āĻ–āĻžāĻšā§āĻ›ā§‡:

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ˜āĻŸāĻ¨āĻžāĻ•ā§āĻ°āĻŽā§‡ āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻœāĻŋāĻ‡āĻ‰āĻ†āĻ‡ āĻ˛ā§‡āĻ–āĻž āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¨

āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§. āĻ—ā§āĻ°ā§āĻĒ, āĻ­ā§‚āĻŽāĻŋāĻ•āĻž, āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻāĻŦāĻ‚ āĻŦāĻžāĻ— āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻ°āĻŖ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻ…āĻ¨ā§‡āĻ• āĻ•āĻžāĻœ āĻ›āĻŋāĻ˛... āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŋ āĻœāĻžāĻ¨ā§‡āĻ¨? āĻāĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻžāĻ‡āĻŸ āĻ†āĻ›ā§‡, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ HAProxy-WI āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻŽā§‹ āĻ†āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ–ā§‹āĻāĻšāĻž āĻĻāĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻšā§‡āĻžā§āĻœāĻ˛āĻ— āĻ†āĻ›ā§‡āĨ¤ āĻļā§āĻ§ā§ āĻāĻ•āĻŸāĻŋ "āĻšā§āĻ¯āĻžāĻŦā§āĻ°ā§‹ āĻĒā§āĻ°āĻ­āĻžāĻŦ" āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¨ā§‡āĻ‡, āĻĻāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡, āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻ¸āĻžāĻ‡āĻŸ āĻāĻŦāĻ‚ āĻĄā§‡āĻŽā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻŦāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ†āĻ›ā§‡āĨ¤ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ˛āĻŋāĻ™ā§āĻ• GitHub

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨