ืžืขืจื›ืช ื ื™ื”ื•ืœ ืชืฆื•ืจืช ืจืฉืช ืœืกื™ื ื•ืŸ Qrator

ืžืขืจื›ืช ื ื™ื”ื•ืœ ืชืฆื•ืจืช ืจืฉืช ืœืกื™ื ื•ืŸ Qrator

TL; DR: ืชื™ืื•ืจ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ืฉืจืช-ืœืงื•ื— ืฉืœ ืžืขืจื›ืช ื ื™ื”ื•ืœ ืชืฆื•ืจืช ื”ืจืฉืช ื”ืคื ื™ืžื™ืช ืฉืœื ื•, QControl. ื”ื•ื ืžื‘ื•ืกืก ืขืœ ืคืจื•ื˜ื•ืงื•ืœ ืชืขื‘ื•ืจื” ื“ื•-ืฉื›ื‘ืชื™ ืฉืขื•ื‘ื“ ืขื ื”ื•ื“ืขื•ืช ืขืžื•ืกื•ืช ื‘-gzip ืœืœื ื‘ื™ื˜ื•ืœ ื“ื—ื™ืกื” ื‘ื™ืŸ ื ืงื•ื“ื•ืช ืงืฆื”. ื ืชื‘ื™ื ื•ื ืงื•ื“ื•ืช ืงืฆื” ืžื‘ื•ื–ืจื™ื ืžืงื‘ืœื™ื ืขื“ื›ื•ื ื™ ืชืฆื•ืจื”, ื•ื”ืคืจื•ื˜ื•ืงื•ืœ ืขืฆืžื• ืžืืคืฉืจ ื”ืชืงื ื” ืฉืœ ืžืžืกืจื™ ื‘ื™ื ื™ื™ื ืžืงื•ืžื™ื™ื. ื”ืžืขืจื›ืช ื‘ื ื•ื™ื” ืขืœ ื”ืขื™ืงืจื•ืŸ ื’ื™ื‘ื•ื™ ื“ื™ืคืจื ืฆื™ืืœื™ ("ื™ืฆื™ื‘ ืœืื—ืจื•ื ื”", ืžื•ืกื‘ืจ ืœื”ืœืŸ) ื•ืžืฉืชืžืฉ ื‘ืฉืคืช ื”ืฉืื™ืœืชื” JMESpath ื™ื—ื“ ืขื ืžื ื•ืข ื”ืชื‘ื ื™ื•ืช Jinja ืœืขื™ื‘ื•ื“ ืงื•ื‘ืฆื™ ืชืฆื•ืจื”.

Qrator Labs ืžืคืขื™ืœื” ืจืฉืช ื”ืคืฆื” ื’ืœื•ื‘ืœื™ืช ืœืฆืžืฆื•ื ื”ืชืงืคื•ืช. ื”ืจืฉืช ืฉืœื ื• ืคื•ืขืœืช ืขืœ ืคื™ ืขื™ืงืจื•ืŸ anycast, ื•ืจืฉืชื•ืช ืžืฉื ื” ืžืชืคืจืกืžื•ืช ื‘ืืžืฆืขื•ืช BGP. ื‘ื”ื™ื•ืชื ื• ืจืฉืช BGP anycast ื”ืžืžื•ืงืžืช ืคื™ื–ื™ืช ื‘ืžืกืคืจ ืื–ื•ืจื™ื ืฉืœ ื›ื“ื•ืจ ื”ืืจืฅ, ืื ื• ื™ื›ื•ืœื™ื ืœืขื‘ื“ ื•ืœืกื ืŸ ืชืขื‘ื•ืจื” ืœื ืœื’ื™ื˜ื™ืžื™ืช ืงืจื•ื‘ ื™ื•ืชืจ ืœืœื™ื‘ื” ืฉืœ ื”ืื™ื ื˜ืจื ื˜ - ืžืคืขื™ืœื™ Tier-1.

