αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžŽαŸ’αžαžΆαž‰αžαŸ’αžšαž„ Qrator

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžŽαŸ’αžαžΆαž‰αžαŸ’αžšαž„ Qrator

TL; αž€αž»αž„αŸ– αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ-αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžŽαŸ’αžαžΆαž‰αžαžΆαž„αž€αŸ’αž“αž»αž„αžšαž”αžŸαŸ‹αž™αžΎαž„ QControl αŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž’αŸ‚αž€αž›αžΎαž–αž·αž’αžΈαž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αž–αžΈαžšαžŸαŸ’αžšαž‘αžΆαž”αŸ‹αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžŸαžΆαžšαžŠαŸ‚αž›αžαŸ’αž…αž”αŸ‹ gzip αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž”αž„αŸ’αžšαž½αž˜αžšαžœαžΆαž„αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αŸ” αžšαŸ‰αŸ„αžαž‘αŸαžšαžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™ αž“αž·αž„αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ αž αžΎαž™αž–αž·αž’αžΈαž€αžΆαžšαžαŸ’αž›αž½αž“αžœαžΆαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžŠαŸ†αž‘αžΎαž„αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αžαž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžΈαž™αž€αž˜αŸ’αž˜αŸ” αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžαžΆαž˜αž‚αŸ„αž›αž€αžΆαžšαžŽαŸ αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αžŒαžΈαž•αŸαžšαŸ‰αž„αŸ‹αžŸαŸ’αž™αŸ‚αž› ("αžŸαŸ’αžαŸαžšαž—αžΆαž–αžαŸ’αž˜αžΈαŸ—" αž–αž“αŸ’αž™αž›αŸ‹αžαžΆαž„αž€αŸ’αžšαŸ„αž˜) αž αžΎαž™αž”αŸ’αžšαžΎαž—αžΆαžŸαžΆαžŸαŸ†αžŽαž½αžš JMESpath αžšαž½αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž‚αŸ†αžšαžΌ Jinja αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αžΆαž‰αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ”

Qrator Labs αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžŽαŸ’αžαžΆαž‰αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžŠαŸ‚αž›αž…αŸ‚αž€αž…αžΆαž™αž‘αžΌαž‘αžΆαŸ†αž„αž–αž·αž—αž–αž›αŸ„αž€αŸ” αž”αžŽαŸ’αžαžΆαž‰αžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž‚αŸ„αž›αž€αžΆαžšαžŽαŸ anycast αž αžΎαž™αž”αžŽαŸ’αžαžΆαž‰αžšαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™αžαžΆαž˜αžšαž™αŸˆ BGP αŸ” αž€αŸ’αž“αž»αž„αž“αžΆαž˜αž‡αžΆαž”αžŽαŸ’αžαžΆαž‰ BGP anycast αžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸƒαž•αŸ‚αž“αžŠαžΈ αž™αžΎαž„αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αžαŸ’αžšαž„αž…αžšαžΆαž…αžšαžŽαŸαžαž»αžŸαž…αŸ’αž”αžΆαž”αŸ‹αž€αžΆαž“αŸ‹αžαŸ‚αž‡αž·αžαž‘αŸ…αž“αžΉαž„αžŸαŸ’αž“αžΌαž›αž“αŸƒαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž - αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž›αŸ†αžŠαžΆαž”αŸ‹αžαŸ’αž“αžΆαž€αŸ‹ 1 αŸ”

