Den ultimata listan över DevOps-verktyg

By rik

”Utveckla system, inte enbart programvara”

DevOps har blivit ett framträdande begrepp inom tekniksektorn, mycket tack vare dess förmåga att signifikant förkorta mjukvaruutvecklingscykler för organisationer.

Vad innebär DevOps?

Det existerar ingen universell definition på frågan ”Vad är DevOps?”.

DevOps är inte ett konkret verktyg, en teknik eller ett ramverk; det är snarare en filosofi och ett koncept. Det representerar en uppsättning metoder som förenar mjukvaruutveckling (Dev) och IT-drift (Ops), vilket bidrar till snabbare utvecklingsprocesser och möjliggör kontinuerlig integration och leverans med bibehållen hög kvalitet på mjukvaran.

För nybörjare rekommenderas att läsa en introduktionsartikel eller ta del av en onlinekurs. Ett bra exempel är Docker för absoluta nybörjare.

Fördelar med DevOps

  • Förbättrad samverkan och kommunikation
  • Snabbare leverans av mjukvara och produkter
  • Löpande kostnadsminskning
  • Förbättrade processer
  • Effektivare problemlösning

Inom DevOps finns inget enskilt universalverktyg. Det handlar snarare om att välja de verktyg som bäst passar en organisations specifika behov. Låt oss undersöka några av dessa verktyg.

Kontinuerlig integration

Jenkins

Jenkins är ett välkänt, öppen källkod-baserat DevOps-verktyg som stöder kontinuerlig integration och leverans. Det möjliggör kontinuerlig integration och leverans av projekt, oberoende av vilken plattform användaren jobbar med, genom olika bygg- och distributionspipelines. Jenkins kan integreras med en mängd olika test- och distributionsverktyg.

Travis CI

Travis CI är en molnbaserad, distribuerad plattform för kontinuerlig integration, som används för att bygga och testa projekt på GitHub och Bitbucket. Konfigurationen sker genom en YAML-fil.

Tjänsten är kostnadsfri för öppen källkod-projekt, men debiteras för privata projekt.

Bamboo

Bamboo, utvecklat av Atlassian, är ett populärt verktyg för kontinuerlig integration. Många funktioner är inbyggda, vilket minskar behovet av att ladda ner extra plugins, som i Jenkins. Bamboo integreras smidigt med andra Atlassian-produkter som JIRA och Bitbucket.

Hudson

Hudson, en fri programvara skriven i Java, körs i en servletbehållare som GlassFish eller Apache Tomcat. Verktyget möjliggör automatisering baserad på ändringar i källhanteringssystem som GIT och SVN. Det ger också stöd för Maven- och Java-baserade projekt.

TeamCity

TeamCity är en serverbaserad lösning för kontinuerlig integration och hantering, utvecklad av JetBrains. Det har ett användarvänligt gränssnitt och ger detaljerad information om byggprocesser, inklusive historik.

CircleCI

CircleCI erbjuds både som molnbaserad och on-premise-lösning för kontinuerlig integration. Det är enkelt och snabbt att komma igång och stöder lättlästa YAML-konfigurationer.

Det finns många andra CI-verktyg att utforska.

Planering & Samarbete

JIRA

JIRA är ett projekthanteringsverktyg från Atlassian som används för att spåra problem, buggar och projektstatus. Det integreras med andra Atlassian-produkter som Bitbucket, samt med verktyg som Jenkins.

Slack

Slack är ett molnbaserat samarbetsverktyg som underlättar teamkommunikation och samarbete. Det används för att dela dokument och annan information. Slack kan även integreras med verktyg som GIT, Jenkins och JIRA.

Zoom

Zoom är en webbkonferensplattform för skärmdelning och möten. Användare kan delta via ljud eller video.

Zoom klarar möten med upp till 1000 deltagare.

Clarizen

Clarizen är en samarbets- och projektledningsprogramvara för problemspårning, uppgiftshantering och projektportföljhantering. Det är anpassningsbart och har ett användarvänligt gränssnitt.

Asana

Asana är en mobil- och webbaserad applikation som hjälper team att organisera, spåra och hantera sitt arbete. Det används för att spåra dagliga uppgifter och kommunicera över organisationen.