ืžืฆื“ ืฉื ื™, ืœื”ื™ื•ืช ืจืฉืช ืžื‘ื•ื–ืจืช ื’ื™ืื•ื’ืจืคื™ืช ื–ื” ืœื ืงืœ. ืชืงืฉื•ืจืช ื‘ื™ืŸ ื ืงื•ื“ื•ืช ื ื•ื›ื—ื•ืช ื‘ืจืฉืช ื”ื™ื ืงืจื™ื˜ื™ืช ื›ื“ื™ ืœืกืคืง ืฉื™ืจื•ืชื™ ื”ืื‘ื˜ื—ื” ืœืงื‘ืœ ืชืฆื•ืจื” ืขืงื‘ื™ืช ืฉืœ ื›ืœ ืฆืžืชื™ ื”ืจืฉืช, ื•ืœืขื“ื›ืŸ ืื•ืชื ื‘ื–ืžืŸ. ืœื›ืŸ, ืขืœ ืžื ืช ืœืกืคืง ืืช ื”ืจืžื” ื”ื’ื‘ื•ื”ื” ื‘ื™ื•ืชืจ ื”ืืคืฉืจื™ืช ืฉืœ ืฉื™ืจื•ืช ืœื™ื‘ื” ืœืฆืจื›ืŸ, ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœืžืฆื•ื ื“ืจืš ืœืกื ื›ืจืŸ ื‘ืื•ืคืŸ ืืžื™ืŸ ื ืชื•ื ื™ ืชืฆื•ืจื” ื‘ื™ืŸ ื™ื‘ืฉื•ืช.

ื‘ื”ืชื—ืœื” ื”ื™ื™ืชื” ื”ืžื™ืœื”. ื–ื” ื”ืคืš ืžื”ืจ ืžืื•ื“ ืœืคืจื•ื˜ื•ืงื•ืœ ืชืงืฉื•ืจืช ื”ื–ืงื•ืง ืœืขื“ื›ื•ืŸ.


ืื‘ืŸ ื”ื™ืกื•ื“ ืฉืœ ืงื™ื•ืžื” ืฉืœ QControl, ื•ื‘ื• ื‘ื–ืžืŸ ื”ืกื™ื‘ื” ื”ืขื™ืงืจื™ืช ืœื”ืฉืงืขืช ื–ืžืŸ ื•ืžืฉืื‘ื™ื ืžืฉืžืขื•ืชื™ื™ื ื‘ื‘ื ื™ื™ืช ืคืจื•ื˜ื•ืงื•ืœ ืžืกื•ื’ ื–ื”, ื”ื™ื ื”ืฆื•ืจืš ืœื”ืฉื™ื’ ืžืงื•ืจ ืกืžื›ื•ืชื™ ื™ื—ื™ื“ ืฉืœ ืชืฆื•ืจื” ื•ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ, ืœืกื ื›ืจืŸ ืืช ื ืงื•ื“ื•ืช ื”ื ื•ื›ื—ื•ืช ืฉืœื ื•. ืขื ื–ื”. ื”ืื—ืกื•ืŸ ืขืฆืžื• ื”ื™ื” ืจืง โ€‹โ€‹ืื—ืช ืžื›ืžื” ื“ืจื™ืฉื•ืช ื‘ืžื”ืœืš ื”ืคื™ืชื•ื— ืฉืœ QControl. ื‘ื ื•ืกืฃ, ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ื’ื ืื™ื ื˜ื’ืจืฆื™ื•ืช ืขื ืฉื™ืจื•ืชื™ื ืงื™ื™ืžื™ื ื•ืžืชื•ื›ื ื ื™ื ื‘ื ืงื•ื“ื•ืช ื ื•ื›ื—ื•ืช (POP), ืฉื™ื˜ื•ืช ื—ื›ืžื•ืช (ื•ื ื™ืชื ื•ืช ืœื”ืชืืžื” ืื™ืฉื™ืช) ืœืื™ืžื•ืช ื ืชื•ื ื™ื ื•ื›ืŸ ื‘ืงืจืช ื’ื™ืฉื”. ื—ื•ืฅ ืžื–ื”, ืจืฆื™ื ื• ื’ื ืœืฉืœื•ื˜ ื‘ืžืขืจื›ืช ื›ื–ื• ื‘ืืžืฆืขื•ืช ืคืงื•ื“ื•ืช ื‘ืžืงื•ื ืœื‘ืฆืข ืฉื™ื ื•ื™ื™ื ื‘ืงื‘ืฆื™ื. ืœืคื ื™ QControl, ื”ื ืชื•ื ื™ื ื ืฉืœื—ื• ืœื ืงื•ื“ื•ืช ื ื•ื›ื—ื•ืช ื›ืžืขื˜ ื‘ืื•ืคืŸ ื™ื“ื ื™. ืื ืื—ืช ืžื ืงื•ื“ื•ืช ื”ื ื•ื›ื—ื•ืช ืœื ื”ื™ื™ืชื” ื–ืžื™ื ื” ื•ืฉื›ื—ื ื• ืœืขื“ื›ืŸ ืื•ืชื” ืžืื•ื—ืจ ื™ื•ืชืจ, ื”ืชืฆื•ืจื” ืชืฆื ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืœื ืžืกื•ื ื›ืจื ืช ื•ื ืฆื˜ืจืš ืœื‘ื–ื‘ื– ื–ืžืŸ ื›ื“ื™ ืœื”ืคืขื™ืœ ืื•ืชื” ืžื—ื“ืฉ.

