{"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\/cs\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom","title":{"rendered":"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/2f9db2f057c4bcb3f2e57a484dd30c8c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Jak vytvo\u0159it sv\u016fj prvn\u00ed DevOps \u0159et\u011bzec v p\u011bti kroc\u00edch pro nov\u00e1\u010dky.<\/em><\/p>\n<p><\/p>\n<p>DevOps se stal v\u0161el\u00e9k na p\u0159\u00edli\u0161 pomal\u00e9, roztr\u017een\u00e9 a dal\u0161\u00ed problematick\u00e9 procesy v\u00fdvoje. Ale je pot\u0159eba z\u00e1kladn\u00ed znalosti o DevOps. Budeme se zab\u00fdvat pojmy jako DevOps \u0159et\u011bzec a jak ho vytvo\u0159it v p\u011bti kroc\u00edch. Toto nen\u00ed \u00fapln\u00fd pr\u016fvodce, ale pouze \u201eryba\u201c, kterou lze roz\u0161\u00ed\u0159it. Za\u010dn\u011bme histori\u00ed.<\/p>\n<p><\/p>\n<h3 id=\"moe-znakomstvo-s-devops\">Moje sezn\u00e1men\u00ed s DevOps<\/h3>\n<p><\/p>\n<p>Kdysi jsem pracoval s cloudov\u00fdmi technologiemi ve spole\u010dnosti Citi Group a vyv\u00edjel webovou aplikaci IaaS pro spr\u00e1vu cloudov\u00e9 infrastruktury Citi, ale v\u017edy m\u011b zaj\u00edmalo, jak optimalizovat v\u00fdvojov\u00fd \u0159et\u011bzec a zlep\u0161it kulturu mezi v\u00fdvoj\u00e1\u0159i. Greg Lavender, n\u00e1\u0161 technologick\u00fd \u0159editel pro cloudovou architekturu a infrastrukturu, mi doporu\u010dil knihu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/dp\/B078Y98RG8\/\">Projekt \u201eF\u00e9nix\u201c<\/a><\/noindex>. Skv\u011ble vysv\u011btluje principy DevOps a \u010dte se jako rom\u00e1n.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>V tabulce na opa\u010dn\u00e9 stran\u011b je uvedeno, jak \u010dasto spole\u010dnosti vyd\u00e1vaj\u00ed nov\u00e9 verze:<\/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=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/a723283e54f7614b6b92eab78509985d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Jak to, \u017ee Amazon, Google a Netflix st\u00edhaj\u00ed vyd\u00e1vat tolik? Je to jednoduch\u00e9: pochopili, jak vytvo\u0159it t\u00e9m\u011b\u0159 dokonal\u00fd DevOps \u0159et\u011bzec.<\/p>\n<p><\/p>\n<p>U n\u00e1s ve spole\u010dnosti Citi to tak \u00fapln\u011b nebylo, dokud jsme nep\u0159e\u0161li na DevOps. Tehdy m\u011bla m\u00e1 t\u00fdm r\u016fzn\u00e1 prost\u0159ed\u00ed, ale dod\u00e1vku na v\u00fdvojov\u00fd server jsme prov\u00e1d\u011bli ru\u010dn\u011b. V\u0161ichni v\u00fdvoj\u00e1\u0159i m\u011bli p\u0159\u00edstup pouze k jednomu v\u00fdvojov\u00e9mu serveru na z\u00e1klad\u011b IBM WebSphere Application Server Community Edition. P\u0159i sou\u010dasn\u00e9m pokusu o dod\u00e1vku server \u201espadl\u201c a my jsme se museli v\u017edy \u201ebolestiv\u011b\u201c domlouvat mezi sebou. A tak\u00e9 jsme m\u011bli nedostate\u010dn\u00e9 pokryt\u00ed k\u00f3du testy, zdlouhav\u00fd ru\u010dn\u00ed proces dod\u00e1v\u00e1n\u00ed a \u017e\u00e1dnou mo\u017enost sledovat dod\u00e1vku k\u00f3du podle ur\u010dit\u00e9 \u00falohy nebo po\u017eadavku z\u00e1kazn\u00edka.<\/p>\n<p><\/p>\n<p>Bylo jasn\u00e9, \u017ee je pot\u0159eba urgentn\u011b n\u011bco ud\u011blat, a tak jsem na\u0161el kolegu-komplizera. Rozhodli jsme se spole\u010dn\u011b vytvo\u0159it prvn\u00ed \u0159et\u011bzec DevOps \u2013 on nastavil virtu\u00e1ln\u00ed stroj a server aplikac\u00ed Tomcat, zat\u00edmco j\u00e1 jsem se v\u011bnoval Jenkinsu, integraci s Atlassian Jira a BitBucket a tak\u00e9 pokryt\u00ed k\u00f3du testy. Projekt byl \u00fasp\u011b\u0161n\u00fd: pln\u011b jsme automatizovali v\u00fdvojov\u00fd cyklus, dos\u00e1hli jsme t\u00e9m\u011b\u0159 100% bezprobl\u00e9mov\u00e9ho chodu v\u00fdvojov\u00e9ho serveru, mohli jsme sledovat a zlep\u0161ovat pokryt\u00ed k\u00f3du testy, a v\u011btev Git byla propojena s dod\u00e1vkou a \u00fakolem Jira. A t\u00e9m\u011b\u0159 v\u0161echny n\u00e1stroje, kter\u00fdmi jsme vytv\u00e1\u0159eli \u0159et\u011bzec DevOps, byly s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem.<\/p>\n<p><\/p>\n<p>Ve skute\u010dnosti byl \u0159et\u011bzec zjednodu\u0161en\u00fd, proto\u017ee jsme ani nepou\u017e\u00edvali pokro\u010dil\u00e9 konfigurace pomoc\u00ed Jenkinsu nebo Ansible. Ale poda\u0159ilo se n\u00e1m to. Mo\u017en\u00e1 je to d\u016fsledek principu <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Pareto_principle\">Pareto<\/a><\/noindex> (tak\u00e9 zn\u00e1m\u00e9ho jako pravidlo 80\/20).<\/p>\n<p><\/p>\n<h3 id=\"kratkoe-opisanie-cepochki-devops-i-cicd\">Stru\u010dn\u00fd popis \u0159et\u011bzce DevOps a CI\/CD<\/h3>\n<p><\/p>\n<p>DevOps m\u00e1 r\u016fzn\u00e1 definice. DevOps, stejn\u011b jako Agile, zahrnuje r\u016fzn\u00e9 discipl\u00edny. V\u011bt\u0161ina se v\u0161ak shodne na n\u00e1sleduj\u00edc\u00ed definici: DevOps je metoda, nebo \u017eivotn\u00ed cyklus, v\u00fdvoje softwaru, jeho\u017e hlavn\u00edm principem je vytv\u00e1\u0159en\u00ed kultury, v n\u00ed\u017e jsou v\u00fdvoj\u00e1\u0159i a ostatn\u00ed zam\u011bstnanci \u201ena stejn\u00e9 vln\u011b\u201c, manu\u00e1ln\u00ed pr\u00e1ce je automatizov\u00e1na, ka\u017ed\u00fd d\u011bl\u00e1 to, co um\u00ed nejl\u00e9pe, zvy\u0161uje se frekvence dod\u00e1vek, zvy\u0161uje se produktivita a zvy\u0161uje se flexibilita.<\/p>\n<p><\/p>\n<p>A\u010dkoli samotn\u00e9 n\u00e1stroje nesta\u010d\u00ed k vytvo\u0159en\u00ed prost\u0159ed\u00ed DevOps, bez nich se neobejdete. Nejv\u00fdznamn\u011bj\u0161\u00edm z nich je kontinu\u00e1ln\u00ed integrace a kontinu\u00e1ln\u00ed dod\u00e1vka (CI\/CD). V \u0159et\u011bzci existuj\u00ed pro ka\u017ed\u00e9 prost\u0159ed\u00ed r\u016fzn\u00e9 f\u00e1ze (nap\u0159\u00edklad DEV (v\u00fdvoj), INT (integrace), TST (testov\u00e1n\u00ed), QA (kontrola kvality), UAT (akcepta\u010dn\u00ed testov\u00e1n\u00ed u\u017eivateli), STG (p\u0159\u00edprava), PROD (pou\u017eit\u00ed)), manu\u00e1ln\u00ed \u00fakoly jsou automatizov\u00e1ny, v\u00fdvoj\u00e1\u0159i mohou vytv\u00e1\u0159et kvalitn\u00ed k\u00f3d, prov\u00e1d\u011bt jeho dod\u00e1vku a mohou se snadno p\u0159izp\u016fsobit.<\/p>\n<p><\/p>\n<p>Tento pozn\u00e1mek popisuje, jak vytvo\u0159it \u0159et\u011bzec DevOps v p\u011bti kroc\u00edch, jak je zn\u00e1zorn\u011bno na obr\u00e1zku n\u00ed\u017ee, pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojem.<\/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=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/da2a6d8ed039f0b8e1ea8e1ba562696d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Poj\u010fme k tomu.<\/p>\n<p><\/p>\n<h3 id=\"shag-1-platforma-cicd\">Krok 1: Platforma CI\/CD<\/h3>\n<p><\/p>\n<p>Nejprve pot\u0159ebujete n\u00e1stroj CI\/CD. Jenkins je otev\u0159en\u00fd n\u00e1stroj CI\/CD napsan\u00fd v Jav\u011b s licenc\u00ed MIT, kter\u00fd za\u010dal popularizaci hnut\u00ed DevOps a kter\u00fd se de facto stal standardem pro CICD.<\/p>\n<p><\/p>\n<p>Co je to Jenkins? P\u0159edstavte si, \u017ee m\u00e1te kouzeln\u00e9 ovl\u00e1d\u00e1n\u00ed pro r\u016fzn\u00e9 slu\u017eby a n\u00e1stroje. S\u00e1m o sob\u011b je n\u00e1stroj CI\/CD, jako je Jenkins, k ni\u010demu, ale s r\u016fzn\u00fdmi n\u00e1stroji a slu\u017ebami se st\u00e1v\u00e1 v\u0161emocn\u00fdm.<\/p>\n<p><\/p>\n<p>Krom\u011b Jenkins existuje mnoho dal\u0161\u00edch otev\u0159en\u00fdch n\u00e1stroj\u016f, vyberte si jak\u00fdkoliv. <\/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=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/2bbe6af719b90da0eb0d367aae66d779.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Takto vypad\u00e1 proces DevOps s n\u00e1strojem 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=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/2410013c9e6030596a59f3ed7ae3a7e7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>M\u00e1te na localhostu n\u00e1stroj CI\/CD, ale zat\u00edm nen\u00ed moc co d\u011blat. P\u0159ejdeme k dal\u0161\u00edmu kroku.<\/p>\n<p><\/p>\n<h3 id=\"shag-2-upravlenie-versiyami\">Krok 2: spr\u00e1va verz\u00ed<\/h3>\n<p><\/p>\n<p>Nejlep\u0161\u00ed (a pravd\u011bpodobn\u011b nejjednodu\u0161\u0161\u00ed) zp\u016fsob, jak si ov\u011b\u0159it magii n\u00e1stroje CI\/CD, je integrovat jej s n\u00e1strojem pro spr\u00e1vu verz\u00ed (source control management, SCM). Pro\u010d je pot\u0159ebn\u00e1 spr\u00e1va verz\u00ed? P\u0159edstavte si, \u017ee vytv\u00e1\u0159\u00edte aplikaci. Programujete ji v Jav\u011b, Pythonu, C++, Go, Ruby, JavaScriptu nebo jak\u00e9mkoli jin\u00e9m jazyce, kter\u00fdch je spousta. To, co p\u00ed\u0161ete, se naz\u00fdv\u00e1 zdrojov\u00fd k\u00f3d. Zpo\u010d\u00e1tku, zejm\u00e9na pokud pracujete sami, m\u016f\u017eete v\u0161echno uchov\u00e1vat v m\u00edstn\u00edm adres\u00e1\u0159i. Ale kdy\u017e projekt roste a dal\u0161\u00ed lid\u00e9 se k n\u011bmu p\u0159ipojuj\u00ed, pot\u0159ebujete zp\u016fsob, jak sd\u00edlet zm\u011bny v k\u00f3du, p\u0159i\u010dem\u017e se vyhnout konflikt\u016fm p\u0159i slou\u010den\u00ed zm\u011bn. A nav\u00edc mus\u00edte m\u00edt n\u011bjak\u00fd zp\u016fsob, jak obnovit p\u0159edchoz\u00ed verze bez pou\u017e\u00edv\u00e1n\u00ed z\u00e1loh a metody copy-paste pro soubory s k\u00f3dem.<\/p>\n<p><\/p>\n<p>A tady se bez SCM neobejdete. SCM uchov\u00e1v\u00e1 k\u00f3d v repozit\u00e1\u0159\u00edch, spravuje jeho verze a koordinuje jej mezi v\u00fdvoj\u00e1\u0159i.<\/p>\n<p><\/p>\n<p>N\u00e1stroj\u016f SCM je dost, ale standardem de facto se pr\u00e1vem stal Git. Doporu\u010duji pou\u017e\u00edt pr\u00e1v\u011b jeho, ale existuj\u00ed i jin\u00e9 mo\u017enosti.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/37555a476c27f7066e5648b9e9e4d90b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Takto vypad\u00e1 pipeline DevOps po p\u0159id\u00e1n\u00ed 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=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/040819b00dc608a9131856dd6a7d4a19.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>N\u00e1stroj CI\/CD m\u016f\u017ee automatizovat nahr\u00e1v\u00e1n\u00ed a stahov\u00e1n\u00ed zdrojov\u00e9ho k\u00f3du a t\u00fdmovou spolupr\u00e1ci. Nen\u00ed to \u0161patn\u00e9? Ale jak nyn\u00ed z toho vytvo\u0159it funk\u010dn\u00ed aplikaci, kterou miluj\u00ed miliardy u\u017eivatel\u016f?<\/p>\n<p><\/p>\n<h3 id=\"shag-3-instrument-avtomatizacii-sborki\">Krok 3: n\u00e1stroj pro automatizaci sestaven\u00ed<\/h3>\n<p><\/p>\n<p>V\u0161echno prob\u00edh\u00e1, jak m\u00e1. M\u016f\u017eete nahr\u00e1vat k\u00f3d a zaznamen\u00e1vat zm\u011bny v syst\u00e9mu spr\u00e1vy verz\u00ed, a tak\u00e9 si pozvat p\u0159\u00e1tele, aby s v\u00e1mi pracovali. Ale zat\u00edm nem\u00e1te aplikaci. Aby to byla webov\u00e1 aplikace, je t\u0159eba ji zkompilovat a um\u00edstit do bal\u00ed\u010dku pro dod\u00e1n\u00ed nebo spustit jako spustiteln\u00fd soubor. (Interpretovan\u00fd programovac\u00ed jazyk, jako JavaScript nebo PHP, nen\u00ed t\u0159eba kompilovat.)<\/p>\n<p><\/p>\n<p>Pou\u017e\u00edvejte n\u00e1stroj pro automatizaci sestaven\u00ed. A\u0165 u\u017e si vyberete jak\u00fdkoli n\u00e1stroj, bude shroma\u017e\u010fovat k\u00f3d ve spr\u00e1vn\u00e9m form\u00e1tu a automatizovat \u00faklid, kompilaci, testov\u00e1n\u00ed a nasazen\u00ed. Existuj\u00ed r\u016fzn\u011b zam\u011b\u0159en\u00e9 n\u00e1stroje pro sestaven\u00ed v z\u00e1vislosti na jazyce, ale obvykle se pou\u017e\u00edvaj\u00ed n\u00e1sleduj\u00edc\u00ed varianty s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/cc6e958a82ac0676429da6c48e66910f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Skv\u011ble! Te\u010f vlo\u017e\u00edme konfigura\u010dn\u00ed soubory n\u00e1stroje pro automatizaci sestaven\u00ed do syst\u00e9mu spr\u00e1vy verz\u00ed, aby je n\u00e1stroj CI\/CD sestavil.<\/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=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/bba539d128425e7e3ddacdc6028d3604.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Vypad\u00e1 to dob\u0159e. Ale kam nyn\u00ed v\u0161echno toto nasad\u00edme?<\/p>\n<p><\/p>\n<h3 id=\"shag-4-server-veb-prilozheniy\">Krok 4: server webov\u00e9 aplikace<\/h3>\n<p><\/p>\n<p>Tak\u017ee m\u00e1te zabalen\u00fd soubor, kter\u00fd lze vykon\u00e1vat nebo nasadit. Aby aplikace skute\u010dn\u011b p\u0159in\u00e1\u0161ela u\u017eitek, mus\u00ed m\u00edt n\u011bjakou slu\u017ebu nebo rozhran\u00ed, ale pot\u0159ebujete v\u0161e n\u011bkam um\u00edstit.<\/p>\n<p><\/p>\n<p>Webovou aplikaci lze um\u00edstit na server webov\u00fdch aplikac\u00ed. Server aplikac\u00ed poskytuje prost\u0159ed\u00ed, kde lze vykon\u00e1vat programovou logiku z bal\u00ed\u010dku, vykreslovat u\u017eivatelsk\u00e9 rozhran\u00ed a otev\u00edrat webov\u00e9 slu\u017eby p\u0159es socket. Budete pot\u0159ebovat HTTP server a n\u011bkolik dal\u0161\u00edch prost\u0159ed\u00ed (nap\u0159\u00edklad virtu\u00e1ln\u00ed stroj), abyste mohli nainstalovat server aplikac\u00ed. Zat\u00edm si p\u0159edstavme, \u017ee se v tom v\u0161em vyzn\u00e1te (i kdy\u017e o kontejnerech v\u00e1m pov\u00edm n\u00ed\u017ee).<\/p>\n<p><\/p>\n<p>Existuje n\u011bkolik otev\u0159en\u00fdch server\u016f webov\u00fdch aplikac\u00ed.<\/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=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/7802afe041a9d56c20ddbe2885b5cf37.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>U\u017e m\u00e1me t\u00e9m\u011b\u0159 funk\u010dn\u00ed DevOps \u0159et\u011bzec. Skv\u011bl\u00e1 pr\u00e1ce!<\/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=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/3d1e524b63fecebf4973cc34a40c160d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Principi\u00e1ln\u011b m\u016f\u017eete tady skon\u010dit, d\u00e1l u\u017e zvl\u00e1dnete sami, ale stoj\u00ed za to je\u0161t\u011b mluvit o kvalit\u011b k\u00f3du.<\/p>\n<p><\/p>\n<h3 id=\"shag-5-testovoe-pokrytie\">Krok 5: Testovac\u00ed pokryt\u00ed<\/h3>\n<p><\/p>\n<p>Testov\u00e1n\u00ed zabere spoustu \u010dasu a \u00fasil\u00ed, ale je lep\u0161\u00ed hned naj\u00edt chyby a zlep\u0161it k\u00f3d, abyste pot\u011b\u0161ili koncov\u00e9 u\u017eivatele. K tomuto \u00fa\u010delu existuje spousta otev\u0159en\u00fdch n\u00e1stroj\u016f, kter\u00e9 nejen otestuj\u00ed k\u00f3d, ale tak\u00e9 navrhnou, jak ho zlep\u0161it. V\u011bt\u0161ina n\u00e1stroj\u016f CI\/CD se m\u016f\u017ee p\u0159ipojit k t\u011bmto n\u00e1stroj\u016fm a automatizovat proces.<\/p>\n<p><\/p>\n<p>Testov\u00e1n\u00ed je rozd\u011bleno na dv\u011b \u010d\u00e1sti: testovac\u00ed frameworky pro psan\u00ed a prov\u00e1d\u011bn\u00ed test\u016f a n\u00e1stroje s doporu\u010den\u00edmi pro zlep\u0161en\u00ed kvality k\u00f3du.<\/p>\n<p><\/p>\n<h3 id=\"freymvorki-testirovaniya\">Testovac\u00ed frameworky<\/h3>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/cu\/4l\/pn\/cu4lpnpdqa7yd9f5zwsxrrlbylg.png\"><img decoding=\"async\" alt=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/c17426a30a4f140be87489d2c8b0d0b9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>N\u00e1stroje s doporu\u010den\u00edmi pro kvalitu<\/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=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/bc65784b8bf5ccaaeef96a0c6ee4422e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>V\u011bt\u0161ina t\u011bchto n\u00e1stroj\u016f a framework\u016f je napsan\u00e1 pro Java, Python a JavaScript, proto\u017ee C++ a C# jsou propriet\u00e1rn\u00ed (i kdy\u017e GCC m\u00e1 otev\u0159en\u00fd zdrojov\u00fd k\u00f3d).<\/p>\n<p><\/p>\n<p>N\u00e1stroje pokryt\u00ed test\u016f jsme implementovali a nyn\u00ed by m\u011blo vypadat DevOps pipeline jako na obr\u00e1zku na za\u010d\u00e1tku p\u0159\u00edru\u010dky.<\/p>\n<p><\/p>\n<h2 id=\"dopolnitelnye-shagi\">Dal\u0161\u00ed kroky<\/h2>\n<p><\/p>\n<h3 id=\"konteynery\">Kontejnery<\/h3>\n<p><\/p>\n<p>Jak jsem ji\u017e zm\u00ednil, aplika\u010dn\u00ed server lze hostit na virtu\u00e1ln\u00edm stroji nebo serveru, ale kontejnery jsou popul\u00e1rn\u011bj\u0161\u00ed.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-are-linux-containers\">Co jsou to kontejnery<\/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>Pro kontejnery se obvykle pou\u017e\u00edv\u00e1 Docker a Kubernetes, i kdy\u017e existuj\u00ed i jin\u00e9 mo\u017enosti.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/6n\/wc\/rc\/6nwcrcuhk9swwjxdddudr1cqpzc.png\"><img decoding=\"async\" alt=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/8749b7044102ff7f23f2c970d6939246.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>P\u0159e\u010dt\u011bte si \u010dl\u00e1nky o Dockeru a Kubernetes na <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\">Co je Docker?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/business\/15\/1\/introduction-docker\">\u00davod do Dockera<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-is-kubernetes\">Co je Kubernetes?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/17\/11\/kubernetes-lightning-talk\">Kubernetes od z\u00e1kladu<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"instrumenty-avtomatizacii-promezhutochnogo-po\">N\u00e1stroje pro automatizaci middleware<\/h3>\n<p><\/p>\n<p>Na\u0161e DevOps \u0159et\u011bzce jsou zam\u011b\u0159eny na spole\u010dn\u00e9 sestavov\u00e1n\u00ed a dod\u00e1v\u00e1n\u00ed aplikac\u00ed, ale s n\u00e1stroji DevOps lze d\u011blat i dal\u0161\u00ed zaj\u00edmav\u00e9 v\u011bci. Nap\u0159\u00edklad pou\u017e\u00edvat n\u00e1stroje \"infrastruktura jako k\u00f3d\" (IaC), kter\u00e9 se tak\u00e9 naz\u00fdvaj\u00ed n\u00e1stroji pro automatizaci middleware. Tyto n\u00e1stroje pom\u00e1haj\u00ed automatizovat instalaci, spr\u00e1vu a dal\u0161\u00ed \u00fakoly pro middleware. Nap\u0159\u00edklad n\u00e1stroj pro automatizaci m\u016f\u017ee vz\u00edt aplikace (server webov\u00e9 aplikace, datab\u00e1zi, n\u00e1stroje pro monitorov\u00e1n\u00ed) s spr\u00e1vn\u00fdmi konfiguracemi a nasadit je na aplika\u010dn\u00ed server.<\/p>\n<p><\/p>\n<p>Zde je n\u011bkolik otev\u0159en\u00fdch n\u00e1stroj\u016f pro automatizaci middleware:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem\" src=\"\/wp-content\/uploads\/2019\/05\/23bb3259f336a3f0ebf11ab4aa5471ea.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Podrobnosti v \u010dl\u00e1nc\u00edch na <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\">Pr\u016fvodce za\u010d\u00e1tky s Ansible<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/1\/automating-deployment-strategies-ansible\">Strategie automatizace nasazen\u00ed s Ansible<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/12\/configuration-management-tools\">5 nejlep\u0161\u00edch n\u00e1stroj\u016f pro spr\u00e1vu konfigurace<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"i-chto-teper\">A co te\u010f?<\/h3>\n<p><\/p>\n<p>To je jen \u0161pi\u010dka ledovce. DevOps \u0159et\u011bzec m\u016f\u017ee ud\u011blat mnohem v\u00edc. Za\u010dn\u011bte s CI\/CD n\u00e1strojem a zjist\u011bte, co dal\u0161\u00edho lze automatizovat pro usnadn\u011bn\u00ed va\u0161\u00ed pr\u00e1ce. Nezapome\u0148te na <noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/alternatives\/slack\">otev\u0159en\u00e9 komunika\u010dn\u00ed n\u00e1stroje<\/a><\/noindex> pro efektivn\u00ed spolupr\u00e1ci.<\/p>\n<p><\/p>\n<p>Zde je n\u011bkolik dobr\u00fdch \u010dl\u00e1nk\u016f o DevOps pro za\u010d\u00e1te\u010dn\u00edky:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/devops\">Co je DevOps<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/master-devops-engineer\">5 dovednost\u00ed DevOps v\u00fdvoj\u00e1\u0159e<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/11\/how-non-engineer-got-devops\">DevOps pro v\u0161echny<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/1\/getting-started-predictive-analytics-devops\">\u00davod do prediktivn\u00ed analytiky v DevOps<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>A tak\u00e9 m\u016f\u017eete integrovat DevOps s otev\u0159en\u00fdmi n\u00e1stroji pro agile:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/10\/what-agile\">Co je agile?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/steps-agile-developer\">4 kroky k osvojov\u00e1n\u00ed agile<\/a><\/noindex><\/li>\n<\/ul>\n<p>Zdroj: <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.3 - 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\/cs\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47Pr\u016fvodce pro za\u010d\u00e1te\u010dn\u00edky: Vytv\u00e1\u0159en\u00ed DevOps \u0159et\u011bzc\u016f pomoc\u00ed n\u00e1stroj\u016f s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/cs\/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":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/33504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=33504"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/33504\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/25204"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=33504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=33504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=33504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}