„Zavádějte systém, nikoliv pouze software“
DevOps se v technologickém odvětví stal populárním pojmem. Nabízí totiž organizacím značné výhody při zrychlování cyklu vývoje softwaru.
Co přesně DevOps znamená?
Na otázku, co je to DevOps, neexistuje jednoznačná definice.
DevOps není konkrétní nástroj, technologie ani rámec. Je to spíše filozofie a přístup. Jde o soubor metodik, které propojují vývoj softwaru (Dev) s IT operacemi (Ops). Tím pomáhá zefektivnit vývoj a zajišťuje kontinuální integraci a dodávku kvalitního softwaru.
Pokud s DevOps teprve začínáte, podívejte se na tento úvodní materiál nebo si projděte online kurz – Docker pro úplné začátečníky.
Jaké jsou výhody DevOps?
- Zlepšení spolupráce a komunikace mezi týmy
- Zrychlení dodávek softwaru a produktů
- Snížení celkových nákladů
- Zefektivnění procesů
- Rychlejší řešení problémů
V DevOps neexistuje univerzální nástroj pro všechny potřeby. Důležité je vybrat takové nástroje, které nejlépe odpovídají specifickým požadavkům dané organizace. Podívejme se na některé z nich.
Kontinuální integrace
Jenkins
Jenkins je jeden z nejpoužívanějších open-source nástrojů DevOps. Podporuje kontinuální integraci a dodávání softwaru, a to nezávisle na platformě. Umožňuje vytvářet a nasazovat projekty pomocí různých sestavení. Lze jej integrovat s mnoha nástroji pro testování a nasazování.
Travis CI
Travis CI je cloudová platforma pro kontinuální integraci. Používá se k vytváření a testování projektů hostovaných na GitHubu a Bitbucketu. Konfiguruje se pomocí souboru YAML.
Pro open-source projekty je zdarma. Pro soukromé projekty je zpoplatněn.
Bamboo
Bamboo, vyvinutý společností Atlassian, je další populární nástroj pro kontinuální integraci. Mnoho jeho funkcí je k dispozici ihned po instalaci, takže není nutné stahovat další pluginy jako u Jenkins. Navíc podporuje hladkou integraci s dalšími produkty Atlassian, jako je JIRA a Bitbucket.
Hudson
Hudson je open-source nástroj napsaný v jazyce Java. Funguje v servlet kontejnerech, jako je GlassFish nebo Apache Tomcat. Umožňuje spouštět automatizační sady při jakékoli změně v systému správy zdrojů (např. GIT, SVN). Poskytuje také podporu pro základní maven a Java projekty.
TeamCity
TeamCity, od společnosti JetBrains, je nástroj pro kontinuální integraci a správu sestavení. Nabízí jednoduché uživatelské rozhraní a poskytuje informace o průběhu, stavu a historii všech konfigurací a projektů.
CircleCI
CircleCI nabízí cloudové i on-premise řešení pro kontinuální integraci. Je snadné ho nastavit a podporuje jednoduché konfigurace YAML.
Další CI nástroje si můžete prohlédnout zde.
Plánování a spolupráce
JIRA
JIRA je populární nástroj pro řízení projektů, vyvinutý společností Atlassian. Slouží pro sledování úkolů, chyb a projektů. Umožňuje monitorovat stav projektu a jednotlivých problémů. Lze jej snadno integrovat s dalšími produkty Atlassian, jako je Bitbucket, a také s dalšími nástroji DevOps, jako je Jenkins.
Slack
Slack je cloudový nástroj pro týmovou spolupráci a komunikaci. Umožňuje sdílet dokumenty a další informace mezi členy týmu. Lze ho také integrovat s dalšími nástroji jako GIT, Jenkins, JIRA, atd.
Zoom
Zoom je platforma pro online konference a sdílení obrazovky. Tým se může připojit pomocí zvuku nebo videa.
Zoom zvládne online setkání i s týmem o velikosti až 1000 lidí.
Clarizen
Clarizen je software pro spolupráci a řízení projektů. Pomáhá se sledováním problémů, správou úkolů a správou portfolia projektů. Je snadno přizpůsobitelný a nabízí uživatelsky přívětivé rozhraní.
Asana
Asana je webová a mobilní aplikace, která pomáhá týmům organizovat, sledovat a řídit práci efektivně. Používá se ke sledování denních úkolů týmu a podporuje komunikaci v rámci organizace.
Správa zdrojového kódu
SVN
SVN (Subversion) je nástroj pro centralizovanou správu zdrojového kódu. Pomáhá vývojářům udržovat různé verze kódu a kompletní historii všech změn.
Git
Git je distribuovaný systém správy verzí. Zaměřuje se na rychlost, integritu dat a podporu distribuovaných pracovních postupů. Používá se nejen ke správě kódu, ale také ke sledování změn v jakýchkoli souborech.
Bitbucket
Bitbucket je webová hostingová platforma od společnosti Atlassian. Nabízí efektivní systém pro kontrolu kódu a sledování změn. Lze ji snadno integrovat s dalšími nástroji DevOps, jako je Jenkins a Bamboo.
GitHub
GitHub je platforma pro hostování kódu. Nabízí funkce pro správu verzí, spolupráci, sledování chyb, vytváření a schvalování požadavků na změny kódu a správu úkolů.
Sestavování
Ant
Apache Ant je open-source nástroj pro sestavování a nasazování softwaru založený na Javě. Používá formát XML. Má vestavěné úlohy, které umožňují kompilaci, sestavování, testování a spouštění Java aplikací.
Maven
Maven je nástroj pro automatizaci sestavování, primárně používaný pro Java projekty. Obsahuje XML soubor, který popisuje vytvářený projekt, jeho závislosti na externích komponentách, sekvenci sestavení, adresáře a další potřebné zásuvné moduly.
Grunt
Grunt je javascriptový nástroj, který pomáhá vytvářet aplikace. Umožňuje automatizovat opakující se úkoly jako je kompilace, testování, linting kódu a ověřování. Je alternativou k nástrojům jako Make nebo Ant.
Gradle
Gradle je open-source systém pro automatizaci sestavování, který staví na konceptech Apache Maven a Apache Ant. Místo konfiguračního souboru XML používá programovací jazyk Groovy. Podporuje přírůstková sestavení automatickým určením, které části sestavení jsou aktuální.
Správa konfigurace
Puppet
Puppet je open-source nástroj pro správu konfigurace. Používá se ke konfiguraci, nasazení a správě mnoha serverů. Podporuje infrastrukturu jako kód a je napsán v Ruby DSL. Podporuje také dynamické škálování serverů.
Chef
Chef je open-source nástroj pro správu konfigurace. Pro správu infrastruktury na virtuálních i fyzických serverech využívá jazyk Ruby. Umožňuje spravovat složitou infrastrukturu na virtuálních, fyzických i cloudových serverech.
Ansible
Ansible je open-source nástroj pro správu konfigurace, dodávání softwaru, orchestraci a nasazování aplikací. Je to jednoduchý, ale výkonný nástroj pro automatizaci jednoduchých i složitých vícevrstvých IT aplikací.
SaltStack
SaltStack je open-source software napsaný v Pythonu. Používá push model pro provádění příkazů přes SSH. Podporuje horizontální i vertikální škálování. Umožňuje psát libovolné skripty pomocí šablon YAML.
Terraform
Terraform je open-source nástroj pro bezpečné a efektivní vytváření, úpravy, nasazování a verzování infrastruktury. Používá se pro správu stávajících i nových cloudových řešení. Umožňuje definovat infrastrukturu v konfiguraci/kódu a snadno sledovat změny.
Vagrant
Vagrant je oblíbený nástroj pro vytváření a správu virtuálních strojů. Automatizuje pracovní postupy. Pomáhá zkrátit dobu nastavování vývojového prostředí a zlepšuje paritu s produkčním prostředím.
Kontinuální zabezpečení
Snyk
Snyk integruje do vývojového cyklu automatické vyhledávání a opravu bezpečnostních zranitelností v open-source kódu. Podporuje JS, .Net, PHP, NPM, jQuery, Python, Java atd. a lze jej integrovat do kódování, správy kódu, CI/CD, kontejnerů i nasazování.
Snyk má největší databázi open-source zranitelností.
Invicti
Invicti automaticky skenuje aplikace z hlediska bezpečnostních nedostatků. Poskytuje použitelné informace, takže můžete podnikat kroky na základě priorit. V DevOps se skenuje nový kód, hlásí se nalezené chyby do sledovacího systému (např. Jira nebo GitHub) a po opravě se znovu skenuje. Integrován je v každé fázi SDLC (Software Development Life Cycle).
Testování
Selenium
Selenium je populární open-source testovací nástroj. Podporuje automatizaci testování v různých prohlížečích a operačních systémech. Lze ho integrovat s nástroji pro správu testů jako ALM a JIRA a také s dalšími DevOps nástroji, jako je Jenkins, Teamcity a Bamboo.
JUnit
JUnit je open-source testovací framework pro jednotkové testování. Podporuje různé testovací anotace, takže každý vývojář může psát testovací případy. Lze ho integrovat s dalšími DevOps nástroji, jako je Jenkins a GIT.
TestNG
TestNG je open-source testovací framework inspirovaný JUnit a NUnit. Lze ho integrovat se Selenium pro konfiguraci a spouštění automatizovaných testovacích skriptů. Generuje testovací reporty v HTML nebo XSLT.
Monitorování
Nagios
Nagios je populární open-source nástroj pro kontinuální monitorování. Pomáhá monitorovat systémy, aplikace, služby a obchodní procesy v DevOps. Upozorní, když dojde k problému a také po vyřešení problému.
Sensu
Sensu je open-source monitorovací nástroj napsaný v jazyce Ruby. Umožňuje efektivní monitorování serverů, služeb, aplikací a cloudové infrastruktury. Je snadno škálovatelný a umožňuje monitorovat tisíce serverů.
Datadog
Datadog je serverový metrický nástroj založený na agentech. Podporuje integraci s různými webovými servery, aplikacemi a cloudovými službami. Poskytuje různé grafy monitorování v reálném čase.
ELK
ELK je soubor open-source produktů – Elasticsearch, Logstash a Kibana, které vyvíjí, spravuje a udržuje společnost Elastic. Umožňuje sběr dat z různých zdrojů, analyzovat je a vizualizovat v reálném čase.
Sematext
Sematext je komplexní monitorovací řešení. Poskytuje detailní přehled o IT infrastruktuře, monitorování výkonu, protokolů, API, webového provozu, uživatelské zkušenosti a další.
Má přednastavené řídicí panely a pravidla pro oblíbené aplikace a infrastrukturu (databáze, cloudové servery, kontejnery, atd.). Nabízí detekci anomálií, detekci selhání srdečního tepu, plánování a integrace pro zasílání upozornění.
Grafana
Grafana je open-source analytická platforma pro sledování metrik z infrastruktury, aplikací a hardwaru. Umožňuje vizualizovat data, vytvářet řídicí panely, nastavovat upozornění a spolupracovat. Lze čerpat data z mnoha zdrojů, jako je Prometheus, InfluxDB, Elasticsearch, AWS CloudWatch atd.
New Relic
New Relic je nástroj pro monitorování výkonu aplikací (APM). Poskytuje data o výkonu webových aplikací a spokojenosti koncových uživatelů. Podporuje sledování transakcí a zobrazuje je v tabulkách, grafech a sestavách.
Cloud hosting
AWS
AWS (Amazon Web Services) je webhostingová platforma od společnosti Amazon. Nabízí flexibilní, spolehlivé, škálovatelné a nákladově efektivní řešení. Nemusíte se starat o nastavování IT infrastruktury.
GCP
Google Cloud je kompletní sada cloudových hostingových a počítačových služeb. Podporuje širokou škálu služeb pro výpočetní techniku, úložiště a vývoj aplikací.
Azure
Azure je cloudová platforma od společnosti Microsoft. Umožňuje vytvářet, nasazovat, testovat a spravovat aplikace a služby. Služby jsou poskytovány formou PaaS (Platform as a Service) a IaaS (Infrastructure as a Service).
Kontejnerizace/Orchestrace
Docker
Docker je nástroj pro vytváření, nasazování a spouštění aplikací pomocí kontejnerů. Umožňuje vývojářům zabalit aplikaci se všemi potřebnými komponentami, knihovnami a závislostmi do jediného balíčku. Funguje na principu „vytvoř jednou, spusť kdekoliv“.
Kubernetes
Kubernetes je open-source systém pro orchestraci kontejnerů. Původně vyvinutý společností Google, nyní spravován organizací Cloud Native Computing Foundation. Používá se pro automatizaci nasazování, škálování a správu aplikací. Funguje s dalšími kontejnerovými nástroji včetně Dockeru.
Další nástroje pro orchestraci kontejnerů si můžete prohlédnout zde.
Závěr
Doufám, že vám výše uvedené nástroje pomohou na vaší DevOps cestě.
Líbil se vám tento článek? Sdílejte ho dál!