ื›ืชื•ืฆืื” ืžื›ืš, ื”ื’ืขื ื• ืœืชื›ื ื™ืช ื”ื‘ืื”:
ืžืขืจื›ืช ื ื™ื”ื•ืœ ืชืฆื•ืจืช ืจืฉืช ืœืกื™ื ื•ืŸ Qrator
ืฉืจืช ื”ืชืฆื•ืจื” ืื—ืจืื™ ืขืœ ืื™ืžื•ืช ื•ืื—ืกื•ืŸ ื”ื ืชื•ื ื™ื; ืœื ืชื‘ ื™ืฉ ืžืกืคืจ ื ืงื•ื“ื•ืช ืงืฆื” ืฉืžืงื‘ืœื•ืช ื•ืžืฉื“ืจื•ืช ืขื“ื›ื•ื ื™ ืชืฆื•ืจื” ืžืœืงื•ื—ื•ืช ื•ืฆื•ื•ืชื™ ืชืžื™ื›ื” ืœืฉืจืช, ื•ืžื”ืฉืจืช ืœื ืงื•ื“ื•ืช ื ื•ื›ื—ื•ืช.

ืื™ื›ื•ืช ื”ื—ื™ื‘ื•ืจ ืœืื™ื ื˜ืจื ื˜ ืขื“ื™ื™ืŸ ืžืฉืชื ื” ืžืื•ื“ ื‘ืจื—ื‘ื™ ื”ืขื•ืœื - ื›ื“ื™ ืœื”ืžื—ื™ืฉ ื ืงื•ื“ื” ื–ื•, ื”ื‘ื” ื ืกืชื›ืœ ืขืœ MTR ืคืฉื•ื˜ ืžืคืจืื’, ืฆ'ื›ื™ื” ืœืกื™ื ื’ืคื•ืจ ื•ื”ื•ื ื’ ืงื•ื ื’.

ืžืขืจื›ืช ื ื™ื”ื•ืœ ืชืฆื•ืจืช ืจืฉืช ืœืกื™ื ื•ืŸ Qrator
MTR ืžืคืจืื’ ืœืกื™ื ื’ืคื•ืจ

ืžืขืจื›ืช ื ื™ื”ื•ืœ ืชืฆื•ืจืช ืจืฉืช ืœืกื™ื ื•ืŸ Qrator
ืื•ืชื• ื“ื‘ืจ ืœื’ื‘ื™ ื”ื•ื ื’ ืงื•ื ื’

ื—ื‘ื™ื•ืŸ ื’ื‘ื•ื” ืคื™ืจื•ืฉื• ืžื”ื™ืจื•ืช ื ืžื•ื›ื” ื™ื•ืชืจ. ื‘ื ื•ืกืฃ, ื™ืฉ ืื•ื‘ื“ืŸ ืžื ื•ืช. ืจื•ื—ื‘ ื”ืชืขืœื” ืื™ื ื• ืžืคืฆื” ืขืœ ื‘ืขื™ื” ื–ื•, ืืฉืจ ืชืžื™ื“ ื™ืฉ ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ื‘ืขืช โ€‹โ€‹ื‘ื ื™ื™ืช ืžืขืจื›ื•ืช ืžื‘ื•ื–ืจื•ืช.

ื”ืชืฆื•ืจื” ื”ืžืœืื” ืฉืœ ื ืงื•ื“ืช ื ื•ื›ื—ื•ืช ื”ื™ื ื›ืžื•ืช ืžืฉืžืขื•ืชื™ืช ืฉืœ ื ืชื•ื ื™ื ืฉื™ืฉ ืœืฉืœื•ื— ืœื ืžืขื ื™ื ืจื‘ื™ื ื“ืจืš ื—ื™ื‘ื•ืจื™ื ืœื ืืžื™ื ื™ื. ืœืžืจื‘ื” ื”ืžื–ืœ, ืœืžืจื•ืช ืฉื”ืชืฆื•ืจื” ืžืฉืชื ื” ื›ืœ ื”ื–ืžืŸ, ื–ื” ืงื•ืจื” ื‘ืžืจื•ื•ื—ื™ื ืงื˜ื ื™ื.

ืขื™ืฆื•ื‘ ื™ืฆื™ื‘ ืœืื—ืจื•ื ื”

