ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ! Π― Mons Anderson, Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ
Π‘ΡΠ°ΡΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π°
- ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΡΡΡΠΎΠ΅Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Mail.ru, ΠΏΠΎΠ²Π΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΡΡΡΠΎΠΈΠ»ΠΈ S3-Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅;
- ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Mail.ru Cloud Storage;
- ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ΄Π΅Π»Π°Π½Ρ ΡΠ°Π³ΠΈ Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½;
- ΠΏΡΠΎ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ: ΡΠ΅ΠΉΠ»ΠΎΠ²Π΅Ρ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅;
- ΠΊΠ°ΠΊ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ΅ΡΠ°ΡΠ΄ΠΈΠ½Π³;
- Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎ ΡΠ°Π±ΠΎΡΡ Ρ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ.
ΠΡΠ»ΠΈ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠΈΡΠ°ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΡΡΡΠΎΠ΅Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Mail.ru, ΠΏΠΎΠ²Π΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΡΡΡΠΎΠΈΠ»ΠΈ S3-Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π°ΡΠ΅Π³ΠΎ S3 Π½Π°ΡΠ°Π»Π°ΡΡ ΠΏΠΎΠ²Π΅ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΠ±Π»Π°ΠΊΠ° Mail.ru, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΡΡΡΡΠΎΠ΅Π½ΠΎ ΠΈ ΡΡΠΎ ΡΠΌΠ΅Π΅Ρ.
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΎΠ±Π»Π°ΠΊΠ° Mail.ru ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Ρ Π΄ΠΈΡΠΊΠ°ΠΌΠΈ. Π ΡΡΠ΅Π΄Π½Π΅ΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ storage-ΡΠ΅ΡΠ²Π΅Ρ β ΡΡΠΎ 36 Π΄ΠΈΡΠΊΠΎΠ² ΠΏΠΎ 12β14 ΡΠ΅ΡΠ°Π±Π°ΠΉΡ. Π Π°Π½ΡΡΠ΅ Π΄ΠΈΡΠΊΠΈ Π±ΡΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅, Π½ΠΎ Π·Π° ΡΡΠΈ Π³ΠΎΠ΄Π° ΠΎΠ±ΡΠ΅ΠΌΡ Π΄ΠΈΡΠΊΠΎΠ² Π²ΡΡΠΎΡΠ»ΠΈ ΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΡΠΎ ΠΏΠΎΡΡΠΈ ΠΏΠΎΠ»ΠΏΠ΅ΡΠ°Π±Π°ΠΉΡΠ° ΡΡΡΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠΈΡΠΊΠΈ Ρ ΡΠ°Π·Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Β«ΠΏΠ°ΡΡΒ» (pair). ΠΠ°ΡΠ° β ΡΡΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠΉ unit Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎ ΡΡΡΠΈ, ΡΡΠΎ Π΄ΠΈΡΠΊ, ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΏΡΡΠΈ, Π³Π΄Π΅ ΠΌΠΎΠ³ΡΡ Π»Π΅ΠΆΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Ρ ΡΡΠ°ΠΌΠΈ.
ΠΠ°ΡΠ° β ΡΡΠΎ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΎΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΎΡΡ Π΄ΠΎ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½Π΅Π³ΠΎ Π΄Π½Ρ, Ρ ΠΎΡΡ ΡΠ΅ΠΉΡΠ°Ρ Π² ΠΏΠ°ΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° Π΄ΠΈΡΠΊΠ°. ΠΠΈΡΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 3/2.
ΠΠ°ΡΡ (pair) β Π΅Π΄ΠΈΠ½ΠΈΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΡΠ΅ ΠΏΠ°ΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² PairDB β ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ Tarantool. ΠΡΠ΅ Π±Π°Π·Ρ Π² Π½Π°ΡΠ΅ΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ°ΠΌΡΡ ΠΏΠ΅ΡΠ²ΡΡ , β ΡΡΠΎ Tarantool, Π΄ΡΡΠ³ΠΈΡ Π±Π°Π· ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ.
PairDB Ρ ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΠΏΠ°ΡΡ, ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠΊΠ°Π·Π°, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌΠ° Ρ ΠΎΠ΄ΠΈΡΡ Π½Π° ΠΏΠ°ΡΡ, Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ½ΠΈ ΠΈΠ»ΠΈ Π½Π΅Ρ. Π’ΠΎ Π΅ΡΡΡ PairDB β ΡΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠΈΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²ΡΠ΅Ρ Π΄ΠΈΡΠΊΠΎΠ² Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
Pair DB: Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ
ΠΠ° ΠΏΠ°ΡΠ°Ρ Ρ ΡΠ°Π½ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ, ΠΈ, ΡΡΠΎΠ±Ρ Π·Π½Π°ΡΡ, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ°ΡΠ΅ ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°ΠΉΠ» Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ, Π½ΡΠΆΠ½Π° Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π±Π°Π·Π° β FileDB. ΠΠ½Π° Ρ ΡΠ°Π½ΠΈΡ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ: ΡΠ°ΠΉΠ» ΡΠ°ΠΊΠΎΠΉ-ΡΠΎ Ρ ΡΠ°Π½ΠΈΡΡΡ Π½Π° ΠΏΠ°ΡΠ΅ ΡΠ°ΠΊΠΎΠΉ-ΡΠΎ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½ΡΠΆΠ½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ².
File DB: ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠ°ΠΉΠ»
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π²Π΅Π½ΠΎ β ΡΠ΅ΡΠ²ΠΈΡ Nylon, ΡΠΎΡΡΠ΅Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ Π²Ρ ΠΎΠ΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π· Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠ°ΠΊ Ρ PairDB, ΡΠ°ΠΊ ΠΈ Ρ FileDB. ΠΡΠΎ stateless-ΡΠ΅ΡΠ²ΠΈΡ, ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°ΡΠ΄ FileDB Π½ΡΠΆΠ½ΠΎ ΠΈΠ΄ΡΠΈ, Π·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΡ Π°ΠΊΡΠΈΠ²Π½Ρ, ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅Ρ.
Nylon: ΡΠΎΡΡΠ΅Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
Π’Π°ΠΊΠΆΠ΅ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡ β Streamer. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π²Π° HTTP-ΠΌΠ΅ΡΠΎΠ΄Π°: ΠΌΠ΅ΡΠΎΠ΄ PUT, ΡΡΠΎΠ±Ρ Π·Π°Π»ΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΈ ΠΌΠ΅ΡΠΎΠ΄ GET, ΡΡΠΎΠ±Ρ Π·Π°Π±ΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΠΎΡΡΡΠ΄Π°. HTTP β Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ Streamer’y, ΠΎΠ½ ΡΠ΅ΡΠ΅Π· Nylon ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ PairDB, Π²ΡΡΡΠ½ΡΠ΅Ρ, Π½Π° ΠΊΠ°ΠΊΡΡ ΠΏΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ», ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ WebDAV Π½Π° ΡΡΡ ΠΏΠ°ΡΡ.
ΠΠΎ ΡΡΡΠΈ, Π»ΡΠ±ΠΎΠΉ storage ΡΠ΅ΡΠ²Π΅Ρ β ΡΡΠΎ nginx ΠΏΠ»ΡΡ Π΄ΠΈΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΏΡΡΡΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ· Streamer Π·Π°Π»ΠΈΡΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ°ΠΉΠ», ΡΠ΄Π°Π»ΠΈΡΡ Π΅Π³ΠΎ, ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ. Π’ΠΎ Π΅ΡΡΡ ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ.
Streamer: ΡΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅
Π§ΡΠΎ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ S3-Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅
ΠΡΠ°ΠΊ, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΠ±ΡΠ΅Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ±ΡΠ°Π»ΠΈΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ S3-Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° PUT ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠ΄Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Ρ ΡΡ. Π‘ ΡΡΠΈΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠΉΡΠΈ ΠΈ Π·Π°Π±ΡΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ». ΠΠΎ ΡΡΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ S3. Π ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ S3, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π΅ΡΡΡ:
- Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ β Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²;
- ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ HTTP;
- Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ β Π±Π°ΠΊΠ΅ΡΡ;
- HTTP-S3 Endpoint. S3 ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ β Π±Π°ΠΊΠ΅ΡΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΡΠΊΡ Π²Ρ ΠΎΠ΄Π° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π±ΡΠ» Π½ΡΠΆΠ΅Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ. Π’Π°ΠΊΠΆΠ΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ ΡΡΠ°Π·Ρ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠΎΡΡΠ° ΡΠ΅ΡΠ²ΠΈΡΠ° Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡΡ.
ΠΠ΅ΡΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠ΅ΠΌΠΎΠ½, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ S3 API. ΠΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ S3 API Amazon, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ XML Π΄Π»Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ. ΠΠ°ΠΌ Π½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΡΠΎ-ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°ΡΡ, Π²ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΠΈ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ.
Π’Π°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ ΠΌΡ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Nginx. ΠΠ³ΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π»Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ SSL, Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°ΡΡΠ·ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π½Π° Lua (ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π»ΠΎΠ³Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΠ΅ΠΉΡΠΈΠ½Π³).
ΠΠ»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ S3 ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ±ΡΠ°Π»ΠΈ Tarantool. Π ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ Π΄Π΅ΠΌΠΎΠ½ S3 Ρ ΠΎΠ΄ΠΈΠ» Π² ΡΡΡ Π±Π°Π·Ρ, ΡΠ°ΠΌ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Ρ ΡΠ°Π½ΠΈΠ» Π² Π±ΠΎΠ»ΡΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π· Streamer.
Nginx + S3 API + ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅
ΠΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ S3. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π°ΠΊΠ΅Ρ β ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ°ΠΊΠ΅Ρ Π°Π΄ΡΠ΅ΡΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ ΠΎΡΡΠ° ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°. Π ΡΠ°ΠΌΠΊΠ°Ρ Π±Π°ΠΊΠ΅ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π±ΡΠ΄Π΅Ρ URL. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° β blob, ΠΌΠ°ΡΡΠΈΠ² Π΄Π²ΠΎΠΈΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Ρ ΡΠ°Π½ΠΈΡΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. Π’Π°ΠΊΠΆΠ΅ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΅ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΡ: ΠΈΠΌΡ β ΡΠΎΡ ΡΠ°ΠΌΡΠΉ URL, ACL (ΡΠΏΠΈΡΠΎΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠΎΠΌ), Π΄ΡΡΠ³ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ β Π²ΡΡ ΡΡΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ .
ΠΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ: Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ Π±Π°ΠΊΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΏΠΎ ΡΠ°ΡΡΡΠΌ, Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΅ΡΡΡ Π΄Π²Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ: uploads ΠΈ chunks. Π’Π°ΠΊΠΆΠ΅ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π΅ΡΡΡ ΡΡΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ Π±ΠΈΠ»Π»ΠΈΠ½Π³.
Π‘Ρ
Π΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ b2b-ΡΠ΅ΡΠ²ΠΈΡ Ρ ΠΏΠ»Π°ΡΠ½ΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ, ΡΠΎ Π² ΡΡΠΎΠΉ ΡΡ
Π΅ΠΌΠ΅ Π½ΡΠΆΠ΅Π½ Π±ΡΠ» Π±ΠΈΠ»Π»ΠΈΠ½Π³.
Π‘Π΅ΡΠ²ΠΈΡ Π±ΠΈΠ»Π»ΠΈΠ½Π³Π° ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π½Π° Tarantool.
ΠΠΎΡΠ°Π±ΠΎΡΠΊΠΈ S3-Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°: ΡΠ°Π³ΠΈ ΠΊ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Ρ
ΠΡ ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ: ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΡ, Π½ΠΎ Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½ Π½Π΅ Ρ Π²Π°ΡΠ°Π»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΎ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ΠΉΡ-Π»ΠΈΠΌΠΈΡΠΎΠ². ΠΡΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²ΠΈΡ Π±Π΅Π· Π½Π΅Π΅, ΡΠΎ ΠΏΡΠΈ ΠΏΠΈΠΊΠΎΠ²ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΡΠ°ΡΡΠΎΠΊ ΡΠΈΡΡΠ΅ΠΌΡ. Π Π΅ΠΉΡ-Π»ΠΈΠΌΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΊ: Π»ΡΠ±ΠΎΠΉ S3-Π·Π°ΠΏΡΠΎΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ Ρ ΠΎΡΡ, ΡΡΠΎΡ Ρ ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Π±Π°ΠΊΠ΅ΡΠ°, Π° Π±Π°ΠΊΠ΅Ρ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊΠ°ΠΊΠΎΠΌΡ-ΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡ Π±Π°ΠΊΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π±Ρ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΡΠ΅ΠΉΡ-Π»ΠΈΠΌΠΈΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ΠΉΡ-Π»ΠΈΠΌΠΈΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ, ΡΡΠΎΠ±Ρ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° S3.
Π’ΡΡ ΠΌΡ ΡΠ½ΠΎΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Tarantool. Π Π΅ΠΉΡ-Π»ΠΈΠΌΠΈΡΡ β ΡΡΠΎ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΈΠ· 21 ΠΈΠ½ΡΡΠ°Π½ΡΠ°, ΠΈΠ½ΡΡΠ°Π½ΡΡ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° Π³ΡΡΠΏΠΏΡ, ΡΠ°Π·Π½Π΅ΡΠ΅Π½Ρ Π½Π° ΡΡΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·Π»Π° ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ. ΠΠΎ Π½Π΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ: Π·Π°Π΄Π°ΡΡΡΡ ΡΠ΅ΠΉΡ-Π»ΠΈΠΌΠΈΡΡ, Π΄Π΅ΡΠΎΠ»ΡΡ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π°ΠΊΠ΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΡΡΠΎΠ³ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠΌ. ΠΠΎΠ³Π΄Π° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ Π±Π°ΠΊΠ΅Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π·Π°ΠΏΡΠΎΡ, Π΄Π»Ρ Π½Π΅Π³ΠΎ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΡΠ°Π½Ρ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΡΡΠΎΡ Π±Π°ΠΊΠ΅Ρ. Π ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠ³ΠΎ ΡΠ·Π»Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΉΡΠ° ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΠΏΠΎΡ ΠΎΠΆΠ΅ΠΌΡ Π½Π° Token Bucket. ΠΠ°Π»Π΅Π΅ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ΠΉΡ-Π»ΠΈΠΌΠΈΡΠΎΠ², Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ², ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π±Π°ΠΊΠ΅ΡΠ°, Π³ΠΎΠ²ΠΎΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π»ΠΈΠΌΠΈΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΉ ΡΠ°Π½Π½Π΅ΠΉ ΡΡΠ°Π΄ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ S3-Π·Π°ΠΏΡΠΎΡΠ°, Π·Π°ΡΠΈΡΠ°Ρ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· ΠΊΠ΅ΡΠ°. Π S3 ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΡΠΎ Π΅ΡΡΡ ΡΡΠΎ Π³ΠΎΡΡΡΠ΅Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. Π ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΎΠΉ: Streamer, FileDB, PairDB, Storage. ΠΠΎ ΠΏΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΌΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ°.
ΠΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠΉΠ½ΡΠΉ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ nginx, Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ , SSD ΠΈ RAM-Π΄ΠΈΡΠΊΠΎΠ². Π’ΡΡ ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Tarantool, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΡΠ΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΡΠΈΠ½Π³ ΠΊΡΡΠ°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ Π½Π°Ρ ΠΊΡΡΠΏΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π² 32 Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°, Π° Π² Tarantool ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
ΠΡΠ° ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈΡΡ, ΠΎΠ±Π»Π°Π΄Π°Π»Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΡΠΈΡΠ°Π½Π½ΠΎΠΉ capacity (Π΅ΠΌΠΊΠΎΡΡΡΡ), Π΅Π΅ Ρ Π²Π°ΡΠΈΠ»ΠΎ Π΄Π»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΎΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ: ΡΠ΅ΠΉΠ»ΠΎΠ²Π΅Ρ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ»Π° ΡΠΆΠ΅ Π² Π±ΠΎΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π° ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΊΠΎΠ΅-ΡΡΠΎ ΡΠΏΡΡΡΠΈΠ»ΠΈ β Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΠΉΠ»ΠΎΠ²Π΅Ρ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠ°Ρ S3-Π΄Π΅ΠΌΠΎΠ½ Ρ ΠΎΠ΄ΠΈΠ» Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Tarantool. ΠΠ° ΠΌΠ΅ΡΡΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ Π±Π°Π·Ρ ΠΌΡ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Tarantool, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΡΡΠΏΠ°Π» Π² ΡΠΎΠ»ΠΈ ΠΏΡΠΎΠΊΡΠΈ-ΡΠΎΡΡΠ΅ΡΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π³ΠΎ API, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΎΡΡ β ΠΎΠ½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π±Π°Π·Π΅ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Tarantool, Π½ΠΎ ΡΠΎΡΡΠ΅Ρ ΡΠΌΠΎΠ³ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ΅ΠΉΠ»ΠΎΠ²Π΅Ρ. Π’ΠΎ Π΅ΡΡΡ ΠΌΡ ΡΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΡΠ·Π»Π°, Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ·Ρ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡ ΠΈ ΠΎΡΠΊΠ°Π·Π°Ρ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΠΌΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡ Π½Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π»ΠΈ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΎΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ β ΡΡΠΎ ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΡΠ»Π°, ΡΠΎΡΠ»ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠΎΡΡΠ°.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΡΡ Π΅ΠΌΠ΅ Π΄Π°Π½Π½ΡΡ : Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ, Π΅ΡΡΡ Π±Π°ΠΊΠ΅ΡΡ, ΠΊΡΠ΅Π΄Ρ ΠΈ Π±ΠΈΠ»Π»ΠΈΠ½Π³. ΠΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ Π² ΠΎΠ±ΠΎΠ·ΡΠΈΠΌΠΎΠΌ Π±ΡΠ΄ΡΡΠ΅ΠΌ Π½Π΅ Π²ΡΡΠ°ΡΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠ° Π½ΠΈ ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΌΡ, Π½ΠΈ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ. ΠΠ½Π°ΡΠΈΡ, ΠΈΡ Π½Π΅Ρ ΡΠΌΡΡΠ»Π° ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°ΡΡ, ΠΈ ΠΌΡ Π²ΡΠ½Π΅ΡΠ»ΠΈ ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π½Π΅ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈ Π±Π°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅ΡΡΡ Π΅Π΄ΠΈΠ½Π°Ρ Π½Π΅ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΠΎΡΠΊΠ°.
Π’Π°ΠΊΠΆΠ΅ Π² ΡΡ Π΅ΠΌΠ΅ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ ΡΠ°ΡΡΡΡ β ΡΠ½Π°ΡΠ°Π»Π° ΠΈΡ Π±ΡΠ»ΠΎ ΡΠΎΡΠ½ΠΈ ΡΡΡΡΡ, ΡΠ΅ΠΉΡΠ°Ρ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π°ΠΌΠΈ. Π’Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΡ ΡΠ°ΡΡΡΠΌΠΈ Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ ΡΠ½Π΅ΡΡΠΈ Π² ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ.
Π‘Ρ Π΅ΠΌΡ ΠΌΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ, Π½ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π±Π°ΠΊΠ΅ΡΠ°ΠΌΠΈ: ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ Π±Π°ΠΊΠ΅ΡΡ, ΠΏΠ»ΡΡ Π½Π° Π±Π°ΠΊΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ACL. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΡΠ΄Π° Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΌΡ Π΄Π΅ΡΠΆΠΈΠΌ ΡΠ΅Π½Π΅Π²ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π°ΠΊΠ΅ΡΠ°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π½ΡΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΠΈΠ»Π»ΠΈΠ½Π³Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°ΡΠ΄Π΅ Π΅ΡΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ Π±ΠΈΠ»Π»ΠΈΠ½Π³Π°.
Π’Π°ΠΊΠΆΠ΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΈΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ:
- ΠΊΠΎΡΠ·ΠΈΠ½Ρ, Π΄Π»Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ°ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΌΠΎΡΠ°ΠΆΠΈΠ²Π°ΡΡΡΡ;
- ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π»Ρ ΡΠΎΠ½ΠΎΠ²ΡΡ Π·Π°Π΄Π°Ρ, ΡΠΎ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅;
- ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ lifecycle β ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΡ ΡΠ½Π΅ΡΠ»ΠΈ Π½Π° ΡΠ°ΡΠ΄Ρ, ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»Π°ΡΡ ΡΠ°ΡΠ΄ΠΈΡΡΡΡΠ°Ρ ΠΏΡΠΎΠΊΡΠΈ. ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠ΅Ρ ΠΏΠΎΠ΄ ΡΡΡ ΡΠΎΠ»Ρ, Π½ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΠ°ΡΠ΄ΠΈΡΡΡΡΠ°Ρ ΠΏΡΠΎΠΊΡΠΈ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π° ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ· ΡΠΎΡΡΠ΅ΡΠ° Ρ ΠΎΠ΄ΠΈΡΡ Π·Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ, Π½Π΅ Π΄ΡΠΌΠ°Ρ ΠΎ ΡΠ°ΡΠ΄ΠΈΠ½Π³Π΅.
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΡ Π½Π΅ Π²Π·ΡΠ»ΠΈ Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π° Ρ ΠΎΡΠ΅Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΡΡΡΠΎΠ΅Π½Π°. Π£ Π½Π°Ρ Π΅ΡΡΡ 256 Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠ°ΡΠ΄ΠΎΠ². ΠΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π°ΠΊΠ΅ΡΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π½Π΅ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ β ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ°ΡΠ΄Ρ, Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ ΡΠ°ΡΠ΄ ΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½:
f(bucket, shards) = subset
Π’ΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ Π²Π·ΡΡΡ Π±Π°ΠΊΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ ΠΈ Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠ΅Π³Π΄Π° Π»Π΅ΠΆΠ°ΡΡ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΠΈΠ· Π²ΡΠ΅Ρ ΡΠ°ΡΠ΄ΠΎΠ². ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΎΠ΄Π½ΠΈΡ Π±Π°ΠΊΠ΅ΡΠΎΠ² Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΈ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ map-reduce Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π΅Π»Π°ΡΡ Π»ΠΈΡΡΠΈΠ½Π³ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π±Π°ΠΊΠ΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ ΠΎΠΏΡΠΎΡΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΡΠ΄Ρ, Π³Π΄Π΅ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΡΠ°Π½ΡΡΡΡ. ΠΡΠ»ΠΈ Π±Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π»Π΅ΠΆΠ°Π»ΠΈ Π½Π° Π²ΡΠ΅Ρ ΡΠ°ΡΠ΄Π°Ρ , Π»ΡΠ±ΠΎΠΉ Π»ΠΈΡΡΠΈΠ½Π³ Π·Π°Π΄Π΅Π²Π°Π» Π±Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ, Π° Π·Π΄Π΅ΡΡ ΠΎΠ½ Π·Π°Π΄Π΅Π²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ.
ΠΠ°Π»Π΅Π΅ β ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ Π±Π°ΠΊΠ΅ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π·Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΡΠΎ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π·Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ Π±Π°ΠΊΠ΅ΡΠ΅. Π’ΠΎ Π΅ΡΡΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π΅ ΠΈΠ· Π²ΡΠ΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΡΠ°ΡΠ΄ΠΎΠ², Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π΅Π³ΠΎ Π±Π°ΠΊΠ΅ΡΠ°:
f(object, subset) = shard
ΠΡ Π±Π΅ΡΠ΅ΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΡΠ΄Π° Π½Π΅ Π²ΡΠ΅ ΡΠ°ΡΠ΄Ρ, Π° ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΅Π³ΠΎ Π±Π°ΠΊΠ΅ΡΠ° β ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ°ΡΠ΄.
ΠΡΠ°ΠΊ, ΡΠ°ΡΠ΄ΠΈΠ½Π³ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½, Π΅ΡΡΡ ΡΠ°ΡΠ΄ΠΈΡΡΡΡΠΈΠΉ ΠΏΡΠΎΠΊΡΠΈ. ΠΠ°Π»ΡΡΠ΅ ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΈΠ· ΡΠΎΡΡΠ΅ΡΠ° ΠΈ Π±Π°Π·Ρ Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΠΎΠ΄ΠΈΡΡ Π² ΡΠ°ΡΠ΄ΠΈΡΡΡΡΠΈΠΉ ΠΏΡΠΎΠΊΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΅Π½Π΅Π²ΡΡ ΠΊΠΎΠΏΠΈΠΉ β ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π±Π°ΠΊΠ΅Ρ, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΡΡΠΎΠ³ΠΎ Π±Π°ΠΊΠ΅ΡΠ° Π½Π° Π²ΡΠ΅Ρ ΡΠ°ΡΠ΄Π°Ρ , Π³Π΄Π΅ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ.
ΠΠ°ΠΊ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ΅ΡΠ°ΡΠ΄ΠΈΠ½Π³
Π‘Π°ΠΌΠ°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ°ΡΠ΄ΠΈΠ½Π³Π° β ΡΡΠΎ ΡΠ΅ΡΠ°ΡΠ΄ΠΈΠ½Π³. ΠΠ°ΠΌ Π±ΡΠ»ΠΎ Π²Π°ΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π±Π΅Π· Π΄Π°ΡΠ½ΡΠ°ΠΉΠΌΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΆΠ΅ Π±ΡΠ»Π° Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅. ΠΠΎΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΡ ΠΎΠΆΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ Ρ ΠΆΠΈΠ²ΠΎΠΉ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ.
ΠΠΈΠΆΠ΅ ΡΡ Π΅ΠΌΠ° Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΠ΄ΠΈΠ½Π³Π°. Π£ Π½Π°Ρ Π΅ΡΡΡ nginx, S3 API, ΡΠΎΡΡΠ΅Ρ, primary-Π±Π°Π·Π° Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ, ΡΠ°ΡΠ΄ΠΈΡΡΡΡΠΈΠΉ ΠΏΡΠΎΠΊΡΠΈ ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ°ΡΠ΄Ρ
ΠΡΡΠ΅ Ρ ΡΠΏΡΡΡΠΈΠ» ΠΌΠΎΠΌΠ΅Π½Ρ, ΡΡΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²Π°Ρ Π·Π°Π΄Π°ΡΠ°: Β«ΠΠ°ΠΏΡΡΡΠΈΡΡ Π΅ΡΡ ΠΎΠ΄Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΠΉΡΠ±ΠΎΠΊΡ, β ΠΊΠ°ΠΊ Π₯ΠΎΡΠ±ΠΎΠΊΡ, ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Ρ ΠΎΠ»ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Β». ΠΠΎ ΡΡΡΠΈ, ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π½ΠΎ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ URL ΠΈ Π±Π΅Π· ΠΊΡΡΠ΅ΠΉ.
Icebox ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Hotbox, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠ»ΡΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΠΈΡΠΎΠ³Π΅ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ Π½Π΅Π³ΠΎ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Hotbox ΠΈ Icebox Π² ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΡΠ²ΠΈΡ, ΠΏΡΠΎΡΡΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ² ΠΊΠ»Π°ΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ.
ΠΠ°ΠΊΠ΅ΡΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°Π»ΠΈΡΡ, ΠΈΡ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΌΠ΅ΡΠΆΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ, Π½ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΈ ΡΠ΅ΠΌ, ΠΈ Π΄ΡΡΠ³ΠΈΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ, Π·Π½Π°ΡΠΈΡ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ Π΄Π°ΡΠ½ΡΠ°ΠΉΠΌΠ°. ΠΠ΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΊΠ»ΡΡΠΈΡΡ ΠΈ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ. ΠΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΠΏΠΎΠ².
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΌΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ primary-Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. Π£ Π½Π°Ρ Π±ΡΠ» Tarantool ΠΈ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ:
- ΠΊ Π±Π°Π·Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°ΠΊΠ΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Hotbox;
- Tarantool ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π² Π΄ΡΡΠ³ΠΎΠΉ Π±Π°Π·Π΅ (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β Π² Icebox), ΡΡΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ Π±Π°ΠΊΠ΅ΡΠ° Π½Π΅Ρ;
- Π΅ΡΠ»ΠΈ Π±Π°ΠΊΠ΅Ρ Π΅ΡΡΡ, Π±Π°Π·Π° Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅Π»ΡΠ·Ρ, ΠΈ ΠΎΠ½ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΡΡ ΠΊΠ°ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π±Π°ΠΊΠ΅ΡΠΎΠ²
Π ΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΡΠ΅Π±Ρ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π²Π²Π΅Π»ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ Π±Π°ΠΊΠ΅ΡΠΎΠ² ΠΏΡΠΈΠ·Π½Π°ΠΊ, Π³ΠΎΠ²ΠΎΡΡΡΠΈΠΉ, Π³Π΄Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ½ ΠΌΠΎΠ³ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΡΠΎ Π΅ΡΡΡ Π² Hotbox, Π² Icebox β ΡΠΎΠ³Π΄Π° Π² Π½ΠΎΠ²ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ , Π»ΠΈΠ±ΠΎ ΠΌΠΎΠ³ Π±ΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
ΠΡΠ»ΠΈ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ Π±Π°ΠΊΠ΅ΡΠ° ΡΡΠΎΡΠ» ΠΏΡΠΈΠ·Π½Π°ΠΊ Migrating, ΡΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ ΡΠ½Π°ΡΠ°Π»Π° Π² Π½ΠΎΠ²ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ, Π° Π΅ΡΠ»ΠΈ ΠΈΡ ΡΠ°ΠΌ Π½Π΅ Π±ΡΠ»ΠΎ, ΡΠΎ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ»ΠΈΡΡ Π½Π° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠ»ΠΈ ΡΡΠ°ΡΠΈΠΊ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ API ΠΌΠΎΠ³ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΠΈ Π·Π°ΠΏΡΠΎΡΡ Icebox, ΠΈ Π·Π°ΠΏΡΠΎΡΡ Hotbox, ΠΌΡ ΡΠΌΠΎΠ³Π»ΠΈ Π±Π΅Π· Π΄Π°ΡΠ½ΡΠ°ΠΉΠΌΠ° ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΠΈΠΊ, ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡ Ρ ΠΎΡΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² Nginx.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΠΊ Π±ΡΠ» ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½, Nginx ΠΈ API ΠΎΡ Icebox ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ±ΡΠ°ΡΡ.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠ±ΡΠ°Π»ΠΈ Icebox nginx ΠΈ S3 API β ΠΈ Π²ΡΡ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ:
ΠΠ°Π»Π΅Π΅ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π½ΡΡΡΠΈ Π±Π°Π·Ρ β ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΠΎ Π²ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈ ΠΈΡ Π±Π°ΠΊΠ΅ΡΡ, Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π»Ρ Π½ΠΈΡ ΠΏΡΠΈΠ·Π½Π°ΠΊ Migrating, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊ Local.
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ Π½Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠ°ΡΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΈ ΠΌΡ ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΡΠ°ΡΡΠΈ ΡΡΠ°ΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡΠ°ΡΡΡΠ° ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
ΠΠΎ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ Π±ΡΠ» Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΈ ΡΠ΅ΡΠ°ΡΠ΄ΠΈΠ½Π³ ΠΈΠ· ΡΡΠ°ΡΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π² ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅:
- ΠΠΎΠΌΠ΅ΡΠΈΠ»ΠΈ Π²ΡΠ΅ Π±Π°ΠΊΠ΅ΡΡ ΠΊΠ°ΠΊ
Non-sharded
. ΠΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π½ΠΈΠΌ ΡΠ»ΠΈ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅, Π½Π΅ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. - ΠΠΎΠ²ΡΠ΅ Π±Π°ΠΊΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈΡΡ ΡΡΠ°Π·Ρ Π² ΡΡΠ°ΡΡΡΠ΅
Sharded
. - ΠΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π±ΡΠ°Π»ΠΈ Π±Π°ΠΊΠ΅ΡΡ, ΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΡ
Migrating
ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ°ΠΏΡΠΎΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π»ΠΈΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ:
- Π§ΠΈΡΠ°Π΅ΠΌ Π² Π½ΠΎΠ²ΠΎΠΌ, ΠΏΠΎΡΠΎΠΌ Π² ΡΡΠ°ΡΠΎΠΌ.
- Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½ΠΎΠ²ΠΎΠΌ.
- ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ Π΄Π²ΡΡ ΡΠ°Π·Π½ΠΎ: Π΅ΡΠ»ΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ Π½Π΅Ρ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ ΠΈΠ· ΡΡΠ°ΡΠΎΠ³ΠΎ Π² Π½ΠΎΠ²ΡΠΉ, ΠΏΠΎΡΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ.
Π Π°Π±ΠΎΡΠ° Ρ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ
ΠΠ° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Nginx. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΡΠ½ΡΠΉ Nginx, Π° OpenResty, Nginx Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ LuaJIT.
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΊΡΡΠΎΡΠ΅ΠΊ ΡΠΈΡΡΠ΅ΠΌΡ β ΡΠ°Π±ΠΎΡΠ° Ρ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ. Π S3-Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄ΠΎΠΌΠ΅Π½ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ Π±Π°ΠΊΠ΅ΡΡ, ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ CNAME
. ΠΠΎ Π±Π΅Π· HTTPS Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ Π½Π΅Π»ΡΠ·Ρ: ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.
ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ», Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΡ ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΡ SSL Ρ Π½Π°Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Nginx. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΡΠ½ΡΠΉ Nginx, Π° OpenResty, Nginx Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ LuaJIT.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π½Π°ΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΡΠΈΡΡ Π½Π°Ρ Nginx ΠΎΡΠ΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ. ΠΡΠΈΡΡΠΌ Π½Π°ΠΌ Π±ΡΠ»ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠ΄Π°Π²Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ (Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΡ
Π² ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ). ΠΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ssl_certificate_by_lua
, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΈΠ· ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ TLS-Ρ
ΡΠ½Π΄ΡΠ΅ΠΉΠΊΠ°. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π²Π·ΡΠ»ΠΈ Tarantool: ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ ΠΈΠ·Π²Π½Π΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊΡΠ°ΠΉΠ½Π΅ Π±ΡΡΡΡΡΡ ΠΎΡΠ΄Π°ΡΡ.
Π’Π°ΠΊΠΆΠ΅ Π±ΡΠ» ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π΄Π΅ΠΌΠΎΠ½, Π² Π·Π°Π΄Π°ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄ΠΈΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π²ΡΠΏΠΈΡΠ°Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Let’s Encrypt.
Π§ΡΠΎ Π±Ρ Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΠ», Π° ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π» ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π°Π½ΠΎΠ²ΠΎ
Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°
Π¨Π°ΡΠ΄ΠΈΠ½Π³ ΡΡΠ°Π·Ρ. ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΄ΠΎΡΡΠ°Π²ΠΈΠ» ΡΠ΅ΡΠ°ΡΠ΄ΠΈΠ½Π³. ΠΠ³ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π½ΠΎ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅ΡΠ»ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ, Π»ΡΡΡΠ΅ ΡΡΠ°Π·Ρ Π±ΡΠ°ΡΡ ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ, ΠΏΡΡΡΡ Π΄Π°ΠΆΠ΅ ΠΈ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΡΠΌΠ΅ ΡΠ·Π»ΠΎΠ². Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΡΠ΄ΠΈΠ½Π³Π° Π½Π° ΡΡΠ°ΡΡΠ΅ ΠΏΠΎΡΡΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΡΠ΄ΠΈΠ½Π³Π° Π² ΡΠ°Π±ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
Π Π°Π±ΠΎΡΠ° Ρ Tarantool ΡΠ΅ΡΠ΅Π· Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ Π±Π°Π·Ρ ΡΡΠ°Π·Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π² ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ΅Π· Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π΄ΠΎΠ±ΠΈΠ²Π°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ.
ΠΠ²ΡΠΎΡΠ΅ΠΉΠ»ΠΎΠ²Π΅Ρ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΠ» Π±Ρ Π²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΡΠ΅ΠΉΠ»ΠΎΠ²Π΅ΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΡΠ΅ Π½Π΅ΡΠ΄Π°ΡΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Π±ΡΠ»ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π΅Π³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ. ΠΠΎΡΠ»Π΅ ΠΎΠΏΡΡΠ° Ρ S3 Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈΡΡ Ρ ΡΡΡΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ.
Π€ΠΈΡΠ° S3 Β«ΠΠ΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅Β». ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. ΠΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ.
ΠΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π±ΠΈΠ»Π»ΠΈΠ½Π³. Π’ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π²ΡΡΡΠΎΠΈΠ»ΠΈ Π±ΠΈΠ»Π»ΠΈΠ½Π³ Π² Π½Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ ΡΠ΅Π±Ρ Π² Π½Π°ΡΠ°Π»Π΅, Π½ΠΎ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΎΠ½ ΡΡΠ°Π» ΠΌΠ΅ΡΠ°ΡΡ, Π»ΡΡΡΠ΅ Π±ΡΠ»ΠΎ Π±Ρ Π΅Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°.
Π§ΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π°ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ
ΠΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΡΠΎΡΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°Π»Π°, ΡΡΠΎ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΌΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΎΡΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅ΠΌ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π΄Π°Π½Π½ΡΡ Amazon, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ΅ ΡΠΈΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ ΡΠ°ΠΌ.
Π‘Ρ Π΅ΠΌΠ° ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π― Π±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π» ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½ΡΠ΅ ΡΠ°ΡΠ΄ΠΈΠ½Π³ΠΈ ΠΏΠΎ Π±Π°ΠΊΠ΅ΡΠ°ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΎΡ ΡΠ°Π·Π½ΡΡ Π±Π°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΠΊΠ»Π°ΡΡΠ΅ΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Tarantool. Tarantool ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³ ΠΏΡΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΌΡ Π»Π΅Π³ΠΊΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΈ ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π»ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡΡΡ Π½Π° ΡΠ»ΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΎΡ Π΄ΠΎΠΊΠ»Π°Π΄ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΎΠ·Π²ΡΡΠ°Π» Π½Π°
@Databases Meetup by Mail.ru Cloud Solutions&Tarantool. Π‘ΠΌΠΎΡΡΠΈΡΠ΅Π²ΠΈΠ΄Π΅ΠΎ Π΄ΡΡΠ³ΠΈΡ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ Π½Π° Π°Π½ΠΎΠ½ΡΡ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΠΉ Π² TelegramΠΠΎΠΊΡΡΠ³ Kubernetes Π² Mail.ru Group .
Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠΎΠΉ ΡΡΠ°ΡΡΠΉ Π΄ΠΎΠΊΠ»Π°Π΄ ΠΏΡΠΎ S3 ΠΈΠ»ΠΈ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ ΠΌΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΠΏΡΠΎ Π±Π»ΠΎΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
Π Π΅Π²Π΅ΡΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Amazon S3 ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄Π΅Π»ΠΎ S3-Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ MCS 3 Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ .ΠΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ Ceph: Π±Π»ΠΎΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΎΠ±Π»Π°ΠΊΠ° MCS .
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com