2023-06-22 API Deployment

 

Deployment procedūra

  1. Pārslēgties uz main un Merge visu iekš main branch

  2. Pārbauda un palielina versiju numurus iekš model_versions.json

  3. Iepusho GIT version: X

  4. Vispirms lokāli notestēt visus features caur SwaggerUI

  5. Kad viss strādā, augšupielādēt uz visiem serveriem izmainītās koda daļas, lielos pre-trained weights tikai tur kur nepieciešams (Uztaisīt PyCharm visas nodes kā upload vides, nokonfigurēt ērtu keyboard shortcut piem ctrl+shift+u) image-20230622124142961

  6. Ar SSH pieslēgties visām nodēm (ērti caur PyCharm uz tām pašām vidēm) image-20230622131349818

  7. Secīgi visās screens pievienoties un Ctrl+C apturēt, sagaidīt, ka beidzas

  8. Iestartēt pa jaunu

  9. Pārbaudīt, ka oracle-4 (kas ir bez GPU bet jaudīgu SSD un tīklu) coordinator viss ir OK (to arī iespējams vajag restartēt, ja ir izmaiņas)

  10. Pārbaudīt, ka API dashboard ir viss ok http://dashboard.asya.ai/d/yvNWVN5Vz/api?orgId=1&refresh=10s

    Novērst, ka starp dienām krājas taski image-20230622125600302

  11. Pārbaudīt, ka var caur https://api.asya.ai palaist task veiksmīgi un tas iziet cauri visām funkcijām, palaist ar HIGH priority

 

Lokālā testēšana

  1. Palaiž worker_api.py -is_debug True

  1. Iesniedz pieprasījumu uz vidām features http://127.0.0.1:8000/docs#/default/task_submit_task_submit_post

    ar reālu BPO sarunu un endpoint uz epastu BPO key: 3e995f31-f686-450c-8364-010ca85262fb

image-20230622121740167

image-20230622121804168

 

 

image-20230622121942695

  1. Piefiksē worker_api konsolē taksk_id, palaiž pēc kārtas katru feature worker image-20230622122924827

⚠️ Salabot visos workers, ka is_debug nepieļauj heartbeat un file_cache_manager palaišanu

image-20230622122356845

image-20230622122945421

Izpētīt un ņemt vērā kā darbojas multiprocessing workeri

image-20230622122707233

Vajadzības gadījumā uz DEV servera testēt, izmantojot pdb

image-20230622123009994

image-20230622123042262

PDB ļauj veikt koda pieprasījumus un turpina ar continue vai exit izslēdz skriptu image-20230622123156014

 

Visur by default uzstādam is_debug = True

image-20230622123108432

Palaižot worker is_debug režīmā, tā, ka tas NETIEK reģistrēts coordinator, piefiksē worker_uuid pēc feature_id atrod to features_in_task tabulā un piešķir katram feature manuāli worker_uuid, tajā brīdī worker vajadzētu izpildīt uzdevumu

image-20230622123343395

image-20230622123536338

 

Production palaišana

Sastādīt note, kur uzskaitīti visi pieejamie GPU un uzmanīgi izrēķina cik uz kura var palaist uzdevumus, tos arī jākoriģē izmantojot dashboard datus par pieprasījumu un processing ilgumu.

Screen names formatēti sekojoši

image-20230622124249070

Ja nepieciešams atrast procesu, to dara ar ps aux | grep PID image-20230622124331209

 

Pašlaik uz katras nodes ir viens is_main_on_server (jābūt uz katras nodes šobrīd). Bet uz visiem workeriem DENOISE un VoiceID jābūt arī vienam is_master (šobrīd tikai šiem 2 tipa workeriem is_master)

image-20230622124412083

Uzdevumus graciosly killo un gaida, kamēr tie beidzas: ctrl+C

image-20230622124612255

Ja nevar nokillot izmanto kill -9 PID image-20230622124717321

Uzspiežot bultiņu uz augšu iegūsti iepriekšējo komandu workerim, kas bija screenā

image-20230622124743659


🚩Svarīgākais uzdevums

  1. Notestēt un uzstādīt jauno versiju

  2. Palīdzēt un pārbaudīt, ka pauls sāk aktīvi izmantot PP pusē text_intent un text_sentiment (text_sentimnent nav īpaši jāatēlo tam vajadzētu uzlabot emotions darbību, jāpārliecinās, ka tas tiešām tā ir)

 

💡 Iesaku izmantot clipboard managers

Ditto Listary


Production Serveru pieejas

  1. oracle-4, 132.226.193.4:22, u: ubuntu (oracle-4-p100.key)

  2. aws-3, 54.145.228.121:22, u: ubuntu (aws-2023.pem)

  3. aws-4, 54.196.87.160:22, u: ubuntu (aws-2023.pem)

  4. aws-6, 3.239.49.88:22, u: ubuntu (aws-2023.pem)

  5. oracle-20, 129.159.100.102:22, u:ubuntu (oracle-20.key)

  6. asya-1, 80.232.224.165:10122, u: asya, key (pauls iedod key)

  7. asya-2, 80.232.224.165:10222, u: asya, key

  8. asya-3, 80.232.224.165:10322, u: asya, key

  9. asya-3, 80.232.224.165:10422, u: asya, key

Īpaša versija Assistentis, šobrīd offline:


 

Pēc veiksmīgas nākamās versijas uzstādīšanas

Nākamais uzdevums - salabot loģiku is_main_on_server un is_master

Šobrīd tā ir nedroša, jo viegli aizmirst pielikt pareizi argumentus. Uztaisīt, ka to organizē pats heartbeat controller un workers tabula. Tāpat ļoti nepieciešams salabot beidzot hostname, lai var atsekot uz kuras nodes, kas ir palaists.

Šie jālikvidē

image-20230622124950812

DB izmaiņas

image-20230622125255835

Heartbeat ar saprotamu funkciju pēc vai pirms iestartēšanās vajag iedot šos params balstoties uz DB (atceries, ka tas ir multiprocess worker!) image-20230622125338750

 

Next - Noņemt energy worker vispār

Saskaņot, ka pauls noņem arī savā pusē visu kas ar to saistīts

image-20230622125457190