ืื ื• ื™ื›ื•ืœื™ื ืœื•ืžืจ ืฉื‘ื ื™ื™ืช ืจืฉืช ืžื‘ื•ื–ืจืช ื”ืžื‘ื•ืกืกืช ืขืœ ื”ืขื™ืงืจื•ืŸ ืฉืœ ืขื“ื›ื•ื ื™ื ืžืฆื˜ื‘ืจื™ื ื”ื™ื ืคืชืจื•ืŸ ื“ื™ ื‘ืจื•ืจ. ืื‘ืœ ื™ืฉ ื”ืจื‘ื” ื‘ืขื™ื•ืช ืขื ื”ื‘ื“ืœื™ื. ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืฉืžื•ืจ ืืช ื›ืœ ื”ื”ื‘ื“ืœื™ื ื‘ื™ืŸ ื ืงื•ื“ื•ืช ื”ื”ืชื™ื™ื—ืกื•ืช, ื•ื’ื ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœืฉืœื•ื— ืื•ืชื ืžื—ื“ืฉ ืœืžืงืจื” ืฉืžื™ืฉื”ื• ื”ื—ืžื™ืฅ ื—ืœืง ืžื”ื ืชื•ื ื™ื. ื›ืœ ื™ืขื“ ื—ื™ื™ื‘ ืœื™ื™ืฉื ืื•ืชื ื‘ืจืฆืฃ ืžื•ื’ื“ืจ ื‘ื”ื—ืœื˜. ื‘ื“ืจืš ื›ืœืœ, ื‘ืžืงืจื” ืฉืœ ืžืกืคืจ ื™ืขื“ื™ื, ืคืขื•ืœื” ื›ื–ื• ื™ื›ื•ืœื” ืœื”ื™ืžืฉืš ื–ืžืŸ ืจื‘. ืขืœ ื”ื›ื•ื ืก ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœื‘ืงืฉ ื’ื ืืช ื”ื—ืœืงื™ื ื”ื—ืกืจื™ื ื•ื›ืžื•ื‘ืŸ ืฉืขืœ ื”ื—ืœืง ื”ืžืจื›ื–ื™ ืœื”ื’ื™ื‘ ืœื‘ืงืฉื” ื›ื–ื• ื‘ืฆื•ืจื” ื ื›ื•ื ื”, ื•ืœืฉืœื•ื— ืจืง ืืช ื”ื ืชื•ื ื™ื ื”ื—ืกืจื™ื.

ื›ืชื•ืฆืื” ืžื›ืš, ื”ื’ืขื ื• ืœืคืชืจื•ืŸ ื“ื™ ืžืขื ื™ื™ืŸ - ื™ืฉ ืœื ื• ืจืง ืฉื›ื‘ืช ื”ืชื™ื™ื—ืกื•ืช ืื—ืช, ืงื‘ื•ืขื”, ื‘ื•ื ื ืงืจื ืœื” ื™ืฆื™ื‘, ื•ืจืง ื”ื‘ื“ืœ ืื—ื“ ืขื‘ื•ืจื” - ืœืื—ืจื•ื ื”. ื›ืœ ืื—ืจื•ืŸ ืžื‘ื•ืกืก ืขืœ ื”ื™ืฆื™ื‘ ื”ืื—ืจื•ืŸ ืฉื ื•ืฆืจ ื•ืžืกืคื™ืง ื›ื“ื™ ืœื‘ื ื•ืช ืžื—ื“ืฉ ืืช ื ืชื•ื ื™ ื”ืชืฆื•ืจื”. ื‘ืจื’ืข ืฉื”ื˜ืจื™ ื”ื˜ืจื™ ืžื’ื™ืข ืœื™ืขื“ื•, ื”ื™ืฉืŸ ื›ื‘ืจ ืœื ื ื—ื•ืฅ.

ื›ืœ ืฉื ื•ืชืจ ื”ื•ื ืœืฉืœื•ื— ืžื“ื™ ืคืขื ืชืฆื•ืจื” ื™ืฆื™ื‘ื” ืจืขื ื ื”, ืœืžืฉืœ ื‘ื’ืœืœ ืฉื”ืื—ืจื•ืŸ ื”ืคืš ื’ื“ื•ืœ ืžื“ื™. ืžื” ืฉื—ืฉื•ื‘ ื’ื ื›ืืŸ ื”ื•ื ืฉืื ื—ื ื• ืฉื•ืœื—ื™ื ืืช ื›ืœ ื”ืขื“ื›ื•ื ื™ื ื”ืืœื” ื‘ืžืฆื‘ ืฉื™ื“ื•ืจ/ืฉื™ื“ื•ืจ ืžืจื•ื‘ื”, ื‘ืœื™ ืœื“ืื•ื’ ืœื ืžืขื ื™ื ื‘ื•ื“ื“ื™ื ื•ืœื™ื›ื•ืœืช ืฉืœื”ื ืœื—ื‘ืจ ืคื™ืกื•ืช ื ืชื•ื ื™ื. ื‘ืจื’ืข ืฉืื ื—ื ื• ื‘ื˜ื•ื—ื™ื ืฉืœื›ื•ืœื ื™ืฉ ืืช ื”ื™ืฆื™ื‘ื•ืช ื”ื ื›ื•ื ื•ืช, ืื ื—ื ื• ืฉื•ืœื—ื™ื ืจืง ื—ื“ืฉื™ื ื—ื“ืฉื™ื. ื”ืื ื›ื“ืื™ ืœื”ื‘ื”ื™ืจ ืฉื–ื” ืขื•ื‘ื“? ืขื•ื‘ื“. ื™ืฆื™ื‘ ื ืฉืžืจ ื‘ืžื˜ืžื•ืŸ ื‘ืฉืจืช ื”ืชืฆื•ืจื” ื•ื‘ื ืžืขื ื™ื, ืื—ืจื•ื ื™ื ื ื•ืฆืจื™ื ืœืคื™ ื”ืฆื•ืจืš.

ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉืœ ืชื—ื‘ื•ืจื” ื“ื•-ืžืคืœืกื™ืช

