

Տարբեր ժամանակներում մեծ կոնֆերենցիաներում հաճախ ներկայացվում է հատուկ հետաքրքրող թողարկում կամ նախագիծ, որն ունի քիչ կամ ընդհանրապես هیچ շուկայավարման backing‑ի աջակցություն, կամ ստեղծված է մեծ, կորպորատիվ‑հագեցած թիմերի կողմից։ KubeCon + CloudNativeCon‑ում Էլիզաբեթ Գիլբերտը, Կարնեգի Մելոն համալսարանի դոկտորական թեկնածուն, ներկայացրեց Whamm‑նանունով նախագիծը, որը կարող է իրականում տեղից գործել ընդամենը մեկ տող կոդով: Այն չի փոխարինում, բարելավում կամ կատարելիս չի փոխում գոյություն ունեցող գործիքներն ու գործընթացները, բայց կարող է անել բաներ, որոնք մինչ այժմ ճիշտ գոյություն չեն ունեցել. Գիլբերտը հաճախակի լավ ներկայացրեց իր ստեղծած նախագիծը, և ելույթի հետևից այն մեծ թվով ներբեռնումներ և forks է ստացել՝ Whamm: A Framework for Performant, Sandboxed Instrumentation վերնագրով WasmCon‑ի CNCF‑ի հյուրւնքի տակ տեղի ունեցած KubeCon + CloudNativeCon համատեղ միջոցառման ժամանակ: Whamm‑ը նախագծված է որպեսզի օգտվողները կարողանան ինստրումենտավորել իրենց WebAssembly (Wasm) հավելվածները ծրագրավորման լեզվի կամ կոդի միջոցով, կամ ամսաթիվով անմիջապես գործել իր Wasm հավելվածները մոդուլների մեջ: Դրանով նրանք կարող են դեբագավորել, մոնիտորել և այլ գործողություններ կատարել իրենց հավելվածների վերաբերյալ WebAssembly մոդուլներում. Whamm‑ը գլխավորեց Carnegie Mellon University‑ի դոկտորական թեկնածու Էլիզաբեթ Գիլբերտը WasmCon‑ի ժամանակ՝ KubeCon NA‑ի առաջ: Այս ինստրուցիոն շրջանակը WebAssembly observability‑ի համար պետք է գրավի հետաքրքրություն և աջակցության զանազանություն: @linuxfoundation pic.twitter.com/MZBFkfjsFu — BC Gain (@bcamerongain), 2025‑թ–ի նոյեմբերի 11–ը Առաջին անգամ Whamm‑ը ներկայացվել է «Flexible Non-intrusive Dynamic Instrumentation for WebAssembly» վերնագրով թղթում, եւ այդ շրջանակը նկարագրվում է որպես «Wasm հավելվածների մոնիթորինգի և փոխագործման ֆրեյմվորք»։ Գիլբերտի GitHub էջում Whamm‑ի ինստրումենտացիա, մոնիթորինգ և բայթքոդի վերաշարման կարողություններն այսպես է նկարագրվում: Ինստրումենտացիա: Երբ ասում ենք, որ ինստրումենտավորում ենք ծրագիրը, բարձր մակարդակով նկատի ունենք, որ «ծրագրի աշխատանքի ընթացքում որոշ կոդ ենք ներդնում»։ Այս սահմանումը դիտավորությամբ ընդհանուր է, քանի որ ինստրումենտացիան կարող է անել ամեն ինչ, ինչ կարող ենք պատկերացնել։ Դուք կարող եք ինստրումենտացիայով կառուցել դեբագերներ, դինամիկ վերլուծություններ, տիարժույց գեներատորներ և այլն: Դինամիկ վերլուծություն: Դինամիկ վերլուծությունը մի տեսակ վերլուծություն է, որը ծրագրի գործարկման ժամանակայն վերլուծում է אותו, հակադրությամբStatic analysis‑ի, որը վերլուծում է այն ծրագիրը, որ չի գործում: Այս տիպի վերլուծությունը կարող է օգտակար տեղեկություններ ստանալ ծրագրի վերաբերյալ, քանի որ կարող է հասանելի լինել տվյալներ, որոնք ստատիկ կերպով հասանելի չեն (օրինակ՝ տաք կոդի տեղեր, ժամանակի ընթացքում հիշողության հասանելիություններ, թեստերի ծածկույթներ և այլն): Բայթքոդի վերաշարում: Սա ինստրումենտացիոն տրամաբանությունն հավելվածին ներմուծելու օրինակային ռազմավարություն է։ Այն իրականացնում է ինստրումենտացիան բայթքոդի մեջ բառացիորեն նոր հրահանգներ ներդնելով: «Ինստրումենտացիան» իրականում դրա դիտարկման միջոց է՝ հավելվածի վարքագիծը դիտելու համար, ինչը բավականին ճկուն սահմանմամբ ընդգրկում է բոլոր տարբեր գործառույթները։ Դա կարող է լինել դիտելիություն, բայց կարող է օգտագործվել նաև թեստավորման դեպքեր, ինչպեսFault injection‑ի թեստավորում,‑ ասաց Գիլբերտը ԿուբԿոն + CloudNativeCon‑ի ելույթի ժամանակ։ «Դուք կարող եք ձեր հավելվածում ներմուծել սխալներ՝ տեսնելու համար, արդյո՞քը դա կարողանում է ճիշտ աշխատել: Ինստրումենտացիան կարող է օգտագործվել՝ հավելվածի իրական գործողությունը կառավարելու համար և որպեսզի այն միանհատավետորեն այն չի կատարում»: Ինչպես Գիլբերտը բացատրեց, WebAssembly‑ի վրա կենտրոնանալու գլխավոր շարժառիթը լեզուների փոխհամատեղելիությունն է. «Քանի որ մի քանի տարբեր լեզուներ կարող են compile‑վել WebAssembly‑ի վրա, գործիքների դիզայնը խնդրում է շատ հիանալի սովորել։ Եթե ունեք լեզուների անկախ գործիքներ, ապա եթե ինչ‑որ նոր ծրագրավորման լեզու բոլորակեր, և դա պարզապես compile‑վի WebAssembly‑ի, կարող եք ստանալ բոլոր գործիքները անվճար»՝ ասաց Գիլբերտը: «Այս բազմալեզու հնարավորությունը կարող է շատ մարդկանց համար իսկապես շատ հետաքրքիր լինել։ Երբ Wasm‑ը ավելի լայնորեն թիրախավորվի, եթե մեր ինստրումենտացիոն պատմությունը այնտեղ լինի, ապա բոլոր զարգացված գործիքները անվճար կստացվեն, և հարթակն կարող է միանալ տարբեր բաների»: Նախագծի ընթացիկ վիճակը այն է, որ այն կարող է «կատարել բավականին շատ բաներ, բայց անհրաժեշտ է մշակել ավելի շատ օգտագործման դեպքեր, որպեսզի դառնա ավելի կայուն»։ Գիլբերտը նշել է, որ նախագիծը ներկայումս աշխատում է պարզատիպորեն մեկուսացված քաղաքայության վրա, և շատ մարդիկ, մասնավորապես ինժեներները, ներդրելով կարող են գործը ավելի արագ կատարել։ Օվեր, ես արդեն սպասում եմ տեսնել մի շարք ինժեներների, որոնք կցանկանան հաճախել Whamm‑ին և օգտվել դրանից: