{"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\/sv\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom","title":{"rendered":"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/2f9db2f057c4bcb3f2e57a484dd30c8c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Skapa den f\u00f6rsta DevOps-kedjan i fem steg f\u00f6r nyb\u00f6rjare.<\/em><\/p>\n<p><\/p>\n<p>DevOps har blivit en universall\u00f6sning f\u00f6r alltf\u00f6r l\u00e5ngsamma, splittrade och andra problematiska utvecklingsprocesser. Men det kr\u00e4vs grundl\u00e4ggande kunskaper om DevOps. H\u00e4r kommer begrepp som DevOps-kedja att diskuteras och hur man kan skapa den i fem steg. Detta \u00e4r inte en fullst\u00e4ndig guide, utan en \"skiss\" som kan ut\u00f6kas. L\u00e5t oss b\u00f6rja med historien.<\/p>\n<p><\/p>\n<h3 id=\"moe-znakomstvo-s-devops\">Min bekantskap med DevOps<\/h3>\n<p><\/p>\n<p>En g\u00e5ng jobbade jag med molntj\u00e4nster p\u00e5 Citi Group och utvecklade en IaaS-webbapplikation f\u00f6r att hantera Citigroup's molninfrastruktur, men jag har alltid varit intresserad av hur man kan optimera utvecklingskedjan och f\u00f6rb\u00e4ttra kulturen bland utvecklarna. Greg Lavender, v\u00e5r tekniska direkt\u00f6r f\u00f6r molnarkitektur och infrastruktur, rekommenderade mig boken <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/dp\/B078Y98RG8\/\">Projektet \"Phoenix\"<\/a><\/noindex>. Den f\u00f6rklarar perfekt principerna f\u00f6r DevOps och l\u00e4ses som en roman.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>I tabellen p\u00e5 baksidan visas hur ofta f\u00f6retag sl\u00e4pper nya versioner:<\/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=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/a723283e54f7614b6b92eab78509985d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Hur lyckas Amazon, Google och Netflix att sl\u00e4ppa s\u00e5 mycket? Det \u00e4r enkelt: de har f\u00f6rst\u00e5tt hur man skapar en n\u00e4stan perfekt DevOps-kedja.<\/p>\n<p><\/p>\n<p>Hos oss p\u00e5 Citi var allt helt annorlunda, innan vi gick \u00f6ver till DevOps. D\u00e5 hade mitt team olika milj\u00f6er, men vi gjorde leveransen till utvecklingsservern manuellt. Alla utvecklare hade tillg\u00e5ng till endast en utvecklingsserver baserad p\u00e5 IBM WebSphere Application Server Community Edition. Vid samtidig leverans kraschade servern, och vi var tvungna att \u201dsm\u00e4rtsamt\u201d f\u00f6rhandla med varandra varje g\u00e5ng. Dessutom hade vi otillr\u00e4cklig testt\u00e4ckning av koden, en arbetsintensiv manuell leveransprocess och ingen m\u00f6jlighet att sp\u00e5ra kodleveransen kopplad till n\u00e5gon uppgift eller kundkrav.<\/p>\n<p><\/p>\n<p>Det var uppenbart att n\u00e5got snabbt beh\u00f6vde g\u00f6ras, och jag fann en kollega med samma inst\u00e4llning. Vi best\u00e4mde oss f\u00f6r att tillsammans skapa den f\u00f6rsta DevOps-kedjan \u2014 han satte upp en virtuell maskin och Tomcat-applikationsserver, medan jag arbetade med Jenkins, integration med Atlassian Jira och BitBucket, samt kodt\u00e4ckningstester. Projektet var framg\u00e5ngsrikt: vi automatiserade helt utvecklingskedjan, uppn\u00e5dde n\u00e4stan 100 % drifts\u00e4kerhet p\u00e5 utvecklingsservern, kunde sp\u00e5ra och f\u00f6rb\u00e4ttra kodt\u00e4ckningen med tester, och Git-grenen kunde kopplas till leveransen och Jira-uppgiften. Och n\u00e4stan alla verktyg som vi anv\u00e4nde f\u00f6r att bygga DevOps-kedjan var \u00f6ppen k\u00e4llkod.<\/p>\n<p><\/p>\n<p>I praktiken var kedjan f\u00f6renklad, eftersom vi inte ens anv\u00e4nde avancerade konfigurationer med Jenkins eller Ansible. Men vi lyckades. Detta kan vara en f\u00f6ljd av principen <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Pareto_principle\">Pareto<\/a><\/noindex> (det vill s\u00e4ga 80\/20-regeln).<\/p>\n<p><\/p>\n<h3 id=\"kratkoe-opisanie-cepochki-devops-i-cicd\">En kort beskrivning av DevOps och CI\/CD-kedjan<\/h3>\n<p><\/p>\n<p>DevOps har olika definitioner. Precis som Agile omfattar DevOps olika discipliner. Men de flesta skulle h\u00e5lla med om f\u00f6ljande definition: DevOps \u00e4r en metod eller livscykel f\u00f6r programvaruutveckling vars huvudprincip \u00e4r att skapa en kultur d\u00e4r utvecklare och andra anst\u00e4llda arbetar \"p\u00e5 samma v\u00e5gl\u00e4ngd\", manuellt arbete automatiseras, alla sysslar med det de \u00e4r b\u00e4st p\u00e5, leveransfrekvensen \u00f6kar, arbetsproduktiviteten h\u00f6js och flexibiliteten \u00f6kar.<\/p>\n<p><\/p>\n<p>Och \u00e4ven om verktyg ensam inte r\u00e4cker f\u00f6r att skapa en DevOps-milj\u00f6, \u00e4r de oumb\u00e4rliga. Det viktigaste av dem \u00e4r kontinuerlig integration och kontinuerlig leverans (CI\/CD). I kedjan finns det olika steg f\u00f6r varje milj\u00f6 (till exempel DEV (utveckling), INT (integration), TST (testning), QA (kvalitetskontroll), UAT (anv\u00e4ndartestning), STG (f\u00f6rberedelse), PROD (anv\u00e4ndning)), manuella uppgifter \u00e4r automatiserade, utvecklare kan producera kvalitetskod, leverera den och enkelt anpassa sig.<\/p>\n<p><\/p>\n<p>Denna notis beskriver hur man p\u00e5 fem steg skapar en DevOps-kedja, som visas p\u00e5 bilden nedan, med hj\u00e4lp av \u00f6ppenk\u00e4llkodsverktyg.<\/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=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/da2a6d8ed039f0b8e1ea8e1ba562696d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>L\u00e5t oss g\u00e5 till saken.<\/p>\n<p><\/p>\n<h3 id=\"shag-1-platforma-cicd\">Steg 1: CI\/CD-plattform<\/h3>\n<p><\/p>\n<p>F\u00f6rst beh\u00f6ver du ett CI\/CD-verktyg. Jenkins \u00e4r ett \u00f6ppet CI\/CD-verktyg skrivet i Java med MIT-licens, som var starten f\u00f6r popul\u00e4riseringen av DevOps-r\u00f6relsen och som de facto blivit standard f\u00f6r CI\/CD.<\/p>\n<p><\/p>\n<p>Och vad \u00e4r Jenkins? T\u00e4nk dig att du har en magisk kontrollpanel f\u00f6r olika tj\u00e4nster och verktyg. Sj\u00e4lva CI\/CD-verktyget, som Jenkins, \u00e4r v\u00e4rdel\u00f6st, men tillsammans med olika verktyg och tj\u00e4nster blir det allsm\u00e4ktigt.<\/p>\n<p><\/p>\n<p>F\u00f6rutom Jenkins finns det m\u00e5nga andra \u00f6ppna verktyg, v\u00e4lj valfritt. <\/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=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/2bbe6af719b90da0eb0d367aae66d779.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>S\u00e5 h\u00e4r ser DevOps-processen ut med CI\/CD-verktyg<\/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=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/2410013c9e6030596a59f3ed7ae3a7e7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Du har ett CI\/CD-verktyg p\u00e5 localhost, men det finns inte mycket att g\u00f6ra \u00e4n s\u00e5 l\u00e4nge. L\u00e5t oss g\u00e5 vidare till n\u00e4sta steg.<\/p>\n<p><\/p>\n<h3 id=\"shag-2-upravlenie-versiyami\">Steg 2: versionshantering<\/h3>\n<p><\/p>\n<p>Det b\u00e4sta (och antagligen enklaste) s\u00e4ttet att verifiera magin i CI\/CD-verktyget \u00e4r att integrera det med ett versionhanteringsverktyg (source control management, SCM). Varf\u00f6r beh\u00f6vs versionhantering? Anta att du bygger en applikation. Du skriver den i Java, Python, C++, Go, Ruby, JavaScript eller vilket annat spr\u00e5k som helst. Det du skriver kallas k\u00e4llkod. F\u00f6rst, s\u00e4rskilt om du arbetar ensam, kan du spara allt i en lokal katalog. Men n\u00e4r projektet v\u00e4xer och fler personer ansluter sig beh\u00f6ver du ett s\u00e4tt att dela \u00e4ndringar i koden, samtidigt som du undviker konflikter vid sammanslagning av \u00e4ndringar. Dessutom beh\u00f6ver du ett s\u00e4tt att \u00e5terst\u00e4lla tidigare versioner utan att anv\u00e4nda s\u00e4kerhetskopior och anv\u00e4nda copy-paste-metoden f\u00f6r kodfiler.<\/p>\n<p><\/p>\n<p>Och h\u00e4r beh\u00f6vs SCM. SCM sparar koden i arkiv, hanterar dess versioner och koordinerar den bland utvecklare.<\/p>\n<p><\/p>\n<p>Det finns m\u00e5nga SCM-verktyg, men Git har f\u00f6rtj\u00e4nat sin plats som de facto-standard. Jag rekommenderar att anv\u00e4nda just det, \u00e4ven om det finns andra alternativ.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/37555a476c27f7066e5648b9e9e4d90b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>S\u00e5 h\u00e4r ser DevOps-pipelinen ut efter att ha lagt till 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=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/040819b00dc608a9131856dd6a7d4a19.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>CI\/CD-verktyget kan automatisera uppladdning och nedladdning av k\u00e4llkod samt samarbete i teamet. Inte d\u00e5ligt? Men hur g\u00f6r vi nu detta till en fungerande applikation, \u00e4lskad av miljarder anv\u00e4ndare?<\/p>\n<p><\/p>\n<h3 id=\"shag-3-instrument-avtomatizacii-sborki\">Steg 3: verktyg f\u00f6r automatisering av byggen<\/h3>\n<p><\/p>\n<p>Allt g\u00e5r som det ska. Du kan ladda upp koden och registrera \u00e4ndringar i versionshanteringssystemet, samt bjuda in v\u00e4nner att arbeta med dig. Men du har fortfarande ingen applikation. F\u00f6r att det ska bli en webbapplikation m\u00e5ste den kompileras och paketeras f\u00f6r distribution eller k\u00f6ras som en k\u00f6rbar fil. (Ett tolkat programmeringsspr\u00e5k, som JavaScript eller PHP, beh\u00f6ver inte kompileras.)<\/p>\n<p><\/p>\n<p>Anv\u00e4nd ett verktyg f\u00f6r automatisering av byggen. Vilket verktyg du \u00e4n v\u00e4ljer kommer det att bygga koden i r\u00e4tt format och automatisera st\u00e4dning, kompilerande, testning och distribution. Det finns olika byggverktyg beroende p\u00e5 spr\u00e5k, men oftast anv\u00e4nds f\u00f6ljande alternativ med \u00f6ppen k\u00e4llkod.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/cc6e958a82ac0676429da6c48e66910f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Utm\u00e4rkt! Nu ska vi l\u00e4gga till konfigurationsfilerna f\u00f6r automationsverktyget i versionshanteringssystemet s\u00e5 att CI\/CD-verktyget kan samla dem.<\/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=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/bba539d128425e7e3ddacdc6028d3604.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Det verkar som om allt \u00e4r i ordning. Men vart ska vi nu rulla ut allt detta?<\/p>\n<p><\/p>\n<h3 id=\"shag-4-server-veb-prilozheniy\">Steg 4: webbapplikationsserver<\/h3>\n<p><\/p>\n<p>S\u00e5, du har en paketerad fil som kan k\u00f6ras eller distribueras. F\u00f6r att applikationen verkligen ska vara anv\u00e4ndbar m\u00e5ste den ha n\u00e5gon form av tj\u00e4nst eller gr\u00e4nssnitt, men du beh\u00f6ver ha n\u00e5gonstans att placera allt detta.<\/p>\n<p><\/p>\n<p>Webbapplikationen kan placeras p\u00e5 en applikationsserver. Applikationsservern tillhandah\u00e5ller en milj\u00f6 d\u00e4r programlogiken kan k\u00f6ras fr\u00e5n paketet, rendera gr\u00e4nssnittet och \u00f6ppna webbservicer via socket. Du beh\u00f6ver en HTTP-server och n\u00e5gra andra milj\u00f6er (till exempel en virtuell maskin) f\u00f6r att installera applikationsservern. L\u00e5t oss t\u00e4nka oss att du hanterar allt detta under processen (\u00e4ven om jag kommer att ber\u00e4tta om containrar senare).<\/p>\n<p><\/p>\n<p>Det finns flera \u00f6ppna applikationsservrar.<\/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=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/7802afe041a9d56c20ddbe2885b5cf37.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Vi har redan f\u00e5tt en n\u00e4stan fungerande DevOps-kedja. Bra jobbat!<\/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=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/3d1e524b63fecebf4973cc34a40c160d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>I princip kan du stanna h\u00e4r, men du kan klara dig sj\u00e4lv l\u00e4ngre fram, det \u00e4r v\u00e4rt att n\u00e4mna kodens kvalitet.<\/p>\n<p><\/p>\n<h3 id=\"shag-5-testovoe-pokrytie\">Steg 5: Testt\u00e4ckning<\/h3>\n<p><\/p>\n<p>Testning tar mycket tid och kraft, men det \u00e4r b\u00e4ttre att uppt\u00e4cka fel tidigt och f\u00f6rb\u00e4ttra koden f\u00f6r att gl\u00e4dja slutanv\u00e4ndarna. F\u00f6r detta \u00e4ndam\u00e5l finns det m\u00e5nga \u00f6ppna verktyg som inte bara testar koden utan ocks\u00e5 ger r\u00e5d om hur den kan f\u00f6rb\u00e4ttras. De flesta CI\/CD-verktyg kan kopplas till dessa verktyg och automatisera processen.<\/p>\n<p><\/p>\n<p>Testning \u00e4r uppdelad i tv\u00e5 delar: testningsramverk f\u00f6r att skriva och utf\u00f6ra tester, och verktyg med f\u00f6rslag p\u00e5 hur man kan f\u00f6rb\u00e4ttra kodens kvalitet.<\/p>\n<p><\/p>\n<h3 id=\"freymvorki-testirovaniya\">Testningsramverk<\/h3>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/cu\/4l\/pn\/cu4lpnpdqa7yd9f5zwsxrrlbylg.png\"><img decoding=\"async\" alt=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/c17426a30a4f140be87489d2c8b0d0b9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Verktyg med f\u00f6rslag p\u00e5 kvalitet<\/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=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/bc65784b8bf5ccaaeef96a0c6ee4422e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>De flesta av dessa verktyg och ramverk \u00e4r skrivna f\u00f6r Java, Python och JavaScript eftersom C++ och C# \u00e4r propriet\u00e4ra (\u00e4ven om GCC har \u00f6ppen k\u00e4llkod).<\/p>\n<p><\/p>\n<p>Vi har till\u00e4mpat testt\u00e4ckningsverktyg, och nu borde DevOps-pipelinen se ut som p\u00e5 bilden i b\u00f6rjan av guiden.<\/p>\n<p><\/p>\n<h2 id=\"dopolnitelnye-shagi\">Extra steg<\/h2>\n<p><\/p>\n<h3 id=\"konteynery\">Containrar<\/h3>\n<p><\/p>\n<p>Som jag n\u00e4mnde kan applikationsservern placeras p\u00e5 en virtuell maskin eller server, men containrar \u00e4r mer popul\u00e4ra.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-are-linux-containers\">Vad \u00e4r containrar<\/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>F\u00f6r containrar anv\u00e4nds vanligtvis Docker och Kubernetes, \u00e4ven om det finns andra alternativ.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/6n\/wc\/rc\/6nwcrcuhk9swwjxdddudr1cqpzc.png\"><img decoding=\"async\" alt=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/8749b7044102ff7f23f2c970d6939246.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>L\u00e4s artiklar om Docker och Kubernetes p\u00e5 <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\">Vad \u00e4r Docker?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/business\/15\/1\/introduction-docker\">Introduktion till Docker<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-is-kubernetes\">Vad \u00e4r Kubernetes?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/17\/11\/kubernetes-lightning-talk\">Kubernetes fr\u00e5n grunden<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"instrumenty-avtomatizacii-promezhutochnogo-po\">Verktyg f\u00f6r automatisering av programvara<\/h3>\n<p><\/p>\n<p>V\u00e5r DevOps-kedja \u00e4r inriktad p\u00e5 samarbetsinriktad byggnation och leverans av applikationer, men med DevOps-verktyg kan man g\u00f6ra andra intressanta saker ocks\u00e5. Till exempel kan man anv\u00e4nda verktyg f\u00f6r \"infrastruktur som kod\" (IaC), som \u00e4ven kallas automatiseringsverktyg f\u00f6r middleware. Dessa verktyg hj\u00e4lper till att automatisera installation, hantering och andra uppgifter f\u00f6r middleware. Till exempel kan ett automatiseringsverktyg ta applikationer (webbapplikationsserver, databas, \u00f6vervakningsverktyg) med korrekta konfigurationer och distribuera dem p\u00e5 applikationsservern.<\/p>\n<p><\/p>\n<p>H\u00e4r \u00e4r n\u00e5gra alternativ f\u00f6r \u00f6ppna automatiseringsverktyg f\u00f6r middleware:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Nyb\u00f6rjarguide: Skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod\" src=\"\/wp-content\/uploads\/2019\/05\/23bb3259f336a3f0ebf11ab4aa5471ea.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mer information finns i artiklarna p\u00e5 <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\">Kom ig\u00e5ng med Ansible<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/1\/automating-deployment-strategies-ansible\">Automatiseringsstrategier f\u00f6r distribution med Ansible<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/12\/configuration-management-tools\">5 b\u00e4sta verktygen f\u00f6r konfigurationshantering<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"i-chto-teper\">Och nu d\u00e5?<\/h3>\n<p><\/p>\n<p>Detta \u00e4r bara toppen av isberget. DevOps-kedjan kan mycket mer. B\u00f6rja med ett CI\/CD-verktyg och se vad mer som kan automatiseras f\u00f6r att f\u00f6renkla ditt arbete. Gl\u00f6m inte de <noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/alternatives\/slack\">\u00f6ppna kommunikationsverktygen<\/a><\/noindex> f\u00f6r effektivt samarbete.<\/p>\n<p><\/p>\n<p>H\u00e4r \u00e4r n\u00e5gra fler bra artiklar om DevOps f\u00f6r nyb\u00f6rjare:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/devops\">Vad \u00e4r DevOps<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/master-devops-engineer\">5 f\u00e4rdigheter f\u00f6r en DevOps-utvecklare<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/11\/how-non-engineer-got-devops\">DevOps f\u00f6r alla<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/1\/getting-started-predictive-analytics-devops\">Introduktion till prognostisk analytik inom DevOps<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Och dessutom kan man integrera DevOps med \u00f6ppna verktyg f\u00f6r agile:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/10\/what-agile\">Vad \u00e4r agile?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/steps-agile-developer\">4 steg till att beh\u00e4rska agile<\/a><\/noindex><\/li>\n<\/ul>\n<p>K\u00e4lla: <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.4 - 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\/sv\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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\udd47Nyb\u00f6rjarguide: skapa DevOps-kedjor med hj\u00e4lp av verktyg med \u00f6ppen k\u00e4llkod | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sv\/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":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/33504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=33504"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/33504\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/25204"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=33504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=33504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=33504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}