ื-2017 ืืืื ื ืืชืืจืืช ืืคืืชืื ืืืืช ืืขืกืงืืืช ืฉื ืขืกืงื ืืืฉืงืขืืช ืฉื ืืืคื-ืื ืง ืืืชืืื ื ืืขืืื (ื-HighLoad++ 2018 ืขื ืืื ืขื ืืืืช ืขืกืงื ืืืฉืงืขืืช
ืืืืื ืชืืืื ืืคืืชืื, ืืืขืจืืช ืืชืคืชืื ืืจืืฉื ืคืื ืงืฆืืื ืืืืช, ืืืฉืื ืืกืืื ืืื ื ืฉืื ืื ื ืืืืฉืื ืืฉืื ืืจืื ืืืชืจ ืืกืชื ืชืืื ืช ืืคืืืงืฆืื ืฉื ืืฆืจื ืืื ืืคืชืืจ ืืืืื ืืืืืจ ืืืืื ืฉื ืืฉืืืืช: ืืฆืืื ื. ืืขืจืืช ืืื ืืืช ืืคืืืงืฆืืืช ืืืืืจืืช ืขื ืืืกืื ืืชืืฉื. ืื ืืกืืื ืฉืฆืืจื ื ืืืืื ืืกืืก ืืืืฆืจ ืืืฉ -
ืื ื ืจืืฆื ืืืืจ ืขื ืืจืืืืงืืืจืช TDG ืืืคืชืจืื ืืช ืืืืื ืืืขื ื ืืืืื ืชืืืื ืืคืืชืื, ืืืฆืื ืืคื ืืื ืืช ืืคืื ืงืฆืืื ืืืืช ืืขืืงืจืืช ืืืืจืืืช ืืืฆื ืืืืฆืจ ืฉืื ื ืืืื ืืืคืื ืืืกืืก ืืื ืืืช ืคืชืจืื ืืช ืฉืืืื.
ืืืืื ื ืืืจืืืืืช, ืืืืงื ื ืืช ืืืขืจืืช ืื ืคืจื ืชืคืงืืืื, ืฉืื ืืื ืืื ืืืจืื ืืคืชืจืื ืืืืื ืืกืืื ืฉื ืืขืืืช. ืืืคืข ืืืื ืืคืืขื ืฉื ืืืฉืื ืืืืฉื ืกืื ืชืคืงืื ืืื ืื ืืืชืจ. ืืืืืื ืืืืืช ืืกืคืจ ืชืคืงืืืื ืืืืชื ืกืื ืืืฉืืื:
ืึทืืึผึตืจ
Connector ืืืจืื ืขื ืืชืงืฉืืจืช ืขื ืืขืืื ืืืืฆืื; ืืืฉืืื ืฉืื ืืื ืืงืื ืืช ืืืงืฉื, ืื ืชื ืืืชื, ืืื ืื ืืฆืืื, ืืฉืืื ืืช ืื ืชืื ืื ืืขืืืื ืืืขืื ืืงืื. ืื ื ืชืืืืื ืืคืืจืืืื ืฉื 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 }
ืืื ืืืื? ืืืื ืืื ืฉืคื ืคืฉืืื ืืืื. ืืืชืืกืก ืขื ืื ืืกืืื ืฉืื ื, ืืื ืฉืขืืช ืืืืจ ืืืืจืืช ืขื ืื, ืื ืฉืื ืืชืืืืื ืืืชืื ืงืื ืฉืคืืชืจ ืืช ืืืขืื ืฉืืื. ืืืื ืื ืจืง ืืคืชืืื ืืงืฆืืขืืื, ืืื, ืืืฉื, ืื ืืืกืืื. ืื ืืกืฃ, ืืืืืช ืืืืืจ 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 DBMS ื
ื ืชืื ืฉืืคืื ื ืชืื ืื ืืกืื ืืจืื ื (ืืฉ ืชืืื ืืืช ืืืืกืืฃ ืืื ืกืื ืืจืื ื).
ืืขืื ืคืื
ืืคืขืืื ืืฉ ืฆืืจื ืืืืืืข โโืืฆืจืื ืื ืืืฆืื ืืื ืขื ืืืขืช ื ืชืื ืื ืืืฉืื; ืืฉื ืื ืืฉื ื ืชืคืงืื ืืขืื ืคืื. ืืืืจ ืฉืืืจืช ืื ืชืื ืื, ื ืืชื ืืืขืืืจ ืืืชื ืืืืคื ืืืงืืื (ืืืฉื ืืืืื ืืืชื ืืืืคืก ืื ืืจืฉ ืขื ืืื ืืฆืจืื) - ืืืืืจ ืืื ืืืขืืืจื ืืืืืจ ืืฉืืืื. ืืื ื ืขืฉื ืฉืืืืฉ ืื ืืชืืจ ืชืืงืื: ืื ืืฃ ืืื ืื ืงืืื ืืช ืืืืืืืงื, ืืื ืื ืืืื ืื ืกืืช ืฉืื ืืืืืจ ืืืชืจ.
ืฉืื ืื ืงื ื ืืืื
ืชืคืงืืื ืืืืืจ, ืืขืื ืืงืื ืืืขืื ืืคืื ืื ืืกืจื ืืฆื, ืืืืคืฉืจืื ืื ื ืืฉื ืืช ืืช ืงื ื ืืืืื ืฉื ืืืขืจืืช ืืืคืงืืช ืขื ืืื ืืืกืคืช ืืืคืขื ืืืฉืืืื ืืืฉืื ืขื ืกืื ืืชืคืงืื ืืจืฆืื ืืืคืขื. ืืืกืื ืืฉืืฉ ืืฉืื ืื ืงื ื ืืืื ืืืคืงื
ืืืคืืื ื ื ืชืื ืื
ืืืืืืงืืื ืืืืืื ืืืืืช ืืืืืื ืืืื ืืืืืื ืืืืืืงืืื ืืืจืื. ืื ื ืืืืืืื ืืืืืืืช ืฉื ืืืกืคื ืืขืืืื ื ืชืื ืื ืขื ืืื ืืืกืื ืืืืืืงื ืขื ืื ืืชืืืช ืืืื ืืืจืืืืื ืืื. ืื ืืื ืข ืืืืืืืืงื ืืืืืช "ืืืชืคืืจ" ืขื ืคื ื ืืกืคืจ ืฉืจืชืื ืคืืืืื.
ืืืจืกืืืช ื ืชืืืืช: ืื ืขืืืื ืฉื ืืืืืืงื ืืืฆืจ ืืจืกื ืืืฉื, ืืื ืื ื ืชืืื ืืืืืื ืืงืืช ืคืจืืกืช ืืื ืืืจืืืช ืืื ืืขืืื ื ืจืื ืื. ืขืืืจ ื ืชืื ืื ืฉืืื ื ืืงืืงืื ืืืืกืืืจืื ืืจืืื, ืื ื ืืืืืื ืืืืืื ืืช ืืกืคืจ ืืืจืกืืืช ืื ืืคืืื ืืืืกื ืจืง ืืืช - ืืืืจืื ื - ืืืืืจ, ืืืขืฉื ืืืฉืืืช ื ืืืื ืืจืกืืืช ืขืืืจ ืกืื ืืกืืื. ืืชื ืืืื ืื ืืืืืื ืืช ืืืืกืืืจืื ืืคื ืืื: ืืืืืื, ืืืืืง ืืช ืื ืืืืืืืงืืื ืืกืื ืืกืืื ืืขื ืฉื ื. ืื ืืืกืื ืืืจืืืื ื ืชืื: ืื ื ืืืืืื ืืคืจืืง ืืืืืืงืืื ืืฉื ืื ืืืืื ืฉืฆืืื, ืืืคื ืืช ืืงืื ืืืฉืืื.
ืืฉืืืืช
ืืื ืืชืืื ืืช ืืืขื ืืื ืืช, ืจืืื ืืฆืืื ืืช ืืืืืืช ืืืคืขืื ืืฉืืืืช ืืคื ืืื ืืื ืื, ืืคื ืืงืฉืช ืืืฉืชืืฉ, ืื ืืืืคื ืชืืื ืชื ืืืจืื ืืืื:
ืืื ืื ื ืจืืืื ืชืคืงืื ื ืืกืฃ - ืจืฅ. ืชืคืงืื ืื ืืื ืืกืจ ืืฆื, ืื ืืชื ืืืืกืืฃ ืืืคืขื ืืืฉืืืื ื ืืกืคืื ืขื ืชืคืงืื ืื ืืืฉืืื ืืคื ืืฆืืจื. ืืืจืืืชื ืฉื ืืจืฅ ืืื ืืืฆืข ืืฉืืืืช. ืืืืืจ, ื ืืชื ืืืคืืง ืืฉืืืืช ืืืฉืืช ืืืจืื ืืืื; ืื ื ืฉืืจืื ืืชืืจ ืืืืกืื ืืื ืืืืฆืขืื ืขื ืืจืื ืจ. ืกืื ืื ืฉื ืืฉืืื ื ืงืจื ืืืื. ืืฉ ืื ื ืื ืกืื ืืฉืืื ืฉื ืงืจื Task - ืืื ืืฉืืืืช ืืืืืจืืช ืขื ืืื ืืฉืชืืฉ ืฉืคืืขืืืช ืืคื ืืื ืืื ืื (ืืืืฆืขืืช ืชืืืืจ cron) ืื ืืคื ืืจืืฉื. ืืื ืืืคืขืื ืืืขืงืื ืืืจ ืืฉืืืืช ืืืื, ืืฉ ืื ื ืื ืื ืืฉืืืืช ื ืื. ืขื ืื ืช ืฉืคืื ืงืฆืืื ืืืืช ืื ืชืืื ืืืื ื, ืขืืื ืืืคืขืื ืืช ืชืคืงืื ืืืชืืื; ืืชืคืงืื ืื ืืฉ ืืฆื, ืื ืฉืืื ืืื ื ืงื ื ืืืื, ืืฉืจ, ืขื ืืืช, ืืื ื ื ืืจืฉ; ืืืงืืื, ืืื ืื ืฉืืจ ืืชืคืงืืืื, ืืืื ืืืืืช ืื ืืขืชืง ืฉืืชืืื ืืขืืื ืื ืืืืกืืจ ืืกืจื ืคืชืืื.
ืืืืจ
ืชืคืงืื ื ืืกืฃ ื ืงืจื ืืืืจ. ืืื ืืืกืฃ ืืืื ืื ืืื ืืืจื ืืืฉืืื ืืืกืคืง ืืืฉืง ืืืขืืื ืืฆืคืืื ืืื ืืจื ืืืฉืง ืืืื ืืจื ื.
ืฉืืจืืชืื
ืจืืื ืืืืืืจ ืฉืืืขืจืืช ืืงืื ืขื ืืฆืืจืช ืฉืืจืืชืื. ืืงืืืฅ ืืชืฆืืจื, ืืชื ืืืื ืืฆืืื ืืืื ืืงืฉืืช ื ืฉืืืืช ืืืืคื ืฉื ืืชื ืขื ืืื ืืืฉืชืืฉ ืฉืคืืขื ืืืจืื ืืืื. ืืืืคื ืืื, ืืชื ืืืื, ืืืฉื, ืืืจืืฅ ืืืืืฉืื ืฉืืืืชื ืื ืืืืืช ืืืืืืืจ ืืช ืืชืืฆืื.
ืืฉืืจืืช ืืชืืืจ ืืงืืืฅ ืืชืฆืืจื:
services:
sum:
doc: "adds two numbers"
function: sum
return_type: int
args:
x: int
y: int
ื-API ืฉื GraphQL ื ืืฆืจ ืืืืคื ืืืืืืื ืืืฉืืจืืช ืืืคื ืืืื ืืงืจืืื:
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