ืžื“ื•ืข ื‘ื ื™ื ื• ืืช ื”ืชื—ื‘ื•ืจื” ืฉืœื ื• ื‘ืฉื ื™ ืžืคืœืกื™ื? ื”ืชืฉื•ื‘ื” ื”ื™ื ื“ื™ ืคืฉื•ื˜ื” - ืจืฆื™ื ื• ืœื ืชืง ื ื™ืชื•ื‘ ืžื”ื™ื’ื™ื•ืŸ ื‘ืจืžื” ื’ื‘ื•ื”ื”, ืชื•ืš ืงื‘ืœืช ื”ืฉืจืื” ืžืžื•ื“ืœ ื”-OSI ืขื ืฉื›ื‘ื•ืช ื”ืชื—ื‘ื•ืจื” ื•ื”ื™ื™ืฉื•ื ืฉืœื•. ื”ืฉืชืžืฉื ื• ื‘-Thrift ืœืชืคืงื™ื“ ืคืจื•ื˜ื•ืงื•ืœ ื”ืชื—ื‘ื•ืจื”, ื•ื‘ืคื•ืจืžื˜ ื”ืกื“ืจืช msgpack ืœืคื•ืจืžื˜ ื‘ืจืžื” ื’ื‘ื•ื”ื” ืฉืœ ื”ื•ื“ืขื•ืช ื‘ืงืจื”. ื–ื• ื”ืกื™ื‘ื” ืฉื”ื ืชื‘ (ืžื‘ืฆืข ืฉื™ื“ื•ืจ/ืฉื™ื“ื•ืจ/ืžืžืกืจ) ืœื ืžืกืชื›ืœ ื‘ืชื•ืš msgpack, ืœื ืคื•ืจืง ืื• ืื•ืจื– ืืช ื”ืชื•ื›ืŸ ืื—ื•ืจื”, ื•ืจืง ืžืขื‘ื™ืจ ื ืชื•ื ื™ื.

Thrift (ืžืื ื’ืœื™ืช - "thrift", ืžื‘ื•ื˜ื [ฮธrift]) ื”ื™ื ืฉืคืช ืชื™ืื•ืจ ืžืžืฉืง ื”ืžืฉืžืฉืช ืœื”ื’ื“ืจื” ื•ื™ืฆื™ืจืช ืฉื™ืจื•ืชื™ื ืขื‘ื•ืจ ืฉืคื•ืช ืชื›ื ื•ืช ืฉื•ื ื•ืช. ื–ื•ื”ื™ ืžืกื’ืจืช ืœืฉื™ื—ื•ืช ืคืจื•ืฆื“ื•ืจื•ืช ืžืจื—ื•ืง (RPC). ืžืฉืœื‘ ืฆื™ื ื•ืจ ืชื•ื›ื ื” ืขื ืžื ื•ืข ื™ืฆื™ืจืช ืงื•ื“ ืœืคื™ืชื•ื— ืฉื™ืจื•ืชื™ื ืฉืขื•ื‘ื“ื™ื ื‘ืฆื•ืจื” ืคื—ื•ืช ืื• ื™ื•ืชืจ ื™ืขื™ืœื” ื•ืงืœื” ื‘ื™ืŸ ืฉืคื•ืช.

