{"id":33504,"date":"2019-10-31T21:52:58","date_gmt":"2019-10-31T18:52:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom\/"},"modified":"2019-10-31T21:52:58","modified_gmt":"2019-10-31T18:52:58","slug":"rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom","title":{"rendered":"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/2f9db2f057c4bcb3f2e57a484dd30c8c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Krijimi i zinxhirit t\u00eb par\u00eb DevOps n\u00eb pes\u00eb hapa p\u00ebr fillestar\u00ebt.<\/em><\/p>\n<p><\/p>\n<p>DevOps \u00ebsht\u00eb b\u00ebr\u00eb nj\u00eb panace p\u00ebr proceset e zhvillimit q\u00eb jan\u00eb shum\u00eb t\u00eb ngadalta, t\u00eb ndara dhe t\u00eb tjera problematike. Por k\u00ebrkohen njohuri minimale n\u00eb DevOps. K\u00ebtu do t\u00eb trajtohen koncepte si zinxhiri DevOps dhe si ta krijoni at\u00eb n\u00eb pes\u00eb hapa. Kjo nuk \u00ebsht\u00eb nj\u00eb udh\u00ebzues i plot\u00eb, por vet\u00ebm nj\u00eb \"peshk\", t\u00eb cilin mund ta zgjeroni. Le t\u00eb fillojm\u00eb me historin\u00eb.<\/p>\n<p><\/p>\n<h3 id=\"moe-znakomstvo-s-devops\">Takimi im me DevOps<\/h3>\n<p><\/p>\n<p>Nj\u00ebher\u00eb kam punuar me re n\u00eb Citi Group dhe kam zhvilluar nj\u00eb aplikacion IaaS p\u00ebr t\u00eb menaxhuar infrastruktur\u00ebn cloud t\u00eb Citi, por gjithmon\u00eb m\u00eb \u00ebsht\u00eb interesuar si mund t\u00eb optimizohet zinxhiri i zhvillimit dhe t\u00eb p\u00ebrmir\u00ebsohet kultura nd\u00ebrmjet zhvilluesve. Greg Lavender, drejtori yn\u00eb teknik p\u00ebr arkitektur\u00ebn dhe infrastruktur\u00ebn e re, m\u00eb rekomandoi nj\u00eb lib\u00ebr <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/dp\/B078Y98RG8\/\">Projekti \"Feniks\"<\/a><\/noindex>. Ai shpjegon mrekullisht parimet e DevOps, nd\u00ebrsa lexon si nj\u00eb roman.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Tabela n\u00eb an\u00ebn e prapme tregon se sa shpesh kompanit\u00eb nxjerrin versione t\u00eb reja:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/bf\/1e\/2_\/bf1e2_l0g8wnb5nojb1n5ruwlsi.png\"><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/a723283e54f7614b6b92eab78509985d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Si arrijn\u00eb Amazon, Google dhe Netflix t\u00eb nxjerrin kaq shum\u00eb? E gjith\u00eb kjo \u00ebsht\u00eb e thjesht\u00eb: ata e kuptuan se si t\u00eb krijojn\u00eb nj\u00eb zinxhir t\u00eb p\u00ebraf\u00ebrt t\u00eb p\u00ebrsosur DevOps.<\/p>\n<p><\/p>\n<p>N\u00eb Citi, gjith\u00e7ka ishte krejt\u00ebsisht ndryshe derisa kaluam n\u00eb DevOps. At\u00ebher\u00eb ekipi im kishte mjedise t\u00eb ndryshme, por d\u00ebrgimi n\u00eb serverin e zhvillimit e b\u00ebnim manualisht. T\u00eb gjith\u00eb zhvilluesit kishin akses vet\u00ebm n\u00eb nj\u00eb server zhvillimi t\u00eb bazuar n\u00eb IBM WebSphere Application Server Community Edition. Me p\u00ebrpjekjen e nj\u00ebkohshme p\u00ebr d\u00ebrges\u00eb, serveri \"bjer\u00eb\", dhe ne duhej t\u00eb \"negociojm\u00eb\" me v\u00ebshtir\u00ebsi \u00e7do her\u00eb. P\u00ebr m\u00eb tep\u00ebr, kishte mbulimi t\u00eb pamjaftuesh\u00ebm t\u00eb kodit me teste, procesin e ngadalsh\u00ebm manual t\u00eb d\u00ebrges\u00ebs, dhe asnj\u00eb mund\u00ebsi p\u00ebr t\u00eb ndjekur d\u00ebrges\u00ebn e kodit sipas nj\u00eb detyre ose k\u00ebrkese t\u00eb klientit.<\/p>\n<p><\/p>\n<p>Ishte e qart\u00eb se duhej b\u00ebr\u00eb di\u00e7ka urgjente, dhe gjet\u00ebm nj\u00eb koleg me t\u00eb nj\u00ebjtin mendim. Ne vendos\u00ebm t\u00eb krijonim s\u00eb bashku zinxhirin e par\u00eb DevOps - ai konfiguronte nj\u00eb makin\u00eb virtuale dhe server aplikacionesh Tomcat, nd\u00ebrsa un\u00eb merrem me Jenkins, integrimin me Atlassian Jira dhe BitBucket, si dhe mbulimin e kodit me teste. Projekti ishte i suksessh\u00ebm: ne automatizuam plot\u00ebsisht zinxhirin e zhvillimit, arrit\u00ebm nj\u00eb pun\u00eb pothuajse 100% t\u00eb papenguar t\u00eb serverit t\u00eb zhvillimit, mund\u00ebm t\u00eb ndiqnim dhe p\u00ebrmir\u00ebsonim mbulimin e kodit me teste, dhe dega Git mund t\u00eb lidhej me d\u00ebrges\u00ebn dhe detyr\u00ebn Jira. Dhe pothuajse t\u00eb gjitha mjetet me t\u00eb cilat nd\u00ebrtuam zinxhirin DevOps ishin me kod burimi t\u00eb hapur.<\/p>\n<p><\/p>\n<p>Realistically, the chain was simplified, as we didn't even use advanced configurations with Jenkins or Ansible. But we succeeded. This might be a result of the principle <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Pareto_principle\">Pareto<\/a><\/noindex> (also known as the 80\/20 rule).<\/p>\n<p><\/p>\n<h3 id=\"kratkoe-opisanie-cepochki-devops-i-cicd\">A brief overview of the DevOps and CI\/CD chain<\/h3>\n<p><\/p>\n<p>DevOps has various definitions. Just like Agile, DevOps encompasses different disciplines. However, most would agree on the following definition: DevOps is a method or lifecycle of software development, where the main principle is to create a culture where developers and other staff are 'on the same wavelength', manual work is automated, everyone does what they're best at, the frequency of deliveries increases, productivity improves, and flexibility rises.<\/p>\n<p><\/p>\n<p>And although just having tools is not enough to create a DevOps environment, they are indispensable. The most crucial of these is Continuous Integration and Continuous Delivery (CI\/CD). In the chain for each environment, there are different stages (for example, DEV (development), INT (integration), TST (testing), QA (quality assurance), UAT (user acceptance testing), STG (staging), PROD (production)), with manual tasks automated, allowing developers to write quality code, deliver it, and easily adapt.<\/p>\n<p><\/p>\n<p>This note describes how to create a DevOps chain in five steps, as shown in the image below, using open-source tools.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/da\/zq\/qo\/dazqqoyxn3vv-o6p9crpsm9m_eu.jpeg\"><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/da2a6d8ed039f0b8e1ea8e1ba562696d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Let's get to work.<\/p>\n<p><\/p>\n<h3 id=\"shag-1-platforma-cicd\">Step 1: CI\/CD platform<\/h3>\n<p><\/p>\n<p>First, you need a CI\/CD tool. Jenkins is an open-source CI\/CD tool written in Java under the MIT license, which started the popularization of the DevOps movement and has de facto become the standard for CICD.<\/p>\n<p><\/p>\n<p>So, what is Jenkins? Imagine you have a magic remote control for various services and tools. The CI\/CD tool itself, like Jenkins, is useless on its own, but with various tools and services, it becomes omnipotent.<\/p>\n<p><\/p>\n<p>In addition to Jenkins, there are many other open-source tools, choose any. <\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/fb\/ov\/dd\/fbovdd2kb_e8jkj1atm1ycuw3so.png\"><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/2bbe6af719b90da0eb0d367aae66d779.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>This is what the DevOps process looks like with a CI\/CD tool<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/es\/-3\/dj\/es-3djmmligdmtcuvicigopzt8e.jpeg\"><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/2410013c9e6030596a59f3ed7ae3a7e7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>You have a CI\/CD tool on your localhost, but there's not much to do yet. Let's move on to the next step.<\/p>\n<p><\/p>\n<h3 id=\"shag-2-upravlenie-versiyami\">Step 2: version control<\/h3>\n<p><\/p>\n<p>M\u00ebnyra m\u00eb e mir\u00eb (dhe ndoshta m\u00eb e leht\u00eb) p\u00ebr t\u00eb testuar magjin\u00eb e mjetit CI\/CD \u00ebsht\u00eb t\u00eb integrosh at\u00eb me mjetin e menaxhimit t\u00eb versioneve (source control management, SCM). Pse nevojitet menaxhimi i versioneve? Supozoni se po krijoni nj\u00eb aplikacion. E shkruani at\u00eb n\u00eb Java, Python, C++, Go, Ruby, JavaScript ose n\u00eb ndonj\u00eb gjuh\u00eb tjet\u00ebr, t\u00eb cilat jan\u00eb t\u00eb shumta. Ajo q\u00eb shkruani quhet kod burimor. N\u00eb fillim, sidomos n\u00ebse punoni vet\u00ebm, mund t\u00eb ruani gjith\u00e7ka n\u00eb nj\u00eb dosje lokale. Por kur projekti zgjeron dhe i bashkohen m\u00eb shum\u00eb persona, ju nevojitet nj\u00eb m\u00ebnyr\u00eb p\u00ebr t\u00eb ndar\u00eb ndryshimet n\u00eb kod, por duke shmangur konflikte gjat\u00eb bashkimeve. Gjithashtu, ju nevojitet nj\u00eb m\u00ebnyr\u00eb p\u00ebr t\u00eb rikuperuar versionet e m\u00ebparshme pa p\u00ebrdorur kopje rezerv\u00eb dhe pa aplikuar metod\u00ebn e kopjo-ngjis\u00eb p\u00ebr skedar\u00ebt e kodit.<\/p>\n<p><\/p>\n<p>Dhe k\u00ebtu pa SCM nuk ka rrug\u00eb. SCM mban kodin n\u00eb repozita, menaxhon versionet e tij dhe koordinon at\u00eb nd\u00ebrmjet zhvilluesve.<\/p>\n<p><\/p>\n<p>Ka shum\u00eb mjete SCM, por standardi de facto me merit\u00eb \u00ebsht\u00eb Git. Un\u00eb rekomandoj ta p\u00ebrdorni at\u00eb, por ka edhe mund\u00ebsi t\u00eb tjera.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/37555a476c27f7066e5648b9e9e4d90b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00ebshtu duket pipeline-i DevOps pas shtimit t\u00eb SCM.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/am\/4o\/39\/am4o39ooera5tweytt3uyh80wlu.jpeg\"><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/040819b00dc608a9131856dd6a7d4a19.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Mjeti CI\/CD mund t\u00eb automatizoj\u00eb ngarkimin dhe shkarkimin e kodit burimor dhe bashk\u00ebpunimin n\u00eb ekip. Jo keq? Por si t\u00eb b\u00ebni q\u00eb kjo t\u00eb jet\u00eb nj\u00eb aplikacion funksional, i dashur nga miliarda p\u00ebrdorues?<\/p>\n<p><\/p>\n<h3 id=\"shag-3-instrument-avtomatizacii-sborki\">Hapi 3: Mjeti i automatizimit t\u00eb nd\u00ebrtimit<\/h3>\n<p><\/p>\n<p>Gjith\u00e7ka po shkon si\u00e7 duhet. Mund t\u00eb shkarkoni kodin dhe t\u00eb regjistroni ndryshimet n\u00eb sistemin e menaxhimit t\u00eb versioneve, si dhe t\u00eb ftoni miqt\u00eb t\u00eb punoni me ju. Por ende nuk keni aplikacion. Q\u00eb t\u00eb jet\u00eb nj\u00eb aplikacion web, duhet ta nd\u00ebrroni at\u00eb dhe ta vendosni n\u00eb nj\u00eb paket\u00eb p\u00ebr shp\u00ebrndarje ose ta nisni si nj\u00eb skedar ekzekutiv. (Nj\u00eb gjuh\u00eb programuese e interpretuar, si JavaScript ose PHP, nuk ka nevoj\u00eb t\u00eb nd\u00ebrtohet.)<\/p>\n<p><\/p>\n<p>P\u00ebrdorni mjetin e automatizimit t\u00eb nd\u00ebrtimit. Cili do qoft\u00eb mjeti q\u00eb zgjidhni, ai do t\u00eb nd\u00ebrtoj\u00eb kodin n\u00eb formatin e nevojsh\u00ebm dhe do t\u00eb automatizoj\u00eb pastrimin, nd\u00ebrtimin, testimin dhe shp\u00ebrndarjen. Ekzistojn\u00eb mjete nd\u00ebrtimi t\u00eb ndryshme n\u00eb var\u00ebsi t\u00eb gjuh\u00ebs, por shpesh p\u00ebrdoren k\u00ebto opsione me kod t\u00eb hapur.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/cc6e958a82ac0676429da6c48e66910f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mrekullisht! Tani le t\u00eb vendosim skedar\u00ebt e konfigurimit t\u00eb mjetit t\u00eb automatizimit t\u00eb nd\u00ebrtimit n\u00eb sistemin e menaxhimit t\u00eb versioneve, n\u00eb m\u00ebnyr\u00eb q\u00eb mjeti CI\/CD t'i mbledh\u00eb ato.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/gl\/t1\/ii\/glt1ii73wdg2roq5fus-fzd0ury.jpeg\"><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/bba539d128425e7e3ddacdc6028d3604.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Duket se gjith\u00e7ka \u00ebsht\u00eb n\u00eb rregull. Por ku t\u00eb zbulohet tani t\u00eb gjitha k\u00ebto?<\/p>\n<p><\/p>\n<h3 id=\"shag-4-server-veb-prilozheniy\">Hapi 4: Serveri i aplikacioneve web<\/h3>\n<p><\/p>\n<p>Pra ndodhet nj\u00eb skedar i paketuar, i cili mund t\u00eb ekzekutohet ose t\u00eb shp\u00ebrndahet. P\u00ebr t\u00eb siguruar q\u00eb aplikacioni t\u00eb ket\u00eb vler\u00eb, duhet t\u00eb ket\u00eb nj\u00eb sh\u00ebrbim apo nd\u00ebrfaqe, por duhet ta vendosni diku t\u00eb gjith\u00eb k\u00ebt\u00eb.<\/p>\n<p><\/p>\n<p>Nj\u00eb aplikacion web mund t\u00eb vendoset n\u00eb nj\u00eb server aplikacionesh. Serveri i aplikacioneve ofron nj\u00eb ambient ku mund t\u00eb ekzekutoni logjik\u00ebn e programit nga paketa, t\u00eb realizoni vizatimin e nd\u00ebrfaqes dhe t\u00eb hapni sh\u00ebrbime web p\u00ebrmes soket\u00ebve. Ju nevojitet nj\u00eb server HTTP dhe disa ambjente t\u00eb tjera (si nj\u00eb makin\u00eb virtuale, p\u00ebr shembull) p\u00ebr t\u00eb instaluar serverin e aplikacioneve. Perr momentin, le t\u00eb imagjinojm\u00eb se jeni n\u00eb gjendje ta menaxhoni gjith\u00eb k\u00ebt\u00eb (ndon\u00ebse do t\u00eb flas p\u00ebr kontejner\u00ebt m\u00eb posht\u00eb).<\/p>\n<p><\/p>\n<p>Ekzistojn\u00eb disa server\u00eb aplikacionesh me burim t\u00eb hapur.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/v7\/-q\/tq\/v7-qtqzlpp5nvxlqz1oshw4mw1i.png\"><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/7802afe041a9d56c20ddbe2885b5cf37.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Kemi krijuar pothuajse nj\u00eb zinxhir funksional DevOps. Pun\u00eb e shk\u00eblqyer!<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/lf\/wm\/rx\/lfwmrx3grlcbwb5s_olj33npn7o.jpeg\"><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/3d1e524b63fecebf4973cc34a40c160d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>N\u00eb princip, mund t\u00eb ndaloni k\u00ebtu, m\u00eb pas do t\u00eb p\u00ebrballeni vet\u00eb, por \u00ebsht\u00eb e dobishme t\u00eb flitet gjithashtu p\u00ebr cil\u00ebsin\u00eb e kodit.<\/p>\n<p><\/p>\n<h3 id=\"shag-5-testovoe-pokrytie\">Hapi 5: Mbulimi me teste<\/h3>\n<p><\/p>\n<p>Testimi merr shum\u00eb koh\u00eb dhe p\u00ebrpjekje, por \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb identifikoni gabimet menj\u00ebher\u00eb dhe t\u00eb p\u00ebrmir\u00ebsoni kodin p\u00ebr t\u00eb k\u00ebnaqur p\u00ebrdoruesit p\u00ebrfundimtar\u00eb. Ka shum\u00eb mjete t\u00eb hapura p\u00ebr k\u00ebt\u00eb q\u00eb jo vet\u00ebm testojn\u00eb kodin, por gjithashtu sugjerojn\u00eb si ta p\u00ebrmir\u00ebsoni. Shumica e mjeteve CI\/CD mund t\u00eb lidhen me k\u00ebto mjete dhe t\u00eb automatizojn\u00eb procesin.<\/p>\n<p><\/p>\n<p>Testimi ndahet n\u00eb dy pjes\u00eb: \u00e7framework-et e testimit, p\u00ebr t\u00eb shkruar dhe ekzekutuar testet, dhe mjetet me sugjerime p\u00ebr p\u00ebrmir\u00ebsimin e cil\u00ebsis\u00eb s\u00eb kodit.<\/p>\n<p><\/p>\n<h3 id=\"freymvorki-testirovaniya\">Kornizat e testimit<\/h3>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/cu\/4l\/pn\/cu4lpnpdqa7yd9f5zwsxrrlbylg.png\"><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/c17426a30a4f140be87489d2c8b0d0b9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Mjetet me sugjerime p\u00ebr cil\u00ebsin\u00eb<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ab\/g_\/oh\/abg_ohfxhtbprzhcicxos3jx4yg.png\"><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/bc65784b8bf5ccaaeef96a0c6ee4422e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Shumica e k\u00ebtyre mjeteve dhe \u00e7framework-eve jan\u00eb shkruar p\u00ebr Java, Python dhe JavaScript, sepse C++ dhe C# jan\u00eb pron\u00ebsi (ndon\u00ebse GCC ka kod t\u00eb hapur).<\/p>\n<p><\/p>\n<p>Ne kemi aplikuar mjete t\u00eb mbulimit t\u00eb testeve, dhe tani pipeline-i DevOps duhet t\u00eb duket si n\u00eb ilustrimin n\u00eb fillim t\u00eb udh\u00ebzuesit.<\/p>\n<p><\/p>\n<h2 id=\"dopolnitelnye-shagi\">Hapat shtes\u00eb<\/h2>\n<p><\/p>\n<h3 id=\"konteynery\">Kontenier\u00ebt<\/h3>\n<p><\/p>\n<p>Si\u00e7 kam th\u00ebn\u00eb m\u00eb par\u00eb, serveri i aplikacioneve mund t\u00eb vendoset n\u00eb nj\u00eb makin\u00eb virtuale ose server, por kontejner\u00ebt jan\u00eb m\u00eb t\u00eb popullarizuar.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-are-linux-containers\">\u00c7far\u00eb jan\u00eb kontejner\u00ebt<\/a><\/noindex>? \u0412\u043a\u0440\u0430\u0442\u0446\u0435, \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0435\u0441\u0442\u0430, \u0447\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0431\u0435\u0437 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c, \u043d\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0432\u043c\u0435\u0449\u0430\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0437\u0430\u0442\u0440\u0430\u0442.<\/p>\n<p><\/p>\n<p>P\u00ebr kontejner\u00ebt zakonisht p\u00ebrdoren Docker dhe Kubernetes, megjith\u00ebse ka dhe opsione t\u00eb tjera.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/6n\/wc\/rc\/6nwcrcuhk9swwjxdddudr1cqpzc.png\"><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/8749b7044102ff7f23f2c970d6939246.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Lexoni artikujt mbi Docker dhe Kubernetes n\u00eb <noindex><a rel=\"nofollow\" href=\"http:\/\/opensource.com\/\">Opensource.com<\/a><\/noindex>:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-docker\">\u00c7far\u00eb \u00ebsht\u00eb Docker?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/business\/15\/1\/introduction-docker\">Nj\u00eb prezantim n\u00eb Docker<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-is-kubernetes\">\u00c7far\u00eb \u00ebsht\u00eb Kubernetes?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/17\/11\/kubernetes-lightning-talk\">Kubernetes nga fillimi<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"instrumenty-avtomatizacii-promezhutochnogo-po\">Mjetet e automatizimit t\u00eb nd\u00ebrmjet\u00ebsis\u00eb<\/h3>\n<p><\/p>\n<p>Q\u00ebllimi yn\u00eb \u00ebsht\u00eb t\u00eb ndihmojm\u00eb n\u00eb krijimin dhe dor\u00ebzimin e aplikacionit me nj\u00eb zinxhir DevOps, por me mjetet DevOps mund t\u00eb b\u00ebni edhe shum\u00eb gj\u00ebra interesante t\u00eb tjera. P\u00ebr shembull, t\u00eb p\u00ebrdorni mjete t\u00eb quajtura \"infrastruktur\u00eb si kod\" (IaC), t\u00eb njohura gjithashtu si mjete p\u00ebr automatizimin e softuerit t\u00eb nd\u00ebrmjet\u00ebm. K\u00ebto mjete ndihmojn\u00eb n\u00eb automatizimin e instalimit, menaxhimit dhe detyrave t\u00eb tjera p\u00ebr softuerin e nd\u00ebrmjet\u00ebm. P\u00ebr shembull, nj\u00eb mjet automatizimi mund t\u00eb marr\u00eb aplikacione (serverin e aplikacioneve web, baz\u00ebn e t\u00eb dh\u00ebnave, mjetet emonitorimit) me konfigurime t\u00eb sakta dhe t'i zbatoj\u00eb ato n\u00eb serverin e aplikacioneve.<\/p>\n<p><\/p>\n<p>K\u00ebtu jan\u00eb disa mund\u00ebsi mjetesh t\u00eb hapura p\u00ebr automatizimin e softuerit t\u00eb nd\u00ebrmjet\u00ebm:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Udh\u00ebzues p\u00ebr fillestar\u00ebt: krijimi i zinxhir\u00ebve DevOps me ndihm\u00ebn e mjeteve me kod t\u00eb hapur\" src=\"\/wp-content\/uploads\/2019\/05\/23bb3259f336a3f0ebf11ab4aa5471ea.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Detajet n\u00eb artikujt n\u00eb <noindex><a rel=\"nofollow\" href=\"http:\/\/opensource.com\/\">Opensource.com<\/a><\/noindex>:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/quickstart-guide-ansible\">Udh\u00ebzues p\u00ebr fillimin me Ansible<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/1\/automating-deployment-strategies-ansible\">Strategjit\u00eb e automatizimit t\u00eb instalimeve me Ansible<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/12\/configuration-management-tools\">5 mjetet m\u00eb t\u00eb mira p\u00ebr menaxhimin e konfigurimit<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"i-chto-teper\">Dhe tani, \u00e7far\u00eb?<\/h3>\n<p><\/p>\n<p>Kjo \u00ebsht\u00eb vet\u00ebm maja e ajsbergut. Zinxhiri DevOps mund t\u00eb b\u00ebj\u00eb shum\u00eb m\u00eb tep\u00ebr. Filloni me nj\u00eb mjet CI\/CD dhe zbuloni se \u00e7far\u00eb tjet\u00ebr mund t\u00eb automatizoni p\u00ebr ta b\u00ebr\u00eb pun\u00ebn tuaj m\u00eb t\u00eb leht\u00eb. Mos harroni p\u00ebr <noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/alternatives\/slack\">mjetet e hapura t\u00eb komunikimit<\/a><\/noindex> p\u00ebr nj\u00eb bashk\u00ebpunim m\u00eb efektiv.<\/p>\n<p><\/p>\n<p>K\u00ebtu jan\u00eb disa artikuj t\u00eb tjer\u00eb t\u00eb mir\u00eb mbi DevOps p\u00ebr fillestar\u00ebt:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/devops\">\u00c7far\u00eb \u00ebsht\u00eb DevOps<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/master-devops-engineer\">5 aft\u00ebsit\u00eb e zhvilluesit DevOps<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/11\/how-non-engineer-got-devops\">DevOps p\u00ebr t\u00eb gjith\u00eb<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/1\/getting-started-predictive-analytics-devops\">Hyrje n\u00eb analiz\u00ebn parashikuese n\u00eb DevOps<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Gjithashtu, mund t\u00eb integrohet DevOps me mjetet e hapura p\u00ebr agile:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/10\/what-agile\">\u00c7far\u00eb \u00ebsht\u00eb agile?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/steps-agile-developer\">4 hapa p\u00ebr t\u00eb m\u00ebsuar agile<\/a><\/noindex><\/li>\n<\/ul>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/451508\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 DevOps \u0437\u0430 \u043f\u044f\u0442\u044c \u0448\u0430\u0433\u043e\u0432 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432. DevOps \u0441\u0442\u0430\u043b \u043f\u0430\u043d\u0430\u0446\u0435\u0435\u0439 \u0434\u043b\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445, \u0440\u0430\u0437\u043e\u0431\u0449\u0435\u043d\u043d\u044b\u0445 \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041d\u043e \u043d\u0443\u0436\u043d\u044b \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0437\u043d\u0430\u043d\u0438\u044f \u0432 DevOps. \u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f, \u043a\u0430\u043a \u0446\u0435\u043f\u043e\u0447\u043a\u0430 DevOps \u0438 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0435 \u0437\u0430 \u043f\u044f\u0442\u044c \u0448\u0430\u0433\u043e\u0432. \u042d\u0442\u043e \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u201c\u0440\u044b\u0431\u0430\u201d, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0438\u0441\u0442\u043e\u0440\u0438\u0438. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25204,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-33504","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.2 - aioseo.com -->\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-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\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 \u0447\u0430\u0439\u043d\u0438\u043a\u043e\u0432: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0446\u0435\u043f\u043e\u0447\u0435\u043a DevOps \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom\" \/>\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=\"2019-10-31T18:52:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:52:58+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: krijimi i zinxhir\u00ebve DevOps me mjete me kod t\u00eb hapur | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom","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 \u0447\u0430\u0439\u043d\u0438\u043a\u043e\u0432: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0446\u0435\u043f\u043e\u0447\u0435\u043a DevOps \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c | ProHoster","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom","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":"2019-10-31T18:52:58+00:00","article:modified_time":"2019-10-31T18:52:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33504","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":"2026-01-21 15:33:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:39:23","updated":"2026-01-21 15:33:19","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\/33504","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=33504"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/33504\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/25204"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=33504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=33504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=33504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}