Att tillämpa automatisering på driften är inte alltid enkelt, särskilt när det gäller äldre system som inte lätt passar in i typiska DevOps-verktyg för automatisering och strategier.
Det är enklare att automatisera IT-driftsprocesser med moderna, molnnativa applikationer. Trots detta behöver äldre system inte stå vid sidan av din DevOps-strategi för automatisering. Med rätt verktyg och metoder är det möjligt att integrera kraven från äldre system med moderna automatiseringstekniker.
DevOps-automatisering: grunderna
DevOps är en metod för att utveckla och leverera programvara som betonar samarbete mellan utvecklare (som skriver kod) och IT-drifttekniker (som hanterar applikationer i produktion).
De flesta organisationer som anammar DevOps för konventionella applikationer använder verktyg och tekniker för automatisering. Nedan följer några av de automatiseringsverktyg som bidrar till att göra DevOps-processer effektiva, skalbara och beständiga:
- Infrastruktur som kod (IaC) och konfiguration som kod (CaC): Detta gör det möjligt för användare att definiera infrastruktur och konfigurera applikationer med hjälp av kod samt automatiskt tillämpa den i flera miljöer.
- Automatiserad testning: Genom att använda ramverk för testautomatisering kan DevOps-team skriva skript som automatiskt testar nyskriven kod med avseende på buggar och prestandaproblem. Detta tillvägagångssätt förbättrar applikationernas kvalitet och hjälper team att identifiera och åtgärda buggar mer effektivt.
- Automatisering av programvaruutgåvor: Verktyg som automatiskt kan ge ut applikationer – det vill säga paketera applikationerna och driftsätta dem i produktionsmiljöer. Dessa verktyg hjälper DevOps-team att leverera ny kod till användare snabbare.
- Applikationsorkestrering: Orkestreringsplattformar automatiserar många processer som krävs för att driftsätta och hantera applikationer i ett kluster av servrar, vilket ger skalbarhet och repeterbarhet åt applikationsvärdskap.
Utmaningar med DevOps-automatisering
De DevOps-lösningar för automatisering som nämns ovan är inte alltid enkla att implementera med äldre system som består av maskinvara och/eller programvara som driftsattes långt innan moderna, DevOps-vänliga applikationsarkitekturer och driftsättningsstrategier existerade.
IaC-verktyg kanske till exempel inte stöder äldre system eftersom de inte stöder de konfigurationsspråk eller hanteringsverktyg som systemen kräver. De flesta moderna system kan konfigureras med språk som YAML, medan äldre system ofta är beroende av proprietära konfigurationsspråk och ramverk.
Av liknande skäl kan testautomatisering vara besvärlig att implementera i äldre applikationer. De flesta moderna automatiseringsramverk är utformade för webbläsarbaserade applikationer eller mobilappar. Äldre system kan dock köras lokalt och använder ofta proprietära användargränssnitt, vilket gör det svårare att automatisera testning med standardiserade ramverk.
På samma sätt är många plattformar för automatisering av programvaruutgåvor och applikationsorkestrering utformade för applikationer som driftsätts med hjälp av containrar. Eftersom containrar inte blev populära förrän Docker lanserades 2013 har de flesta äldre system begränsat inbyggt stöd för containerisering av applikationer.
Automatisering av äldre system
Lyckligtvis är hindren för att implementera DevOps-automatisering för äldre system inte omöjliga att övervinna. För att hantera dessa utmaningar krävs att man inför innovativa metoder som möjliggör integration av automatisering med äldre system:
- Migrera till molnet: Äldre systemleverantörer erbjuder nu molnbaserade värdplattformar. Även om överföring av äldre arbetsbelastningar från lokala miljöer till molnet inte automatiskt aktiverar alla DevOps-automatiseringsfunktioner, underlättar det användningen av fördelar som automatiskt skalbar infrastruktur och möjligheten att flytta arbetsbelastningar mellan molndatacenter för att begränsa fel på en plats.
- Containerisera äldre arbetsbelastningar: I vissa situationer kan äldre applikationer köras i containrar. Genom att containerisera sådana appar kan företag hantera dem med hjälp av orkestreringslösningar som Kubernetes, vilket ger betydligt större smidighet och skalbarhet vid hantering av äldre applikationer.
- Utnyttja maskininlärning (ML): Att integrera maskininlärning i övervaknings- och hanteringsåtgärder för äldre system är ett sätt att effektivt upptäcka problem i sammanhang där det inte går att utnyttja konventionell automatisering. Om du till exempel inte kan köra automatiserade tester för en äldre applikation eftersom Selenium inte har stöd för den, kan du kanske använda avancerade ML-tekniker för att identifiera buggar baserat på hur applikationen beter sig.
- Ändra ditt tankesätt: Ett viktigt steg mot att dra nytta av automatisering för äldre appar är helt enkelt att ändra organisationens inställning till äldre system. I stället för att klassificera dem som föråldrade och ineffektiva miljöer bör du behandla äldre appar som alla andra appar i din IT-miljö. När ditt team närmar sig äldre system utifrån ett perspektiv som värdesätter äldre appar blir det mycket enklare att utveckla en företagskultur präglad av samarbete och innovation som även omfattar dessa äldre system.
Ignorera inte äldre miljöer
Det går inte att förneka att automatisering av hanteringen av äldre appar för DevOps-team ofta är mer utmanande än att införa automatisering för moderna appar. Det betyder dock inte att det är omöjligt. Många organisationer inför framgångsrikt automatisering för att förbättra flexibiliteten och kvaliteten hos äldre appar samtidigt som de minskar kostnaderna för att utveckla och distribuera dem. För att uppnå detta är det dock nödvändigt att tänka bortom DevOps konventionella metoder.
Utveckla din SaaS-tillväxt och dina ledarskapsfärdigheter. Prenumerera på vårt nyhetsbrev för de senaste insikterna för CTO:er och blivande teknikledare. Vi hjälper dig att skala smartare och leda starkare med guider, resurser och strategier från ledande experter!
