
TL; DR: ááťá˝ááşáŻááşáááŻáˇááĄáá˝ááşá¸áááŻááşá¸áá˝ááşáááşáá˝á˛áˇá
ááşá¸ááŻáśááźááşáááşáážáŻá
áŽááśáááˇáşáá˝á˛áážáŻá
áá
áş QControl á client-ááŹááŹááááŻááŹáááąáŹáşááźááťááşá áááşá¸áááş endpoints ááťáŹá¸ááźáŹá¸áá˝ááş ááťáŻáśáˇááźááşá¸ááážááᲠgzip ááŻááşáááŻá¸ááŹá¸ááąáŹ áááşááąáˇááťáşááťáŹá¸áážááˇáş áĄááŻááşááŻááşááąáŹ áĄáá˝ážáŹáážá
áşáá˝ážáŹ áááşáá°áááŻáˇááąáŹááşááąá¸ááááŻáááŻááąáŹááᯠáĄááźáąááśááŹá¸áááşá ááźááˇáşááąááŹá¸ááąáŹ routers ááťáŹá¸áážááˇáş endpoints ááťáŹá¸áááş configuration updates ááťáŹá¸ááᯠáááşááśááážáááźááźáŽá¸ protocol áááŻááşáááŻááşá localized intermediate relays ááťáŹá¸ áááşáááşááźááşá¸ááᯠáá˝ááˇáşááźáŻááŤáááşá á
áá
áşáááş ááááŹáááąáŤáşáá˝ááş áááşáááşá (âáááşáááąáŹ áááşááźáááşááąáŹâá áĄáąáŹááşáá˝ááş áážááşá¸ááźááŹá¸áááş) áážááˇáş áá˝á˛áˇá
ááşá¸áážáŻáááŻááşááťáŹá¸ááᯠáááşáááşáááşáĄáá˝ááş JMESpath query language ááᯠJinja templateing engine áážááˇáşáĄáá° áĄááŻáśá¸ááźáŻááŤáááşá
Qrator Labs áááş ááášááŹááŻáśá¸áááŻááşáᏠááźááˇáşááąáááŻááşáááŻááşáážáŻ ááťážáąáŹáˇááťááąá¸áá˝ááşáááşááᯠááŻááşááąáŹááşááŤáááşá ááťá˝ááşáŻááşáááŻáˇááá˝ááşáááşáááş anycast áá°áĄá ááŻááşááąáŹááşááąááźáŽá¸ subnet ááťáŹá¸ááᯠBGP áážáá áşáááˇáş ááźáąáŹáşááźáŹááŹá¸áááşá ááášááŹááźáąá ááąááĄááťáŹá¸áĄááźáŹá¸áá˝ááş áááşáážáááąáááˇáş BGP áá˝ááşáááşáá áşááŻááźá áşáááˇáşáĄáá˝ááşá ááťá˝ááşáŻááşáááŻáˇáááş áĄááşááŹáááşá áĄá°áááŻááşááźá áşááąáŹ Tier-1 áĄáąáŹáşáááąááŹááťáŹá¸áážááˇáş áááŹá¸ááááşáĄáá˝áŹá¸áĄááŹááťáŹá¸ááᯠááŻááşááąáŹááşáááŻááşááźáŽá¸ á á áşááŻááşáááŻááşááŤáááşá
áĄááźáŹá¸áá áşáááşáá˝ááşá ááááŽáááşáĄááąáĄááŹá¸áĄá ááźááˇáşááąáááˇáşáá˝ááşáááşááźá áşáááş ááá˝ááşáá°ááŤá áá˝ááşáááşááąáŹááşáážáááąáááˇáşááąááŹááťáŹá¸ááźáŹá¸ áááşáá˝ááşááąá¸áááş ááŻáśááźáŻáśááąá¸áááşááąáŹááşáážáŻááąá¸áá°áĄáá˝ááş áá˝ááşáááş node ááťáŹá¸áĄáŹá¸ááŻáśá¸ááᯠáĄááťáááşáážááˇáşáá áşááźáąá¸áᎠáĄááşááááşááŻááşáááş áĄááąá¸ááźáŽá¸ááŤáááşá áááŻáˇááźáąáŹááˇáşá á áŹá¸ááŻáśá¸áá°áĄáá˝ááş ááźá áşáááŻááşááťáąáĄááźááˇáşááŻáśá¸áĄáááˇáşááᯠááśáˇáááŻá¸ááąá¸áááşáĄáá˝ááş áááŻááşááźáŽá¸áá áşáá˝ááşáážá áá˝á˛áˇá ááşá¸áážáŻááŻáśá áśááąááŹááᯠááŻáśááźááşá áááşááťá á˝áŹ ááťáááşáááŻááşáááŻááşááąáŹ áááşá¸áááşá¸ááᯠáážáŹáá˝áąáááş áááŻáĄááşááŤáááşá
áĄá áĄáŚá¸á áážáŻááşááááşááąáŹáşáážááá áĄááşááááşáá áşááŻáááŻáĄááşáááˇáşáĄáá˝ááş áááşáá˝ááşááąá¸ááááŻáááŻááąáŹáááş ááťááşááźááşá á˝áŹááźá áşááŹáááşá
QControl ááááşáážááážáŻááĄááźáąááśáĄáŻááşááźá
áşáážááˇáş á¤ááááŻáááŻááąáŹááťááŻá¸áááŻáááşááąáŹááşááŹáá˝ááş áĄááťáááşáážááˇáşáááşá¸ááźá
áşááťáŹá¸á
á˝áŹáĄááŻáśá¸ááźáŻáááźááşá¸ááĄááááĄááźáąáŹááşá¸áááşá¸áážáŹ áá
áşááŻáááşá¸ááąáŹáá˝ááˇáşááźáŻááťááşáážáááąáŹáá˝á˛áˇá
ááşá¸ááŻáśáá˝á˛áˇá
ááşá¸ááŻáśáááŻááá°áááşáááŻáĄááşááźáŽá¸ ááąáŹááşááŻáśá¸áá˝ááş ááťá˝ááşáŻááşáááŻáˇáááąáŹááşáážáááąáááˇáşááąááŹááťáŹá¸ááᯠáá
áşááźááŻááşáááşá¸ááŻááşááąáŹááşáááş áááŻáĄááşááŤáááşá áĄá˛ááŤáááŻá áááŻáážáąáŹááşáážáŻáááŻááşáááŻááşá QControl áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻáĄáá˝ááşá¸ áááŻáĄááşááťááşááťáŹá¸á
á˝áŹáá˛áážáá
áşááŻááŹááźá
áşáááşá áááŻáˇáĄááźááşá áááşáážáááąáŹááşáážáááąáááˇáşááąááŹááťáŹá¸ (POP)á ááąááŹáĄáááşááźáŻááźááşá¸áĄáá˝ááş á
áááşááťááąáŹ (áážááˇáşá
áááşááźááŻááşááźááşáááşáááŻááşááąáŹ) áááşá¸áááşá¸ááťáŹá¸áĄááźááş áááşááąáŹááşááááşá¸ááťáŻááşáážáŻáááŻááşáᏠáááşááąáŹááşáážáŻááťáŹá¸áážááˇáş áááşáážáá
áŽá
ááşááŹá¸ááąáŹ áááşááąáŹááşáážáŻááťáŹá¸áážááˇáş ááąáŤááşá¸á
ááşáážáŻááťáŹá¸áááşá¸ áááŻáĄááşááŤáááşá áááşá¸áĄááźááşá ááťá˝ááşáŻááşáááŻáˇáááş áááŻááşááťáŹá¸ááᯠááźáŻááźááşáá˝ááşá¸ááśááźááşá¸áááş áá˝ááşáááşá¸ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻá áááŻáá˛áˇáááŻáˇááąáŹ á
áá
áşáá
áşááŻáááŻáááşá¸ ááááşá¸ááťáŻááşáááŻááŤáááşá QControl ááááŻááşááŽá ááąááŹááᯠáááŻááşáááŻááşááŽá¸ááŤá¸ ááąáŹááşáážáááąáááˇáşááąááŹááťáŹá¸áááŻáˇ ááąá¸áááŻáˇáá˛áˇáááşá áááşáážáááąáááˇáşááąááŹááťáŹá¸áá˛ááž áá
áşááŻáááş áááááŻááşáá˛á áááşá¸ááᯠááąáŹááşáááŻááşá¸áá˝ááş áĄááşááááşááŻááşáááş ááąáˇáá˝áŹá¸ááŤáá áá˝á˛áˇá
ááşá¸áážáŻááŻáśá
áśáááş áááşáá°ááťáá˝áŹá¸áááşááźá
áşááźáŽá¸ áááşá¸ááᯠáĄáááşáá°á¸áá°áááş áĄááťáááşááźáŻááşá¸ááąááááşááźá
áşáááşá
ááááşáĄááąááźááˇáşá ááťá˝ááşáŻááşáááŻáˇáááş áĄáąáŹááşááŤáĄá
áŽáĄá
áĽáşááᯠáĄááąáŹááşáĄáááşááąáŹáşáá˛áˇááŤáááşá

