- Přehledy IS
- APS (20)
- BPM - procesní řízení (22)
- Cloud computing (IaaS) (10)
- Cloud computing (SaaS) (33)
- CRM (51)
- DMS/ECM - správa dokumentů (20)
- EAM (17)
- Ekonomické systémy (68)
- ERP (80)
- HRM (27)
- ITSM (6)
- MES (32)
- Řízení výroby (36)
- WMS (29)
- Dodavatelé IT slueb a řeení
- Datová centra (25)
- Dodavatelé CAD/CAM/PLM/BIM... (39)
- Dodavatelé CRM (33)
- Dodavatelé DW-BI (50)
- Dodavatelé ERP (71)
- Informační bezpečnost (50)
- IT řeení pro logistiku (45)
- IT řeení pro stavebnictví (26)
- Řeení pro veřejný a státní sektor (27)
ERP systémy
CRM systémy
Plánování a řízení výroby
AI a Business Intelligence
DMS/ECM - Správa dokumentů
HRM/HCM - Řízení lidských zdrojů
EAM/CMMS - Správa majetku a údrby
Účetní a ekonomické systémy
ITSM (ITIL) - Řízení IT
Cloud a virtualizace IT
IT Security
Logistika, řízení skladů, WMS
IT právo
GIS - geografické informační systémy
Projektové řízení
Trendy ICT
E-commerce B2B/B2C
CAD/CAM/CAE/PLM/3D tisk![]() | |
| Přihlaste se k odběru newsletteru SystemNEWS, který kadý týden přináí výběr článků z oblasti podnikové informatiky | |
![]() | |
Pro DevOps je důleitá celková změna mylení
Přesná definice a vymezení DevOps je velice těká otázka často i pro odborníky, kteří se tímto oborem zabývají polovinu své profesní kariéry. Zkusíme v tomto krátkém článku přiblíit, co tato role zahrnuje a čemu se naopak snaí vyhýbat. V centru pozornosti jsou vývojáři (developers) a systémoví administrátoři a správci pro nasazování do prostředí (operations).

