Konečný seznam nástrojů DevOps

„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!