{"id":87467,"date":"2020-07-08T13:42:11","date_gmt":"2020-07-08T11:42:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn"},"modified":"2020-07-08T13:42:11","modified_gmt":"2020-07-08T11:42:11","slug":"rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn","title":{"rendered":"Udhezues p\u00ebr fillestar\u00ebt: krijimi i nj\u00eb DevOps-pipeline","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>N\u00ebse jeni fillestar n\u00eb DevOps, shikoni k\u00ebt\u00eb udh\u00ebzues p\u00ebr krijimin e pipeline-it tuaj t\u00eb par\u00eb me pes\u00eb hapa.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Udhezues p\u00ebr fillestar\u00ebt: krijimi i nj\u00eb DevOps-pipeline\" src=\"\/wp-content\/uploads\/2020\/07\/605ed7d81323d0b5e094f7f912f8c669.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>DevOps \u00ebsht\u00eb b\u00ebr\u00eb zgjidhja standarte p\u00ebr t\u00eb rregulluar proceset e zhvillimit t\u00eb softuerit q\u00eb jan\u00eb t\u00eb ngadalta, t\u00eb shp\u00ebrndara ose t\u00eb pamjaftueshme. Problemi \u00ebsht\u00eb se, n\u00ebse jeni fillestar n\u00eb DevOps dhe nuk e dini nga t\u00eb filloni, mund t'ju mungoj\u00eb nj\u00eb kuptim i k\u00ebtyre metodave. N\u00eb k\u00ebt\u00eb artikull do t\u00eb flasim p\u00ebr definimin e nj\u00eb pipeline-i DevOps, dhe gjithashtu do t\u00eb ofrohet nj\u00eb udh\u00ebzim p\u00ebr krijimin e tij n\u00eb pes\u00eb hapa. Megjith\u00ebse ky udh\u00ebzues nuk \u00ebsht\u00eb gjith\u00ebp\u00ebrfshir\u00ebs, ai duhet t'ju jap\u00eb nj\u00eb baz\u00eb p\u00ebr t\u00eb filluar udh\u00ebtimin tuaj dhe p\u00ebr t\u00eb zgjeruar njohurit\u00eb tuaja n\u00eb t\u00eb ardhmen. Por le t\u00eb fillojm\u00eb me historin\u00eb.<\/p>\n<h3>Udh\u00ebtimi im n\u00eb DevOps<\/h3>\n<p>\nDeri m\u00eb tani kam punuar n\u00eb ekipin e cloud-it t\u00eb Citi Group, duke zhvilluar nj\u00eb aplikacion web Infrastructure-as-a-Service (IaaS) p\u00ebr menaxhimin e infrastruktur\u00ebs cloud t\u00eb Citi, por gjithmon\u00eb m\u00eb ka interesuar se si t\u00eb b\u00ebj procesin e zhvillimit m\u00eb efikas dhe t\u00eb sjell ndryshime pozitive kulturore n\u00eb ekipin e zhvilluesve. T\u00eb p\u00ebrgjigjen e gjeta n\u00eb nj\u00eb lib\u00ebr t\u00eb rekomanduar nga Greg Lavender, drejtorin teknik t\u00eb Citi p\u00ebr arkitektur\u00ebn dhe infrastruktur\u00ebn cloud. Libri quhej \u201cProjekti Feniks\u201d (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/dp\/B078Y98RG8\/\">The Phoenix Project<\/a><\/noindex>), dhe n\u00eb t\u00eb shpjegohen parimet e DevOps, duke u lexuar si nj\u00eb roman.<\/p>\n<p>N\u00eb tabel\u00ebn n\u00eb an\u00ebn e pasme t\u00eb librit tregohet sa shpesh kompani t\u00eb ndryshme deployojn\u00eb sistemet e tyre n\u00eb nj\u00eb mjedis p\u00ebr publikim:<\/p>\n<p>Amazon: 23,000 n\u00eb dit\u00eb<br \/>\nGoogle: 5,500 n\u00eb dit\u00eb<br \/>\nNetflix: 500 n\u00eb dit\u00eb<br \/>\nFacebook: Nj\u00eb her\u00eb n\u00eb dit\u00eb<br \/>\nTwitter: 3 her\u00eb n\u00eb jav\u00eb<br \/>\nKompania tipike: Nj\u00eb her\u00eb n\u00eb 9 muaj<\/p>\n<p>Si \u00ebsht\u00eb e mundur q\u00eb Amazon, Google dhe Netflix t\u00eb ken\u00eb k\u00ebto frekuenca? E gjith\u00eb kjo sepse k\u00ebto kompani kan\u00eb gjetur m\u00ebnyr\u00ebn p\u00ebr t\u00eb nd\u00ebrtuar nj\u00eb pipeline DevOps pothuajse perfekt.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nIshim ishim ne ehebni. Ishim ishim ne kum mkan ne DevOps ne Citi. Ne qika i ke mare ne,she qika ne qepu ne mqar ne shkipaletine, por qika i tejet manjin me dhell ne njerin. Qitijni neve qika ne. Por qika shkete i bajde don bashkene kone, dhe ne ba vei ne ato ndoptimine i imeneve. Kishim njofi me njef shtet t'jeshte, qika sbali i baji, dhe ne gjenin i mrrinj ne bjenje-tjeter.<\/p>\n<p>Ne kuptuan se duhet i vepruar, dhe te gjoh disa gjicom. Ne ecem nejme i pa bashk punen per te rreatisu nje ne DevOpsprova - ai installoi ni virtual Go dhe aplikacionet e Tervezes Tomcat, kurse po punoja me Jenkins, integrerua Atlassian Jira dhe BitBucket, dhe po punoja i testit ne kod. Ky projekti ishte mundial: ne tallim slides, dyshjta, dhe arritem drejt ketij nje tip dhe punen e imeneve dhe fillovem i punen e sajim gjer ne Git me dataplet shalt<\/p>\n<p>Tani kuptoj si e thjesht\u00eb ishte DevOps i yn\u00eb: ne nuk p\u00ebrdorim zgjerime si Jenkins files a Ansible. Megjithat\u00eb, ky transmetim i thjesht\u00eb punoi mir\u00eb, ndoshta p\u00ebr shkak t\u00eb parimit t\u00eb Pareto (i njohur gjithashtu si rregulli 80\/20).<\/p>\n<h3>Nj\u00eb hyrje e shkurt\u00ebr n\u00eb DevOps dhe procesin CI\/CD<\/h3>\n<p>\nN\u00ebse pyetni disa njer\u00ebz: \"\u00c7far\u00eb \u00ebsht\u00eb DevOps?\", ka t\u00eb ngjar\u00eb t\u00eb merrni disa p\u00ebrgjigje t\u00eb ndryshme. DevOps, si Agile, \u00ebsht\u00eb zhvilluar p\u00ebr t\u00eb p\u00ebrfshir\u00eb shum\u00eb disiplinat e ndryshme, por shumica e njer\u00ebzve do t\u00eb bien dakord mbi disa gj\u00ebra: DevOps \u00ebsht\u00eb nj\u00eb praktik\u00eb e zhvillimit t\u00eb softuerit ose nj\u00eb cik\u00ebl zhvillimi t\u00eb softuerit (SDLC), ku parimi qendror \u00ebsht\u00eb ndryshimi i kultur\u00ebs, n\u00eb t\u00eb cil\u00ebn zhvilluesit dhe jo-zhvilluesit jetojn\u00eb n\u00eb nj\u00eb mjedis ku:<\/p>\n<p>Operacione t\u00eb automatizuara q\u00eb m\u00eb p\u00ebrpara ishin kryer manualisht; <br \/>\n\u00c7dokush b\u00ebn at\u00eb q\u00eb di t\u00eb b\u00ebj\u00eb m\u00eb mir\u00eb;<br \/>\nNumri i implementimeve brenda nj\u00eb periudhe t\u00eb caktuar rritet; Rritet kapaciteti i kalimit; <br \/>\nRritet fleksibiliteti n\u00eb zhvillim.<\/p>\n<p>Edhe pse t\u00eb ken\u00eb mjete t\u00eb duhura programore nuk \u00ebsht\u00eb e vetmja gj\u00eb q\u00eb duhet p\u00ebr t\u00eb krijuar nj\u00eb mjedis DevOps, disa mjete jan\u00eb t\u00eb nevojshme. Nj\u00eb mjet ky\u00e7 \u00ebsht\u00eb vazhdimi i integrimit dhe vazhdimi i shp\u00ebrndarjes (CI\/CD). N\u00eb k\u00ebt\u00eb linj\u00eb, mjediset kan\u00eb faza t\u00eb ndryshme (p.sh., DEV, INT, TST, QA, UAT, STG, PROD), shum\u00eb operacione jan\u00eb automatizuar, dhe zhvilluesit mund t\u00eb shkruajn\u00eb kod me cil\u00ebsi t\u00eb lart\u00eb, t\u00eb arrijn\u00eb fleksibilitet n\u00eb zhvillim dhe nj\u00eb frekuenc\u00eb t\u00eb lart\u00eb t\u00eb shp\u00ebrndarjeve.<\/p>\n<p>Ky artikull p\u00ebrshkruan nj\u00eb qasje me pes\u00eb hapa p\u00ebr t\u00eb krijuar nj\u00eb linj\u00eb DevOps, t\u00eb ngjashme me at\u00eb t\u00eb ilustruar n\u00eb diagramin e m\u00ebposht\u00ebm, duke p\u00ebrdorur mjete me burim t\u00eb hapur.<\/p>\n<h3>Hapi 1: Metodat CI\/CD<\/h3>\n<p>\nGj\u00ebja e par\u00eb q\u00eb ju nevojitet \u00ebsht\u00eb nj\u00eb mjet p\u00ebr CI\/CD. Jenkins, nj\u00eb mjet me burim t\u00eb hapur, i bazuar n\u00eb Java dhe i shp\u00ebrndar\u00eb n\u00ebn licenc\u00ebn MIT, \u00ebsht\u00eb mjeti q\u00eb popullarizoi drejtimin DevOps dhe \u00ebsht\u00eb b\u00ebr\u00eb standardi de facto.<\/p>\n<p>Pra, \u00e7far\u00eb \u00ebsht\u00eb Jenkins? Mendoni p\u00ebr t\u00eb si nj\u00eb lloji t\u00eb telekomand\u00ebs magjike universale q\u00eb mund t\u00eb bisedoj\u00eb me sh\u00ebrbime dhe mjete t\u00eb ndryshme dhe t'i organizoj\u00eb ato. Vet\u00eb CI\/CD mjeti, si Jenkins, \u00ebsht\u00eb i padobish\u00ebm, por b\u00ebhet m\u00eb i fuqish\u00ebm nd\u00ebrsa lidhet me mjete dhe sh\u00ebrbime t\u00eb ndryshme.<\/p>\n<p>Jenkins \u00ebsht\u00eb vet\u00ebm nj\u00eb nga shum\u00eb mjetet me burim t\u00eb hapur p\u00ebr CI\/CD q\u00eb mund t\u00eb p\u00ebrdorni p\u00ebr t\u00eb nd\u00ebrtuar nj\u00eb linj\u00eb DevOps.<\/p>\n<p>Jenkins: Creative Commons dhe MIT<br \/>\nTravis CI: MIT<br \/>\nCruiseControl: BSD<br \/>\nBuildbot: GPL<br \/>\nApache Gump: Apache 2.0<br \/>\nCabie: GNU<\/p>\n<p>K\u00ebtu \u00ebsht\u00eb si duken proceset DevOps me mjetin CI\/CD:<\/p>\n<p><img decoding=\"async\" alt=\"Udhezues p\u00ebr fillestar\u00ebt: krijimi i nj\u00eb DevOps-pipeline\" src=\"\/wp-content\/uploads\/2020\/07\/e937f3da170b24c53cb5d67a67a365bb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Keni nj\u00eb mjet CI\/CD q\u00eb funksionon n\u00eb localhost-in tuaj, por p\u00ebr momentin nuk mund t\u00eb b\u00ebni shum\u00eb. Le t\u00eb kalojm\u00eb n\u00eb hapin tjet\u00ebr t\u00eb aventur\u00ebs n\u00eb bot\u00ebn e DevOps.<\/p>\n<h3>Hapi 2: Menaxhimi i sistemeve t\u00eb kontrollit t\u00eb kodit burimor<\/h3>\n<p>\nM\u00ebnyra m\u00eb e mir\u00eb (dhe ndoshta m\u00eb e thjesht\u00eb) p\u00ebr t\u00eb verifikuar se mjeti juaj CI\/CD mund t\u00eb b\u00ebj\u00eb magji \u00ebsht\u00eb t\u00eb integrohet me nj\u00eb mjet t\u00eb kontrollit t\u00eb kodit burimor (SCM). Pse ju nevojitet kontrolli i kodit burimor? Supozoni se po zhvilloni nj\u00eb aplikacion. \u00c7do her\u00eb q\u00eb krijoni nj\u00eb aplikacion, ju programoni, dhe nuk ka r\u00ebnd\u00ebsi n\u00ebse po p\u00ebrdorni Java, Python, C++, Go, Ruby, JavaScript apo ndonj\u00eb nga miliard\u00eb gjuh\u00ebt e tjera t\u00eb programimit. Kodi q\u00eb shkruani quhet kod burimor. N\u00eb fillim, sidomos kur punoni vet\u00ebm, ndoshta mund ta vendosni gjith\u00e7ka n\u00eb nj\u00eb dosje lokale. Por kur projekti b\u00ebhet m\u00eb i madh dhe ftoni t\u00eb tjer\u00eb p\u00ebr t\u00eb bashk\u00ebpunuar, ju nevojitet nj\u00eb m\u00ebnyr\u00eb p\u00ebr t\u00eb parandaluar konfliktet gjat\u00eb ndarjes efektive t\u00eb modifikimeve. Ju gjithashtu keni nevoj\u00eb p\u00ebr nj\u00eb m\u00ebnyr\u00eb p\u00ebr t\u00eb rikuperuar versionet e m\u00ebparshme, sepse krijimi i kopjeve rezerv\u00eb dhe kopjimi\/ngjitja tek ato \u00ebsht\u00eb tashm\u00eb i vjetruar. Ju (dhe shok\u00ebt tuaj n\u00eb ekip) keni nevoj\u00eb p\u00ebr di\u00e7ka m\u00eb t\u00eb mir\u00eb.<\/p>\n<p>K\u00ebtu \u00ebsht\u00eb ku mjeti i kontrollit t\u00eb kodit burimor b\u00ebhet praktikisht i domosdosh\u00ebm. Ky mjet ruan kodin tuaj n\u00eb depo, mban registar versionesh dhe koordinoh pun\u00ebn e pjes\u00ebmarr\u00ebsve n\u00eb projekt.<\/p>\n<p>Megjith\u00ebse ekzistojn\u00eb shum\u00eb mjete p\u00ebr kontrollin e kodit burimor, Git \u00ebsht\u00eb standardi, dhe kjo \u00ebsht\u00eb e v\u00ebrtet\u00eb. Un\u00eb e rekomandoj fort p\u00ebrdorimin e Git, megjithat\u00eb, n\u00ebse d\u00ebshironi, ka edhe mund\u00ebsi t\u00eb tjera me burim t\u00eb hapur.<\/p>\n<p>Git: GPLv2 dhe LGPL v2.1<br \/>\nSubversion: Apache 2.0<br \/>\nSistemi i Versioneve t\u00eb Konsumuara (CVS): GNU<br \/>\nVesta: LGPL<br \/>\nMercurial: GNU GPL v2+<\/p>\n<p>K\u00ebshtu duket pipeline-i DevOps me shtimin e mjeteve t\u00eb kontrollit t\u00eb kodit burimor.<\/p>\n<p><img decoding=\"async\" alt=\"Udhezues p\u00ebr fillestar\u00ebt: krijimi i nj\u00eb DevOps-pipeline\" src=\"\/wp-content\/uploads\/2020\/07\/47793d73d3b496aa38e027ff116f729d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Mjeti CI\/CD mund t\u00eb automatizoj\u00eb proceset e verifikimit, t\u00eb marrjes s\u00eb kodit burimor dhe t\u00eb bashk\u00ebpunimit midis an\u00ebtar\u00ebve. E mira? Por si ta b\u00ebjm\u00eb k\u00ebt\u00eb nj\u00eb aplikacion funksional, q\u00eb miliarda njer\u00ebz ta p\u00ebrdorin dhe ta vler\u00ebsojn\u00eb?<\/p>\n<h3>Hapi 3: Krijimi i mjeteve t\u00eb automatizimit t\u00eb nd\u00ebrtimit<\/h3>\n<p>\nShk\u00eblqyer! Ju mund t\u00eb kontrolloni kodin dhe t\u00eb b\u00ebni ndryshime n\u00eb sistemin e kontrollit t\u00eb burimeve, si dhe t\u00eb ftoni miqt\u00eb tuaj p\u00ebr bashk\u00ebpunim n\u00eb zhvillim. Por ende nuk keni krijuar nj\u00eb aplikacion. P\u00ebr t\u00eb krijuar nj\u00eb aplikacion web, ai duhet t\u00eb kompilohet dhe t\u00eb paketizohet n\u00eb nj\u00eb format t\u00eb shkurtes\u00ebs p\u00ebr shp\u00ebrndarje ose t\u00eb ekzekutohet si nj\u00eb sked\u00eb q\u00eb mund t\u00eb zbatohet. (Kujtoni, q\u00eb nj\u00eb gjuh\u00eb programimi e interpretuar, si JavaScript ose PHP, nuk ka nevoj\u00eb p\u00ebr kompilim).<\/p>\n<p>P\u00ebrdorni nj\u00eb mjet automatizimi p\u00ebr nd\u00ebrtimin. \u00c7far\u00ebdo q\u00eb t\u00eb jet\u00eb mjeti i automatizimit p\u00ebr nd\u00ebrtimin q\u00eb vendosni t\u00eb p\u00ebrdorni, t\u00eb gjith\u00eb ata ndjekin t\u00eb nj\u00ebjtin q\u00ebllim: t\u00eb ndihmojn\u00eb n\u00eb nd\u00ebrtimin e burimit n\u00eb nj\u00eb format t\u00eb d\u00ebshiruar dhe t\u00eb automatizojn\u00eb detyr\u00ebn e pastrimit, kompilimit, testimit dhe shp\u00ebrndarjes n\u00eb nj\u00eb mjedis t\u00eb caktuar. Mjetet p\u00ebr nd\u00ebrtimin do t\u00eb ndryshojn\u00eb n\u00eb var\u00ebsi t\u00eb gjuh\u00ebs suaj t\u00eb programimit, por ja disa mund\u00ebsi t\u00eb zakonshme me kod t\u00eb hapur.<\/p>\n<p>Emri<br \/>\nLicenca<br \/>\nGjuha e programimit<\/p>\n<p>Maven<br \/>\nApache 2.0<br \/>\n Java<\/p>\n<p>Ant<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Gradle<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Bazel<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Make<br \/>\nGNU<br \/>\nN\/A<\/p>\n<p>Grunt<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Gulp<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Buildr<br \/>\nApache<br \/>\nRuby<\/p>\n<p>Rake<br \/>\nMIT<br \/>\nRuby<\/p>\n<p>A-A-P<br \/>\nGNU<br \/>\nPython<\/p>\n<p>SCons<br \/>\nMIT<br \/>\nPython<\/p>\n<p>BitBake<br \/>\nGPLv2<br \/>\nPython<\/p>\n<p>Cake<br \/>\nMIT<br \/>\nC#<\/p>\n<p>ASDF<br \/>\nExpat (MIT)<br \/>\nLISP<\/p>\n<p>Cabal<br \/>\nBSD<br \/>\nHaskell<\/p>\n<p>Shk\u00eblqyer! Ju mund t\u00eb vendosni skedar\u00ebt e konfigurimit t\u00eb mjetit t\u00eb automatizimit n\u00eb sistemin e menaxhimit t\u00eb burimeve dhe t\u00eb lejoni mjetin tuaj CI\/CD t\u00eb mbledh\u00eb gjith\u00e7ka s\u00eb bashku.<\/p>\n<p><img decoding=\"async\" alt=\"Udhezues p\u00ebr fillestar\u00ebt: krijimi i nj\u00eb DevOps-pipeline\" src=\"\/wp-content\/uploads\/2020\/07\/573d613914d278e738a0fc7f05644b62.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\u00c7do gj\u00eb \u00ebsht\u00eb n\u00eb rregull, apo jo? Por ku t\u00eb shp\u00ebrndani aplikacionin tuaj?<\/p>\n<h3>Hapi 4: Serveri p\u00ebr aplikacione web<\/h3>\n<p>\nP\u00ebr momentin keni nj\u00eb skedar t\u00eb paketuar q\u00eb mund t\u00eb jet\u00eb si ekzekutues ashtu edhe instalues. P\u00ebr t\u00eb qen\u00eb ndonj\u00eb aplikacion v\u00ebrtet i dobish\u00ebm, ai duhet t\u00eb ofroj\u00eb ndonj\u00eb sh\u00ebrbim ose nd\u00ebrfaqe, por ju nevojitet nj\u00eb kontenier p\u00ebr t\u00eb akomoduar aplikacionin tuaj.<\/p>\n<p>Serveri p\u00ebr aplikacione web \u00ebsht\u00eb pik\u00ebrisht ai kontenier. Serveri ofron nj\u00eb mjedis n\u00eb t\u00eb cilin mund t\u00eb p\u00ebrcaktohet logjika e paket\u00ebs s\u00eb shp\u00ebrndarjes. Gjithashtu, serveri ofron nj\u00eb nd\u00ebrfaqe dhe ofron sh\u00ebrbime web, duke hapur soket p\u00ebr bot\u00ebn e jashtme. Ju nevojitet nj\u00eb server HTTP p\u00ebr ta instaluar k\u00ebt\u00eb, si dhe nj\u00eb mjedis (si nj\u00eb makin\u00eb virtuale). Por p\u00ebr momentin, le t\u00eb supozojm\u00eb se do t\u00eb m\u00ebsoni p\u00ebr k\u00ebt\u00eb m\u00eb pas (n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, do t\u2019iu flas p\u00ebr kontejner\u00ebt m\u00eb posht\u00eb).<\/p>\n<p>Ekzistojn\u00eb disa server\u00eb p\u00ebr aplikacione web me kod t\u00eb hapur.<\/p>\n<p>Emri<br \/>\nLicenca<br \/>\nGjuha e programimit<\/p>\n<p>Tomcat<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Jetty<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>WildFly<br \/>\nGNU Lesser Public<br \/>\nJava<\/p>\n<p>GlassFish<br \/>\nCDDL &amp; GNU Less Public<br \/>\nJava<\/p>\n<p>Django<br \/>\n3-Clause BSD<br \/>\nPython<\/p>\n<p>Tornado<br \/>\nApache 2.0<br \/>\nPython<\/p>\n<p>Gunicorn<br \/>\nMIT<br \/>\nPython<\/p>\n<p>Python<br \/>\nMIT<br \/>\nPython<\/p>\n<p>Rails<br \/>\nMIT<br \/>\nRuby<\/p>\n<p>Node.js<br \/>\nMIT<br \/>\nJavascript<\/p>\n<p>DevOps pipeline juaj \u00ebsht\u00eb gati p\u00ebr t'u p\u00ebrdorur. Pun\u00eb e shk\u00eblqyer!<\/p>\n<p><img decoding=\"async\" alt=\"Udhezues p\u00ebr fillestar\u00ebt: krijimi i nj\u00eb DevOps-pipeline\" src=\"\/wp-content\/uploads\/2020\/07\/9c314e8a42f154ded3b16ec7bdf01f99.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Megjith\u00ebse mund t\u00eb ndaloni k\u00ebtu dhe t\u00eb angazhoheni n\u00eb integrimin e vet\u00eb, cil\u00ebsia e kodit \u00ebsht\u00eb nj\u00eb gj\u00eb e r\u00ebnd\u00ebsishme p\u00ebr zhvilluesin e aplikacioneve, dhe kjo duhet t\u00eb shqet\u00ebsohet.<\/p>\n<h3>Hapi 5: Mbuls\u00eb e testimit t\u00eb kodit<\/h3>\n<p>\nImplementimi i testeve mund t\u00eb jet\u00eb nj\u00eb k\u00ebrkes\u00eb e r\u00ebnd\u00eb, por zhvilluesit duhet t\u00eb kapin \u00e7do gabim n\u00eb aplikacion n\u00eb fazat e hershme dhe t\u00eb p\u00ebrmir\u00ebsojn\u00eb cil\u00ebsin\u00eb e kodit p\u00ebr t\u00eb siguruar q\u00eb p\u00ebrdoruesit e fundit do t\u00eb jen\u00eb t\u00eb k\u00ebnaqur. Fatmir\u00ebsisht, ekzistojn\u00eb shum\u00eb mjete me kod t\u00eb hapur p\u00ebr t\u00eb testuar kodin tuaj dhe p\u00ebr t\u00eb formuar rekomandime p\u00ebr p\u00ebrmir\u00ebsimin e cil\u00ebsis\u00eb s\u00eb tij. M\u00eb e mira \u00ebsht\u00eb se shumica e mjeteve CI\/CD mund t\u00eb lidhen me k\u00ebto mjete dhe t\u00eb automatizojn\u00eb procesin.<\/p>\n<p>Testimi i kodit p\u00ebrb\u00ebhet nga dy pjes\u00eb: kornizat p\u00ebr testimin e kodit, t\u00eb cilat ndihmojn\u00eb n\u00eb shkrimin dhe ekzekutimin e testeve, si dhe mjetet p\u00ebr formimin e propozimeve, t\u00eb cilat ndihmojn\u00eb n\u00eb p\u00ebrmir\u00ebsimin e cil\u00ebsis\u00eb s\u00eb kodit.<\/p>\n<p><b>Sistemet e testimit t\u00eb kodit<\/b><\/p>\n<p>Emri<br \/>\nLicenca<br \/>\nGjuha e programimit<\/p>\n<p>JUnit<br \/>\nLicenca Publike e Eclipse<br \/>\nJava<\/p>\n<p>EasyMock<br \/>\nApache<br \/>\nJava<\/p>\n<p>Mockito<br \/>\nMIT<br \/>\nJava<\/p>\n<p>PowerMock<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Pytest<br \/>\n MIT<br \/>\nPython<\/p>\n<p>Hypothesis<br \/>\nMozilla<br \/>\nPython<\/p>\n<p>Tox<br \/>\nMIT<br \/>\nPython<\/p>\n<p><b>Sistemet e rekomandimit p\u00ebr p\u00ebrmir\u00ebsimin e kodit<\/b><\/p>\n<p>Emri<br \/>\nLicenca<br \/>\nGjuha e programimit<\/p>\n<p>Cobertura<br \/>\nGNU<br \/>\nJava<\/p>\n<p>CodeCover<br \/>\nEclipse Publike (EPL)<br \/>\nJava<\/p>\n<p>Coverage.py<br \/>\n Apache 2.0<br \/>\nPython<\/p>\n<p>Emma<br \/>\nLicenca Publike t\u00eb Zakonshme<br \/>\nJava<\/p>\n<p>JaCoCo<br \/>\n Licenca Publike e Eclipse<br \/>\nJava<\/p>\n<p>Hypothesis<br \/>\n Mozilla<br \/>\nPython<\/p>\n<p>Tox<br \/>\nMIT<br \/>\nPython<\/p>\n<p>Jasmine<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Karma<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Mocha<br \/>\n MIT<br \/>\nJavaScript<\/p>\n<p>Jest<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Kujdes, shumica e mjeteve dhe kornizave t\u00eb p\u00ebrmendura m\u00eb sip\u00ebr jan\u00eb shkruar p\u00ebr Java, Python dhe JavaScript, pasi C++ dhe C# jan\u00eb gjuh\u00eb programimi pron\u00ebsore (edhe pse GCC ka kod t\u00eb hapur).<\/p>\n<p>Tani, q\u00eb keni zbatuar mjetet p\u00ebr mbulimin e kodit me teste, DevOps pipeline juaj duhet t\u00eb duket si diagrami i paraqitur n\u00eb fillim t\u00eb k\u00ebtij udh\u00ebzuesi.<\/p>\n<h3>Hapat shtes\u00eb<\/h3>\n<p>\n<b>Kontenier\u00ebt<\/b><\/p>\n<p>Si\u00e7 kam th\u00ebn\u00eb m\u00eb par\u00eb, ju mund t\u00eb hostoni serverin tuaj n\u00eb nj\u00eb makin\u00eb virtuale ose server, por kontenier\u00ebt jan\u00eb nj\u00eb zgjidhje popullore.<\/p>\n<p>\u00c7far\u00eb jan\u00eb kontenier\u00ebt? Nj\u00eb shpjegim i shkurt\u00ebr \u00ebsht\u00eb se nj\u00eb makin\u00eb virtuale ka nevoj\u00eb p\u00ebr nj\u00eb sasi t\u00eb madhe t\u00eb memories s\u00eb sistemit operativ, q\u00eb tejkalon madh\u00ebsin\u00eb e aplikacionit, nd\u00ebrsa kontenieri ka nevoj\u00eb vet\u00ebm p\u00ebr disa biblioteka dhe konfigurime p\u00ebr t\u00eb funksionuar aplikacionin. \u00cbsht\u00eb e qart\u00eb se nj\u00eb makin\u00eb virtuale ka ende fusha t\u00eb r\u00ebnd\u00ebsishme p\u00ebrdorimi, por konteneri \u00ebsht\u00eb nj\u00eb zgjidhje e leht\u00eb p\u00ebr hostimin e aplikacionit, p\u00ebrfshir\u00eb serverin e aplikacionit.<\/p>\n<p>Megjith\u00ebse ekzistojn\u00eb edhe mund\u00ebsi t\u00eb tjera p\u00ebr kontejner\u00ebt, ato m\u00eb t\u00eb njohura jan\u00eb Docker dhe Kubernetes.<\/p>\n<p>Docker: Apache 2.0<br \/>\nKubernetes: Apache 2.0<\/p>\n<p><b>Mjetet nd\u00ebrmjet\u00ebse t\u00eb automatizimit<\/b><\/p>\n<p>Pajisja jon\u00eb DevOps kryesisht \u00ebsht\u00eb e fokusuar n\u00eb bashk\u00eb-krijimin dhe vendosjen e aplikacioneve, por ekzistojn\u00eb shum\u00eb gj\u00ebra t\u00eb tjera q\u00eb mund t\u00eb b\u00ebhen me ndihm\u00ebn e mjeteve DevOps. Nj\u00ebra prej tyre \u00ebsht\u00eb p\u00ebrdorimi i mjeteve Infrastructure as Code (IaC), t\u00eb njohura gjithashtu si mjete nd\u00ebrmjet\u00ebse automatizimi. K\u00ebto mjete ndihmojn\u00eb n\u00eb automatizimin e instalimeve, menaxhimit dhe detyrave t\u00eb tjera p\u00ebr software-in nd\u00ebrmjet\u00ebs. P\u00ebr shembull, nj\u00eb mjet automatizimi mund t\u00eb nxjerr\u00eb aplikacione si serverin e aplikacioneve, baz\u00ebn e t\u00eb dh\u00ebnave dhe mjetin e monitorimit, me konfigurimet e duhura dhe t'i vendos\u00eb ato n\u00eb serverin e aplikacioneve.<\/p>\n<p>Ja disa mjete nd\u00ebrmjet\u00ebse automatizimi me kod t\u00eb hapur:<\/p>\n<p>Ansible: GNU Public<br \/>\nSaltStack: Apache 2.0<br \/>\nChef: Apache 2.0<br \/>\nPuppet: Apache ose GPL<\/p>\n<p><img decoding=\"async\" alt=\"Udhezues p\u00ebr fillestar\u00ebt: krijimi i nj\u00eb DevOps-pipeline\" src=\"\/wp-content\/uploads\/2020\/07\/148ef7317ca5780b412241ddaec9dc76.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Merrni informacione t\u00eb plota se si t\u00eb merrni nj\u00eb profesion t\u00eb k\u00ebrkuar nga zero ose t\u00eb p\u00ebrmir\u00ebsoni aft\u00ebsit\u00eb dhe pag\u00ebn duke ndjekur kurse online me pages\u00eb n\u00eb SkillFactory:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/devops?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=DEVOPS&amp;utm_term=regular&amp;utm_content=07072002\">Kursi p\u00ebr DevOps<\/a><\/noindex> (12 muaj)<\/li>\n<\/ul>\n<p><\/p>\n<p>                        <b class=\"spoiler_title\">kurse t\u00eb tjera<\/b><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/ml-programma-machine-learning-online?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=ML&amp;utm_term=regular&amp;utm_content=07072002\">Kursi p\u00ebr Machine Learning<\/a><\/noindex> (12 jav\u00eb)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/data-scientist?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=DST&amp;utm_term=regular&amp;utm_content=07072002\">Trajnimi p\u00ebr profesionin Data Science nga zero<\/a><\/noindex> (12 muaj)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/analytics?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=SDA&amp;utm_term=regular&amp;utm_content=07072002\">Profesionist analist me \u00e7do nivel fillestar<\/a><\/noindex> (9 muaj)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/python-for-web-developers?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=PWS&amp;utm_term=regular&amp;utm_content=07072002\">Kursi \"Python p\u00ebr zhvillimin e web-it\"<\/a><\/noindex> (9 muaj)<\/li>\n<\/ul>\n<p><\/p>\n<h3>T\u00eb dobishme<\/h3>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/503196\/\">450 kurse falas nga Liga e Ivy<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/508450\/\">Trend\u00ebt n\u00eb Data Science 2020<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/508556\/\">Data Science vdiq. Rroft\u00eb Business Science<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/506790\/\">Data Science n\u00eb steroide: njohja me Decision Intelligence<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/503504\/\">Projekti m\u00eb i suksessh\u00ebm dhe m\u00eb skandaloz n\u00eb Data Science: Cambridge Analytica<\/a><\/noindex><\/li>\n<\/ul>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/509964\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438\u0437 \u043f\u044f\u0442\u0438 \u044d\u0442\u0430\u043f\u043e\u0432. DevOps \u0441\u0442\u0430\u043b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445, \u0440\u0430\u0437\u043e\u0431\u0449\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u043d\u0435\u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps \u0438 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c, \u0442\u043e \u0432\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0442\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432. \u0412 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":87468,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-87467","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438\u0437 \u043f\u044f\u0442\u0438 \u044d\u0442\u0430\u043f\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445: \u0441\u043e\u0437\u0434\u0430\u0435\u043c DevOps-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438\u0437 \u043f\u044f\u0442\u0438 \u044d\u0442\u0430\u043f\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-08T11:42:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-08T11:42:11+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijoni DevOps pipeline | ProHoster","description":"N\u00ebse jeni fillestar n\u00eb DevOps, shikoni k\u00ebt\u00eb udh\u00ebzues p\u00ebr krijimin e pipeline-it tuaj t\u00eb par\u00eb me pes\u00eb hapa.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445: \u0441\u043e\u0437\u0434\u0430\u0435\u043c DevOps-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d | ProHoster","og:description":"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438\u0437 \u043f\u044f\u0442\u0438 \u044d\u0442\u0430\u043f\u043e\u0432.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-08T11:42:11+00:00","article:modified_time":"2020-07-08T11:42:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87467","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:50:31","updated":"2022-09-29 03:37:01","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/87467","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=87467"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/87467\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/87468"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=87467"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=87467"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=87467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}