
DevOps-ի նշանակությունը Data Science-ի աշխարհում
DevOps-ը (Development and Operations) համատեղում է ծրագրակազմի մշակումը (Dev) և ՏՏ օպերացիոն գործողությունները (Ops):
Այն ենթադրում է որոշակի ենթակառուցվածքների ապահովում, շարունակական ինտեգրում և տեղակայում, փորձարկում և մոնիթորինգ: DevOps-ի թիմերը սերտորեն համագործակցում են զարգացման թիմերի հետ` դիմումների կյանքի ցիկլն արդյունավետ կառավարելու համար:
Data Science-ը DevOps-ին լրացուցիչ գործառույթներ է ավելացնում: Data engineering-ը պահանջում է DevOps- ի հետ տվյալների գիտական թիմերի սերտ համագործակցություն: Ակնկալվում է, որ օպերատորները կտրամադրեն Apache Hadoop-ի, Apache Kafka-ի, Apache Spark-ի և Apache Airflow-ի շատ մատչելի խմբեր (կլաստերներ), որոնք կկարգավորեն տվյալների վերափոխումը:
Data scientist-ներն ուսումնասիրում են փոխակերպված տվյալները՝ կապեր գտնելու համար: Նրանք օգտագործում են գործիքների տարբեր տեսակներ՝ Jupyter Notebooks, Pandas, Tableau և Power BI՝ տվյալների վիզուալացման համար: Ակնկալվում է, որ DevOps-ի թիմերը կաջակցեն Data scientist-ներին՝ տվյալների որոնման և արտացոլման համար հարմար պայմաններ ստեղծելով:
Machine learning-ի մոդելների կառուցումն էապես տարբերվում է ավանդական կիրառական ծրագրերի մշակումից: Data scientist-ներն ու developer-ները machine learning-ի մոդելներ զարգացնելու համար օգտագործում են տարբեր լեզուներ, գրադարաններ և գործիքներ: Machine learning-ի զարգացման հանրաճանաչ լեզուներն, ինչպիսիք են Python-ը, R-ը և Julia-ն, օգտագործվում են Jupyter Notebooks-ի, PyCharm-ի, Visual Studio Code-ի, RStudio-ի և Juno-ի հետ: Այս environment-ները պետք է հասանելի լինեն data scientist-ների և machine learning-ի հետ կապված խնդիրներ լուծող developer-ների համար:
Machine learning-ը պահանջում է հաշվարկային ենթակառուցվածքներ, որոնք աշխատում են հզոր CPU-ի և GPU-ի վրա: TensorFlow, Caffe, Apache MXNet և Microsoft CNTK framework-ները օգտագործում են GPU-ները՝ բարդ հաշվարկ կատարելու համար: Այս կլաստերի ապահովումը, կազմաձևումը և կառավարումը տիպիկ DevOps գործառույթ է: DevOps-ի թիմերը կարող են ստիպված ստեղծել սցենարներ` տարբեր environment-ների ենթակառուցվածքների տրամադրումն ու կազմաձևումն ավտոմատացնելու համար:
DevOps-ի թիմերը CI/CD-ի միջոցով կապում են ML ուսուցման environment-ը և մոդելի տեղակայման environment-ը:
Երբ պատրաստ ML մոդելն արդեն հասանելի է, ակնկալվում է, որ DevOps-ի թիմերը մոդելը գործածելու են լայն environment-ներում: Նրանք կարող են օգտվել Apache Mesos-ից կամ Kubernetes-ից` մոդելի տեղադրման մասշտաբի համար:
Container management-ի գործիքները machine learning-ն ավելի արդյունավետ են դարձնում: DevOps-ի թիմերը container-ներ են օգտագործում development environment-ի, տվյալների մշակման և վերապատրաստման ենթակառուցվածքների ապահովման համար: Kubeflow-ի և MlFlow-ի նման զարգացող տեխնոլոգիաները DevOps-ի թիմերին նոր մարտահրավերները հաղթահարելու հնարավորություն են տալիս:
Machine learning-ը DevOps-ին բերում է նոր հարթություն: Developer-ների հետ միասին, օպերատորները ստիպված կլինեն համագործակցել data scientist-ների և engineer-ների հետ՝ machine learning-ն ընդունող ընկերություններին աջակցելու համար:
Քանի որ data science-ի և machine learning-ի մոդելներն ունակ են լուծելու բարդ բիզնեսի խնդիրները, ակնհայտ է, որ շատ ձեռնարկություններ շարունակում են ներդրումներ կատարել այս ոլորտում իրենց կարողությունները կառուցելու համար՝ իրենց օգտատերերին բիզնեսի արժեք հաղորդելու համար: Այս միտումը պայմանավորված է նաև նրանով, որ ռեսուրսների կառավարումը, ինչպիսիք են հսկայական տվյալները, ենթակառուցվածքները, հաշվարկային հզորությունը և այլն, դարձել են շատ էժան և պահանջարկային: Դա էլ թիմերին հնարավորություն է տվել շատ կարճ ժամանակում նախատիպից անցնել արտադրության: