{"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\/ro\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom","title":{"rendered":"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/2f9db2f057c4bcb3f2e57a484dd30c8c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Crearea primului lan\u021b DevOps \u00een cinci pa\u0219i pentru \u00eencep\u0103tori.<\/em><\/p>\n<p><\/p>\n<p>DevOps a devenit panaceul pentru procesele de dezvoltare prea lente, fragmentate \u0219i alte probleme. Dar sunt necesare cuno\u0219tin\u021be minime \u00een DevOps. Aici vor fi abordate concepte precum lan\u021bul DevOps \u0219i cum s\u0103-l creezi \u00een cinci pa\u0219i. Acesta nu este un ghid complet, ci doar o \u201ebaz\u0103\u201d pe care o po\u021bi extinde. S\u0103 \u00eencepem cu o istorie.<\/p>\n<p><\/p>\n<h3 id=\"moe-znakomstvo-s-devops\">\u00cent\u00e2lnirea mea cu DevOps<\/h3>\n<p><\/p>\n<p>C\u00e2ndva lucram cu cloud-uri la Citi Group \u0219i dezvoltam o aplica\u021bie web IaaS pentru a gestiona infrastructura cloud a Citi, dar \u00eentotdeauna m-a interesat cum s\u0103 optimizez lan\u021bul de dezvoltare \u0219i s\u0103 \u00eembun\u0103t\u0103\u021besc cultura printre dezvoltatori. Greg Lavender, directorul nostru tehnic pe arhitectura \u0219i infrastructura cloud, mi-a recomandat o carte <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/dp\/B078Y98RG8\/\">Proiectul \u201eFenix\u201d<\/a><\/noindex>. Aceasta explic\u0103 perfect principiile DevOps, citindu-se ca un roman.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>\u00cen tabelul de pe verso este prezentat c\u00e2t de des companiile lanseaz\u0103 versiuni noi:<\/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=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/a723283e54f7614b6b92eab78509985d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Cum reu\u0219esc Amazon, Google \u0219i Netflix s\u0103 lanseze at\u00e2t de multe? E simplu: au \u00een\u021beles cum s\u0103 creeze un lan\u021b DevOps aproape perfect.<\/p>\n<p><\/p>\n<p>La Citi lucrurile nu st\u0103teau deloc a\u0219a, p\u00e2n\u0103 nu am trecut la DevOps. Atunci echipa mea avea diferite medii, dar livrarea pe serverul de dezvoltare se f\u0103cea manual. To\u021bi dezvoltatorii aveau acces doar la un singur server de dezvoltare bazat pe IBM WebSphere Application Server Community Edition. C\u00e2nd \u00eencercam simultan s\u0103 livr\u0103m, serverul \u201ec\u0103dea\u201d, iar noi trebuia s\u0103 ne \u201enegociem dur\u201d de fiecare dat\u0103. Mai aveam \u0219i o acoperire insuficient\u0103 a codului cu teste, un proces manual de livrare foarte laborios \u0219i nicio posibilitate de a urm\u0103ri livrarea codului pe baza unei sarcini sau cerin\u021be a clientului.<\/p>\n<p><\/p>\n<p>Era clar c\u0103 trebuie s\u0103 facem ceva urgent, a\u0219a c\u0103 am g\u0103sit un coleg care \u00eemp\u0103rt\u0103\u0219ea acelea\u0219i idei. Am decis s\u0103 cre\u0103m \u00eempreun\u0103 primul lan\u021b DevOps \u2013 el a configurat o ma\u0219in\u0103 virtual\u0103 \u0219i un server de aplica\u021bii Tomcat, iar eu m-am ocupat de Jenkins, integrarea cu Atlassian Jira \u0219i BitBucket, precum \u0219i de acoperirea codului cu teste. Proiectul a fost un succes: am automatizat complet lan\u021bul de dezvoltare, am realizat aproape 100% timp de func\u021bionare a serverului de dezvoltare, am putut urm\u0103ri \u0219i \u00eembun\u0103t\u0103\u021bi acoperirea codului cu teste, iar ramura Git putea fi legat\u0103 de livrare \u0219i de sarcina Jira. \u0218i aproape toate instrumentele cu care am construit lan\u021bul DevOps erau open source.<\/p>\n<p><\/p>\n<p>\u00cen esen\u021b\u0103, lan\u021bul a fost simplificat, deoarece nu am folosit configura\u021bii extinse cu Jenkins sau Ansible. Totu\u0219i, ne-a ie\u0219it. Poate c\u0103 este o consecin\u021b\u0103 a principiului <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Pareto_principle\">Pareto<\/a><\/noindex> (sau regula 80\/20).<\/p>\n<p><\/p>\n<h3 id=\"kratkoe-opisanie-cepochki-devops-i-cicd\">Descriere scurt\u0103 a lan\u021bului DevOps \u0219i CI\/CD<\/h3>\n<p><\/p>\n<p>DevOps are diverse defini\u021bii. DevOps, la fel ca Agile, implic\u0103 diferite discipline. \u00cens\u0103 cei mai mul\u021bi vor fi de acord cu urm\u0103toarea defini\u021bie: DevOps este o metod\u0103, sau ciclu, de dezvoltare a software-ului, al c\u0103rui principiu principal este crearea unei culturi \u00een care dezvoltatorii \u0219i ceilal\u021bi angaja\u021bi sunt 'pe aceea\u0219i lungime de und\u0103', munca manual\u0103 este automatizat\u0103, fiecare se ocup\u0103 de ceea ce \u0219tie s\u0103 fac\u0103 cel mai bine, frecven\u021ba livr\u0103rilor cre\u0219te, productivitatea muncii se \u00eembun\u0103t\u0103\u021be\u0219te, iar flexibilitatea se \u00eembun\u0103t\u0103\u021be\u0219te.<\/p>\n<p><\/p>\n<p>\u0218i, de\u0219i uneltele singure nu sunt suficiente pentru a crea un mediu DevOps, f\u0103r\u0103 ele nu se poate. Cea mai important\u0103 dintre ele este integrarea continu\u0103 \u0219i livrarea continu\u0103 (CI\/CD). \u00cen lan\u021bul pentru fiecare mediu exist\u0103 diferite etape (de exemplu, DEV (dezvoltare), INT (integrare), TST (testare), QA (controlul calit\u0103\u021bii), UAT (testare acceptat\u0103 de utilizatori), STG (preparare), PROD (utilizare)), sarcinile manuale sunt automatizate, dezvoltatorii pot scrie cod de calitate, \u00eel livreaz\u0103 \u0219i se pot adapta din u\u0219or.<\/p>\n<p><\/p>\n<p>Aceast\u0103 not\u0103 descrie cum s\u0103 creezi un lan\u021b DevOps \u00een cinci pa\u0219i, a\u0219a cum este ilustrat \u00een imaginea de mai jos, folosind unelte cu cod surs\u0103 deschis.<\/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=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/da2a6d8ed039f0b8e1ea8e1ba562696d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Hai s\u0103 trecem la treab\u0103.<\/p>\n<p><\/p>\n<h3 id=\"shag-1-platforma-cicd\">Pasul 1: Platforma CI\/CD<\/h3>\n<p><\/p>\n<p>\u00cen primul r\u00e2nd, ai nevoie de un instrument CI\/CD. Jenkins este un instrument CI\/CD open-source scris \u00een Java, cu licen\u021b\u0103 MIT, care a \u00eenceput popularizarea mi\u0219c\u0103rii DevOps \u0219i care, de facto, a devenit standardul pentru CI\/CD.<\/p>\n<p><\/p>\n<p>Dar ce este Jenkins? Imagineaz\u0103-\u021bi c\u0103 ai o telecomand\u0103 magic\u0103 pentru diverse servicii \u0219i instrumente. Instrumentul CI\/CD, precum Jenkins, este inutil singur, dar cu diverse instrumente \u0219i servicii devine atotputernic.<\/p>\n<p><\/p>\n<p>Pe l\u00e2ng\u0103 Jenkins, exist\u0103 o mul\u021bime de alte instrumente open-source, po\u021bi alege oricare. <\/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=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/2bbe6af719b90da0eb0d367aae66d779.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Iat\u0103 cum arat\u0103 procesul DevOps cu un instrument CI\/CD<\/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=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/2410013c9e6030596a59f3ed7ae3a7e7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Ai un instrument CI\/CD pe localhost, dar pentru moment nu ai nimic de f\u0103cut. S\u0103 trecem la urm\u0103torul pas.<\/p>\n<p><\/p>\n<h3 id=\"shag-2-upravlenie-versiyami\">Pasul 2: gestionarea versiunilor<\/h3>\n<p><\/p>\n<p>Cea mai bun\u0103 (\u0219i poate cea mai simpl\u0103) modalitate de a verifica magia instrumentului CI\/CD este s\u0103-l integratezi cu un instrument de control al versiunilor (source control management, SCM). De ce ai nevoie de controlul versiunilor? S\u0103 presupunem c\u0103 dezvol\u021bi o aplica\u021bie. O scrii \u00een Java, Python, C++, Go, Ruby, JavaScript sau \u00een orice alt limbaj, de care sunt o mul\u021bime. Ceea ce scrii se nume\u0219te cod surs\u0103. La \u00eenceput, mai ales dac\u0103 lucrezi singur, po\u021bi salva totul \u00eentr-un director local. Dar pe m\u0103sur\u0103 ce proiectul cre\u0219te \u0219i se al\u0103tur\u0103 mai multe persoane, ai nevoie de o modalitate de a partaja modific\u0103rile \u00een cod, dar \u0219i de a evita conflictele la fuziunea acestora. \u0218i, de asemenea, ai nevoie s\u0103 restaurezi versiunile anterioare f\u0103r\u0103 a folosi backup-uri \u0219i f\u0103r\u0103 a aplica metoda copy-paste pentru fi\u0219ierele cu cod.<\/p>\n<p><\/p>\n<p>\u0218i aici SCM este esen\u021bial. SCM salveaz\u0103 codul \u00een depozite, gestioneaz\u0103 versiunile acestuia \u0219i coordoneaz\u0103 munca \u00eentre dezvoltatori.<\/p>\n<p><\/p>\n<p>Exist\u0103 multe instrumente SCM, dar standardul de facto a devenit pe bun\u0103 dreptate Git. \u00ce\u021bi recomand s\u0103 folose\u0219ti tocmai acesta, dar exist\u0103 \u0219i alte op\u021biuni.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/37555a476c27f7066e5648b9e9e4d90b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Iat\u0103 cum arat\u0103 pipeline-ul DevOps dup\u0103 ad\u0103ugarea 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=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/040819b00dc608a9131856dd6a7d4a19.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Instrumentul CI\/CD poate automatiza \u00eenc\u0103rcarea \u0219i desc\u0103rcarea codului surs\u0103 \u0219i colaborarea \u00een echip\u0103. Nu-i r\u0103u? Dar cum transformi acum asta \u00eentr-o aplica\u021bie func\u021bional\u0103, iubit\u0103 de miliarde de utilizatori?<\/p>\n<p><\/p>\n<h3 id=\"shag-3-instrument-avtomatizacii-sborki\">Pasul 3: instrumentul de automatizare a compil\u0103rii<\/h3>\n<p><\/p>\n<p>Totul decurge conform planului. Po\u021bi desc\u0103rca codul \u0219i \u00eenregistra modific\u0103rile \u00een sistemul de control al versiunilor, precum \u0219i invita prieteni s\u0103 lucreze cu tine. Dar tu \u00eenc\u0103 nu ai o aplica\u021bie. Pentru a fi o aplica\u021bie web, aceasta trebuie compilat\u0103 \u0219i ambalat\u0103 pentru livrare sau rulat\u0103 ca un fi\u0219ier executabil. (Un limbaj de programare interpretat, precum JavaScript sau PHP, nu trebuie compilat.)<\/p>\n<p><\/p>\n<p>Folose\u0219te un instrument de automatizare a compil\u0103rii. Indiferent de instrumentul pe care \u00eel alegi, acesta va compila codul \u00een formatul necesar \u0219i va automatiza cur\u0103\u021barea, compilarea, testarea \u0219i livrarea. Exist\u0103 diferite instrumente de compilare \u00een func\u021bie de limbaj, dar de obicei se folosesc urm\u0103toarele op\u021biuni cu surs\u0103 deschis\u0103.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/cc6e958a82ac0676429da6c48e66910f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Excelent! Acum s\u0103 introducem fi\u0219ierele de configurare ale instrumentului de automatizare a compil\u0103rii \u00een sistemul de control al versiunilor, pentru ca instrumentul CI\/CD s\u0103 le compileze.<\/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=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/bba539d128425e7e3ddacdc6028d3604.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Se pare c\u0103 totul este \u00een regul\u0103. Dar unde s\u0103 desf\u0103\u0219ori acum toate acestea?<\/p>\n<p><\/p>\n<h3 id=\"shag-4-server-veb-prilozheniy\">Pasul 4: serverul aplica\u021biei web<\/h3>\n<p><\/p>\n<p>A\u0219adar, ave\u021bi un fi\u0219ier comprimat care poate fi executat sau desf\u0103cut. Pentru ca aplica\u021bia s\u0103 fie cu adev\u0103rat util\u0103, aceasta trebuie s\u0103 aib\u0103 un anumit serviciu sau interfa\u021b\u0103, dar trebuie s\u0103 o plasa\u021bi undeva.<\/p>\n<p><\/p>\n<p>O aplica\u021bie web poate fi gazduit\u0103 pe un server de aplica\u021bii web. Serverul de aplica\u021bii ofer\u0103 un mediu \u00een care se poate executa logica programului din pachet, se poate realiza redarea interfe\u021bei \u0219i se pot deschide servicii web prin socket. Ave\u021bi nevoie de un server HTTP \u0219i de c\u00e2teva alte medii (de exemplu, o ma\u0219in\u0103 virtual\u0103) pentru a instala serverul de aplica\u021bii. Deocamdat\u0103, s\u0103 presupunem c\u0103 v\u0103 descurca\u021bi cu toate acestea \u00een proces (de\u0219i voi vorbi despre containere mai jos).<\/p>\n<p><\/p>\n<p>Exist\u0103 c\u00e2teva servere de aplica\u021bii web open-source.<\/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=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/7802afe041a9d56c20ddbe2885b5cf37.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Am reu\u0219it deja o aproape func\u021bional\u0103 lan\u021b DevOps. Felicit\u0103ri!<\/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=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/3d1e524b63fecebf4973cc34a40c160d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>\u00cen principiu, aici pute\u021bi s\u0103 v\u0103 opri\u021bi, mai departe v\u0103 descurca\u021bi singuri, dar merit\u0103 s\u0103 discut\u0103m \u0219i despre calitatea codului.<\/p>\n<p><\/p>\n<h3 id=\"shag-5-testovoe-pokrytie\">Pasul 5: Acoperirea test\u0103rii<\/h3>\n<p><\/p>\n<p>Testarea ia mult timp \u0219i efort, dar este mai bine s\u0103 descoperi\u021bi erorile din timp \u0219i s\u0103 \u00eembun\u0103t\u0103\u021bi\u021bi codul pentru a \u00eenc\u00e2nta utilizatorii finali. Pentru acest scop, exist\u0103 multe instrumente open-source care nu doar testeaz\u0103 codul, ci ofer\u0103 \u0219i sugestii despre cum s\u0103-l \u00eembun\u0103t\u0103\u021bi\u021bi. Cele mai multe instrumente CI\/CD se pot conecta la aceste instrumente \u0219i pot automatiza procesul.<\/p>\n<p><\/p>\n<p>Testarea este \u00eemp\u0103r\u021bit\u0103 \u00een dou\u0103 p\u0103r\u021bi: cadre de testare pentru a scrie \u0219i executa teste \u015fi instrumente cu sugestii pentru \u00eembun\u0103t\u0103\u021birea calit\u0103\u021bii codului.<\/p>\n<p><\/p>\n<h3 id=\"freymvorki-testirovaniya\">Cadre de testare<\/h3>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/cu\/4l\/pn\/cu4lpnpdqa7yd9f5zwsxrrlbylg.png\"><img decoding=\"async\" alt=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/c17426a30a4f140be87489d2c8b0d0b9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Instrumente cu sugestii pentru calitate<\/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=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/bc65784b8bf5ccaaeef96a0c6ee4422e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Majoritatea acestor instrumente \u0219i cadre sunt scrise pentru Java, Python \u0219i JavaScript, deoarece C++ \u0219i C# sunt proprietare (de\u0219i GCC are cod surs\u0103 deschis).<\/p>\n<p><\/p>\n<p>Am aplicat instrumente pentru acoperirea test\u0103rii, iar acum lan\u021bul DevOps ar trebui s\u0103 arate ca \u00een figura din \u00eenceputul ghidului.<\/p>\n<p><\/p>\n<h2 id=\"dopolnitelnye-shagi\">Pa\u0219i suplimentari<\/h2>\n<p><\/p>\n<h3 id=\"konteynery\">Containere<\/h3>\n<p><\/p>\n<p>A\u0219a cum am spus, serverul de aplica\u021bii poate fi gazduit pe o ma\u0219in\u0103 virtual\u0103 sau pe un server, dar containerele sunt mai populare.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-are-linux-containers\">Ce sunt containerele<\/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>Pentru containere se folosesc de obicei Docker \u0219i Kubernetes, de\u0219i exist\u0103 \u0219i alte op\u021biuni.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/6n\/wc\/rc\/6nwcrcuhk9swwjxdddudr1cqpzc.png\"><img decoding=\"async\" alt=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/8749b7044102ff7f23f2c970d6939246.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Citi\u021bi articole despre Docker \u0219i Kubernetes pe <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\">Ce este Docker?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/business\/15\/1\/introduction-docker\">Introducere \u00een Docker<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-is-kubernetes\">Ce este Kubernetes?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/17\/11\/kubernetes-lightning-talk\">Kubernetes de la zero<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"instrumenty-avtomatizacii-promezhutochnogo-po\">Instrumente de automatizare a middleware-ului<\/h3>\n<p><\/p>\n<p>Lan\u021bul nostru DevOps este orientat spre colaborarea pentru construirea \u0219i livrarea aplica\u021biilor, dar cu uneltele DevOps se pot face \u0219i alte lucruri interesante. De exemplu, folosind uneltele de tip \u201einfrastructur\u0103 ca cod\u201d (IaC), care sunt de asemenea cunoscute ca unelte de automatizare a intermediarului. Aceste unelte ajut\u0103 la automatizarea instal\u0103rii, gestion\u0103rii \u0219i altor sarcini pentru intermediar. De exemplu, o unealt\u0103 de automatizare poate lua aplica\u021bii (server de aplica\u021bii web, baz\u0103 de date, unelte de monitorizare) cu configura\u021biile corecte \u0219i le poate desf\u0103\u0219ura pe serverul aplica\u021biilor.<\/p>\n<p><\/p>\n<p>Iat\u0103 c\u00e2teva op\u021biuni de unelte deschise pentru automatizarea intermediarului:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ghid pentru \u00eencep\u0103tori: Crearea lan\u021burilor DevOps cu ajutorul instrumentelor open-source.\" src=\"\/wp-content\/uploads\/2019\/05\/23bb3259f336a3f0ebf11ab4aa5471ea.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Detalii \u00een articolele de pe <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\">Ghid pentru a \u00eencepe s\u0103 lucrezi cu Ansible<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/1\/automating-deployment-strategies-ansible\">Strategii de automatizare a livr\u0103rii cu Ansible<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/12\/configuration-management-tools\">5 cele mai bune unelte de gestionare a configura\u021biei<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"i-chto-teper\">\u0218i ce acum?<\/h3>\n<p><\/p>\n<p>Aceasta este doar v\u00e2rful aisbergului. Lan\u021bul DevOps poate face mult mai mult. \u00cencepe cu o unealt\u0103 CI\/CD \u0219i afl\u0103 ce altceva po\u021bi automatiza pentru a-\u021bi simplifica munca. Nu uita de <noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/alternatives\/slack\">uneltele deschise de comunicare<\/a><\/noindex> pentru o colaborare eficient\u0103.<\/p>\n<p><\/p>\n<p>Iat\u0103 \u0219i c\u00e2teva articole bune despre DevOps pentru \u00eencep\u0103tori:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/devops\">Ce este DevOps<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/master-devops-engineer\">5 abilit\u0103\u021bi ale unui dezvoltator DevOps<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/11\/how-non-engineer-got-devops\">DevOps pentru toat\u0103 lumea<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/1\/getting-started-predictive-analytics-devops\">Introducere \u00een analiza predictiv\u0103 \u00een DevOps<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>De asemenea, po\u021bi integra DevOps cu uneltele deschise pentru agile:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/10\/what-agile\">Ce este agile?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/steps-agile-developer\">4 pa\u0219i pe drumul spre st\u0103p\u00e2nirea agile<\/a><\/noindex><\/li>\n<\/ul>\n<p>Sursa: <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.1 - 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\/ro\/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.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Ghid pentru \u00eencep\u0103tori: crearea lan\u021burilor DevOps folosind unelte cu surs\u0103 deschis\u0103 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/ro\/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":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/33504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=33504"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/33504\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/25204"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=33504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=33504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=33504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}