ΠΡΠ΅Π· 2017 Π³. ΡΠΏΠ΅ΡΠ΅Π»ΠΈΡ
ΠΌΠ΅ ΠΊΠΎΠ½ΠΊΡΡΡ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΡΠΎ ΡΠ΄ΡΠΎ ββΠ½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΈΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ Π½Π° Alfa-Bank ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ° (Π½Π° HighLoad++ 2018 Ρ Π΄ΠΎΠΊΠ»Π°Π΄ Π·Π° ΡΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΈΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ
Π ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅ ΡΠ°Π·Π²ΠΈ ΠΈ ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡΡΠ·Π½Π°Ρ
ΠΌΠ΅, ΡΠ΅ ΠΈΠ·ΠΊΡΠΈΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π½Π΅ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ ΡΠΎΡΡΡΠ΅Ρ, ΡΡΠ·Π΄Π°Π΄Π΅Π½ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ: ΡΡΠΏΡΡ
ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΠ°ΡΡΡΠΏΠ°Π½ΠΈΡΡ ΠΎΠΏΠΈΡ Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° Π½ΠΎΠ² ΠΏΡΠΎΠ΄ΡΠΊΡ -
ΠΡΠΊΠ°ΠΌ Π΄Π° Π³ΠΎΠ²ΠΎΡΡ Π·Π° TDG Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ°, Π΄ΠΎ ΠΊΠΎΠΈΡΠΎ ΡΡΠΈΠ³Π½Π°Ρ
ΠΌΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, Π΄Π° Π²ΠΈ Π·Π°ΠΏΠΎΠ·Π½Π°Ρ Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Π½Π°ΡΠΈΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ ΠΎΡΠ½ΠΎΠ²Π° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠ»ΠΎΡΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡ
ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠΎΠ»Ρ, Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΡΡΠ³ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΠ΄Π½ΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ ΡΠΎΠ»ΠΈ. Π ΠΊΠ»ΡΡΡΠ΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠΎΠ»ΠΈ ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ ΡΠΈΠΏ:
Π‘ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅Π»
ΠΠΎΠ½Π΅ΠΊΡΠΎΡΡΡ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΡΠ° Ρ Π²ΡΠ½ΡΠ½ΠΈΡ ΡΠ²ΡΡ; Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π΅ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ΅ Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, Π΄Π° Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΈ Π°ΠΊΠΎ ΡΠΎΠ²Π° ΡΡΠΏΠ΅Π΅, Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ. ΠΠΈΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ HTTP, SOAP, Kafka, FIX ΡΠΎΡΠΌΠ°ΡΠΈ. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠΎΡΡΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ, ΠΊΠ°ΡΠΎ ΡΠΊΠΎΡΠΎ ΡΠ΅ ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° IBM MQ. ΠΠΊΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π΅ Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΊΠΎΠ½Π΅ΠΊΡΠΎΡΡΡ ΡΠ΅ Π²ΡΡΠ½Π΅ Π³ΡΠ΅ΡΠΊΠ°; Π² ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΡΠΎΠΉ ΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ, ΡΠ΅ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ Π΅ Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Π»Π° Π³ΡΠ΅ΡΠΊΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΡΠ½Π°ΡΠ° ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°. Π’ΠΎΠ²Π° Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, Π·Π° Π΄Π° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ Π·Π½Π°ΡΡ ΠΊΠ°ΠΊ Π΄Π° ΠΏΠΎΠ²ΡΠ°ΡΡΡ Π·Π°ΡΠ²ΠΊΠΈ - ΠΈΠ»ΠΈ, Π½Π°ΠΏΡΠΎΡΠΈΠ², ΠΏΡΠ°Π²ΡΡ Π³ΠΎ ΡΠ²ΡΡΠ΄Π΅ ΡΠΏΠΎΡΠΈΡΠΎ. ΠΠ° Π΄Π° Π½Π΅ ΡΠ΅ Π³ΡΠ±ΡΡ Π΄Π°Π½Π½ΠΈ, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠΏΠ°ΡΠΊΠ° Π·Π° ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ°: ΠΎΠ±Π΅ΠΊΡΡΡ ΠΏΡΡΠ²ΠΎ Π²Π»ΠΈΠ·Π° Π² Π½Π΅Ρ ΠΈ Π΅Π΄Π²Π° ΡΠ»Π΅Π΄ ΡΡΠΏΠ΅ΡΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π° ΠΎΡ Π½Π΅Ρ. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π·Π° ΠΎΠ±Π΅ΠΊΡΠΈ, ΠΎΡΡΠ°Π½Π°Π»ΠΈ Π² ΠΎΠΏΠ°ΡΠΊΠ°ΡΠ° Π·Π° ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ°, ΠΈ ΡΠ»Π΅Π΄ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΡΡΡΠ΅ΡΠ½Π° Π³ΡΠ΅ΡΠΊΠ° ΠΈΠ»ΠΈ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ΅Π½ ΡΡΠΈΠ², ΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ.
ΠΡ ΠΎΠ΄ΡΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ
ΠΡ ΠΎΠ΄Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΠΊΠ»Π°ΡΠΈΡΠΈΡΠΈΡΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΠΏΠΎΡΠ΅Π΄ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΈΠ·Π½Π°ΡΠΈ ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ. ΠΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈΡΠ΅ ΡΠ° Lua ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΠΏΡΡΡΡΠ½Π° ΡΡΠ΅Π΄Π°, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΠ° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ΅Π΄ΡΡΠΈΡΠ°Π½ΠΈ Π΄ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° ΡΠΎΡΠΌΠ° ΠΈ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π±ΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠ° MDM (Master Data Management), ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π²ΡΡΡ Ρ Tarantool Data Grid, ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΎΠ² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», Π·Π° Π΄Π° Π½Π΅ Π·Π°Π±Π°Π²ΡΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π»Π°ΡΠ΅Π½ Π·Π°ΠΏΠΈΡ ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π½Π° Π·Π°Π΄Π°ΡΠ°. ΠΡΡΡΡΠ½ΠΈΠΊΡΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅, ΠΏΡΠΎΠΌΡΠ½Π° ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ Π½ΡΠΊΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠΎΠ»ΠΈ Π½Π° ΡΠΈΠΏΠ° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° (ΠΊΠ°ΡΡΠ°/Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅).
ΠΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅:
sum.lua
local x, y = unpack(...)
return x + y
Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°, Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ°Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°:
functions:
sum: { __file: sum.lua }
ΠΠ°ΡΠΎ Lua? Lua Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡ Π΅Π·ΠΈΠΊ. ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π½Π°ΡΠΈΡ ΠΎΠΏΠΈΡ, Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°ΡΠ° ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°ΡΡ Ρ Π½Π΅Π³ΠΎ, Ρ ΠΎΡΠ°ΡΠ° Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΠΏΠΈΡΠ°Ρ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΠ°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΠΌ. Π ΡΠΎΠ²Π° Π½Π΅ ΡΠ° ΡΠ°ΠΌΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, Π½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° jit ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°, Lua ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ.
Π‘ΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅
Π‘ΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΡΠ΅Π΄ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Ρ ΡΠΏΡΡΠΌΠΎ ΡΡ
Π΅ΠΌΠ°ΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅. ΠΠ° Π΄Π° ΠΎΠΏΠΈΡΠ΅ΠΌ Π²Π΅ΡΠΈΠ³Π°ΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ
{
"name": "User",
"type": "record",
"logicalType": "Aggregate",
"fields": [
{ "name": "id", "type": "string"},
{"name": "first_name", "type": "string"},
{"name": "last_name", "type": "string"}
],
"indexes": ["id"]
}
ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠΎΠ²Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° DDL (ΠΠ·ΠΈΠΊ Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ) Π·Π° Π‘Π£ΠΠ Π½Π° Tarantula ΠΈ
ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ (ΠΈΠΌΠ° ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°).
ΠΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΏΡΠΎΡΠ΅ΡΠΎΡ
ΠΠΎΠ½ΡΠΊΠΎΠ³Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΡΡ Π²ΡΠ½ΡΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π·Π° ΠΏΡΠΈΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π° ΡΠ°Π·ΠΈ ΡΠ΅Π» ΠΈΠΌΠ° ΡΠΎΠ»ΡΡΠ° Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΏΡΠΎΡΠ΅ΡΠΎΡ. Π‘Π»Π΅Π΄ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅, ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°ΡΠ°, ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π° ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ) - ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° ΠΊΠΎΠ½Π΅ΠΊΡΠΎΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅. Π’ΡΠΊ ΡΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠΏΠ°ΡΠΊΠ° Π·Π° ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ°: Π°ΠΊΠΎ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ Π΅ ΠΏΡΠΈΠ΅Π» ΠΎΠ±Π΅ΠΊΡΠ°, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠΏΠΈΡΠ° ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ.
ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅
Π ΠΎΠ»ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½Π΅ΠΊΡΠΎΡΠ°, Π²Ρ
ΠΎΠ΄Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΠΈ ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΡΠ° Π±Π΅Π· ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Ρ
ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΡΡΠ΅Π· ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΡΠΈΠΏ ΡΠΎΠ»Ρ. Π‘ΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Ρ
ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅
Π‘Π²ΠΎΠΉΡΡΠ²Π° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅
ΠΠ±Π΅ΠΊΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈ Π΄Π° ΡΡΠ΄ΡΡΠΆΠ°Ρ Π΄ΡΡΠ³ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ. ΠΠΈΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°ΠΌΠ΅ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡ Π½Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΠΎΠ±Π΅ΠΊΡ Ρ Π²ΡΠΈΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² Π΅Π΄Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΊΠΎΡΠ°. Π’ΠΎΠ²Π° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π° βΡΠ°Π·ΠΏΡΡΡΠΊΠ²Π°Π½Π΅ΡΠΎβ Π½Π° ΠΎΠ±Π΅ΠΊΡΠ° Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ²ΡΡΠ°.
ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ Π²Π΅ΡΡΠΈΡ: Π²ΡΡΠΊΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΎΠ±Π΅ΠΊΡ ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΎΡΡΡΠ·ΡΠΊ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Π» ΡΠ²Π΅ΡΡΡ ΡΠΎΠ³Π°Π²Π°. ΠΠ° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ Π΄ΡΠ»Π³Π° ΠΈΡΡΠΎΡΠΈΡ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌ Π±ΡΠΎΡ Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° - Π½Π°ΠΉ-Π½ΠΎΠ²Π°ΡΠ° - ΡΠΎΠ΅ΡΡ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ Π΄Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ Π²Π΅ΡΡΠΈΡΡΠ° Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΈΠΏ. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΠΈΡΡΠΎΡΠΈΡΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π° ΠΈΠ·ΡΡΠΈΠ΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΈΠΏ, ΠΏΠΎ-ΡΡΠ°ΡΠΈ ΠΎΡ 1 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ ΠΈ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅: ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π·ΡΠΎΠ²Π°ΡΠΈΠΌ ΠΎΠ±Π΅ΠΊΡΠΈ, ΠΏΠΎ-ΡΡΠ°ΡΠΈ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°ΠΉΠΊΠΈ ΠΌΡΡΡΠΎ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°.
Π·Π°Π΄Π°ΡΠΈ
Π‘ΡΠ΅Π΄ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ Π³ΡΠ°ΡΠΈΠΊ, ΠΏΠΎ ΠΈΡΠΊΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΎ ΠΎΡ ΠΏΡΡΡΡΠ½ΠΈΠΊΠ°:
Π’ΡΠΊ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΎΡΠ΅ Π΅Π΄Π½Π° ΡΠΎΠ»Ρ - Π±Π΅Π³Π°Ρ. Π’Π°Π·ΠΈ ΡΠΎΠ»Ρ Π΅ Π±Π΅Π· ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π·ΠΈ ΡΠΎΠ»Ρ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΡΠΌ ΠΊΠ»ΡΡΡΠ΅ΡΠ°, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ. ΠΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡΡΠ° Π½Π° Π±Π΅Π³Π°ΡΠ° Π΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π·Π°Π΄Π°ΡΠΈ. ΠΠ°ΠΊΡΠΎ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ
ΠΌΠ΅, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Π½ΠΎΠ²ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΎΡ ΠΏΡΡΡΡΠ½ΠΈΠΊΠ°; ΡΠ΅ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π² ΠΎΠΏΠ°ΡΠΊΠ° ΠΏΡΠΈ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. Π’ΠΎΠ·ΠΈ ΡΠΈΠΏ Π·Π°Π΄Π°ΡΠ° ΡΠ΅ Π½Π°ΡΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°. ΠΠΌΠ°ΠΌΠ΅ ΠΈ ΡΠΈΠΏ Π·Π°Π΄Π°ΡΠ°, Π½Π°ΡΠ΅ΡΠ΅Π½Π° Task - ΡΠΎΠ²Π° ΡΠ° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΏΠΎ Π³ΡΠ°ΡΠΈΠΊ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π° cron) ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ²Π°Π½Π΅. ΠΠ° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° Π·Π°Π΄Π°ΡΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ΄ΠΎΠ±Π΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° Π·Π°Π΄Π°ΡΠΈ. ΠΠ° Π΄Π° Π±ΡΠ΄Π΅ Π½Π°Π»ΠΈΡΠ½Π° ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, ΡΡΡΠ±Π²Π° Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΡΠΎΠ»ΡΡΠ° Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ; ΡΠ°Π·ΠΈ ΡΠΎΠ»Ρ ΠΈΠΌΠ° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°; Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΊΠ°ΠΊΡΠΎ Π²ΡΠΈΡΠΊΠΈ Π΄ΡΡΠ³ΠΈ ΡΠΎΠ»ΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°, ΠΊΠΎΡΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ, Π°ΠΊΠΎ ΠΊΠ°ΠΏΠΈΡΠ°Π½ΡΡ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΠΎΡΠΊΠ°ΠΆΠ΅.
Π΄ΡΡΠ²Π°Ρ
ΠΡΡΠ³Π° ΡΠΎΠ»Ρ ΡΠ΅ Π½Π°ΡΠΈΡΠ° logger. Π’ΠΎΠΉ ΡΡΠ±ΠΈΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΡΠ»Π΅Π½ΠΎΠ²Π΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΊΠ°ΡΠ²Π°Π½Π΅ ΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΏΡΠ΅Π· ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Π£ΡΠ»ΡΠ³ΠΈ
ΠΠ°ΡΠ»ΡΠΆΠ°Π²Π° Π΄Π° ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π΅, ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ»ΡΠ³ΠΈ. Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΊΠΎΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΠΏΡΡΡΡΠ½ΠΈΠΊΠ°. Π ΡΠΎΠ·ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½ΡΠΊΠ°ΠΊΠ²Π° Π°Π½Π°Π»ΠΈΡΠΈΡΠ½Π° Π·Π°ΡΠ²ΠΊΠ° ΠΈ Π΄Π° Π²ΡΡΠ½Π΅ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°.
Π£ΡΠ»ΡΠ³Π°ΡΠ° Π΅ ΠΎΠΏΠΈΡΠ°Π½Π° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ»:
services:
sum:
doc: "adds two numbers"
function: sum
return_type: int
args:
x: int
y: int
GraphQL API ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈ ΡΡΠ»ΡΠ³Π°ΡΠ° ΡΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ½Π° Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅:
query {
sum(x: 1, y: 2)
}
Π’ΠΎΠ²Π° ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠ° sum
ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π²ΡΡΠ½Π΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°:
3
ΠΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ
ΠΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅, Π²Π½Π΅Π΄ΡΠΈΡ ΠΌΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° OpenTracing. Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ²Π°Π½Π΅ Π΄ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΊΠ°ΡΠΎ Zipkin, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊ Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°:
ΠΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ, ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ±ΡΠ°Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Prometheus ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Grafana.
Π Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅ΡΠ΅
Tarantool Data Grid ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²Π½Π΅Π΄ΡΠΈ ΠΎΡ RPM ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈΠ»ΠΈ Π°ΡΡ
ΠΈΠ², ΠΊΠ°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΎΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° ΠΈΠ»ΠΈ Ansible, ΠΈΠΌΠ° ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Kubernetes (
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° (ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ), ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π° Π² ΡΠ°Π·Π³ΡΡΠ½Π°ΡΠΈΡ Tarantool Data Grid ΠΊΠ»ΡΡΡΠ΅Ρ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π°ΡΡ ΠΈΠ² ΡΡΠ΅Π· ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ»ΠΈ ΡΡΠ΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΊΡΠΈΠΏΡ ΡΡΠ΅Π· ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈΡ ΠΎΡ Π½Π°Ρ API.
ΠΡΠΊΠ²Π°ΡΠΈ Π½Π° ΡΠΈΠ»ΠΎΡΠΎΡΠΈΡΡΠ°
ΠΠ°ΠΊΠ²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Tarantool Data Grid? ΠΡΡΡΠ½ΠΎΡΡ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π±ΠΈΠ·Π½Π΅Ρ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°, ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠΎΡΠΎΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠΈΠ³ΡΡΠ½ΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ, ΡΠΎΠ³Π°Π²Π° Π½Π°ΡΠΈΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈ ΡΠΏΠ΅ΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π΄Π° ΡΠ΅ ΡΡΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈ Π²ΡΡΡ Ρ Π²Π°ΡΠ°ΡΠ° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΡΠ±ΠΈΡΠ°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΠ°Π·Π°ΡΠ° Π½Π° Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΈ ΠΈΠΌΠΎΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π² Π±ΡΠ΄Π΅ΡΠ΅ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΎΡΠ΅ΡΡΠΈ. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π΅ΠΌ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ:
- Π ΠΎΠ±ΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΠ±ΠΈΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ, ΡΠ΅ Π±ΡΠ΄Π°Ρ Π½Π°ΡΠΈΡΠ΅ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π΅Π·ΠΈΠΊ.
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Tarantool Data Grid ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ΅ ΠΈ Π·Π°ΠΏΠ°Π·ΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅. ΠΠΊΠΎ ΡΠΎΡΠΌΠ°ΡΡΡ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π΅ ΡΠ°Π·Π»ΠΈΡΠ΅Π½, ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π² Lua, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ Π² Π΅Π΄ΠΈΠ½ ΡΠΎΡΠΌΠ°Ρ. ΠΠ° Π΅ΡΠ°ΠΏΠ° Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠ΅ Π΄ΡΠ±Π»ΠΈΡΠ°ΡΠΈ ΡΠ΅ ΠΎΡΠ΅ΡΡΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π°Π³Π΅Π½ΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π½Π° ΠΏΠ°Π·Π°ΡΠ° Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.
- Π‘Π΅Π³Π° Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΡΠ»Π²Π° Ρ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΈ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²Π½Π΅Π΄ΡΠΈΡΠ΅ Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π·Π°ΡΠ²ΠΊΠ° Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠ΅ Π΄Π°Π΄Π΅ Π½Π°ΠΉ-ΠΈΠ·Π³ΠΎΠ΄Π½Π°ΡΠ° ΠΎΡΠ΅ΡΡΠ° Π½Π° Π΄Π΅Π½ - ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄Π° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» ΠΈ ΠΌΠ°Π»ΠΊΠΎ Lua ΠΊΠΎΠ΄.
ΠΠ°ΠΊΠ²Π° Π΅ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ°?
ΠΠ°ΡΠΈΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π΅ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΠΌ Π»Π΅ΠΊΠΎΡΠ°ΡΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°
ΠΠ±ΡΡΡΠ°ΠΌΠ΅ Π³ΠΎΠ»ΡΠΌΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ Π½Π° Π²ΡΠΏΡΠΎΡΠΈΡΠ΅ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ°. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΌΠ΅ Π² ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ ΠΎΡ FSTEC Π½Π° Π ΡΡΠΈΡ, Π·Π° Π΄Π° ΠΏΠΎΡΠ²ΡΡΠ΄ΠΈΠΌ Π²ΠΈΡΠΎΠΊΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈ Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π»ΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄ΡΡΠΆΠ°Π²Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com