Låt oss övergå till automatiserad IT-infrastruktur.
Det var en tid då allt som rörde installation, konfigurering och underhåll av infrastruktur utfördes manuellt. Många individer i teamet var involverade. Allt sköttes för hand. Denna process innebar en betydande risk för mänskliga misstag, vilket ledde till bristande tillgänglighet, säkerhet och prestanda för applikationer.
Och låt oss inte glömma de totala kostnaderna för infrastrukturen.
Men tack vare modern teknik och filosofier som DevOps är detta inte längre ett problem.
Idag finns det många verktyg tillgängliga för att utföra uppgifter som skapande, driftsättning och hantering av infrastruktur. Genom att använda rätt programvara kan man automatisera hela infrastrukturen med minimal mänsklig inblandning. Jag pratar inte om enkla uppgifter, utan om komplexa sådana, som att tillhandahålla infrastruktur, hela applikationsinställningen etc.
Infrastrukturautomation är processen att distribuera hårdvaru- och mjukvarukomponenter, operativsystem, nätverkskomponenter och datalagring med hjälp av IaC (Infrastructure as Code). Denna process kräver mänsklig inblandning endast för att skriva den kod som innehåller alla detaljer för att skapa och distribuera de nödvändiga komponenterna.
Här är en lista över de mest populära verktygen för infrastrukturautomation som ofta används i branschen.
Ansible
Ansible är en agentfri IT-automatiseringsmotor med öppen källkod som automatiserar applikationsdistribution, konfigurationshantering och IT-orkestrering. Den grundades 2012 och är skriven i Python, ett av de mest populära programmeringsspråken idag. För att implementera all automatisering använder Ansible en ”playbook”, där alla konfigurationer är skrivna på ett mänskligt läsbart språk, YAML.
Om du är nybörjare, kolla in den här introduktionen till Ansible.
Ansible har en agentfri arkitektur, vilket betyder att du inte behöver installera någon ytterligare programvara på servrarna. Det följer en push-baserad modell där du behöver ett lokalt system med alla nödvändiga konfigurationer, och dessa konfigurationer skickas sedan till målservrarna.
Karakteristiska egenskaper:
- Automatisering med ett lättläst språk.
- Agentlös arkitektur; anslut till servrar via enkel SSH.
- Push-modellen skickar konfigurationerna till servern från din lokala dator.
- Byggd i Python, vilket ger stöd för många pythonbibliotek och funktioner.
- En sammanställd samling Ansible-moduler från Red Hats ingenjörsteam.
För företagsanvändning erbjuds Red Hat Ansible Tower.
Kunskaper i Ansible är värdefulla för systemadministratörer, utvecklare och infrastrukturingenjörer. Om du vill komma igång kan du kolla in den här Udemy-kursen.
SaltStack
SaltStack kan hantera infrastruktur, konfiguration och orkestrering med snabbhet. Jämfört med andra liknande verktyg som Chef och Puppet är SaltStacks snabba hastighet en viktig skillnad. Dess första release var 2011, och precis som Ansible är det också skrivet i Python.
Det har en master-slave-arkitektur, där Salt Master är den centrala demonen som hanterar allt, och Salt Minions är slavdemonerna som installeras på alla hanterade system för att utföra instruktioner från Salt Master. Salt Master skickar nödvändiga konfigurationer och kommandon till Salt Minions, som sedan kör dem lokalt för att implementera IT-automatiseringen.
Funktioner i SaltStack:
- Designat för skalbarhet och snabbhet; kan hantera upp till 10 000 minions per master.
- Lätt att installera; använder en enkel fjärrexekveringsarkitektur.
- Konfigurationsfiler i SaltStack stöder alla typer av språk.
- Kan köra kommandon på fjärrsystem parallellt, vilket snabbar på automatiseringen.
- Erbjuder ett lättanvänt programmeringsgränssnitt med Python API:er.
Chef
En av de främsta orsakerna till produktionsincidenter är inkonsekventa applikations- eller infrastrukturkonfigurationer. Detta är ett vanligt problem, och Chef syftar till att lösa det.
Chef är ett konfigurationshanteringsverktyg för att hantera infrastruktur. Det är skrivet i Ruby och den första releasen skedde 2009 av OpsCode.
Chef Infrastructure Management ser till att varje miljö har konsekventa konfigurationer. Det erbjuder olika verktyg som Chef Infra, Chef Automate, Chef Enterprise och Chef Community för infrastrukturhantering.
Funktioner i Chef Infrastructure Management:
- Konfigurationer är skrivna i YAML, ett lättlärt och läsbart språk.
- Levereras med flera utvecklingsverktyg för att skriva ”cookbooks” (konfigurationer), testa och lösa beroenden.
- Enkla samarbetsfunktioner i företagsversionen för att hantera komplexa miljöer.
- Stöder integration med hundratals DevOps-verktyg som GitHub, Jenkins och Azure Terraform.
Bolt
Bolt är ett projekt med öppen källkod från Puppet.
Det är ett agentlöst orkestreringsverktyg för IT-automatisering. Med Bolt kan du automatisera alla dina manuella uppgifter, som du utför idag vid behov. Det handlar om uppgifter som att distribuera en applikation, felsöka servrar, starta om tjänster, patcha och uppdatera system etc.
Eftersom Bolt är agentlöst behöver du inte installera någon programvara på fjärrmåldatorerna. Du installerar Bolt på ditt lokala system och ansluter till fjärrsystem med SSH eller WinRM.
Funktioner i Bolt:
- Skriv Bolt-planer (en kombination av kommandon, skript och uppgifter) i YAML; lätt att använda och lära sig.
- Många befintliga planer och arbetsflöden finns tillgängliga från Puppet Forge (ett modulbibliotek).
- Flytta enkelt din automatisering från Bolt till Puppet Enterprise för bättre skalbarhet.
Terraform
Terraform är ett verktyg med öppen källkod för infrastrukturprovisionering som används för att skapa och distribuera infrastruktur med hjälp av IaC (Infrastructure as Code). Det har utvecklats av Hashicorp och den första releasen var 2014.
Kolla in den här introduktionen till Terraform för nybörjare.
Terraform fungerar utmärkt med molnleverantörer som AWS, Azure, GCP och Alibaba. Du kan enkelt distribuera och hantera din infrastruktur hos dessa molnleverantörer med hjälp av Terraform. Terraform används idag flitigt av många organisationer för att hantera sina Kubernetes-kluster.
Fördelar med Terraform:
- Hanterar konfiguration av oföränderlig infrastruktur med enkelhet.
- Kan utföra fullständig orkestrering av infrastruktur, inte bara konfigurationshantering.
- Använder HashiCorp Configuration Language (HCL), som är läsbart och lätt att lära sig.
- Erbjuder färdiga moduler och leverantörer för hundratals verktyg och tekniker via Terraform Registry.
När du har bestämt dig för att använda det, glöm inte att följa dessa bästa praxis för Terraform.
Slutsats
Detta var min lista över de mest populära lösningarna för infrastrukturautomation som erbjuder produkter för medelstora företag till stora organisationer. Om du är intresserad av DevOps och vill automatisera din infrastruktur och de repetitiva uppgifterna som ingår i den, är det nu rätt tid att välja en av de lösningar som nämns ovan och börja automatisera.