Källkodshantering

SVN

SVN är ett centraliserat versions- och källkontrollverktyg från Apache. Det hjälper utvecklare att hantera olika versioner av källkod och ger en historik över alla ändringar.

Git

Git är ett distribuerat versionskontrollsystem som fokuserar på snabbhet, dataintegritet och stöd för icke-linjära arbetsflöden. Utöver källkodshantering kan det spåra ändringar i alla typer av filer.

Bitbucket

Bitbucket är en webbaserad värdplattform från Atlassian, med ett effektivt kodgranskningssystem som spårar alla kodändringar. Det kan integreras med DevOps-verktyg som Jenkins och Bamboo.

GitHub

GitHub är en kodvärdplattform för versionskontroll och samarbete. Det erbjuder alla funktioner för distribuerad versionskontroll och källkodshantering, samt samarbetsfunktioner som buggspårning och uppgiftshantering.

Byggprocesser

Ant

Apache Ant är ett Java-baserat, öppen källkod-verktyg för byggprocesser och distribution. Det stöder XML-filformat och har inbyggda funktioner för att kompilera, sätta ihop, testa och köra Java-applikationer.

Maven

Maven är ett byggautomatiseringsverktyg som används främst för Java-projekt. Det använder en XML-fil som beskriver projektet, dess beroenden, byggsekvensen och andra nödvändiga inställningar.

Grunt

Grunt är ett JavaScript-baserat verktyg för att bygga applikationer och automatisera repetitiva uppgifter som kompilering, enhetstestning och kodvalidering. Det är ett alternativ till verktyg som Make eller Ant.

Gradle

Gradle är ett öppen källkod-baserat automatiseringssystem, som bygger på koncept från Apache Maven och Apache Ant. Det stöder Groovy-programmeringsspråk istället för XML. Det ger stöd för inkrementella byggen genom att avgöra vilka delar som behöver uppdateras.

Konfigurationshantering

Puppet

Puppet är ett verktyg för konfigurationshantering som används för att konfigurera, distribuera och hantera många servrar. Det stöder infrastruktur som kod-konceptet och är skrivet i Ruby DSL. Det stöder även dynamisk skalning av maskiner efter behov.

Chef

Chef är ett konfigurationshanteringsverktyg, utvecklat av Opscode med hjälp av Ruby. Det hanterar infrastruktur på virtuella eller fysiska maskiner, inklusive komplex infrastruktur i molnet.

Ansible

Ansible är ett verktyg för konfigurationshantering, mjukvaruförsörjning, orkestrering och applikationsdistribution. Det automatiserar enkla och komplexa IT-applikationer.

SaltStack

SaltStack är en öppen källkod-baserad mjukvara skriven i Python, som använder push-modellen för att köra kommandon via SSH-protokoll. Det stöder både horisontell och vertikal skalning. Det använder YAML-mallar för att skriva skript.

Terraform

Terraform är ett verktyg för att bygga, ändra och versionshantera infrastruktur. Det hanterar tjänsteleverantörer och interna lösningar. Det definierar infrastruktur i konfiguration/kod, vilket förenklar ombyggnad, ändring och spårning av infrastruktur.

Vagrant

Vagrant är ett verktyg för att bygga och hantera virtuella maskiner. Det har ett konfigurerbart arbetsflöde med fokus på automatisering, som minskar installationstiden för utvecklingsmiljöer och ökar produktionspariteten.

Kontinuerlig säkerhet

Snyk

Genom att integrera Snyk i utvecklingscykeln kan man automatiskt upptäcka och åtgärda säkerhetssårbarheter i öppen källkod. Det stöder flera programmeringsspråk och ramverk, och kan integreras i olika stadier av utvecklingsprocessen.

Snyk har en omfattande databas över kända sårbarheter.

Invicti

Invicti skannar applikationer efter säkerhetsbrister och genererar rapporter som hjälper till att prioritera åtgärder. Det integreras i varje steg av SDLC och rapporterar fel direkt till spårningssystem som Jira eller GitHub.

Testning

Selenium