configuration server áááş data validation áážááˇáş storage áĄáá˝ááş ááŹáááşáážááááşá router áá˝ááş clients áážááˇáş support teams ááťáŹá¸ááž configuration updates ááťáŹá¸ááᯠserver áááŻáˇ áááşááśáᏠááŻááşáá˝ážááˇáşáááˇáş endpoints áĄááťáŹá¸áĄááźáŹá¸áážáááźáŽá¸ server ááž server ááž áááşáážáááąááąáŹ point ááťáŹá¸áĄáá áážáááŤáááşá
ááášááŹáá áşáážááşá¸áážá áĄááşááŹáááşááťáááşáááşáážáŻáĄáááşáĄáá˝áąá¸áááş ááťááşááźááˇáşá á˝áŹáá˝á˛ááźáŹá¸áá˛ááźá áşáááş - á¤áĄááťááşáááŻááąáŹáşááźáááşá áááŹáˇááşá ááťááşááášáááááŻááşááśááž á ááşááŹáá°áážááˇáş ááąáŹááşááąáŹááşáĄáá áááŻá¸áážááşá¸ááąáŹ MTR ááᯠááźááˇáşááźááŤá ááŻáˇá
Prague ááž Singapore áááŻáˇ MTR
ááąáŹááşááąáŹááşáážáŹáááşá¸ áĄááŹá¸áá°ááŤáá˛á
High latency áááŻáááşáážáŹ áĄáážáááşááááˇáşáááşá áááŻáˇáĄááźááş packet ááŻáśá¸áážáŻáśá¸áážáŻáááşá¸ áážáááŤáááşá ááááŻááťáŻááşáááŻááşáážáŻááťážáąáŹáˇááťááŹá¸ááąáŹ á áá áşááťáŹá¸ááᯠáááşááąáŹááşáááˇáşáĄá፠áĄááźá˛áááşá¸áááˇáşáá˝ááşá¸á ááşá¸á áŹá¸ááááˇáş á¤ááźáżááŹáĄáá˝ááş ááťááşáááşáĄááťááşáááş ááťáąáŹáşááźáąá¸áááąá¸ááąá
áááşáážáááąááąáŹááąááŹáá áşááŻá áĄááźááˇáşáĄááá˝á˛áˇá ááşá¸ááŻáśáááş ááŻáśááźááşá áááşááťáááąáŹááťáááşáááşáážáŻááťáŹá¸ááźáąáŹááˇáş áááşááśáá°áĄááťáŹá¸áĄááźáŹá¸ááś ááąá¸áááŻáˇááááˇáş ááááŹáááşáážáŹá¸ááąáŹááąááŹáááŹáááźá áşáááşá ááśááąáŹááşá¸ááąáŹááşáá á˝áŹá áá˝á˛áˇá ááşá¸áážáŻááŻáśá áśááťáŹá¸áááş áĄáááşáááźááşááźáąáŹááşá¸áá˛ááąááąáŹáşáááşá¸á áááşá¸áááş ááąá¸áááşááąáŹ ááźááşá¸ááźááşá¸ááťááşá¸ááźá áşááŹáááşá
áááźáŹááąá¸ááŽá áááşááźáááşááąáŹ ááŽáááŻááşá¸
áááŻá¸ááźážááˇáşáá˝ááşá¸ááśáážáŻááťáŹá¸áááááŹááááŻáĄááźáąááśá ááźááˇáşááąááŹá¸ááąáŹáá˝ááşáááşáá áşááŻáááşááąáŹááşááźááşá¸áááş ááťážááťážááááááŹáááşáážáŹá¸ááąáŹááźáąáážááşá¸ááťááşáá áşááŻááźá áşáááşáᯠááťá˝ááşáŻááşáááŻáˇááźáąáŹáááŻááşáááşá ááŤááąáááˇáş áá˝á˛áá˝á˛áážáŻ ááźáżááŹáá˝áą áĄááťáŹá¸ááźáŽá¸áážáááŤáááşá áááşáá˝ážááşá¸áážááşááťáŹá¸ááźáŹá¸áážá áá˝á˛ááźáŹá¸áážáŻááťáŹá¸áĄáŹá¸ááŻáśá¸ááᯠááááşá¸áááşá¸áááş áááŻáĄááşááźáŽá¸ áá áşá áŻáśáá áşáŚá¸ááž áá˝á˛ááťáąáŹáşáá˝áŹá¸ááŤá ááąááŹáá áşá áááşáá áşáááŻááşá¸ááᯠááźááşáááşááąá¸áááŻáˇáááŻááşáááşááźá áşáááşá áŚá¸áááşááŹáá áşááŻá áŽáááş áááşá¸áááŻáˇáĄáŹá¸ áááşá¸ááźááşá á˝áŹáááşáážááşááŹá¸ááąáŹ áĄá áŽáĄá ááşáĄáááŻááşá¸ ááťááˇáşááŻáśá¸ááááşááźá áşáááşá ááŻáśáážááşáĄáŹá¸ááźááˇáşá ááąááŹáĄááťáŹá¸áĄááźáŹá¸áá˝ááşá áááŻáááŻáˇááąáŹ ááŻááşááąáŹááşááťááşáááş áĄááťáááşááźáŹááźááˇáşáááŻááşáááşá áááşááśáá°áááş ááťáąáŹááşááŻáśá¸ááąááąáŹ áĄá áááşáĄáááŻááşá¸ááťáŹá¸áááŻáááşá¸ ááąáŹááşá¸áááŻáááŻááşááááşááźá áşááźáŽá¸á ááááŻáĄáááŻááşá¸áááş áááŻááąáŹááşá¸áááŻááťááşááᯠáážááşáááşá á˝áŹ ááŻáśáˇááźááşááááşááźá áşáᏠááťáąáŹááşááŻáśá¸ááąááąáŹ áĄááťááşáĄáááşááťáŹá¸áááŻáᏠááąá¸áááŻáˇááááşááźá áşáááşá
ááááşáĄááąááźááˇáşá ááťá˝ááşáŻááşáááŻáˇáááş áĄáá˝ááşá áááşáááşá áŹá¸áá˝ááşááąáŹááşá¸ááąáŹ ááźáąáážááşá¸ááťááşáá áşááŻáááŻáˇ ááąáŹááşááŹáááş - ááťá˝ááşáŻááşáááŻáˇáá˝ááş áááşáá˝ážááşá¸áĄáá˝ážáŹáá áşááŻáᏠáážááááşá ááźáŻááźááşááźáŽá¸á áááşá¸ááᯠáááşááźáááşáááşáᯠááąáŤáşááźááŤá ááŻáˇá áááşá¸áĄáá˝ááş áá˝áŹááźáŹá¸ááťááşáá áşááŻáᏠáááźáŹááąá¸ááŽá ááźá áşáááşá áááźáŹááąá¸ááŽáá áşááŻá áŽáááş ááąáŹááşááŻáśá¸ááŻááşááŻááşááŹá¸ááąáŹ áááşááźáááşáážáŻáĄááąáŤáşáĄááźáąááśááźáŽá¸ áá˝á˛áˇá ááşá¸áážáŻááąááŹááᯠááźááşáááşáááşááąáŹááşáááş ááŻáśááąáŹááşááŤáááşá áááşáááşáááşáááşáĄáá áşáááş áááşá¸ááŚá¸áááşááŹáááŻáˇááąáŹááşáážááááşáážááˇáşáááźááŻááşáááşá áĄááąáŹááşá¸ááᯠááááŻáĄááşááąáŹáˇááŤá
ááťááşáážáááąááąá¸áááşáážáŹ áááźáŹááąá¸ááŽá ááźáŽá¸ááŹá¸áá˝ááşá¸ááąáŹááźáąáŹááˇáşá áĽáááŹáĄáŹá¸ááźááˇáş áááşáááşááąáŹ áááşááźáááşááąáŹ áá˝á˛áˇá ááşá¸áážáŻááŻáśá áśááᯠáĄááŤáĄáŹá¸ááťáąáŹáşá á˝áŹ ááąá¸áááŻáˇáááş ááťááşáážáááąááąá¸áááşá á¤ááąááŹááááşá¸ áĄááąá¸ááźáŽá¸áááşáážáŹ ááťá˝ááşáŻááşáááŻáˇáááş áááşááśáá° áá áşáŚá¸ááťááşá¸á áŽáĄáá˝ááş á áááşáá°á ááŹááááŻáᲠá¤áĄááşááááşááťáŹá¸áĄáŹá¸ááŻáśá¸ááᯠááŻááşáá˝ážááˇáşááźááşá¸/áĄááźáąáŹááşáĄááťáŹá¸ááąá¸áááˇáşááŻááşáá˝ááş ááąá¸áááŻáˇááźááşá¸áážááˇáş áááşá¸áááŻáˇá ááąááŹáĄáááŻááşá¸áĄá ááťáŹá¸ááᯠá áŻá ááşá¸áááŻááşáááˇáşá á˝ááşá¸áááşááᯠá áááşáá°á ááŹááááŻáᲠááąá¸áááŻáˇááźááşá¸ááźá áşááŤáááşá áá°áááŻááşá¸áá˝ááş áážááşáááşááąáŹáááşááźáááşáážáŻáážáááźáąáŹááşá¸ ááťá˝ááşáŻááşáááŻáˇááąááťáŹáááşáážááˇáşá ááťá˝ááşáŻááşáááŻáˇáááş áááşáááąáŹáĄáá áşááťáŹá¸áááŻáᏠááąá¸áááŻáˇááŤáááşá á¤áĄááŹáááş áĄááŻááşááŻááşááźáąáŹááşá¸ áážááşá¸áážááşá¸áááşá¸áááşá¸ áááááŻááşááŤáááŹá¸á áĄááŻááşááťáŹá¸á Stable ááᯠconfiguration server áážááˇáş áááşááśáá°ááťáŹá¸áá˝ááş áááşáážáşááŻááşááŹá¸ááźáŽá¸ áááźáŹááąá¸ááŽá áááŻáĄááşáááᯠáááşááŽá¸ááŹá¸áááşá
áážá áşáááˇáş áááşáá°áááŻáˇááąáŹááşááąá¸ ááááŻááŹ
ááťá˝ááşáŻááşáááŻáˇáááş ááťá˝ááşáŻááşáááŻáˇááááşáá°áááŻáˇááąáŹááşááąá¸ááᯠáĄáááşááźáąáŹááˇáş áĄáááˇáşáážá áşáááˇáşááźááˇáş áááşááąáŹááşáá˛áˇááááşá¸á áĄááźáąá ááąáŹáşááąáŹáşáááŻá¸áážááşá¸ááŤáááş - ááťá˝ááşáŻááşáááŻáˇáááş OSI ááąáŹáşáááşááž áážáŻáśáˇááąáŹáşáážáŻááá°ááźáŽá¸ áááşá¸ááááşáá°áááŻáˇááąáŹááşááąá¸áážááˇáş áĄáááŽááąá¸áážááşá¸áĄáá˝ážáŹááťáŹá¸ááźááˇáş áĄáááˇáşááźááˇáşááŹá¸ááąáŹ ááŻáášááááąáááž áááşá¸ááźáąáŹááşá¸ááᯠáá˝á˛ááŻááşáááŻááŤáááşá ááťá˝ááşáŻááşáááŻáˇáááş áááşáá°áááŻáˇááąáŹááşááąá¸ááááŻáááŻááąáŹááĄáááşá¸ááášááĄáá˝ááş Thrift áážááˇáş ááááşá¸ááťáŻááşáážáŻáááşááąáˇááşáťááĄáááˇáşááźááˇáşááąáŹáşáááşáĄáá˝ááş msgpack ááśááŤááşá ááşááąáŹáşáááşááᯠáĄááŻáśá¸ááźáŻááŹá¸áááşá áááŻáˇááźáąáŹááˇáş router (Multicast/broadcast/relay) áááş msgpack áĄáá˝ááşá¸ááᯠáááźááˇáşáá˛á áĄááźáąáŹááşá¸áĄááŹááťáŹá¸ááᯠááźááşáá˝ááˇáşááźááşá¸ áááŻáˇáááŻááş ááŻááşáááŻá¸ááźááşá¸áááźáŻáᲠááąááŹááťáŹá¸áááŻáᏠááąá¸áááŻáˇááźááşá¸ááźá áşáááşá
Thrift (áĄááşášáááááşááž - âthriftâ áᯠáĄááśáá˝ááşááąáŹ [θrift]) áááş ááá°ááŽááąáŹ ááááŻááááşá¸áááşá¸ááŹááŹá ááŹá¸ááťáŹá¸áĄáá˝ááş áááşááąáŹááşáážáŻááťáŹá¸ááᯠáááşáážááşáááşáážááˇáş áááşááŽá¸áááş áĄááŻáśá¸ááźáŻáááˇáş ááźáŹá¸ááśááąáŹáşááźááťááşááŹááŹá ááŹá¸áá áşááŻááźá áşáááşá áááşá¸áááş áĄááąá¸ááááşá¸á áá áşááąáŤáşáááŻáážáŻ (RPC) áĄáá˝ááş áá°ááąáŹááşáá áşááŻááźá áşáááşá ááŹááŹá ááŹá¸ááťáŹá¸áĄááźáŹá¸ áááŻáááŻááááąáŹááşááźáŽá¸ áá˝ááşáá°á á˝áŹ ááŻááşááąáŹááşáááŻááşááąáŹ áááşááąáŹááşáážáŻááťáŹá¸ááᯠáá˝áśáˇááźááŻá¸áááŻá¸áááşá áąáááş ááąáŹáˇááşáá˛áááŻááşáááŻááşá¸áá áşááŻáĄáŹá¸ ááŻááşááŻááşááŻááşáááˇáşáĄááşááťááşáážááˇáş ááąáŤááşá¸á ááşááŹá¸áááşá
RPC áážááˇáş ááŹááŹá ááŹá¸ááťáŹá¸á á˝áŹáĄáá˝ááş ááśáˇáááŻá¸áážáŻááťáŹá¸ááźáąáŹááˇáş Thrift áá°ááąáŹááşááᯠáá˝áąá¸ááťááşáá˛áˇáááşá ááŻáśá¸á áśáĄáááŻááşá¸á áá˝ááşáá°ááąáŹ áĄá áááşáĄáááŻááşá¸ááťáŹá¸áááş client áážááˇáş server áááŻáˇááźá áşáááşá áááŻáˇááąáŹáşáááşá¸á router áááş ááťá˝ááşáŻááşáááŻáˇááá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻááŹááĄáá˝ááşá¸ áĄáááşáááˇáşááŻááşááŹá¸ááąáŹááźáąáážááşá¸ááťááşááážáááźááşá¸ááźáąáŹááˇáş áá áşá áááşáá áşáááŻááşá¸áĄáŹá¸ááźááˇáş áĄááşáá˝á˛áááşáááşáá˛ááąáŹáĄáá˝áśáá áşááŻááźá áşááŹáá˛áˇáááşá
protobuf / gRPC áá˛áˇáááŻáˇááąáŹ áĄááźáŹá¸áá˝áąá¸ááťááşá
ááŹááťáŹá¸ áážááááşá áááŻáˇááąáŹáş ááťá˝ááşáŻááşáááŻáˇááááąáŹááťááşááᯠá
áááşááąáŹáĄááŤá gRPC áááş áĄáá˝ááşáá
áşáá˝ááşááźáŽá¸ áááşá¸ááᯠááťá˝ááşáŻááşáááŻáˇ ááá°ááśáˇááŤá
ááŻááşááŤáááşá ááŤáááŻáˇ (ááááşááąáŹáˇ áážááááˇáşáááş) ááŤáááŻáˇáááŻááşáááŻááşá ááşááŽá¸ááᯠááąáŹááşáááŻááşáá˛áˇáááşá Client-Server Architecture áááş Thrift áá˝ááş Router áá áşááŻáááşááąáŹááşááźááşá¸áážááˇáş áážááŻááşá¸áážááşááŤá ááťá˝ááşáŻááşáááŻáˇáááŻáĄááşááąáŹáĄááŹáĄáá˝ááş ááááŻáááŻááąáŹáá áşááŻáááşááŽá¸áááş áááŻáááŻáá˝ááşáá°áááşááźá áşáááşá áá áşáááşá¸áááŻááşáá áşáááşá¸á áááŻááşáááŻááşááąá¸ááŹá¸ááąáŹ ááááŻáááŻááąáŹááťáŹá¸áážááˇáş áá°ááźááŻááşááťáŹá¸ááąáŹ á áŹááźááˇáşáááŻááşááťáŹá¸á áĄááąáŹááşáĄáááşááąáŹáşáážáŻááťáŹá¸áĄááąáŤáş áĄá ááşáĄáᏠáááşáááŻááşáážáŻááťáŹá¸ áážáááąáááş (áĄááźáąáŹááşá¸ááźááťááşááąáŹááşá¸ááźáąáŹááˇáş)á áááŻáˇáĄááźááş áá˝áąá¸áá˝áąá¸áážáŻááťáŹá¸áĄáá˝ááşá¸ ááąá¸áá˝ááşá¸áá áşáᯠáĄááźá˛ááąáŤáşááŹáááş- "á¤áĄááŹááᯠáĄááźáŹá¸ááŹááŹá ááŹá¸áááŻáˇ áááşáá˛áˇáááŻáˇ áááŻáˇááááşáááşá¸á" ááŤáá˛áˇ ááťá˝ááşááąáŹáşáááŻáˇ ááťááşááťááşá¸ á ááşááŽá¸á áŽá¸áááŻáˇ á áááşáá°á¸ááᯠááŻááşáááŻááşáááşá
Msgpack áááş JSON áážááˇáş áááşáá°ááąáŹáşáááşá¸ áááŻááźááşááźáŽá¸ áááŻááąá¸áááşáááşá áááşá¸áááş ááąááŹááťáŹá¸ááᯠááŹááŹá ááŹá¸ááťáŹá¸á á˝áŹáĄááźáŹá¸ ááážááşáááŻááşá áąáááˇáş áá˝áááąáᏠáĄáážááşá ááşááąáŹáşáááşáá áşááŻááźá áşáááşá
ááááĄáááˇáşáá˝ááş áááşááąáˇááťáşááąá¸áááŻáˇáááş router áĄáá˝ááş áááŻáĄááşááąáŹ áĄááááˇáşááŻáśá¸áĄááťááşáĄáááşááťáŹá¸áážááˇáşáĄáá° Thrift áážááááşá ááŻááááĄáááˇáşáá˝ááş ááŻááşáááŻá¸ááŹá¸ááąáŹ msgpack áá˝á˛áˇá ááşá¸ááŻáśááťáŹá¸áážááááşá
JSON áááşá áŹáááş áááŻááźááşááźáŽá¸ áááŻááťá áşáá áşáá˛áˇáĄáá˝ááş msgpack ááᯠáá˝áąá¸ááťááşáá˛áˇááŤáááşá áááŻáˇááąáŹáş áááŻááĄááąá¸ááźáŽá¸áááşáážáŹá áááşá¸áááş ááťá˝ááşáŻááşáááŻáˇá "áááşáááąáŹáááşááźáááşááąáŹ" áĄá áŽáĄá ááşáĄáá˝ááş áĄááąá¸ááźáŽá¸ááąáŹ ááąááŹááážáááźááşá¸ááᯠáá˝ážááşááźáááˇáş áĄááźááşá¸ binaries áááŻáˇáááŻááş áĄáá°á¸áĄááŹááášááŻááťáŹá¸ááᯠááźááşáááşá¸ááźááşá¸áá˛áˇáááŻáˇááąáŹ áĄáąá¸ááźááąáŹáĄááşášááŤáááşááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááŻááşáááş á áááşááźááŻááşááąááŹáĄááťááŻá¸áĄá áŹá¸ááťáŹá¸ááᯠááśáˇáááŻá¸ááąá¸ááŤáááşá
JMESPath
JMESPath áááş JSON á
áŻáśá
ááşá¸áážáŻááŹááŹá
ááŹá¸áá
áşááŻááźá
áşáááşá
á¤áááşáážáŹ áááŹá¸áááş JMESPath á
áŹáá˝ááşá
áŹáááşá¸ááž ááťá˝ááşáŻááşáááŻáˇááážááááˇáş ááąáŹáşááźááťááşáááş áĄáááĄááťáá°ááąáŹáşáááşá¸ áĄáážááşááááşáá˝ááş áááşá¸áááş ááťáŹá¸á
á˝áŹáááŻá ááŻááşááąáŹááşááŤáááşá JMESPath áááş áááˇáşáĄáŹá¸ ááááŹá¸ááąáŹáá
áşáááşáá˝á˛áˇá
ááşá¸ááŻáśáá˝ááş áá
áşáááşáá˝á˛ááťáŹá¸ááᯠáážáŹáá˝áąááźáŽá¸ á
á
áşááŻááşáááŻááşááźáŽá¸ ááąááŹááźáąáŹááşá¸áá˛áážáŻááťáŹá¸ááᯠáĄááťáááşáážááˇáşáááźáąá¸áᎠáĄááŻáśá¸ááźáŻáááŻááşáááşá áááşá¸áááş áááˇáşáĄáŹá¸ áĄáá°á¸á
á
áşááŻááşáážáŻááťáŹá¸áážááˇáş ááąááŹáĄáá˝ááşááźáąáŹááşá¸ááźááşá¸áááŻááşáᏠááŻááşááŻáśá¸ááŻááşáááşá¸ááťáŹá¸áááŻáááşá¸ áááˇáşáá˝ááşá¸áááŻááşá
áąááŤáááşá ááŤááąáŹááş ááŹá¸áááşáááŻáˇ áŚá¸áážáąáŹááşáĄáŹá¸á
ááŻááşááŻááşáááŻáˇ áááŻááŤáááşá
Jinja
áĄááťááŻáˇááąáŹ á
áŹá¸ááŻáśá¸áá°ááťáŹá¸áĄáá˝ááşá ááťá˝ááşáŻááşáááŻáˇáááş configuration ááᯠáááŻááşáĄááźá
áşááźáąáŹááşá¸áááş áááŻáĄááşáááş - áááŻáˇááźáąáŹááˇáş ááťá˝ááşáŻááşáááŻáˇáááş template engine áááŻáĄááŻáśá¸ááźáŻááźáŽá¸ Jinja áááş ááááŹáááşáážáŹá¸ááąáŹáá˝áąá¸ááťááşáážáŻááźá
áşáááşá áááşá¸ááĄáá°áĄááŽááźááˇáşá ááťá˝ááşáŻááşáááŻáˇáááş áŚá¸áááşááŹáááŻáˇáááşááśááážááááˇáş ááŻáśá
áśáááááşáážááˇáş ááąááŹááž á
áŽá
ááşáá˝á˛áˇá
ááşá¸áážáŻáááŻááşáá
áşááŻááᯠááŻááşááąá¸ááŤáááşá
áá˝á˛áˇá ááşá¸áážáŻááŻáśá áśáááŻááşáá áşááŻááŻááşááŻááşáááş ááťá˝ááşáŻááşáááŻáˇáááş JMESPath ááąáŹááşá¸áááŻááťááşá FS áážááááŻááşáááşááąááŹáĄáá˝ááş ááá°ááŹáá áşááŻáážááˇáş config áááŻááşáááŻááşáĄáá˝ááş ááá°ááŹáá áşáᯠáááŻáĄááşááŤáááşá á¤áĄáááˇáşáá˝ááş áááŻááşáá˝ááˇáşááźáŻááťááşááťáŹá¸ááᯠáážááşá¸áááşá¸áááş áĄááźáśááąáŹááşá¸áá áşááŻááźá áşáááşá á¤áĄááŹáĄáŹá¸ááŻáśá¸ááᯠáááŻááşáá áşááŻáá˝ááş áĄáąáŹááşááźááşá á˝áŹ ááąáŤááşá¸á ááşááŹá¸áááş - áá˝á˛áˇá ááşá¸áážáŻááŻáśá áśááŻáśá áśáá áááşááŽá ááťááşáĄááŹááťáŹá¸ááᯠááąáŹáşááźáááˇáş YAML ááąáŹáşáááşáá˝ááş ááąáŤááşá¸á áŽá¸áá áşááŻááᯠáááˇáşááŹá¸áááşá
áĽáááŹ:
---
selector: "[@][?@.fft._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 áááŻááşáááŻááşáá˝ážááˇáşááźáŽá¸ááááşá¸á ááŹáá˝áąááźáąáŹááşá¸áá˛áá˝áŹá¸áá˛á áááááŻáśá¸áážááˇáş áĄááąá¸ááźáŽá¸ááŻáśá¸áĄááťááşáážáŹ áá˝ááşáááşáĄáá˝ááşá¸áážá node ááťáŹá¸áĄáŹá¸ááŻáśá¸áááŻáˇ áá˝á˛áˇá ááşá¸áážáŻáááŻááşáᏠáĄááşááááşááťáŹá¸ááᯠáááááşáááşá¸áážááˇáş ááŻáśááźááşá áááşááťáááąáŹ ááąá¸áááŻáˇááźááşá¸ááźá áşáááşá ááŻááááĄááťááşáážáŹ ááťá˝ááşáŻááşáááŻáˇáááśáˇáááŻá¸áá°ááŽáážáŻáĄáá˝á˛áˇáážáĄááźááş áááşááąáŹááşáážáŻáĄááŻáśá¸ááźáŻáá°ááťáŹá¸ááž áááşá¸áĄáŹá¸ áá˝á˛áˇá ááşá¸áážáŻááŻáśá áśááᯠá á áşááąá¸ááźááşá¸áážááˇáş áááşá¸áĄáŹá¸ ááźáąáŹááşá¸áá˛ááźááşá¸ááťáŹá¸ááźáŻááŻááşáááş áĄá á˝ááşá¸áááşáááˇáşááááááŹááᯠáááşááśááážááááşááźá áşáááşá
configuration server áážááˇáş configuration áááşááśáá°ááťáŹá¸áĄááźáŹá¸ áááşáá˝ááşáážáŻááᯠáááŻá¸áážááşá¸á áąáááş áááźáŹááąá¸ááŽá áááşááźáááşááąáŹ áĄááşááááşáĄá áŽáĄá ááşááᯠáĄááŻáśá¸ááźáŻá á¤áĄááŹáĄáŹá¸ááŻáśá¸ááᯠááťá˝ááşáŻááşáááŻáˇ ááŻááşááąáŹááşáááŻááşáá˛áˇááŤáááşá áĄááźáąáŹááşá¸áĄááŹ-áĄáážáŽáĄáááŻáááşá¸ááąáŹ ááąááŹáááşá¸ááźáąáŹááşá¸ááᯠááśáˇáááŻá¸áááş áĄáá˝ážáŹáážá áşáá˝ážáŹ ááááŻáááŻááąáŹááᯠáĄááŻáśá¸ááźáŻááźááşá¸á Jinja-based configuration generation engine ááᯠááźááˇáşááąááŹá¸ááąáŹ filtering network áá˝ááş áĄáąáŹááşááźááşá á˝áŹ ááąáŤááşá¸á ááşááŹá¸áááşá á¤á áá áşáááş ááťá˝ááşáŻááşáááŻáˇá ááźááˇáşááąáážáŻáážááˇáş áá˝á˛ááźáŹá¸ááąááąáŹ áĄááśáá ášá ááşá¸ááťáŹá¸áĄáá˝ááş ááťááşááźááˇáşááąáŹ áá˝á˛áˇá ááşá¸áážáŻááŻáśá áśááťáŹá¸ááᯠááśáˇáááŻá¸ááąá¸ááŤáááşá
áĄááźáąáŹááşá¸áĄááŹááᯠááąá¸ááŹá¸ááŹáá˝ááş áááşááĄáá°áĄááŽáĄáá˝ááş ááťáąá¸áá°á¸áááşááŤáááşá , , .
áááŻáˇá
áşá
source: www.habr.com