αž˜αŸ’αž™αŸ‰αžΆαž„αžœαž·αž‰αž‘αŸ€αž αž€αžΆαžšαž’αŸ’αžœαžΎαž‡αžΆαž”αžŽαŸ’αžαžΆαž‰αž…αŸ‚αž€αž…αžΆαž™αžαžΆαž˜αž—αžΌαž˜αž·αžŸαžΆαžŸαŸ’αžαŸ’αžšαž‚αžΊαž˜αž·αž“αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ„αŸ‡αž‘αŸαŸ” αž€αžΆαžšαž”αŸ’αžšαžΆαžŸαŸ’αžšαŸαž™αž‘αžΆαž€αŸ‹αž‘αž„αžšαžœαžΆαž„αž…αŸ†αžŽαž»αž…αž”αžŽαŸ’αžαžΆαž‰αž“αŸƒαžœαžαŸ’αžαž˜αžΆαž“αž‚αžΊαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαžŸαž“αŸ’αžαž·αžŸαž»αžαžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž“αŸƒαž”αžŽαŸ’αžαžΆαž‰αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžŠαŸ„αž™αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž–αž½αž€αžœαžΆαž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžŽαŸˆαž‘αžΆαž“αŸ‹αž–αŸαž›αžœαŸαž›αžΆαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αž”αŸ†αž•αž»αžαž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŸαŸ’αž“αžΌαž›αžŠαž›αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž™αžΎαž„αžαŸ’αžšαžΌαžœαžŸαŸ’αžœαŸ‚αž„αžšαž€αžœαž·αž’αžΈαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ„αž™αž—αžΆαž–αž‡αžΏαž‡αžΆαž€αŸ‹αž“αŸ…αž‘αžΌαž‘αžΆαŸ†αž„αž‘αŸ’αžœαžΈαž”αŸ”

αž“αŸ…αžŠαžΎαž˜αžŠαŸ†αž”αžΌαž„αž‚αžΊαž‡αžΆαž–αŸ’αžšαŸ‡αž”αž“αŸ’αž‘αžΌαž›αŸ” αžœαžΆαž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‡αžΆαž–αž·αž’αžΈαž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαŸ”


αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‚αŸ’αžšαžΉαŸ‡αž“αŸƒαž’αžαŸ’αžαž·αž—αžΆαž–αžšαž”αžŸαŸ‹ QControl αž“αž·αž„αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ αž˜αžΌαž›αž αŸαžαž»αž…αŸ†αž”αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αž–αŸαž›αžœαŸαž›αžΆ αž“αž·αž„αž’αž“αž’αžΆαž“αž™αŸ‰αžΆαž„αž…αŸ’αžšαžΎαž“αž›αžΎαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž–αž·αž’αžΈαž€αžΆαžšαž”αŸ’αžšαž—αŸαž‘αž“αŸαŸ‡αž‚αžΊαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž”αŸ’αžšαž—αž–αž’αž“αž»αž‰αŸ’αž‰αžΆαžαžαŸ‚αž˜αž½αž™αž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž αžΎαž™αž‘αžΈαž”αŸ†αž•αž»αžαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž…αŸ†αžŽαž»αž…αžœαžαŸ’αžαž˜αžΆαž“αžšαž”αžŸαŸ‹αž™αžΎαž„ αž‡αžΆαž˜αž½αž™β€‹αžœαžΆαŸ” αž€αžΆαžšαž•αŸ’αž‘αž»αž€αžαŸ’αž›αž½αž“αžœαžΆαž‚αžΊαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ QControl αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž™αžΎαž„αž€αŸαžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ αž“αž·αž„αž‚αŸ’αžšαŸ„αž„αž‘αž»αž€αž“αŸ…αž…αŸ†αžŽαž»αž…αžœαžαŸ’αžαž˜αžΆαž“ (POP) αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž†αŸ’αž›αžΆαžαžœαŸƒ (αž“αž·αž„αž’αžΆαž…αž”αŸ’αžŠαžΌαžšαžαžΆαž˜αž”αŸ†αžŽαž„αž”αžΆαž“) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž»αž–αž›αž—αžΆαž–αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž€αŸαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž•αž„αžŠαŸ‚αžšαŸ” αž€αŸ’αžšαŸ…αž–αžΈαž“αŸαŸ‡ αž™αžΎαž„αž€αŸαž…αž„αŸ‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ‚αž”αž“αŸαŸ‡αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‡αžΆαž‡αžΆαž„αž’αŸ’αžœαžΎαž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚αž―αž€αžŸαžΆαžšαŸ” αž˜αž»αž“αž–αŸαž› QControl αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαž‘αŸ…αž€αžΆαž“αŸ‹αž…αŸ†αžŽαž»αž…αžœαžαŸ’αžαž˜αžΆαž“αžŸαŸ’αž‘αžΎαžšαžαŸ‚αžŠαŸ„αž™αžŠαŸƒαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž…αŸ†αžŽαž»αž…αžŽαžΆαž˜αž½αž™αž“αŸƒαžœαžαŸ’αžαž˜αžΆαž“αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“ αž αžΎαž™αž™αžΎαž„αž—αŸ’αž›αŸαž…αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αžœαžΆαž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αžΉαž„αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž€αžΆαžšαžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆ αž αžΎαž™αž™αžΎαž„αž“αžΉαž„αžαŸ’αžšαžΌαžœαžαŸ’αž‡αŸ‡αžαŸ’αž‡αžΆαž™αž–αŸαž›αžœαŸαž›αžΆαž€αŸ’αž“αž»αž„αž€αžΆαžšαž‘αžΆαž‰αž™αž€αžœαžΆαž˜αž€αžœαž·αž‰ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ
αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžŽαŸ’αžαžΆαž‰αžαŸ’αžšαž„ Qrator
αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αžŸαž»αž–αž›αž—αžΆαž–αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž€αžΆαžšαž•αŸ’αž‘αž»αž€ αžšαŸ‰αŸ„αžαž‘αŸαžšαž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž‘αž‘αž½αž› αž“αž·αž„αž•αŸ’αžŸαžΆαž™αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž–αžΈαž’αžαž·αžαž·αž‡αž“ αž“αž·αž„αž€αŸ’αžšαž»αž˜αž‡αŸ†αž“αž½αž™αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‘αŸ…αž…αŸ†αžŽαž»αž…αžœαžαŸ’αžαž˜αžΆαž“αŸ”