V počátcích technologického vývoje, se projektový tým, který vytvářel aplikace, skládal z vývojářů, analytiků, testerů, systémových administrátorů, síařů a hardwareových specialistů. Pokud byl tento tým sehraný, bylo z poloviny vyhráno. Velice zjednodueně: Lidé zodpovědní za vývoj vytvořili aplikaci (vývojáři) a předali ji systémovým administrátorům, kteří ji nasazovali (jakkoliv automatizovaně) na hardware v serverovně.
Ne zas tak dávno přiel ke slovu tzv. agilní přístup k vývoji. Ten se tím rapidně zrychlil a komunikace mezi vývojáři a operations byla čím dál sloitějí. V podstatě pak stačilo málo aby produkt, (nebo jeho verze) na který klient netrpělivě čeká, nebyl vůbec doručen. Produkt, nebo jeho verze byla případně doručena, ale se značnou chybovostí. Na vině byla, a větinou stále je, komunikace mezi různými částmi týmu.
Existují tedy vývojáři a operations. Tyto dva tábory se spolu moná sice snaí komunikovat a domlouvat, ale v praxi je to velice sloité. Kadý mluví takříkajíc vlastním jazykem, případně jiným nářečím. To, co je jednoduché z pohledu vývoje, nemusí být implementovatelné na serverech z pohledu infrastruktury. A to, co je velice snadno řeitelné v infrastruktuře bude zase velice těký oříek pro vývojáře.
Co by se stalo, kdybychom měli vývojáře a poslali ho na studia k operations? Nebo z druhé strany, měli někoho z operations a poslali ho na výzvědy k vývojářům? Tímto krokem nakonec vznikne někdo, kdo si můe říkat DevOps specialista. Aby si tento titul ale opravdu zaslouil, musí pochopit více, ne z čeho projekt je a kam se implementuje. Musí změnit zejména způsob mylení.
Mluvíme o celé sadě postupů, které automatizují a standardizují procesy mezi vývojem software a operations, tak aby bylo moné SW buildovat, testovat a releasovat rychleji a spolehlivěji.
You build it, you run it!
Základní mylenkou je, e DevOps není jen technologie, ale celé paradigma vývoje. Aby to ve firmě fungovalo, je třeba změnit nejen pouívané aplikace, ale celý přístup k vývoji, testování i nasazování do produkce a vůbec celé uvaování nad tímto procesem.
Dříve by to byla utopie, ale dnes u je moné pronajmout a nechat si spravovat celé clustery s propojením na nejrůznějí sluby od databází (např. Postgres, MySQL nebo CockroachDB), přes fronty (jako Kaftka či RabbitMQ), analytické systémy (Hadoop), logovací a monitorovací infrastrukturu (Elasticsearch, kibana, grafana) a po nejrůznějí IOT sluby a REST API. A jak jinak urychlit celý proces od vytvoření a po nasazení aplikace, ne tím, e si budete umět tyto aplikace spoutět sami.
Virtual Private Cloud
Pokud firma provozuje nějakou aplikaci, je dnes trendem místo vlastní on-premise infrastruktury pouívat cloud. Cloudová infrastruktura dnes u můe být optimalizovaná pro vysokou dostupnost, pro nízkou latenci, dokonce lze nastavit, e například zákazníci z Čech budou vyuívat datový cloud v Německu a zákazníci z Francie ve Francii. Moderní cloudy splňují vysoké standardy zabezpečení a dalí výhodou je monost pouívat řadu technologií spojených s jejich provozem jako slubu. V reálu to znamená, e si firmy nemusejí dret specialisty, kteří se budou starat o infrastrukturu, její údrbu a instalaci, protoe to ve dostanou jako slubu, ve které formou tzv. microservices provozují své aplikace. etří se tedy (dnes tak nedostatkové) lidské síly i peníze. Důleité je vyvíjet nové aplikace jako cloud native. Nejčastějí cloudy, se kterými se setkáte, jsou Azure, AWS a Google Cloud.
Internet of Things Architecture
Microservice architecture
Dříve se větina aplikací vyvíjela jako monolitická. Dnes se dělají aplikace z meních částí, které spolu přes jedno rozhraní vzájemně komunikují. Výhoda? Ty monolitické startují třeba čtvrt hodiny, mení aplikace v řádu desítek vteřin. U microservice architektury se vdy snaíme, aby byla nasazovaná jako Platform as a Service nebo Software as a Service.
Oblíbenou metodologií je v této oblasti "The Twelve-Factor App", která je vlastně souhrnem pravidel, která zásadně zpřehlední vývoj, pokud je dodruje celý tým. Popisuje, jak zacházet s kódem, kde ukládat konfigurace, co se zálohami, buildy, jak na kálování, logy či administraci.
Serverless architecture
Dalí velice zajímavý stavební kámen architektury moderních aplikací je serverless. Z výe zmíněných malých aplikací se zkrátka vezme část kódu, která můe být výpočetně náročná, nebo naopak není potřeba její neustálý běh, pouije se k tomu interface, který vystavuje jak AWS (AWS Lambda) tak Azure (Azure Functions), ten si nastartuje malé subprocesy, spočítá výsledky a vrátí je zpět do servisy. Dokáe se kálovat i na úrovni funkcí, které mohou běet paralelně a nezávisle.
Serverless Application Architecture
Automatizace
Nezmínili jsme jetě jednu vhodnou vlastnost pro DevOps a tou je lenost. DevOps si snaí maximálně ulehčit ivot automatizací. A automatizace je alfou a omegou dneního DevOps vývoje. Automatizujeme nasazování, pracovní procesy, testování, infrastrukturu, i správu a revizi uivatelských práv a přístupů, prostě vechno. Kdy s automatizací začít? Pokud je potřeba jakoukoliv činnost opakovat víckrát, ne jednou.
Automatizované testování kódu
Abychom mohli vyvíjet rychle a měli jistotu, e jsme nikde nic nerozbili, musíme mít ve pokryté testy, které si píí sami vývojáři. Tato mylenka dotaena ad absurdum znamená, e by se měl naprogramovat nejdřív test a pak a funkce. Test Driven Development ostatně není v oblasti vývoje softwaru ádná novinka. Nečekat na testery a psát si testy samostatně patří to k tomu výe zmiňovanému DevOps přemýlení.
Ve světě Javy za tímto účelem pouíváme JUnit, Mickito, MockMvc, Selenium, Sonar atd. Nástrojů je tedy dost, častěji chybí ochota vývojářů se touto činností zabývat.
Automatizace workflows
Pro automatizaci pracovních postupů pouíváme nástroje jako Jenkins (CI/CD), Gitlab, Container registry, Jira. V praxi to vypadá tak, e vývojář umístí svůj kód do GitLabu, automatická pipeline nad ním spustí unit testy, zkompiluje program a nasadí ho do prostředí na server, kde pak bude kontinuálně monitorovaný. V ideálním případě opravdu ve běí samo.
Automatizace infrastruktury: Infrastruktura jako kód!
Ideální konečný stav je, aby na vech prostředích ve běelo vdy stejně a aby se tato prostředí vytvořila na pouhé kliknutí. Nikdo tedy neinstaluje operační systém, vechno by mělo být naskriptované pomocí různých ablon. Abychom mohli vytvořit infrastrukturu jako kód, musíme nejdříve odstínit aplikaci od hardware. O to se starají například nástroje jako Docker a Podman. Vytvořenou aplikaci vezmeme a nasadíme do nějakého ekosystému dnes nejčastěji buď Kubernetes nebo OpenShift. Vechno můe běet i on-premise, ale to není tak zásadní, oč v DevOps běí. Jak Kubernetes, tak OpenShift lze provozovat po několika kliknutích. Kubernetes běí hostovaně u vech velkých poskytovatelů (AWS EKS, Azure AKS, nebo Google GKE).
U infrastruktury máme několik moností. Můeme naklikat infrastrukturu z pohodlí webového prohlíeče, nebo, a to je více preferované, vytvořit ablonu, podle které bude poskytovatel vytvářet infrastrukturu přímo přes API vrstvu.
Nejrozířenějí univerzální ablonový software je Terraform. Obsahuje napojení na vechny velké poskytovatele, nebo je moné pouít on-premise servery. Snazí a mnohdy lepí, je napsat tyto ablony v nativních scriptech (u AWS např Cloudformation v YAML a JSON, nebo nově AWS CDK, kde je moné popsat infrastrukturu např Javascriptem, v JAVA nebo Python). Tím se monosti poskytovatele vyuijí na maximum. Tuto ablonu pak stačí pustit a lze s ní vytvořit identické prostředí i několikrát za sebou (vhodné pro různé environmenty dev/test) Samotné aplikace lze do prostředí dodávat pomocí vech známých nástrojů od Jenkins, Gitlab, Bitbucket.
Měření
Aplikaci máme v produkci, ale tím to nekončí. Je potřeba ji začít vyhodnocovat, analyzovat a opravovat chyby, potřebujeme tedy kontinuální metriky a nástroje pro analýzu. Ke sběru logů a jejich vizualizaci lze vyuít ELK Stack, co je celý balík nástrojů pro tyto účely. Kibana je nástroj, který umoňuje procházení logů ve vizualizované formě na jednom místě, co perfektně umoňuje zjistit výkon aplikace i případně odhalit, kde je přesně problém, vedle filtrování chyb lze zobrazit i metriky z CPU atd.
Metodika
Dříve tak oblíbený a často pouívaný vodopádový přístup sice umoňuje pečlivý, ale v ádném případě ne rychlý vývoj. Proto se dnes pouívají tak často skloňované agilní metodiky, které umoní rozdělit vývoj na malé části a provádět ho po kouscích. Kdy se nad tím zamyslíte, je to v zásadě podstata celé DevOps filozofie - od infrastruktury a po metodiku a naopak. Praktikujeme tedy denní standupy a vývoj běí v krátkých sprintech. Důleitá je standardizace celého vývojového procesu, počínaje analýzou, přes vývoj, testování, nasazování a po monitorování výkonu hotové aplikace.
Závěr
Pro úspěch DevOps projektu je potřeba kombinace odborných znalostí, kvalitní technologie, řemeslné zkuenosti, ale hlavně změna nastavení fungování týmu a uvaování vývojářů. Ale pak to stojí za to. Dobře nastavený projekt pak umoňuje rychlejí inovace, je schopen obratem reagovat na poadavky byznysu, spolupráce týmu je efektivnějí, stoupá celková kvalita kódu a výsledkem jsou častějí releasy.
![]() |
Vojtěch Kijenský Autor článku je Solution Architect ve společnosti Cleverlance. |





