ื‘ื—ืจื ื• ื‘ืžืกื’ืจืช Thrift ื‘ื’ืœืœ RPC ื•ืชืžื™ื›ื” ื‘ืฉืคื•ืช ืจื‘ื•ืช. ื›ืจื’ื™ืœ, ื”ื—ืœืงื™ื ื”ืงืœื™ื ื”ื™ื• ื”ืœืงื•ื— ื•ื”ืฉืจืช. ืขื ื–ืืช, ื”ืจืื•ื˜ืจ ื”ืชื‘ืจืจ ื›ืื’ื•ื– ืงืฉื” ืœืคื™ืฆื•ื—, ื‘ื™ืŸ ื”ื™ืชืจ ื‘ืฉืœ ื”ื™ืขื“ืจ ืคืชืจื•ืŸ ืžื•ื›ืŸ ื‘ืžื”ืœืš ื”ืคื™ืชื•ื— ืฉืœื ื•.

ืžืขืจื›ืช ื ื™ื”ื•ืœ ืชืฆื•ืจืช ืจืฉืช ืœืกื™ื ื•ืŸ Qratorื™ืฉื ืŸ ืืคืฉืจื•ื™ื•ืช ืื—ืจื•ืช, ื›ื’ื•ืŸ protobuf / gRPC, ืื•ืœื ื›ืืฉืจ ื”ืชื—ืœื ื• ืืช ื”ืคืจื•ื™ืงื˜ ืฉืœื ื•, gRPC ื”ื™ื” ื“ื™ ื—ื“ืฉ ื•ืœื ื”ืขื–ื ื• ืœืงื—ืช ืื•ืชื• ืœืกื™ืคื•ืŸ.

ื›ืžื•ื‘ืŸ, ื™ื›ื•ืœื ื• (ื•ืœืžืขืฉื” ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื) ืœื‘ื ื•ืช ืืช ื”ืื•ืคื ื™ื™ื ืฉืœื ื•. ื™ื”ื™ื” ืงืœ ื™ื•ืชืจ ืœื™ืฆื•ืจ ืคืจื•ื˜ื•ืงื•ืœ ืขื‘ื•ืจ ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ืžื›ื™ื•ื•ืŸ ืฉืืจื›ื™ื˜ืงื˜ื•ืจืช ืฉืจืช-ืœืงื•ื— ื”ื™ื ืคืฉื•ื˜ื” ื™ื—ืกื™ืช ืœื™ื™ืฉื•ื ื‘ื”ืฉื•ื•ืื” ืœื‘ื ื™ื™ืช ื ืชื‘ ื‘-Thrift. ื›ืš ืื• ืื—ืจืช, ื™ืฉื ื” ื”ื˜ื™ื” ืžืกื•ืจืชื™ืช ืœืคืจื•ื˜ื•ืงื•ืœื™ื ื•ืžื™ืžื•ืฉื™ื ืฉื ื›ืชื‘ื• ื‘ืขืฆืžื ืฉืœ ืกืคืจื™ื•ืช ืคื•ืคื•ืœืจื™ื•ืช (ืžืกื™ื‘ื” ื˜ื•ื‘ื”); ื‘ื ื•ืกืฃ, ื‘ืžื”ืœืš ื“ื™ื•ื ื™ื ืชืžื™ื“ ืขื•ืœื” ื”ืฉืืœื”: "ืื™ืš ืื ื—ื ื• ื”ื•ืœื›ื™ื ืœื”ืขื‘ื™ืจ ืืช ื–ื” ืœืฉืคื•ืช ืื—ืจื•ืช?" ืื– ืžื™ื“ ื–ืจืงื ื• ืืช ื”ืจืขื™ื•ืŸ ืฉืœ ืื•ืคื ื™ื™ื.

Msgpack ื“ื•ืžื” ืœ-JSON, ืืš ืžื”ื™ืจ ื•ืงื˜ืŸ ื™ื•ืชืจ. ื–ื”ื• ืคื•ืจืžื˜ ืฉืœ ืกื™ื“ื•ืจ ื ืชื•ื ื™ื ื‘ื™ื ืืจื™ ื”ืžืืคืฉืจ ื”ื—ืœืคืช ื ืชื•ื ื™ื ื‘ื™ืŸ ืžืกืคืจ ืฉืคื•ืช.

ื‘ืจืžื” ื”ืจืืฉื•ื ื” ื™ืฉ ืœื ื• Thrift ืขื ื”ืžื™ื“ืข ื”ืžื™ื ื™ืžืœื™ ื”ื“ืจื•ืฉ ืœื ืชื‘ ื›ื“ื™ ืœื”ืขื‘ื™ืจ ืืช ื”ื”ื•ื“ืขื”. ื‘ืจืžื” ื”ืฉื ื™ื™ื” ื™ืฉ ืžื‘ื ื™ msgpack ืืจื•ื–ื™ื.