αž‚αž»αžŽαž—αžΆαž–αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž’αŸŠαžΈαž’αžΊαžŽαž·αžαž“αŸ…αžαŸ‚αž”αŸ’αžšαŸ‚αž”αŸ’αžšαž½αž›αž™αŸ‰αžΆαž„αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αž“αŸ…αž‡αž»αŸ†αžœαž·αž‰αž–αž·αž—αž–αž›αŸ„αž€ - αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αžΆαž‰αž–αžΈαž…αŸ†αžŽαž»αž…αž“αŸαŸ‡ αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž› MTR αžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™αž–αžΈαž‘αžΈαž€αŸ’αžšαž»αž„ Prague αžŸαžΆαž’αžΆαžšαžŽαžšαžŠαŸ’αž‹αž†αŸαž€ αž‘αŸ…αžŸαž·αž„αŸ’αž αž”αž»αžšαžΈ αž“αž·αž„αž αž»αž„αž€αž»αž„αŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžŽαŸ’αžαžΆαž‰αžαŸ’αžšαž„ Qrator
MTR αž–αžΈ Prague αž‘αŸ…αžŸαž·αž„αŸ’αž αž”αž»αžšαžΈ

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžŽαŸ’αžαžΆαž‰αžαŸ’αžšαž„ Qrator
αžšαžΏαž„αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž αž»αž„αž€αž»αž„

αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœαžαŸ’αž–αžŸαŸ‹αž˜αžΆαž“αž“αŸαž™αžαžΆαž›αŸ’αž”αžΏαž“αž‘αžΆαž”αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αžαž˜αžΆαž“αž€αžΆαžšαž”αžΆαžαŸ‹αž”αž„αŸ‹αž€αž‰αŸ’αž…αž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αŸ” αž‘αž‘αžΉαž„αž†αžΆαž“αŸ‚αž›αž˜αž·αž“αž•αŸ’αžαž›αŸ‹αžŸαŸ†αžŽαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž‘αŸαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžαŸ‚αž™αž€αž˜αž€αž–αž·αž…αžΆαžšαžŽαžΆαž‡αžΆαž“αž·αž…αŸ’αž…αž“αŸ…αž–αŸαž›αžŸαžΆαž„αžŸαž„αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžœαž·αž˜αž‡αŸ’αžˆαž€αžΆαžšαŸ”

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž–αŸαž‰αž›αŸαž‰αž“αŸƒαž…αŸ†αžŽαž»αž…αžœαžαŸ’αžαž˜αžΆαž“αž‚αžΊαž‡αžΆαž…αŸ†αž“αž½αž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžαŸ‚αž•αŸ’αž‰αžΎαž‘αŸ…αž€αžΆαž“αŸ‹αž’αŸ’αž“αž€αž‘αž‘αž½αž›αž‡αžΆαž…αŸ’αžšαžΎαž“αž‡αž»αŸ†αžœαž·αž‰αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αž‘αž»αž€αž…αž·αžαŸ’αžαŸ” αž‡αžΆαžŸαŸ†αžŽαžΆαž„αž›αŸ’αž’ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž₯αžαžˆαž”αŸ‹αžˆαžšαž€αŸαžŠαŸ„αž™ αž€αŸαžœαžΆαž€αžΎαžαž‘αžΎαž„αž”αž“αŸ’αžαž·αž…αž˜αŸ’αžαž„αŸ—αŸ”

