{"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\/et\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom","title":{"rendered":"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/2f9db2f057c4bcb3f2e57a484dd30c8c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Esimese DevOpsi ahela loomine viies etapis algajatele.<\/em><\/p>\n<p><\/p>\n<p>DevOps on saanud lahenduseks aeglastele, \u00e4\u00e4retult killustatutele ja teistele probleemsetele arendusprotsessidele. Kuid DevOpsi m\u00f5istmiseks on vajalikud minimaalsete teadmiste olemasolu. Siin k\u00e4sitleme m\u00f5isteid nagu DevOpsi ahel ja kuidas see viies etapis luua. See ei ole t\u00e4ielik juhend, vaid lihtsalt \u201ekalastamine\u201d, mille abil saab edastada. Alustame ajaloost.<\/p>\n<p><\/p>\n<h3 id=\"moe-znakomstvo-s-devops\">Minu tutvus DevOpsiga<\/h3>\n<p><\/p>\n<p>Kunagi t\u00f6\u00f6tasin ma Citi Groupis pilveteenuste kallal ja arendasin IaaSi veebirakendust, et hallata Citi pilvainfrastruktuuri, kuid mind on alati huvitanud, kuidas arendusprotsessi optimeerida ja arendajate seas kultuuri parandada. Meie pilvearhitektuuri ja infrastruktuuri tehnilise direktori Greg Lavenderi soovitusel lugesin ma raamatut <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/dp\/B078Y98RG8\/\">Projekt \"Feniix\"<\/a><\/noindex>. Raamat selgitab DevOpsi p\u00f5him\u00f5tteid suurep\u00e4raselt ja loetav nagu romaan.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Tabeli tagak\u00fcljel on n\u00e4idatud, kui tihti ettev\u00f5tted uusi versioone v\u00e4lja annavad:<\/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=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/a723283e54f7614b6b92eab78509985d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Kuidas saavad Amazon, Google ja Netflix nii palju uusi versioone v\u00e4lja anda? K\u00f5ik on lihtne: nad m\u00f5istsid, kuidas luua peaaegu ideaalne DevOpsi ahel.<\/p>\n<p><\/p>\n<p>Meie Citi-s oli k\u00f5ik t\u00e4iesti teisiti, kuni me DevOpsile \u00fcle l\u00e4ksime. Siis olid mu meeskonnal erinevad keskkonnad, kuid arendusserverisse toimetamine toimus k\u00e4sitsi. K\u00f5igil arendajatel oli juurdep\u00e4\u00e4s ainult \u00fchele IBM WebSphere Application Server Community Editioni arendusserverile. Kui k\u00f5ik proovisid samal ajal toimetada, \u201elanges\u201d server ja meil tuli iga kord \u201evalusalt\u201d omavahel kokku leppida. Lisaks oli meil koodikatte testidega ebapiisav, t\u00f6\u00f6mahukas k\u00e4sitsi toimetamisprotsess ja puudusid v\u00f5imalused koodi toimetamist j\u00e4lgida m\u00f5ne \u00fclesande v\u00f5i kliendi n\u00f5ude alusel.<\/p>\n<p><\/p>\n<p>Oli selge, et midagi tuleb kiiresti ette v\u00f5tta, ja leidsin kolleegi, kellel oli sama m\u00f5tteviis. Otsustasime koos luua esimese DevOpsi ahela \u2014 tema seadistas virtuaalmasina ja Tomcat serveri, mina l\u00f5in Jenkinsit, integreerisin Atlassian Jira ja BitBucket ning tegelesin koodi katmise testimisega. Projekt oli edukas: automatiseerisime t\u00e4ielikult arendusprotsessi ahela, saavutasime peaaegu 100% katkematu arendusserveri t\u00f6\u00f6, suutsime j\u00e4lgida ja parandada koodi katmist testidega ning Git haru sai siduda toimetamise ja Jira \u00fclesandega. Peaaegu k\u00f5ik t\u00f6\u00f6riistad, millega DevOpsi ahelat ehitasime, olid avatud l\u00e4htekoodiga.<\/p>\n<p><\/p>\n<p>Tegelikult oli ahel lihtsustatud, kuna me ei kasutanud isegi laienenud konfiguratsioone Jenkins'i v\u00f5i Ansible'i abil. Aga meil \u00f5nnestus see. V\u00f5ib-olla on see p\u00f5him\u00f5tte tulem. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Pareto_principle\">Pareto<\/a><\/noindex> (ka 80\/20 reegel).<\/p>\n<p><\/p>\n<h3 id=\"kratkoe-opisanie-cepochki-devops-i-cicd\">DevOpsi ja CI\/CD ahela l\u00fchike \u00fclevaade<\/h3>\n<p><\/p>\n<p>DevOpsil on erinevad m\u00e4\u00e4ratlused. DevOps h\u00f5lmab nagu Agile erinevaid distsipliine. Kuid enamik n\u00f5ustuks j\u00e4rgmise m\u00e4\u00e4ratlusega: DevOps on meetod v\u00f5i tarkvaraarenduse eluts\u00fckkel, mille peamine p\u00f5him\u00f5te on kultuuri loomine, kus arendajad ja teised t\u00f6\u00f6tajad on \"\u00fchel lainel\", k\u00e4sitsi t\u00f6\u00f6 on automatiseeritud, iga\u00fcks tegeleb sellega, mis tal k\u00f5ige paremini v\u00e4lja tuleb, suurendatakse tarnete sagedust, t\u00f5stetakse t\u00f6\u00f6 produktiivsust ja suureneb paindlikkus.<\/p>\n<p><\/p>\n<p>Ja kuigi ainu\u00fcksi t\u00f6\u00f6riistadest ei piisa DevOps'i keskkonna loomiseks, on neid h\u00e4davajalik. K\u00f5ige t\u00e4htsam neist on pidev integreerimine ja pidev kohaletoimetamine (CI\/CD). Igas keskkonnas on ahelas erinevad etapid (n\u00e4iteks DEV (arendus), INT (integreerimine), TST (testimine), QA (kvaliteedikontroll), UAT (kasutajakontroll), STG (ettevalmistus), PROD (kasutamine)), k\u00e4sitsi \u00fclesanded on automatiseeritud, arendajad saavad luua kvaliteetset koodi, tarnida seda ja saavad kergesti \u00fcmber ehitada.<\/p>\n<p><\/p>\n<p>See m\u00e4rkus kirjeldab, kuidas viie sammuga luua DevOps'i ahel, nagu on n\u00e4idatud alloleval pildil, kasutades avatud l\u00e4htekoodiga t\u00f6\u00f6riistu.<\/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=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/da2a6d8ed039f0b8e1ea8e1ba562696d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Liigume asja juurde.<\/p>\n<p><\/p>\n<h3 id=\"shag-1-platforma-cicd\">Samm 1: CI\/CD platvorm<\/h3>\n<p><\/p>\n<p>Esmalt vajate CI\/CD t\u00f6\u00f6riista. Jenkins on avatud l\u00e4htekoodiga CI\/CD t\u00f6\u00f6riist, mis on kirjutatud Java's ja millel on MIT litsents, kust sai alguse DevOps'i liikumise populariseerimine ja mis on de facto CICD standardiks.<\/p>\n<p><\/p>\n<p>Mis on Jenkins? Kujutage ette, et teil on maagiline juhtpult erinevate teenuste ja t\u00f6\u00f6riistade jaoks. CI\/CD t\u00f6\u00f6riist nagu Jenkins iseenesest on kasutu, kuid erinevate t\u00f6\u00f6riistade ja teenustega muutub see k\u00f5ikv\u00f5imsaks.<\/p>\n<p><\/p>\n<p>Lisaks Jenkins'ile on palju teisi avatud l\u00e4htekoodiga t\u00f6\u00f6riistu, valige \u00fcksk\u00f5ik milline. <\/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=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/2bbe6af719b90da0eb0d367aae66d779.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Nii n\u00e4eb v\u00e4lja DevOps'i protsess CI\/CD t\u00f6\u00f6riistaga<\/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=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/2410013c9e6030596a59f3ed7ae3a7e7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Teie localhost'is on CI\/CD t\u00f6\u00f6riist, kuid veel pole midagi teha. Liigume j\u00e4rgmise sammu juurde.<\/p>\n<p><\/p>\n<h3 id=\"shag-2-upravlenie-versiyami\">Samm 2: versioonihalduse s\u00fcsteem<\/h3>\n<p><\/p>\n<p>Parim (ja ilmselt k\u00f5ige lihtsam) viis CI\/CD t\u00f6\u00f6riista maagia kontrollimiseks on integreerida see versioonihalduse t\u00f6\u00f6riistaga (source control management, SCM). Miks on versioonihaldus vajalik? Oletame, et teete rakendust. Kirjutate selle Java, Python, C++, Go, Ruby, JavaScripti v\u00f5i m\u00f5nes muus keeles, millest on t\u00f5eliselt palju. Seda, mida te kirjutate, nimetatakse l\u00e4htekoodiks. Alguses, eriti kui t\u00f6\u00f6tate \u00fcksi, saate k\u00f5ik salvestada kohalikku katalooge. Kuid kui projekt kasvab ja \u00fcha rohkem inimesi liitub, vajate viisi, kuidas jagada koodimuudatusi, v\u00e4ltides samas konfliktide tekkimist muudatuste liitmisel. Ja teil on ka vaja eelnevaid versioone taastada ilma varukoopiateta ja faili koodi kopeerimise ja kleepimise meetodit rakendamata.<\/p>\n<p><\/p>\n<p>Selles osas ei saa SCM'ist m\u00f6\u00f6da. SCM salvestab koodi hoidlates, haldab selle versioone ja koordineerib seda arendajate vahel.<\/p>\n<p><\/p>\n<p>SCM t\u00f6\u00f6riistu on palju, kuid de facto standardiks on \u00f5igustatult saanud Git. Soovitan kasutada just seda, kuid olemas on ka teisi variante.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/37555a476c27f7066e5648b9e9e4d90b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nii n\u00e4eb v\u00e4lja DevOpsi torustik p\u00e4rast SCM-i lisamist.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/am\/4o\/39\/am4o39ooera5tweytt3uyh80wlu.jpeg\"><img decoding=\"async\" alt=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/040819b00dc608a9131856dd6a7d4a19.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>CI\/CD t\u00f6\u00f6riista abil saab automatiseerida l\u00e4htekoodi laadimist ja v\u00e4ljalaadimist ning meeskonnas koost\u00f6\u00f6d. Pole paha? Kuid kuidas muuta see n\u00fc\u00fcd rakenduseks, mis on miljardite kasutajate lemmik?<\/p>\n<p><\/p>\n<h3 id=\"shag-3-instrument-avtomatizacii-sborki\">Samm 3: kogumise automatiseerimise t\u00f6\u00f6riist<\/h3>\n<p><\/p>\n<p>K\u00f5ik sujub nagu peab. Saate koodi v\u00e4lja laadida ja muudatused versioonihalduss\u00fcsteemis fikseerida, samuti v\u00f5ite kutsuda s\u00f5pru teiega koost\u00f6\u00f6d tegema. Kuid teil pole veel rakendust. Et see oleks veebirakendus, tuleb see kompileerida ja pakendada tarneks v\u00f5i k\u00e4ivitada t\u00e4idetava failina. (Interpretatiivset programmeerimiskeelt, nagu JavaScript v\u00f5i PHP, ei ole vaja kompileerida.)<\/p>\n<p><\/p>\n<p>Kasutage kogumise automatiseerimise t\u00f6\u00f6riista. Olenemata valitud t\u00f6\u00f6riistast kogub see koodi soovitud formaadis ja automatiseerib puhastamise, kompileerimise, testimise ja tarnimise. Kogumise t\u00f6\u00f6riistade valik s\u00f5ltub keelest, kuid tavaliselt kasutatakse j\u00e4rgmisi avatud koodiga variante.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/cc6e958a82ac0676429da6c48e66910f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Suurep\u00e4rane! N\u00fc\u00fcd lisame kogumise automatiseerimise t\u00f6\u00f6riista konfiguratsioonifailid versioonihalduss\u00fcsteemi, et CI\/CD t\u00f6\u00f6riist need kokku paneks.<\/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=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/bba539d128425e7e3ddacdc6028d3604.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Tundub, et k\u00f5ik on korras. Kuid kuhu n\u00fc\u00fcd k\u00f5ik see v\u00e4lja lasta?<\/p>\n<p><\/p>\n<h3 id=\"shag-4-server-veb-prilozheniy\">Samm 4: veebirakenduse server<\/h3>\n<p><\/p>\n<p>Niisiis, teil on pakitud fail, mida saab k\u00e4ivitada v\u00f5i v\u00e4lja lasta. Et rakendus t\u00f5eliselt kasu tooks, peab sellel olema teenus v\u00f5i liides, kuid peate selle kuskile paigutama.<\/p>\n<p><\/p>\n<p>Veebirakendust saab paigutada veebirakenduste serverisse. Rakenduste server pakub keskkonda, kus saab k\u00e4ivitada paketi programmiloogika, teostada liidese renderdamist ja avada veebiteenuseid soketi kaudu. Te vajate HTTP-serverit ja mitmeid teisi keskkondi (nt virtuaalmasinat), et rakenduste server paika panna. Seni kujutame ette, et te valdava nende asjadega (kuigi ma r\u00e4\u00e4gin allpool konteineritest).<\/p>\n<p><\/p>\n<p>On mitmeid avatud veebirakenduste servereid.<\/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=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/7802afe041a9d56c20ddbe2885b5cf37.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Meil on juba peaaegu t\u00f6\u00f6tav DevOpsi ahel. Suurep\u00e4rane t\u00f6\u00f6!<\/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=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/3d1e524b63fecebf4973cc34a40c160d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>P\u00f5him\u00f5tteliselt v\u00f5iks siinkohal peatuda, edasi saate ise hakkama, kuid tasub r\u00e4\u00e4kida ka koodi kvaliteedist.<\/p>\n<p><\/p>\n<h3 id=\"shag-5-testovoe-pokrytie\">Samm 5: Testimise katvus<\/h3>\n<p><\/p>\n<p>Testimine on aegan\u00f5iav ja vaevarikas, kuid parem on vead kohe \u00fcles leida ja koodi parandada, et l\u00f5ppkasutajaid r\u00f5\u00f5mustada. Selleks on palju avatud t\u00f6\u00f6riistu, mis mitte ainult ei testi koodi, vaid annavad ka soovitusi, kuidas seda parandada. Enamik CI\/CD t\u00f6\u00f6riistu saavad nende t\u00f6\u00f6riistadega integreeruda ja protsessi automatiseerida.<\/p>\n<p><\/p>\n<p>Testimine jaguneb kaheks osaks: testimisraamistikud, et kirjutada ja teha teste, ning t\u00f6\u00f6riistad koodi kvaliteedi parandamise soovituste jaoks.<\/p>\n<p><\/p>\n<h3 id=\"freymvorki-testirovaniya\">Testimisraamistikud<\/h3>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/cu\/4l\/pn\/cu4lpnpdqa7yd9f5zwsxrrlbylg.png\"><img decoding=\"async\" alt=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/c17426a30a4f140be87489d2c8b0d0b9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Kvaliteedi n\u00e4pun\u00e4idete t\u00f6\u00f6riistad<\/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=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/bc65784b8bf5ccaaeef96a0c6ee4422e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Enamik neist t\u00f6\u00f6riistadest ja raamistikest on kirjutatud Java, Python ja JavaScripti jaoks, kuna C++ ja C# on omandi\u00f5igusega (kuigi GCC-l on avatud l\u00e4htekood).<\/p>\n<p><\/p>\n<p>Kasutame katvuse t\u00f6\u00f6riistu ja n\u00fc\u00fcd peaks DevOpsi t\u00f6\u00f6voog v\u00e4lja n\u00e4gema nagu juhendi alguses olevas joonises.<\/p>\n<p><\/p>\n<h2 id=\"dopolnitelnye-shagi\">T\u00e4iendavad sammud<\/h2>\n<p><\/p>\n<h3 id=\"konteynery\">Konteinerid<\/h3>\n<p><\/p>\n<p>Nagu ma juba \u00fctlesin, saab rakenduste serverit paigutada virtuaalmasinasse v\u00f5i serverisse, kuid konteinerid on populaarsemad.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-are-linux-containers\">Mis on konteinerid<\/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>Konteinerite jaoks kasutatakse tavaliselt Dockerit ja Kuberneteset, kuigi on ka teisi v\u00f5imalusi.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/6n\/wc\/rc\/6nwcrcuhk9swwjxdddudr1cqpzc.png\"><img decoding=\"async\" alt=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/8749b7044102ff7f23f2c970d6939246.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Lugege artikleid Dockerist ja Kubernetesest aadressil <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\">Mis on Docker?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/business\/15\/1\/introduction-docker\">Tutvustus Dockerisse<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-is-kubernetes\">Mis on Kubernetes?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/17\/11\/kubernetes-lightning-talk\">Kubernetes nullist<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"instrumenty-avtomatizacii-promezhutochnogo-po\">Vahekihiautomatisatsiooni t\u00f6\u00f6riistad<\/h3>\n<p><\/p>\n<p>Meie DevOps ahel on suunatud rakenduse koost\u00f6isele koostamisele ja tarnimisele, kuid DevOps t\u00f6\u00f6riistadega on v\u00f5imalik teha ka palju muid huvitavaid asju. N\u00e4iteks saab kasutada t\u00f6\u00f6riistu, mida tuntakse kui \"infrastruktuur kui kood\" (IaC), mis on samuti tuntud kui vahekihit\u00f6\u00f6tluse automatiseerimise t\u00f6\u00f6riistad. Need t\u00f6\u00f6riistad aitavad automatiseerida vahekihtide installatsiooni, haldamist ja muid \u00fclesandeid. N\u00e4iteks v\u00f5ib automatiseerimist\u00f6\u00f6riist v\u00f5tta rakendusi (veebirakenduse server, andmebaas, j\u00e4lgimist\u00f6\u00f6riistad) koos \u00f5ige konfiguratsiooniga ja v\u00e4ljastada need rakenduste serverisse.<\/p>\n<p><\/p>\n<p>Siin on m\u00f5ned avatud vahekihtide automatiseerimise t\u00f6\u00f6riistade valikud:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Algajate juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil\" src=\"\/wp-content\/uploads\/2019\/05\/23bb3259f336a3f0ebf11ab4aa5471ea.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Lisainfot leiate artiklitest <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\">Ansible\u2019iga alustamise juhend<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/1\/automating-deployment-strategies-ansible\">D\u00e4pplurimise automatiseerimise strateegiad Ansible\u2019iga<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/12\/configuration-management-tools\">5 parimat konfiguratsioonihalduse t\u00f6\u00f6riista<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"i-chto-teper\">Ja mis n\u00fc\u00fcd?<\/h3>\n<p><\/p>\n<p>See on vaid j\u00e4\u00e4m\u00e4e tipp. DevOps ahel suudab palju enamat. Alustage CI\/CD t\u00f6\u00f6riistaga ja uurige, mida veel saab automatiseerida, et enda t\u00f6\u00f6d lihtsustada. \u00c4ra unusta <noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/alternatives\/slack\">avatud suhtlust\u00f6\u00f6riistu<\/a><\/noindex> efektiivseks koost\u00f6\u00f6ks.<\/p>\n<p><\/p>\n<p>Siin on veel m\u00f5ned head artiklid DevOpsi kohta algajatele:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/devops\">Mis on DevOps<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/master-devops-engineer\">5 DevOps-arendaja oskust<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/11\/how-non-engineer-got-devops\">DevOps k\u00f5ikidele<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/1\/getting-started-predictive-analytics-devops\">DevOps'i prognoosanal\u00fc\u00fcsi tutvustus<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Ja veel on v\u00f5imalik integreerida DevOps avatud t\u00f6\u00f6riistadega agiilseks:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/10\/what-agile\">Mis on agile?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/steps-agile-developer\">4 sammu agiile valdamiseks<\/a><\/noindex><\/li>\n<\/ul>\n<p>Allikas: <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.1.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\/et\/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.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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\udd47Algajatele m\u00f5eldud juhend: DevOps ahelate loomine avatud l\u00e4htekoodiga t\u00f6\u00f6riistade abil | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/et\/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":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/33504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=33504"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/33504\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/25204"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=33504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=33504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=33504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}