ԸՆԴՀԱՆՈՒՐ ՊԱՏԿԵՐ
Համատեքստ
Արտաքին համակարգերը ինտեգրման նույն հնարավորությունները չունեին։ Որոշ գործընթացներ հնարավոր էր իրականացնել API-ներով, իսկ մյուսների համար անհրաժեշտ էր աշխատել authenticated browser session-ների հետ՝ պահպանելով մուտքի վիճակը և անհրաժեշտության դեպքում թույլ տալով մարդու միջամտություն։
ԽՆԴԻՐ
Ինչ պետք էր լուծել
Խնդիրը պարզապես Chrome process-ներ բացելը չէր։ API և Browser Automation հոսքերը պետք էր դարձնել երկարատև աշխատանքի համար կառավարելի, վերահսկելի և վերականգնելի՝ այնպես, որ սխալից կամ service restart-ից հետո համակարգը հասկանար գործող session-ների իրական վիճակը։
ՍԱՀՄԱՆԱՓԱԿՈՒՄՆԵՐ
Ինչ պետք էր հաշվի առնել
- Authenticated հոսքերը կարող էին ներառել բազմաքայլ մուտք, 2FA, PIN կամ այլ security prompt-եր, իսկ որոշ դեպքերում՝ նաև մարդու միջամտություն։
- Browser-management service-ի restart-ը չպետք է դադարեցներ արդեն աշխատող և վավեր session-ները։
- Զուգահեռ browser session-ները պետք է ունենային առանձին profile, ownership, proxy և debugging endpoint։
ԻՄ ՊԱՏԱՍԽԱՆԱՏՎՈՒԹՅՈՒՆԸ
Back-End & Automation Technical Lead
- Ղեկավարել եմ Back-End և Browser Automation համակարգերի տեխնիկական զարգացումն ու ճարտարապետական որոշումները՝ անհրաժեշտության դեպքում անմիջականորեն մասնակցելով նաև մշակմանը։
- Պատասխանատու եմ եղել ինտեգրումների կառուցվածքի, browser lifecycle-ի կառավարման, հուսալիության մեխանիզմների, technical review-ների և production-ին պատրաստ լինելու վերաբերյալ որոշումների համար։
- Automation-ի business logic-ը առանձնացրել ենք browser-ների ստեղծման, պահպանման, ownership-ի և lifecycle-ի կառավարման պատասխանատվությունից։
ՃԱՐՏԱՐԱՊԵՏՈՒԹՅՈՒՆ
Համակարգի կառուցվածքը
ՏԵԽՆԻԿԱԿԱՆ ԲԱՐԴՈՒԹՅՈՒՆՆԵՐ
Որտեղ էր բարդությունը
- Մուտքի վիճակը պետք էր պահպանել երկարատև session-ների ընթացքում՝ առանձին profile-ներով, cookies-ով, local storage-ով և պահպանվող session state-ով։
- Յուրաքանչյուր browser-ի համար պետք էր պահպանել ownership-ը, debugging port-ը, profile path-ը, proxy-ն, session-ի ժամկետը և process-ի վիճակը։
- Այն դեպքերում, երբ automation-ը պահանջում էր մարդու միջամտություն, անհրաժեշտ էր հնարավորություն տալ հեռավար դիտել և կառավարել գործող browser session-ը։
- API ինտեգրումը պետք է մնար առաջնային տարբերակը, իսկ Browser Automation-ը կիրառվեր այնտեղ, որտեղ արտաքին համակարգի հնարավորությունները բավարար չէին։
- Browser-ի և process-ի վիճակը պետք էր պահպանել այնպես, որ service restart-ից կամ failure-ից հետո հնարավոր լիներ ճիշտ որոշել՝ շարունակել գործող session-ը, վերականգնել այն, թե փակել արդեն հնացած process-ը։
ՄՈՏԵՑՈՒՄ
Ինչպես կառուցվեց լուծումը
- Առանձնացվել են business workflow-ների orchestration-ը, կոնկրետ հարթակների automation logic-ը և browser lifecycle-ի կառավարումը։
- Remote debugging-ի և Chrome DevTools Protocol-ի միջոցով հնարավոր է աշխատել արդեն գոյություն ունեցող Chrome session-ի հետ՝ առանց յուրաքանչյուր task-ի համար նոր browser process ստեղծելու։
- Հիմնական հոսքերում նախատեսվել են retry, timeout, validation, logging և սխալից հետո աշխատանքի շարունակման կամ վերականգնման հստակ տարբերակներ։
ԶԱՐԳԱՑՈՒՄ
Ինչպես է համակարգը զարգացել
Workflow Automation
Առանձին հարթակների ավտոմատացում և բիզնես գործընթացների իրականացում։
Structured Back-End Integration
Back-End ծառայություններ, API orchestration և process/session state-ի հստակ կառավարում։
Browser Infrastructure
Երկարատև session-ներ, առանձին profile-ներ, proxy-ներ և remote debugging։
Dedicated Browser Management
Browser-ների ownership-ը և lifecycle-ի կառավարումն առանձնացվել են կոնկրետ automation logic-ից։
Agentic Exploration
PoC՝ AI agent-ը գոյություն ունեցող CDP session-ին միացնելու և browser task-եր կատարելու հնարավորությունը փորձարկելու համար։ Սա production համակարգի մաս չէ։
ՀՈՒՍԱԼԻՈՒԹՅՈՒՆ
Ինչ է տեղի ունենում սխալի դեպքում
- Հոսքերում նախատեսված են retry, timeout, validation, logging և սխալից հետո աշխատանքի վերահսկելի շարունակման կամ վերականգնման տարբերակներ։
- Browser-ի, process-ի և session-ի վիճակը պահպանվում է, որպեսզի հնարավոր լինի հասկանալ համակարգի իրական վիճակը և անհրաժեշտության դեպքում միջամտել։
- Հնացած browser process-ները մաքրվում են առանձին կանոններով․ service restart-ը ինքնին գործող session-ը փակելու պատճառ չէ։
ԱՐԴՅՈՒՆՔ
Ինչ ստացվեց
- Ստեղծվել է API ինտեգրումներն ու Browser Automation-ը միավորող հարթակ, որտեղ browser session-ներն ունեն հստակ ownership, պահպանվող վիճակ և կառավարվող lifecycle, իսկ խափանումներից հետո համակարգի վերականգնումը կախված չէ service-ի պատահական restart-ից։
ՏԵԽՆԻԿԱԿԱՆ ՀԱՄԱՏԵՔՍՏ
Տեխնոլոգիաներ և համակարգեր
Երրորդ կողմի հարթակների անունները, գործատուին վերաբերող գործընթացները, credentials-ը, account data-ն և ներքին իրականացման մանրամասները միտումնավոր չեն հրապարակվում։