αž€αžΆαžšαžšαž…αž“αžΆαžŸαŸ’αžαŸαžšαž—αžΆαž–αžαŸ’αž˜αžΈαŸ—

αž™αžΎαž„αž’αžΆαž…αž“αž·αž™αžΆαž™αž”αžΆαž“αžαžΆαž€αžΆαžšαž€αžŸαžΆαž„αž”αžŽαŸ’αžαžΆαž‰αž…αŸ‚αž€αž…αžΆαž™αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž—αžΆαž–αž‘αžΆαž“αŸ‹αžŸαž˜αŸαž™αž‚αžΊαž‡αžΆαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαŸ” αž™αžΎαž„αžαŸ’αžšαžΌαžœαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαžœαžΆαž„αž…αŸ†αžŽαž»αž…αž™αŸ„αž„ αž αžΎαž™αž€αŸαž’αžΆαž…αž”αž‰αŸ’αž‡αžΌαž“αžœαžΆαž‘αžΎαž„αžœαž·αž‰αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αžαž€αžαžΆαž“αž•αŸ’αž“αŸ‚αž€αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž‚αŸ„αž›αžŠαŸ…αž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαžαŸ‚αž’αž“αž»αžœαžαŸ’αžαž–αž½αž€αžœαžΆαžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹αž›αŸ†αžŠαŸ„αž™αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αŸ” αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž‚αŸ„αž›αžŠαŸ…αž‡αžΆαž…αŸ’αžšαžΎαž“ αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αŸ‚αž”αž“αŸαŸ‡αž’αžΆαž…αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž™αžΌαžšαŸ” αž’αŸ’αž“αž€αž‘αž‘αž½αž›αž€αŸαžαŸ’αžšαžΌαžœαžαŸ‚αž’αžΆαž…αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž•αŸ’αž“αŸ‚αž€αžŠαŸ‚αž›αž”αžΆαžαŸ‹ αž αžΎαž™αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž•αŸ’αž“αŸ‚αž€αž€αžŽαŸ’αžαžΆαž›αžαŸ’αžšαžΌαžœαžαŸ‚αž†αŸ’αž›αžΎαž™αžαž”αž‘αŸ…αž“αžΉαž„αžŸαŸ†αžŽαžΎαž”αŸ‚αž”αž“αŸαŸ‡αž±αŸ’αž™αž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αžŠαŸ„αž™αž•αŸ’αž‰αžΎαžαŸ‚αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαžαŸ‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αž™αžΎαž„αž”αžΆαž“αžˆαžΆαž“αž‘αŸ…αžŠαž›αŸ‹αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž˜αž½αž™ - αž™αžΎαž„αž˜αžΆαž“αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž™αŸ„αž„αžαŸ‚αž˜αž½αž™ αž‡αž½αžŸαž‡αž»αž› αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž αŸ…αžœαžΆαžαžΆαž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž– αž“αž·αž„αž˜αžΆαž“αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆ - αžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡αŸ” αžαŸ’αž˜αžΈαŸ—αž“αžΈαž˜αž½αž™αŸ—αž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎαžŸαŸ’αžαŸαžšαž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž αžΎαž™αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αžŸαžΆαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αžΎαž„αžœαž·αž‰αŸ” αžŠαžšαžΆαž”αžŽαžΆβ€‹αžšαž”αžŸαŸ‹β€‹αžαŸ’αž˜αžΈβ€‹αŸ—β€‹αžˆαžΆαž“β€‹αžŠαž›αŸ‹β€‹αž‚αŸ„αž›β€‹αžŠαŸ…β€‹αžšαž”αžŸαŸ‹β€‹αžœαžΆ αž“αŸ„αŸ‡β€‹αžšαž”αžŸαŸ‹β€‹αž…αžΆαžŸαŸ‹β€‹αž›αŸ‚αž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž€αžΆαžšβ€‹αž‘αŸ€αžβ€‹αž αžΎαž™αŸ”

αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αŸ…αžŸαŸαžŸαžŸαž›αŸ‹αž‚αžΊαžαŸ’αžšαžΌαžœαž•αŸ’αž‰αžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž–αžαŸ’αž˜αžΈαž–αžΈαž–αŸαž›αž˜αž½αž™αž‘αŸ…αž–αŸαž›αž˜αž½αž™ αž§αž‘αžΆαž αžšαžŽαŸ αžŠαŸ„αž™αžŸαžΆαžšαžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡αž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‘αŸ…αž‡αžΆαž’αŸ†αž–αŸαž€αŸ” αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αžŸαŸ†αžαžΆαž“αŸ‹β€‹αž“αŸ…β€‹αž‘αžΈαž“αŸαŸ‡β€‹αž‚αžΊβ€‹αžαžΆβ€‹αž™αžΎαž„β€‹αž•αŸ’αž‰αžΎβ€‹αž…αŸαž‰β€‹αž€αžΆαžšβ€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αž‘αžΆαž“αŸ‹β€‹αžŸαž˜αŸαž™β€‹αž‘αžΆαŸ†αž„β€‹αž’αžŸαŸ‹β€‹αž“αŸαŸ‡β€‹αž€αŸ’αž“αž»αž„β€‹αžšαž”αŸ€αž”β€‹αž•αŸ’αžŸαžΆαž™/αž–αž αž»αžαžΆαžŸ αžŠαŸ„αž™β€‹αž˜αž·αž“β€‹αž”αžΆαžšαž˜αŸ’αž—β€‹αž’αŸ†αž–αžΈβ€‹αž’αŸ’αž“αž€β€‹αž‘αž‘αž½αž›β€‹αž”αž»αž‚αŸ’αž‚αž› αž“αž·αž„β€‹αžŸαž˜αžαŸ’αžαž—αžΆαž–β€‹αžšαž”αžŸαŸ‹β€‹αž–αž½αž€β€‹αž‚αŸβ€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž•αŸ’αž‚αž»αŸ†β€‹αž‚αŸ’αž“αžΆβ€‹αž‡αžΆβ€‹αž”αŸ†αžŽαŸ‚αž€β€‹αž“αŸƒβ€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αž”αŸ’αžšαžΆαž€αžŠαžαžΆαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸ„αŸ‡ αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž•αŸ’αž‰αžΎαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αž˜αžΈαŸ—αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αžαžΎβ€‹αžœαžΆβ€‹αž˜αžΆαž“β€‹αžαž˜αŸ’αž›αŸƒβ€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž”αž‰αŸ’αž‡αžΆαž€αŸ‹β€‹αžαžΆβ€‹αžœαžΆβ€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αž¬? αž€αžΆαžšαž„αžΆαžšαŸ” αžŸαŸ’αžαŸαžšαž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž»αž€αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αž’αŸ’αž“αž€αž‘αž‘αž½αž› αžαŸ’αž˜αžΈαŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžαžΆαž˜αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαŸ”

αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž“αŸƒαž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αž–αžΈαžšαž€αž˜αŸ’αžšαž·αž