Selenium är ett populärt testverktyg med öppen källkod. Det stöder testautomatisering i olika webbläsare och operativsystem och kan integreras med testverktyg som ALM och JIRA, samt DevOps-verktyg som Jenkins, Teamcity och Bamboo.

JUnit

JUnit är ett ramverk för enhetstestning med öppen källkod, som används av utvecklare för att skriva och köra repeterbara testfall. Det stöder olika testkommentarer för att göra enhetstester smidigare. Det integreras med DevOps-verktyg som Jenkins och GIT.

TestNG

TestNG är ett ramverk med öppen källkod, inspirerat av Junit och Nunit. Det integreras med Selenium WebDriver för att konfigurera och köra automatiska testskript. Det genererar även testrapporter i format som HTML eller XSLT.

Övervakning

Nagios

Nagios är ett övervakningsverktyg med öppen källkod. Det övervakar system, applikationer, tjänster och affärsprocesser. Det varnar användare vid problem med infrastrukturen och när problemen är lösta.

Sensu

Sensu är ett övervakningsverktyg med öppen källkod, skrivet i Ruby. Det övervakar servrar, tjänster, applikationer och molninfrastruktur. Det är skalbart och kan övervaka tusentals servrar.

Datadog

Datadog är ett agentbaserat verktyg för servermetrik, med integration för olika webbservrar, applikationer och molnservrar. Instrumentpanelerna ger realtidsövervakning av hela infrastrukturen.

ELK

ELK är en samling av tre öppen källkod-produkter: Elasticsearch, Logstash och Kibana, utvecklade av Elastic. Det möjliggör insamling, sökning, analys och visualisering av data i realtid.

Sematext

Sematext är en övervakningslösning som ger insyn i IT-infrastruktur, med prestandaövervakning, loggövervakning, API- och webbplatsövervakning och användarupplevelseövervakning. Sematext erbjuder anpassningsbara instrumentpaneler och varningar för populära applikationer och infrastruktur, med anomalidetektering, detektering av misslyckade hjärtslag, schemaläggning och integrationer för att leverera varningsmeddelanden.

Grafana

Grafana är en analysplattform med öppen källkod för övervakning av mätvärden från infrastruktur, applikationer och hårdvara. Det visualiserar data, skapar och delar instrumentpaneler, ställer in varningar och samarbetar. Det hämtar data från källor som Prometheus, InfluxDB och Elasticsearch.

New Relic

New Relic är en programanalysprodukt för övervakning av applikationsprestanda (APM), som ger data i realtid om webbapplikationers prestanda och användarnas tillfredsställelse. Den visar transaktionsspårning från början till slut, med diagram, grafer och rapporter.

Molntjänster

AWS

AWS, skapat av Amazon, erbjuder flexibla, pålitliga, skalbara och kostnadseffektiva molnlösningar. Med denna plattform slipper man bekymra sig om att sätta upp IT-infrastruktur.

GCP

Google Cloud är en samling offentliga molnvärd- och datortjänster från Google. Det stöder ett brett utbud av tjänster för datorer, lagring och applikationsutveckling, med hjälp av Googles hårdvara.

Azure

Azure är en molnplattform från Microsoft för att bygga, distribuera, testa och hantera applikationer och tjänster via ett globalt nätverk av datacenter. Tjänsterna erbjuds i form av PaaS (Platform as a service) och IaaS (Infrastructure as a service).

Containerisering/orkestrering

Docker

Docker är ett verktyg för att skapa, distribuera och köra applikationer med hjälp av behållare. Behållarna gör det möjligt för utvecklare att paketera applikationer med alla nödvändiga komponenter och beroenden, för att sedan distribuera som en enhet. Konceptet ”bygg en gång, kör överallt” tillämpas här.

Kubernetes

Kubernetes är ett system för orkestrering av containrar med öppen källkod, ursprungligen designat av Google. Det automatiserar applikationsdistribution, skalning och hantering och fungerar med containerverktyg som Docker.

Det finns fler verktyg för containerorkestrering att utforska.

Slutsats

Förhoppningsvis har denna översikt av verktyg varit till hjälp på din DevOps-resa.

Tyckte du artikeln var intressant? Dela den gärna vidare!