ื‘ื—ืจื ื• ื‘-msgpack ื›ื™ ื”ื•ื ืžื”ื™ืจ ื•ืงื•ืžืคืงื˜ื™ ื™ื•ืชืจ ื‘ื”ืฉื•ื•ืื” ืœ-JSON. ืื‘ืœ ื—ืฉื•ื‘ ืžื›ืš, ื”ื•ื ืชื•ืžืš ื‘ืกื•ื’ื™ ื ืชื•ื ื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช, ืžื” ืฉืžืืคืฉืจ ืœื ื• ืœื”ืฉืชืžืฉ ื‘ืชื›ื•ื ื•ืช ืžื’ื ื™ื‘ื•ืช ื›ืžื• ื”ืขื‘ืจืช ืงื‘ืฆื™ื ื‘ื™ื ืืจื™ื™ื ื’ื•ืœืžื™ื™ื ืื• ืื•ื‘ื™ื™ืงื˜ื™ื ืžื™ื•ื—ื“ื™ื ื”ืžืขื™ื“ื™ื ืขืœ ื”ื™ืขื“ืจ ื ืชื•ื ื™ื, ืžื” ืฉื”ื™ื” ื—ืฉื•ื‘ ืขื‘ื•ืจ ื”ืชื›ื ื™ืช ื”"ื™ืฆื™ื‘ื”-ื”ืื—ืจื•ื ื”" ืฉืœื ื•.

JMESPath
JMESPath ื”ื™ื ืฉืคืช ืฉืื™ืœืชื•ืช JSON.
ื›ืš ื‘ื“ื™ื•ืง ื ืจืื” ื”ืชื™ืื•ืจ ืฉืื ื• ืžืงื‘ืœื™ื ืžื”ืชื™ืขื•ื“ ื”ืจืฉืžื™ ืฉืœ JMESPath, ืื‘ืœ ืœืžืขืฉื”, ื”ื•ื ืขื•ืฉื” ื”ืจื‘ื” ื™ื•ืชืจ ืžื–ื”. JMESPath ืžืืคืฉืจ ืœืš ืœื—ืคืฉ ื•ืœืกื ืŸ ืชืชื™ ืขืฆื™ื ื‘ืžื‘ื ื” ืขืฅ ืฉืจื™ืจื•ืชื™, ื•ืœื”ื—ื™ืœ ืฉื™ื ื•ื™ื™ื ืขืœ ื ืชื•ื ื™ื ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”. ื–ื” ื’ื ืžืืคืฉืจ ืœืš ืœื”ื•ืกื™ืฃ ืžืกื ื ื™ื ืžื™ื•ื—ื“ื™ื ื•ื”ืœื™ื›ื™ ืฉื™ื ื•ื™ ื ืชื•ื ื™ื. ืœืžืจื•ืช ืฉื–ื”, ื›ืžื•ื‘ืŸ, ื“ื•ืจืฉ ืžืืžืฅ ืžื•ื—ื™ ื›ื“ื™ ืœื”ื‘ื™ืŸ.

ื’'ื™ื ื’'ื”
ืขื‘ื•ืจ ื—ืœืง ืžื”ืฆืจื›ื ื™ื, ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ืคื•ืš ืืช ื”ืชืฆื•ืจื” ืœืงื•ื‘ืฅ - ืื– ืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘ืžื ื•ืข ืชื‘ื ื™ืช ื•ื’'ื™ื ื’'ื” ื”ื™ื ื”ื‘ื—ื™ืจื” ื”ื‘ืจื•ืจื”. ื‘ืขื–ืจืชื•, ืื ื• ื™ื•ืฆืจื™ื ืงื•ื‘ืฅ ืชืฆื•ืจื” ืžื”ืชื‘ื ื™ืช ื•ื”ื ืชื•ื ื™ื ืฉื”ืชืงื‘ืœื• ื‘ื™ืขื“.

ื›ื“ื™ ืœื™ืฆื•ืจ ืงื•ื‘ืฅ ืชืฆื•ืจื”, ืื ื• ื–ืงื•ืงื™ื ืœื‘ืงืฉืช JMESPath, ืชื‘ื ื™ืช ืขื‘ื•ืจ ืžื™ืงื•ื ื”ืงื•ื‘ืฅ ื‘-FS ื•ืชื‘ื ื™ืช ืขื‘ื•ืจ ื”ืชืฆื•ืจื” ืขืฆืžื”. ื›ืžื• ื›ืŸ, ืžื•ืžืœืฅ ื‘ืฉืœื‘ ื–ื” ืœื”ื‘ื”ื™ืจ ืืช ื”ืจืฉืื•ืช ื”ืงื•ื‘ืฅ. ื›ืœ ื–ื” ืฉื•ืœื‘ ื‘ื”ืฆืœื—ื” ื‘ืงื•ื‘ืฅ ืื—ื“ - ืœืคื ื™ ืชื—ื™ืœืช ืชื‘ื ื™ืช ื”ืชืฆื•ืจื”, ืฉืžื ื• ื›ื•ืชืจืช ื‘ืคื•ืจืžื˜ YAML ืฉืžืชืืจืช โ€‹โ€‹ืืช ื”ืฉืืจ.