αž αŸαžαž»αž’αŸ’αžœαžΈβ€‹αž”αžΆαž“β€‹αž‡αžΆβ€‹αž™αžΎαž„β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž€αžΆαžšβ€‹αžŠαžΉαž€β€‹αž‡αž‰αŸ’αž‡αžΌαž“β€‹αžšαž”αžŸαŸ‹β€‹αž™αžΎαž„β€‹αž‡αžΆβ€‹αž–αžΈαžšβ€‹αž€αž˜αŸ’αžšαž·αž? αž…αž˜αŸ’αž›αžΎαž™αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹ - αž™αžΎαž„αž…αž„αŸ‹αž”αŸ†αž”αŸ‚αž€αž•αŸ’αž›αžΌαžœαž…αŸαž‰αž–αžΈαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹ αžŠαŸ„αž™αž‘αž‘αž½αž›αž™αž€αž€αžΆαžšαž”αŸ†αž•αž»αžŸαž‚αŸ†αž“αž·αžαž–αžΈαž‚αŸ†αžšαžΌ OSI αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“ αž“αž·αž„αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αžœαžΆαŸ” αž™αžΎαž„αž”αžΆαž“αž”αŸ’αžšαžΎ Thrift αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαž½αž“αžΆαž‘αžΈαž“αŸƒαž–αž·αž’αžΈαž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“ αž“αž·αž„αž‘αž˜αŸ’αžšαž„αŸ‹ msgpack serialization αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αž˜αŸ’αžšαž„αŸ‹αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αž“αŸƒαžŸαžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αŸ” αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αž˜αžΌαž›αž αŸαžαž»β€‹αžŠαŸ‚αž›β€‹αžšαŸ‰αŸ„αžαž‘αŸαžš (αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αž–αž αž»αžαžΆαžŸ/αž•αŸ’αžŸαžΆαž™/αž”αž‰αŸ’αž‡αžΌαž“αž) αž˜αž·αž“β€‹αž˜αžΎαž›β€‹αž‘αŸ…β€‹αž€αŸ’αž“αž»αž„ msgpack αž˜αž·αž“β€‹αžαŸ’αž…αž”αŸ‹ αž¬β€‹αžαŸ’αž…αž”αŸ‹β€‹αž˜αžΆαžαž·αž€αžΆβ€‹αž˜αž€β€‹αžœαž·αž‰ αž αžΎαž™β€‹αž”αž‰αŸ’αž‡αžΌαž“β€‹αžαŸ‚β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

Thrift (αž˜αž€αž–αžΈαž—αžΆαžŸαžΆαž’αž„αŸ‹αž‚αŸ’αž›αŸαžŸ - "thrift" αž”αž‰αŸ’αž…αŸαž‰αžŸαŸ†αž‘αŸαž„ [ΞΈrift]) αž‚αžΊαž‡αžΆαž—αžΆαžŸαžΆαž–αž·αž–αžŽαŸŒαž“αžΆαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹ αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αŸ—αŸ” αžœαžΆαž‡αžΆαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž αŸ…αžαžΆαž˜αž“αžΈαžαž·αžœαž·αž’αžΈαž–αžΈαž…αž˜αŸ’αž„αžΆαž™ (RPC)αŸ” αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αžΌαžœαž”αŸ†αž–αž„αŸ‹αž•αŸ’αž“αŸ‚αž€αž‘αž“αŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠ αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ’αžšαžΎαž“ αž¬αžαž·αž…αž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž“αž·αž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžšαžœαžΆαž„αž—αžΆαžŸαžΆαŸ”

αž™αžΎαž„αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ Thrift αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ RPC αž“αž·αž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αžŠαžΌαž…αž’αž˜αŸ’αž˜αžαžΆ αž•αŸ’αž“αŸ‚αž€αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž‚αžΊαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžšαŸ‰αŸ„αžαž‘αŸαžšαž”αžΆαž“αž”αŸ’αžšαŸ‚αž€αŸ’αž›αžΆαž™αž‘αŸ…αž‡αžΆαž‚αŸ’αžšαžΆαž”αŸ‹αžŠαŸαž›αŸ†αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ†αž”αŸ‚αž€ αžŠαŸ‚αž›αž˜αž½αž™αž•αŸ’αž“αŸ‚αž€αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαžαŸ’αžœαŸ‡αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αžαŸ’αžšαŸ€αž˜αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αž€αŸ†αž‘αž»αž„αž–αŸαž›αž’αž—αž·αžœαžŒαŸ’αžαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžŽαŸ’αžαžΆαž‰αžαŸ’αžšαž„ Qratorαž˜αžΆαž“αž‡αž˜αŸ’αžšαžΎαžŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαžΌαž…αž‡αžΆ protobuf / gRPC αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž“αŸ…αž–αŸαž›αž™αžΎαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‚αž˜αŸ’αžšαŸ„αž„αžšαž”αžŸαŸ‹αž™αžΎαž„ gRPC αž‚αžΊαžαŸ’αž˜αžΈαžŽαžΆαžŸαŸ‹ αž αžΎαž™αž™αžΎαž„αž˜αž·αž“αž αŸŠαžΆαž“αž™αž€αžœαžΆαž“αŸ…αž›αžΎαž™αž“αŸ’αžαž αŸ„αŸ‡αž‘αŸαŸ”

αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž™αžΎαž„αž’αžΆαž… (αž αžΎαž™αž‡αžΆαž€αžΆαžšαž–αž·αžαž‚αž½αžšαžαŸ‚αž˜αžΆαž“) αž”αž„αŸ’αž€αžΎαžαž€αž„αŸ‹αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αžœαžΆαž“αžΉαž„αž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž–αž·αž’αžΈαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžš αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ-αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αžΆαž“αž—αžΆαž–αžŸαžΆαž˜αž‰αŸ’αž‰αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž€αžŸαžΆαž„αžšαŸ‰αŸ„αžαž‘αŸαžšαž“αŸ…αž›αžΎ Thrift αŸ” αžœαž·αž’αžΈαž˜αž½αž™ αž¬αž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž˜αžΆαž“αž—αžΆαž–αž›αŸ†αž’αŸ€αž„αž”αŸ‚αž”αž”αŸ’αžšαž–αŸƒαžŽαžΈαž…αŸ†αž–αŸ„αŸ‡αž–αž·αž’αžΈαž€αžΆαžšαžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αž“αž·αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž–αŸαž‰αž“αž·αž™αž˜ (αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αž›αŸ’αž’) αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαžŸαŸ†αžŽαž½αžšαžαŸ‚αž„αžαŸ‚αž€αžΎαžαž‘αžΎαž„αžαžΆ "αžαžΎαž™αžΎαž„αž“αžΉαž„αž”αž‰αŸ’αž‡αžΌαž“αžœαžΆαž‘αŸ…αž‡αžΆαž—αžΆαžŸαžΆαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ?" αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž™αžΎαž„β€‹αž”αžΆαž“β€‹αž”αŸ„αŸ‡β€‹αž…αŸ„αž›β€‹αž‚αŸ†αž“αž·αžβ€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž‡αž·αŸ‡β€‹αž€αž„αŸ‹β€‹αž—αŸ’αž›αžΆαž˜αŸ—αŸ”

Msgpack αž‚αžΊαžŸαŸ’αžšαžŠαŸ€αž„αž‘αŸ…αž“αžΉαž„ JSON αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž›αžΏαž“ αž“αž·αž„αžαžΌαž…αž‡αžΆαž„αŸ” αžœαžΆαž‡αžΆαž‘αž˜αŸ’αžšαž„αŸ‹αžŸαŸ€αžšαŸ€αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‚αŸ„αž›αž–αžΈαžš αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžšαžœαžΆαž„αž—αžΆαžŸαžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž‘αžΈαž˜αž½αž™ αž™αžΎαž„αž˜αžΆαž“ Thrift αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž–αŸαžαŸŒαž˜αžΆαž“αž’αž”αŸ’αž”αž”αžšαž˜αžΆαžŠαŸ‚αž›αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαŸ‰αŸ„αžαž‘αŸαžšαžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž‡αžΌαž“αžŸαžΆαžšαŸ” αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž‘αžΈαž–αžΈαžšαž˜αžΆαž“αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ msgpack αžαŸ’αž…αž”αŸ‹αŸ”

