Как ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с 1 Π΄ΠΎ 100Β 000 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

Π§Π΅Ρ€Π΅Π· Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΡˆΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ стартапы: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΠΏΡ‹ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ·ΠΎ всСх сил пытаСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ сСрвиса.

Π­Ρ‚ΠΎ приятная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ Π² Π‘Π΅Ρ‚ΠΈ ΠΌΠ°Π»ΠΎ Ρ‡Ρ‘Ρ‚ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с нуля Π΄ΠΎ сотСн тысяч ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠΆΠ°Ρ€Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΈΠ»ΠΈ устранСниС ΡƒΠ·ΠΊΠΈΡ… мСст (Π° часто ΠΈ Ρ‚ΠΎ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ люди ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ довольно ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ ΠΏΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ своСго Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Π½Π΅Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎΠ΅.

ΠŸΠΎΠΏΡ‹Ρ‚Π°Π΅ΠΌΡΡ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ. ΠœΡ‹ собираСмся пошагово ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наш Π½ΠΎΠ²Ρ‹ΠΉ сайт для ΠΎΠ±ΠΌΠ΅Π½Π° фотографиями Graminsta с 1 Π΄ΠΎ 100Β 000 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ дСйствия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΄ΠΎ 10, 100, 1000, 10Β 000 ΠΈ 100Β 000 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ.

1 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ: 1 машина

ΠŸΠΎΡ‡Ρ‚ΠΈ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ Π²Π΅Π±-сайт ΠΈΠ»ΠΈ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

  • API
  • Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…
  • ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (само мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²Π΅Π±-сайт)

Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΡ‚ постоянныС Π΄Π°Π½Π½Ρ‹Π΅. API обслуТиваСт запросы ΠΊ этим Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ Π½ΠΈΡ…. ΠšΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

Π― ΠΏΡ€ΠΈΡˆΡ‘Π» ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°ΡΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ прилоТСния, Ссли с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ сущности ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ API.

Когда ΠΌΡ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, всС Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ смыслС это Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π½Π°ΡˆΡƒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ запускаСт Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, API ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

ВСорСтичСски, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ экзСмплярС DigitalOcean Droplet ΠΈΠ»ΠΈ AWS EC2, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
Как ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с 1 Π΄ΠΎ 100 000 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
Π‘ ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ сказанного, Ссли Π½Π° сайтС Π±ΡƒΠ΄Π΅Ρ‚ большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

10 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ: вынос Π‘Π” Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° управляСмыС слуТбы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Amazon RDS ΠΈΠ»ΠΈ Digital Ocean Managed Database, Ρ…ΠΎΡ€ΠΎΡˆΠΎ послуТит Π½Π°ΠΌ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π­Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡ€ΠΎΠΆΠ΅, Ρ‡Π΅ΠΌ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ хостинг Π½Π° ΠΎΠ΄Π½ΠΎΠΉ машинС ΠΈΠ»ΠΈ экзСмплярС EC2, Π½ΠΎ с этими слуТбами Π²Ρ‹ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ мноТСство ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пригодятся Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ: Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ нСскольким Ρ€Π΅Π³ΠΈΠΎΠ½Π°ΠΌ, Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ чтСния, автоматичСскоС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выглядит систСма:
Как ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с 1 Π΄ΠΎ 100 000 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

100 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ: вынос ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ. Π’Ρ€Π°Ρ„ΠΈΠΊ становится Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя вынСсти ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ сущностСй являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ аспСктом построСния ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ прилоТСния. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ΄Π½Π° Ρ‡Π°ΡΡ‚ΡŒ систСмы ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ большС Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Ρ‘ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ сСрвиса Π½Π° основС спСцифичСских шаблонов Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠ½Π΅ нравится ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ API. Π­Ρ‚ΠΎ позволяСт ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ΄ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ: Π²Π΅Π±, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Π΅Π±, iOS, Android, дСсктопныС прилоТСния, сторонниС сСрвисы ΠΈ Ρ‚.Β Π΄. ВсС ΠΎΠ½ΠΈΒ β€” просто ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ API.

НапримСр, сСйчас наши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ‡Π°Ρ‰Π΅ всСго просят Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Если Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ сущности ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ API, Ρ‚ΠΎ это становится ΠΏΡ€ΠΎΡ‰Π΅.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит такая систСма:

Как ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с 1 Π΄ΠΎ 100 000 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

1000 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ: Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

Π”Π΅Π»Π° ΠΈΠ΄ΡƒΡ‚ Π½Π° Π»Π°Π΄. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Graminsta Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ всё большС Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ рСгистраций Ρ‚ΠΎΠΆΠ΅ растёт. Наш ΠΎΠ΄ΠΈΠ½ΠΎΠΊΠΈΠΉ API-сСрвСр с Ρ‚Ρ€ΡƒΠ΄ΠΎΠΌ справляСтся со всСм Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ. НуТно большС ΠΆΠ΅Π»Π΅Π·Π°!

Балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈΒ β€” ΠΎΡ‡Π΅Π½ΡŒ мощная концСпция. ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ идСя Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ставим балансировщик ΠΏΠ΅Ρ€Π΅Π΄ API, Π° ΠΎΠ½ распрСдСляСт Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ экзСмплярам слуТбы. Π’Π°ΠΊ осущСствляСтся Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ добавляСм большС сСрвСров с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ, увСличивая количСство запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ.

ΠœΡ‹ собираСмся Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ балансировщики Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ API. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ нСсколько инстансов, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ΄ API ΠΈ ΠΊΠΎΠ΄ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запросы ΠΊ Ρ‚ΠΎΠΌΡƒ сСрвСру, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ мСньшС Π½Π°Π³Ρ€ΡƒΠΆΠ΅Π½.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ прСимущСство — ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ. Когда ΠΎΠ΄ΠΈΠ½ экзСмпляр Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· строя (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, пСрСгруТаСтся ΠΈΠ»ΠΈ ΠΏΠ°Π΄Π°Π΅Ρ‚), Ρ‚ΠΎ Ρƒ нас ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π½Π° входящиС запросы. Если Π±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π» СдинствСнный экзСмпляр, Ρ‚ΠΎ Π² случаС сбоя ΡƒΠΏΠ°Π»Π° Π±Ρ‹ вся систСма.

Балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт автоматичСскоС ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π³ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ количСство инстансов ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΈΠΊΠΎΠ²ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ, ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ спят.

Π‘ балансировщиком Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ API ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ практичСски Π΄ΠΎ бСсконСчности, просто добавляСм Π½ΠΎΠ²Ρ‹Π΅ экзСмпляры ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ увСличСния количСства запросов.

Как ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с 1 Π΄ΠΎ 100 000 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ наша систСма ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ PaaS, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Heroku ΠΈΠ»ΠΈ сСрвис Elastic Beanstalk Π² AWS (поэтому ΠΎΠ½ΠΈ Ρ‚Π°ΠΊ популярны). Heroku ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π‘Π” Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ хост, управляСт балансировщиком Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с автоматичСским ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ позволяСт Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ API. Π­Ρ‚ΠΎ отличная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Heroku для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ стартапов Π½Π° Ρ€Π°Π½Π½Π΅ΠΉ стадии β€” всС Π±Π°Π·ΠΎΠ²Ρ‹Π΅ сСрвисы Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ.

10 000 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ: CDN

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, слСдовало ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с самого Π½Π°Ρ‡Π°Π»Π°. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° запросов ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ слишком Π½Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ наши сСрвСры.

На Π΄Π°Π½Π½ΠΎΠΌ этапС Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ сСрвис хранСния статичСского ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°Β β€” ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ (AWS S3 ΠΈΠ»ΠΈ Digital Ocean Spaces). Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, наш API Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠ°ΠΊ Π²Ρ‹Π΄Π°Ρ‡Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π·Π°ΠΊΠ°Ρ‡ΠΊΠ° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° сСрвСр.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ прСимущСство ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ хостинга β€” это CDN (Π² AWS это Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ называСтся Cloudfront, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ). CDN автоматичСски ΠΊΡΡˆΠΈΡ€ΡƒΠ΅Ρ‚ наши изобраТСния Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ… ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ.

Π₯отя наш основной Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½ Π² Огайо, Π½ΠΎ Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ запросит ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π―ΠΏΠΎΠ½ΠΈΠΈ, Ρ‚ΠΎ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ сдСлаСт копию ΠΈ сохранит Π΅Ρ‘ Π² своём японском Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π΅. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ, ΠΊΡ‚ΠΎ запросит это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π―ΠΏΠΎΠ½ΠΈΠΈ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π΅Π³ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠ°ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· всю ΠΏΠ»Π°Π½Π΅Ρ‚Ρƒ.

Как ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с 1 Π΄ΠΎ 100 000 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

100 000 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ: ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ уровня Π΄Π°Π½Π½Ρ‹Ρ…

CDN ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³: Ρ‚Ρ€Π°Ρ„ΠΈΠΊ растёт ΠΏΠΎΠ»Π½Ρ‹ΠΌ Ρ…ΠΎΠ΄ΠΎΠΌ. Π—Π½Π°ΠΌΠ΅Π½ΠΈΡ‚Ρ‹ΠΉ Π²ΠΈΠ΄Π΅ΠΎΠ±Π»ΠΎΠ³Π΅Ρ€ Мэвид ΠœΠΎΠ±Ρ€ΠΈΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ зарСгистрировался Ρƒ нас ΠΈ запостил свою «стори», ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ говорят. Благодаря балансировщику Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ использования CPU ΠΈ памяти Π½Π° сСрвСрах API дСрТится Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ (Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ Π΄Π΅ΡΡΡ‚ΡŒ инстансов API), Π½ΠΎ ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ² Π½Π° запросы… ΠΎΡ‚ΠΊΡƒΠ΄Π° взялись эти Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ?

НСмного покопавшись Π² ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°Ρ…, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ CPU Π½Π° сСрвСрС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π½Π° 80-90%. ΠœΡ‹ Π½Π° ΠΏΡ€Π΅Π΄Π΅Π»Π΅.

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ слоя Π΄Π°Π½Π½Ρ‹Ρ…, вСроятно, самая слоТная Ρ‡Π°ΡΡ‚ΡŒ уравнСния. Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ API ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ запросы Π±Π΅Π· сохранСния состояния (stateless), поэтому ΠΌΡ‹ просто добавляСм большС инстансов API. Но с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ получится. ΠœΡ‹ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ популярных рСляционных систСмах управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (PostgreSQL, MySQL ΠΈ Π΄Ρ€.).

ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Один ΠΈΠ· самых простых способов ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ нашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…Β β€” ввСсти Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚: ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ кэша. НаиболСС распространённый способ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡΒ β€” Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ записСй Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Redis ΠΈΠ»ΠΈ Memcached. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΎΠ±Π»Π°ΠΊΠΎΠ² Π΅ΡΡ‚ΡŒ управляСмая вСрсия Ρ‚Π°ΠΊΠΈΡ… сСрвисов: Elasticache Π½Π° AWS ΠΈ Memorystore Π½Π° Google Cloud.

Кэш ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° слуТба Π΄Π΅Π»Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΊ Π‘Π” для получСния ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. По сути, ΠΌΡ‹ обращаСмся ΠΊ Π±Π°Π·Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, сохраняСм ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΊΡΡˆΠ΅Β β€” ΠΈ большС Π΅Ρ‘ Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°Π΅ΠΌ.

НапримСр, Π² Π² нашСм сСрвисС Graminsta ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° страницу профиля Π·Π²Π΅Π·Π΄Ρ‹ ΠœΠΎΠ±Ρ€ΠΈΠΊΠ°, сСрвСр API Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π² Π‘Π” ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· Π΅Π³ΠΎ профиля. Π­Ρ‚ΠΎ происходит снова ΠΈ снова. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ информация профиля ΠœΠΎΠ±Ρ€ΠΈΠΊΠ° Π½Π΅ мСняСтся ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС, Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

Π‘ΡƒΠ΄Π΅ΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈΠ· Π‘Π” Π² Redis ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ user:id со сроком дСйствия 30 сСкунд. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠœΠΎΠ±Ρ€ΠΈΠΊΠ°, ΠΌΡ‹ сначала провСряСм Redis, ΠΈ Ссли Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ, просто ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΈΡ… прямо ΠΈΠ· Redis. Π’Π΅ΠΏΠ΅Ρ€ΡŒ запросы ΠΊ самому популярному ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŽ Π½Π° сайтС практичСски Π½Π΅ Π½Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ Π½Π°ΡˆΡƒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….

Π”Ρ€ΡƒΠ³ΠΎΠ΅ прСимущСство Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° сСрвисов ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΏΡ€ΠΎΡ‰Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ сСрвСры Π‘Π”. Π£ Redis Π΅ΡΡ‚ΡŒ встроСнный Ρ€Π΅ΠΆΠΈΠΌ кластСра Redis Cluster. Подобно балансировщику Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ1, ΠΎΠ½ позволяСт Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ кэш Redis ΠΏΠΎ нСскольким машинам (ΠΏΠΎ тысячам сСрвСров, Ссли Π½ΡƒΠΆΠ½ΠΎ).

ΠŸΠΎΡ‡Ρ‚ΠΈ всС ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Π΅ прилоТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, это Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ быстрого API. УскорСниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ β€” всё это Π²Π°ΠΆΠ½ΠΎ, Π½ΠΎ Π±Π΅Π· кэша практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСрвис Π΄ΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π Π΅ΠΏΠ»ΠΈΠΊΠΈ чтСния

Когда количСство запросов ΠΊ Π‘Π” сильно возросло, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‰ΡŒΒ β€” Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ чтСния Π² систСмС управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ описанных Π²Ρ‹ΡˆΠ΅ управляСмых слуТб это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ. Π Π΅ΠΏΠ»ΠΈΠΊΠ° чтСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Π² основной Π‘Π” ΠΈ доступна для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² SELECT.

Π’ΠΎΡ‚ наша систСма сСйчас:

Как ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с 1 Π΄ΠΎ 100 000 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ дСйствия

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ слуТбы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. НапримСр, Ссли ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Websockets, Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Websockets Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ слуТбу. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Ρ‘ Π½Π° Π½ΠΎΠ²Ρ‹Ρ… инстансах Π·Π° собствСнным балансировщиком Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Π²Π΅Ρ€Ρ… ΠΈ Π²Π½ΠΈΠ· Π² зависимости ΠΎΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… соСдинСний Websockets ΠΈ нСзависимо ΠΎΡ‚ количСства HTTP-запросов.

Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с ограничСниями Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π”. ИмСнно Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡˆΠ°Ρ€Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Оба ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов, Π·Π°Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π‘Π” практичСски Π΄ΠΎ бСсконСчности.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСрвис ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ Π²Ρ€ΠΎΠ΄Π΅ New Relic ΠΈΠ»ΠΈ Datadog. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ запросы ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π³Π΄Π΅ трСбуСтся ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅. По ΠΌΠ΅Ρ€Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° поискС ΡƒΠ·ΠΊΠΈΡ… мСст ΠΈ ΠΈΡ… устранСнии — часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ².

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ

Π­Ρ‚ΠΎΡ‚ пост Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Ρ‘Π½ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΌΠΎΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… постов ΠΎ высокой ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ. Π― Ρ…ΠΎΡ‚Π΅Π» Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ для Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… стадий ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΎΡ‚Π²ΡΠ·Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π΅Π½Π΄ΠΎΡ€Π°. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅, Ссли ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ΅Ρ‚Π΅ΡΡŒ этой Ρ‚Π΅ΠΌΠΎΠΉ.

Бноски

  1. НСсмотря Π½Π° ΡΡ…ΠΎΠΆΠ΅ΡΡ‚ΡŒ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния распрСдСлСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими инстансами, базовая рСализация кластСра Redis сильно отличаСтся ΠΎΡ‚ балансировщика Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. [Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ]

Как ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с 1 Π΄ΠΎ 100 000 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com