”Utveckla system inte programvara”
DevOps är ett av de största modeorden i teknikvärlden på senare tid eftersom det erbjuder en enorm mängd fördelar för organisationen att förkorta deras livscykel för mjukvaruutveckling.
Innehållsförteckning
Vad är DevOps?
Det finns ingen enskild definition eller rätt svar på frågan ”Vad är DevOps”?
DevOps är inte ett verktyg, teknik eller något ramverk; det är mer en filosofi och ett koncept. Det är en uppsättning metoder som kombinerar mjukvaruutveckling (Dev) och IT-drift (Ops), vilket hjälper till att förkorta livscykeln för systemutveckling och ge kontinuerlig integration och leverans med hög mjukvarukvalitet.
Om du är nybörjare, kolla in det här introduktionsinlägget eller ta den här onlinekursen – Docker för en absolut nybörjare.
DevOps-fördelar
- Förbättrat samarbete och kommunikation
- Snabbare mjukvara eller produktleverans
- Kontinuerlig kostnadsminskning
- Förbättrad process
- Snabbare lösning av problem
I DevOps-världen finns det inget enda magiskt verktyg som passar alla behov. Det handlar om att välja rätt verktyg som passar en organisations behov. Låt oss ta reda på om dem.
Fortsatt integration
Jenkins
Jenkins är ett av de mest populära DevOps-verktygen med öppen källkod för att stödja kontinuerlig integration och leverans genom DevOps. Det möjliggör kontinuerlig integration och kontinuerlig leverans av projekt, oavsett vilken plattform användare arbetar på med hjälp av olika bygg- och distributionspipelines. Jenkins kan integreras med flera test- och distributionsverktyg.
Travis CI
Travis CI är en molnbaserad, distribuerad kontinuerlig integrationsplattform som används för att bygga och testa projekt hos GitHub och Bitbucket. Den konfigureras genom att lägga till en YAML-fil.
Det kan testas gratis för projekt med öppen källkod och mot avgift för ett privat projekt.
Bambu
Bambu är en av de populära produkterna utvecklade av Atlassian för att stödja sömlös kontinuerlig integration. Det mesta av funktionaliteten är förbyggd vilket innebär att vi inte behöver ladda ner olika plugins som Jenkins. Den stöder också sömlös integration med andra Atlassian-produkter som JIRA och Bitbucket.
Hudson
Hudson är fri programvara skriven i JAVA och körs i en servletbehållare som GlassFish och Apache Tomcat. Det ger möjlighet att trigga din automatiseringssvit med alla ändringar i motsvarande källhanteringssystem som GIT, SVN, etc. Det ger också stöd för alla maven- och Java-basprojekt.
TeamCity
TeamCity är en serverbaserad kontinuerlig integration och bygger ett hanteringsverktyg utvecklat av JetBrains. Det har ett enkelt och lättanvänt användargränssnitt (UI) och ger byggframsteg, detaljerad bygginformation och historikinformation för alla konfigurationer och projekt.
CircleCI
CircleCI finns i form av molnbaserade såväl som on-premise lösningar för kontinuerlig integration. Det är enkelt och snabbt att starta och stöder lätta lättläsbara YAML-konfigurationer.
Det finns fler CI-verktyg du kan utforska här.
Planering & Samarbete
JIRA
JIRA är ett av de populära projekthanteringsverktygen utvecklade av Atlassian som används för problem-, bugg- och projektspårning. Det låter användaren spåra projektet och utfärda status. Det kan enkelt integreras med andra Atlassian-produkter som Bitbucket förutom andra DevOps-verktyg som Jenkins.
Slak
Slak är ett freemium molnbaserat samarbetsverktyg som tillåter teamkommunikation och samarbete på ett ställe. Detta verktyg kan också användas för att dela dokument och annan information mellan teammedlemmarna. Detta kan också enkelt integreras med andra verktyg som GIT, Jenkins, JIRA, etc.
Zoom
Zoom är en plattform för webbkonferenser och omedelbar skärmdelning. Du kan få ditt team att gå med via ljud eller video.
Det spelar ingen roll hur stort ditt team är, Zoom kan ta upp till 1000 mottagare till ett onlinemöte.
Clarizen
Clarizen är en samarbets- och projektledningsprogramvara som hjälper till med problemspårning, uppgiftshantering och projektportföljhantering. Det är lätt att anpassa och har ett användarvänligt interaktivt användargränssnitt.
Asana
Asana är en mobil och webbaserad applikation designad för att hjälpa team att organisera, spåra och hantera sitt arbete på ett effektivt och effektivt sätt. Den används för att spåra teamets dagliga uppgifter och stödja meddelanden och kommunikation över hela organisationen.
Källkodshantering
SVN
SVN är ett centraliserat versions- och källkontrollverktyg utvecklat av Apache. Det hjälper utvecklare att underhålla olika versioner av källkoden och upprätthålla en fullständig historik över alla ändringar.
Git
Git är ett distribuerat versionskontrollsystem som syftar till hastighet, dataintegritet, stöd för distribuerade, icke-linjära arbetsflöden. Förutom källkodshantering kan den också användas för att hålla reda på ändringar i vilken uppsättning filer som helst.
Bit hink
Bit hink är en webbaserad värdplattform utvecklad av Atlassian. Bitbucket erbjuder också ett effektivt kodgranskningssystem och håller koll på varje förändring i koden. Det kan enkelt integreras med andra DevOps-verktyg som Jenkins, Bamboo.
GitHub
GitHub är en kodvärdplattform designad för versionskontroll och samarbete. Den erbjuder alla funktioner för distribuerad versionskontroll och källkodshantering (SCM) hos Git förutom dess funktioner.
Den erbjuder åtkomstkontroll och samarbetsfunktioner som buggspårning, skapande av funktioner och begäran, uppgiftshantering, etc för projektet.
Bygga
Myra
Apache Ant är ett Java-baserat bygg- och distributionsverktyg med öppen källkod. Den stöder XML-filformatet. Den har flera inbyggda uppgifter som gör att vi kan kompilera, montera, testa och köra Java-applikationer.
Maven
Maven är ett byggautomationsverktyg som huvudsakligen används för java-projekt. Den innehåller en XML-fil som beskriver programvaruprojektet som byggs, dess beroenden av andra externa komponenter och moduler, byggsekvensen, kataloger och andra nödvändiga plugin-program.
Grymta
Grymta är ett javascript kommandoradsverktyg som hjälper till att bygga applikationer och hjälpa utvecklare att automatisera repetitiva uppgifter som kompilering, enhetstestning, kodlinting och validering, etc. Det är ett bra alternativ för verktyg som Make eller Ant.
Gradle
Gradle är ett automationssystem med öppen källkod som bygger på koncepten Apache Maven och Apache Ant. Den stöder Groovy korrekt programmeringsspråk istället för XML-konfigurationsfilen. Den erbjuder stöd för inkrementella byggnader genom att automatiskt avgöra vilka delar av byggnaden som är uppdaterade.
Konfigurationshantering
Marionett
Marionett är ett konfigurationshanteringsverktyg med öppen källkod som används för att konfigurera, distribuera och hantera många servrar. Detta verktyg stödjer konceptet med infrastruktur som kod och är skrivet i Ruby DSL. Den stöder också dynamisk skalning upp och ned av maskiner efter behov.
Kock
Kock är ett konfigurationshanteringsverktyg med öppen källkod utvecklat av Opscode med hjälp av Ruby för att hantera infrastruktur på virtuella eller fysiska maskiner. Det hjälper till att hantera komplex infrastruktur i farten på virtuella, fysiska och molnmaskiner också.
Ansible
Ansible är ett IT-konfigurationshanteringsverktyg med öppen källkod, programvaruförsörjning, Orchestration och applikationsdistribution. Det är ett enkelt men kraftfullt verktyg för att automatisera enkla och komplexa IT-applikationer med flera nivåer.
SaltStack
SaltStack är programvara med öppen källkod skriven i python och använder push-modellen för att utföra kommandon via SSH-protokoll. Den ger stöd för både horisontell och vertikal skalning. Den stöder YAML-mallar för att skriva ner alla skript.
Terraform
Terraform är ett verktyg med öppen källkod för att bygga, ändra, distribuera och versionera infrastruktur på ett säkert och effektivt sätt. Det används för att hantera befintliga och populära tjänsteleverantörer samt anpassade interna lösningar. Det hjälper till att definiera infrastruktur i konfiguration/kod och gör det möjligt för en användare att bygga om/ändra och spåra ändringar i infrastrukturen på ett enkelt sätt.
Luffare
Luffare är ett av de populära verktygen för att bygga och hantera virtuella maskiner (VM). Den har ett lättanvänt och konfigurerbart arbetsflöde som fokuserar på automatisering. Det hjälper till att minska installationstiden för utvecklingsmiljön, ökar produktionspariteten.
Kontinuerlig säkerhet
Snyk
Integrera Snyk i utvecklingens livscykel för att automatiskt hitta och åtgärda säkerhetssårbarheter med öppen källkod. Den stöder JS, .Net, PHP, NPM, jQuery, Python, Java, etc. och kan integreras vid kodning, kodhantering, CI/CI, container och distribution.
Snyk har den största sårbarhetsdatabasen med öppen källkod.
Invicti
Invicti skannar automatiskt din ansökan efter säkerhetsbrister och tillhandahåller handlingsbara sekretessbelagda rapporter så att du kan vidta åtgärder baserat på prioritet. Ett DevOps-säkerhetsscenario skulle vara att undersöka den nya commit och rapportera felet direkt i spårningssystemet som Jira eller GitHub och skanna igen när utvecklaren fixat det. Du ser det integreras i varje steg av SDLC.
Testning
Selen
Selen är det mest populära testverktyget med öppen källkod. Den stöder testautomatisering i olika webbläsare och operativsystem. Det kan enkelt integreras med testhanteringsverktyg som ALM, JIRA och även med andra DevOps-verktyg som Jenkins, Teamcity, Bamboo, etc.
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. Den stöder olika testkommentarer med vilka alla utvecklare kan skriva ett sömlöst enhetstestfall. Det kan enkelt integreras med andra DevOps-verktyg som Jenkins, GIT, etc.
TestNG
TestNG är ett ramverk för öppen källkod som är designat och inspirerat av Junit och Nunit. Den kan enkelt integreras med selenwebbdrivrutin för att konfigurera och köra automationstestskript. Den genererar också olika testrapporter som HTML eller XSLT.
Övervakning
Nagios
Nagios är en öppen källkod och ett av de mest populära verktygen för kontinuerlig övervakning. Nagios hjälper till att övervaka system, applikationer, tjänster och affärsprocesser i en DevOps-kultur. Den varnar användare när något går fel med infrastrukturen och varnar dem också när problemet har lösts.
Sensu
Sensu är ett övervakningsverktyg med öppen källkod skrivet i Ruby som hjälper till att övervaka servrar, tjänster, applikationer, molninfrastruktur enkelt och effektivt. Det är lätt att skala så att vi enkelt kan övervaka tusentals servrar.
Datadog
Datadog är ett agentbaserat servermetriskt verktyg. Den stöder integration med olika webbservrar, appar och molnservrar. Dess instrumentpanelstjänst tillhandahåller olika grafer om realtidsövervakning över hela infrastrukturen.
ÄLG
ÄLG är en samling av tre produkter med öppen källkod —Elasticsearch, Logstash och Kibana som alla utvecklas, hanteras och underhålls av företaget Elastic. Det låter användare ta till data från vilken källa som helst, i vilket format som helst och sedan söka, analysera och visualisera dessa data i realtid.
Sematext
Sematext är en fullstack-övervakningslösning som ger dig djupgående insyn i din IT-infrastruktur. Det tillhandahåller front-end och back-end prestandaövervakning, loggövervakning, API och webbplatsens drifttid och prestandaövervakning, övervakning av användarupplevelse och mer.
Även om det kommer med instrumentpaneler och varningsregler för populära applikationer och infrastruktur som vanliga databaser och NoSQL-butiker, molnservrar, nätverk, behållare, etc., kan du enkelt anpassa instrumentpaneler och varningar för dina övervakningsbehov. Sematext har kraftfull varning med anomalidetektering, misslyckad hjärtslagsdetektering, schemaläggning och många integrationer för att leverera varningsmeddelanden.
Grafana
Grafana är en analysplattform med öppen källkod för att övervaka alla mätvärden från infrastruktur, applikationer och hårdvaruenheter. Du kan visualisera data, skapa och dela en instrumentpanel, ställa in varningar och samarbeta. Du kan hämta data från mer än 30 källor, inklusive Prometheus, InfluxDB, Elasticsearch, AWS CloudWatch, etc.
Ny relik
Ny relik är en mjukvaruanalysprodukt för övervakning av applikationsprestanda (APM) som levererar realtidsdata och trenddata om webbapplikationers prestanda och nivån av tillfredsställelse som slutanvändarna upplever med den. Den stöder transaktionsspårning från början till slut och visar dem med en mängd färgkodade diagram, grafer och rapporter
Cloud Hosting
AWS
AWS är en webbhotellplattform skapad av Amazon som erbjuder flexibla, pålitliga, skalbara, lättanvända, skalbara och kostnadseffektiva lösningar. med denna molnplattform behöver vi inte oroa oss för att sätta upp IT-infrastruktur som vanligtvis tar en rimlig tid att sätta upp.
GCP
Google Cloud är en komplett uppsättning offentliga molnvärdar och datortjänster som erbjuds av Google.it stöder ett brett utbud av tjänster för datorer, lagring och för applikationsutveckling som använder Googles hårdvara.
Azurblå
Azurblå är en cloud computing-plattform, designad av Microsoft för att bygga, distribuera, testa och hantera applikationer och tjänster genom ett globalt nätverk av dess datacenter. Tjänsterna som tillhandahålls av Microsoft Azure är i form av PaaS (Platform as a service) och IaaS (Infrastructure as a service).
Containerisering/orkestrering
Hamnarbetare
Hamnarbetare är ett verktyg för att skapa, distribuera och köra applikationer med hjälp av behållare. Denna behållare låter utvecklaren paketera en applikation med alla komponenter och underkomponenter den behöver, såsom bibliotek och andra beroenden, och skicka ut allt i form av ett enda paket. Detta arbete på konceptet av fartyget och köra var som helst.
Kubernetes
Kubernetes är ett container-orkestreringssystem med öppen källkod som ursprungligen designades av Google och som nu underhålls av Cloud Native Computing Foundation. Den används för att automatisera applikationsdistribution, skalning och hantering. Det fungerar också med andra containerverktyg inklusive Docker.
Utforska fler containerorkestreringsverktyg här.
Slutsats
Jag hoppas att verktygen ovan hjälper dig med din DevOps-resa.
Gillade du att läsa artikeln? Vad sägs om att dela med världen?