αž™αžΎαž„αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ msgpack αž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž›αžΏαž“ αž“αž·αž„αž”αž„αŸ’αžšαž½αž˜αž‡αžΆαž„αž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„ JSON αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαŸ†αžαžΆαž“αŸ‹αž‡αžΆαž„αž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αžœαžΆαž‚αžΆαŸ†αž‘αŸ’αžšαž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž™αžΎαž„αž”αŸ’αžšαžΎαž˜αž»αžαž„αžΆαžšαž–αž·αžŸαŸαžŸαŸ—αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαž†αŸ… αž¬αžœαžαŸ’αžαž»αž–αž·αžŸαŸαžŸαžŠαŸ‚αž›αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž’αžœαžαŸ’αžαž˜αžΆαž“αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™ αžŠαŸ‚αž›αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸ "αžŸαŸ’αžαŸαžšαž—αžΆαž–αžαŸ’αž˜αžΈαŸ—" αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

JMESPath
JMESPath αž‚αžΊαž‡αžΆαž—αžΆαžŸαžΆαžŸαŸ†αžŽαž½αžš JSON αŸ”
αž“αŸαŸ‡αž–αž·αžαž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαžŠαŸ‚αž›αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αž–αžΈαž―αž€αžŸαžΆαžšαž•αŸ’αž›αžΌαžœαž€αžΆαžšαžšαž”αžŸαŸ‹ JMESPath αž˜αžΎαž›αž‘αŸ… αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαžΆαž˜αž–αž·αžαž‘αŸ… αžœαžΆαž’αŸ’αžœαžΎαž›αžΎαžŸαž–αžΈαž“αŸ„αŸ‡αž‘αŸ…αž‘αŸ€αžαŸ” JMESPath αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŸαŸ’αžœαŸ‚αž„αžšαž€ αž“αž·αž„αžαŸ’αžšαž„αž˜αŸ‚αž€αž’αžΆαž„αžšαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž˜αŸ‚αž€αž’αžΆαž„αžŠαŸ‚αž›αž”αŸ†αž–αžΆαž“ αž αžΎαž™αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž—αŸ’αž›αžΆαž˜αŸ—αŸ” αžœαžΆαž€αŸαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž“αŸ’αžαŸ‚αž˜αžαž˜αŸ’αžšαž„αž–αž·αžŸαŸαžŸ αž“αž·αž„αž“αžΈαžαž·αžœαž·αž’αžΈαž”αŸ†αž”αŸ’αž›αŸ‚αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αž„αžŠαŸ‚αžšαŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžœαžΆ αž–αž·αžαžŽαžΆαžŸαŸ‹ αž‘αžΆαž˜αž‘αžΆαžšαž€αžΆαžšαžαž·αžαžαŸ†αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„αžαž½αžšαž€αŸ’αž”αžΆαž›αžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αŸ”

Jinja
αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αž„αŸ’αžœαŸ‚αžšαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αŸ…αž‡αžΆαž―αž€αžŸαžΆαžš αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž‚αŸ†αžšαžΌ αž αžΎαž™ Jinja αž‚αžΊαž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ” αžŠαŸ„αž™αž˜αžΆαž“αž‡αŸ†αž“αž½αž™αžšαž”αžŸαŸ‹αžœαžΆ αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž–αžΈαž‚αŸ†αžšαžΌ αž“αž·αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αž“αŸ…αž‚αŸ„αž›αžŠαŸ…αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαŸ†αžŽαžΎ 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 αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαžΆαž‰αž…αž˜αŸ’αžšαŸ„αŸ‡αž…αŸ‚αž€αž…αžΆαž™αŸ” αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡αž‚αžΆαŸ†αž‘αŸ’αžšαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž™αŸ‰αžΆαž„αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ’αžšαžΏαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžŠαŸ‚αž›αž…αŸ‚αž€αž…αžΆαž™ αž“αž·αž„αžαž»αžŸαž–αžΈαž‚αŸ’αž“αžΆαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αž‡αŸ†αž“αž½αž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαžŸαž˜αŸ’αž—αžΆαžšαŸˆαŸ” αžœαŸ‰αž»αž›αž‘αž„αŸ‹αžŠαžΆαž˜αžšαŸ‰αžΌαžŠ, αžŸαŸαžšαž·αž“αž αŸƒ, ណ.

αž—αžΆαžŸαžΆαž’αž„αŸ‹αž‚αŸ’αž›αŸαžŸ αž”αŸ’αžšαž€αžΆαžŸαŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