ืœื“ื•ื’ืžื”:

---
selector: "[@][[email protected]._meta.version == `42`] | items([0].fft_config || `{}`)"
destination_filename: "fft/{{ match[0] }}.json"
file_mode: 0644
reload_daemons: [fft] ...
{{ dict(match[1]) | json(indent=2, sort_keys=True) }}

ืขืœ ืžื ืช ืœื™ืฆื•ืจ ืงื•ื‘ืฅ ืชืฆื•ืจื” ืœืฉื™ืจื•ืช ื—ื“ืฉ, ืื ื• ืžื•ืกื™ืคื™ื ืจืง ืงื•ื‘ืฅ ืชื‘ื ื™ืช ื—ื“ืฉ. ืื™ืŸ ืฆื•ืจืš ื‘ืฉื™ื ื•ื™ื™ื ื‘ืงื•ื“ ื”ืžืงื•ืจ ืื• ื‘ืชื•ื›ื ื” ื‘ื ืงื•ื“ื•ืช ื”ื ื•ื›ื—ื•ืช.

ืžื” ื”ืฉืชื ื” ืžืื– ืฉ-QControl ืขืœื” ืœืื•ื•ื™ืจ? ื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ื•ื”ื—ืฉื•ื‘ ื‘ื™ื•ืชืจ ื”ื•ื ืืกืคืงื” โ€‹โ€‹ืขืงื‘ื™ืช ื•ืืžื™ื ื” ืฉืœ ืขื“ื›ื•ื ื™ ืชืฆื•ืจื” ืœื›ืœ ื”ืฆืžืชื™ื ื‘ืจืฉืช. ื”ืฉื ื™ ื”ื•ื ืงื‘ืœืช ื›ืœื™ ืจื‘ ืขื•ืฆืžื” ืœื‘ื“ื™ืงืช ื”ืชืฆื•ืจื” ื•ื‘ื™ืฆื•ืข ืฉื™ื ื•ื™ื™ื ื‘ื” ืขืœ ื™ื“ื™ ืฆื•ื•ืช ื”ืชืžื™ื›ื” ืฉืœื ื•, ื›ืžื• ื’ื ืขืœ ื™ื“ื™ ืฆืจื›ื ื™ ื”ืฉื™ืจื•ืช.

ื”ืฆืœื—ื ื• ืœืขืฉื•ืช ืืช ื›ืœ ื–ื” ื‘ืืžืฆืขื•ืช ืกื›ื™ืžืช ื”ืขื“ื›ื•ื ื™ื ื”ื™ืฆื™ื‘ื” ื”ืื—ืจื•ื ื” ื›ื“ื™ ืœืคืฉื˜ ืืช ื”ืชืงืฉื•ืจืช ื‘ื™ืŸ ืฉืจืช ื”ืชืฆื•ืจื” ืœื ืžืขื ื™ ื”ืชืฆื•ืจื”. ืฉื™ืžื•ืฉ ื‘ืคืจื•ื˜ื•ืงื•ืœ ื“ื•-ืฉื›ื‘ืชื™ ืœืชืžื™ื›ื” ื‘ื“ืจืš ื‘ืœืชื™ ืชืœื•ื™ื” ื‘ืชื•ื›ืŸ ืœื ื™ืชื•ื‘ ื ืชื•ื ื™ื. ืฉื™ืœื‘ ื‘ื”ืฆืœื—ื” ืžื ื•ืข ื™ืฆื™ืจืช ืชืฆื•ืจื” ืžื‘ื•ืกืก Jinja ื‘ืจืฉืช ืกื™ื ื•ืŸ ืžื‘ื•ื–ืจืช. ืžืขืจื›ืช ื–ื• ืชื•ืžื›ืช ื‘ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืฉื™ื˜ื•ืช ืชืฆื•ืจื” ืขื‘ื•ืจ ื”ืฆื™ื•ื“ ื”ื”ื™ืงืคื™ ื”ืžื‘ื•ื–ืจ ื•ื”ื”ื˜ืจื•ื’ื ื™ ืฉืœื ื•.

ืชื•ื“ื” ืขืœ ืขื–ืจืชืš ื‘ื›ืชื™ื‘ืช ื”ื—ื•ืžืจ. VolanDamrod, ืกืจื ื”ื™ื™ื˜, ืœึนื.

ื’ืจืกื” ืื ื’ืœื™ืช ื”ื•ื“ืขื”.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”