CONFIGURATIEBEHEER: Alles wat u moet weten

configuratiemanagement

Configuratiebeheer is een cruciaal onderdeel van een succesvol technologieplatform. Uitstekende technische leidinggevenden zullen willen weten wat er nodig is om het te implementeren. Het primaire doel van configuratiebeheer is om deze gegevens te categoriseren, zodat u snel en zelfverzekerd kunt handelen. Configuratiebeheer wordt gebruikt in veel projectmanagementmethodologieën, maar het is vooral belangrijk in de context van softwareontwikkeling.
Laten we eens kijken naar de definitie van configuratiebeheer in relatie tot ontwikkeling en de tools die u gebruikt om het in uw organisatie te implementeren.

Wat is Configuratiebeheer?

Configuratiebeheer is het proces van het categoriseren en volgen van de fysieke en virtuele systemen van een organisatie, evenals de metadata die aan deze bedrijfsmiddelen zijn gekoppeld. Configuratiebeheer wordt gebruikt bij softwareontwikkeling om applicatieconfiguraties voor productieomgevingen te optimaliseren om downtime te verminderen.

Het vastleggen van de metadata voor de meerdere systemen van een organisatie is een belangrijke focus van configuratiebeheer. Op deze manier weet het ontwikkelingsteam niet alleen welke servers toegankelijk zijn, maar ook welke besturingssystemen elke server draait om te voldoen aan de operationele vereisten van hun applicatie.

Geheimen zoals wachtwoorden en API-sleutels, eindpunten voor externe verbindingen zoals API's en rekenspecificaties zoals RAM-behoeften zijn andere voorbeelden van configuratiemetadata.

Het houdt zich evenzeer bezig met het inventariseren van systemen en hun metadata, evenals het volgen van eventuele wijzigingen die aan deze activa zijn aangebracht. Als het smartphonemodel plotseling verandert in het hypothetische geval, moet u hiervan op de hoogte worden gesteld, zodat u uw zoektocht naar de juiste oplader kunt aanpassen. Voor hun softwareconfiguraties hebben ontwikkelings- en operationele teams hetzelfde expertiseniveau nodig.

Waarom is configuratiebeheer belangrijk?

Voor veel teams is configuratiebeheer van oudsher een secundaire verantwoordelijkheid. Configuratiegegevens worden doorgaans niet opgeslagen in kerndatabases of versiebeheersystemen. Als het gaat om het operationele gedeelte van de DevOps-cyclus, zijn configuratiegegevens cruciaal.
Het is gemakkelijker om het belang van configuratiebeheer in te zien als u eerst bedenkt wat er zou gebeuren als het niet zou bestaan.

De prijs van ontoereikend of niet-bestaand configuratiebeheer

Het ontbreken van een geconsolideerde kennisbasis is een belangrijk nadeel van een softwareontwikkelingslevenscyclus zonder configuratiebeheer. De metadata voor de vele systemen waaruit de productieomgeving bestaat, kan verspreid zijn over meerdere bestanden en werkstations, waardoor cruciale informatie zoals API-sleutels en wachtwoorden verspreid raakt. Het vinden van deze gegevens vertraagt ​​de pijplijn.

Een ander nadeel van dit gebrek aan zichtbaarheid is dat het moeilijk is om de testomgeving van een applicatie af te stemmen op de productieomgeving waarin deze zal leven. Deze discrepantie brengt de kwaliteit van prestatietests in gevaar, aangezien de operationele instellingen terwijl het programma live is aanzienlijk kunnen verschillen van die in de demo-omgeving. Erger nog, een verkeerde configuratie in de software kan ervoor zorgen dat deze niet in productie kan worden genomen.

Verkeerde configuraties schaden de prestaties en kunnen leiden tot niet-naleving. Als gegevens bijvoorbeeld buiten de toegestane database worden opgeslagen, kan de toepassing de vereisten voor gegevensprivacy schenden. Als een ontwikkelteam geen nauwkeurige inventarisatie heeft, kunnen ze mogelijk niet goed bijhouden welke software op welke systemen is bijgewerkt, waardoor cyberbeveiligingsnormen worden geschonden en kwetsbaarheden ontstaan.

Uitstekende voordelen voor configuratiebeheer

DevOps-teams hebben veel baat bij configuratiebeheer. Zoals aangetoond in de voorgaande sectie, is de zichtbaarheid die het biedt cruciaal voor het ontwikkelen van een uniforme catalogus van systemen en services waar het team rekening mee kan houden bij het ontwikkelen en onderhouden van applicaties.

Documentatie is volgens configuratiebeheer een belangrijk onderdeel van deze zichtbaarheid. Dit vergemakkelijkt de onboarding van nieuwe technici en garandeert dat anderen snel de operationele omgeving kunnen leren kennen om effectiever te zijn in noodsituaties waar snel moet worden gereageerd.

De analyse van de productieomgeving en het matchen van de testomgeving zijn dankzij configuratiemanagement eenvoudige processen. Dit verkleint het risico van implementaties omdat de kans groter is dat de applicatie wordt uitgevoerd zoals gepland en de tests die erop worden uitgevoerd, representatief zijn voor de daadwerkelijke softwarevereisten. Wanneer downtime van applicaties een financiële impact heeft, is het aanbevolen om risicofactoren waar mogelijk te minimaliseren.

Ten slotte helpt het bij noodherstel in het geval van een storing of een ander onvoorzien incident. Traceerbaarheid is een basiselement van configuratiebeheer, dus het is relatief eenvoudig om een ​​upgrade terug te draaien naar de laatst bekende stabiele versie van de software. Hierdoor kan het programma zakelijke verantwoordelijkheden blijven uitvoeren terwijl het team aan een langetermijnoplossing werkt.

Nu u de voordelen van uitstekend configuratiebeheer begrijpt, gaan we kijken hoe u dit in uw bedrijf kunt implementeren.

Hoe ziet een configuratiebeheerstrategie eruit?

Een configuratiemanagementplan richt zich op vier gebieden. Laten we ze allemaal eens doornemen.

#1. Ontdekking

Het inventariseren van bestaande systemen is de eerste stap. Catalogiseren moet plaatsvinden in alle contexten die belangrijk zijn voor het testen en functioneren van uw applicatie. Het ontdekkingsproces gaat vervolgens over tot het verzamelen van de metadata van uw geïdentificeerde items in een enkele centrale opslagplaats. Deze enige bron van waarheid slaat deze gegevens op in gegevensbestanden, waarbij de grootste zorg wordt besteed aan het versleutelen van gevoelige gegevens, zoals wachtwoorden en sleutels, voordat deze worden opgeslagen.

#2. Benchmark

Nadat het detectieproces is voltooid, kunt u de verzamelde configuratiegegevens analyseren om een ​​basislijn voor een succesvolle werking te creëren. Met andere woorden, de benchmark is een basislijn van de configuraties die nodig zijn om het programma goed te laten werken. Deze parameters kunnen worden gevonden door een lopende applicatie en zijn omgeving te inspecteren.

#3. Versiebeheer

Configuratiebeheer omvat uitgebreid versiebeheer. Het gebruik van een versiecontrolesysteem zoals Git en het bijhouden van uw configuratiegegevensbestanden zal resulteren in een verifieerbare geschiedenis van alle aangebrachte wijzigingen. Versiebeheer maakt het ook gemakkelijker om terug te gaan naar een eerdere versie als een upgrade de applicatie verstoort.

#4. Beoordeling

Een apart maar belangrijk voordeel van het gebruik van een versiebeheersysteem is dat u uw configuratiegegevens in dezelfde repository kunt bewaren als uw code, waardoor ongeoorloofde wijzigingen worden voorkomen. U kunt de bewerkingsmogelijkheden beperken tot specifieke teamleden en een goedkeuringsproces ontwerpen, zodat eventuele configuratiewijzigingen voorafgaande goedkeuring vereisen voordat ze naar de applicatie worden uitgerold.

Omdat het hele team de configuratiebestanden in de repository kan bekijken, bevordert dit de verantwoording, elimineert het risico's en vergemakkelijkt het de samenwerking.

Hoe configuratiebeheer aansluit bij DevOps, continue levering en andere technologieën...

U zou nu een goed begrip moeten hebben van wat configuratiebeheer is en wat het probeert te doen. Voordat we tooling onderzoeken, wil ik graag onderzoeken hoe configuratiebeheer past in andere concepten voor softwareontwikkeling, zoals agile, DevOps, continue integratie, continue levering en Docker, zodat u kunt begrijpen hoe deze concepten passen in ideeën voor configuratiebeheer.

Is Agile compatibel met configuratiebeheer?

Ja. Agile software vertegenwoordigt per definitie de wens om sneller wijzigingen in onze software aan te brengen om zich aan te passen aan de marktvraag. Configuratiebeheer stelt ons in staat om hoge snelheid te behouden en tegelijkertijd veilig wijzigingen te beheren.

Configuratiebeheer en DevOps: hoe passen ze bij elkaar?

DevOps is de toepassing van agile concepten op zowel de ontwikkelings- als de operationele afdeling. DevOps streeft er in feite naar om de doelstellingen van beide afdelingen op elkaar af te stemmen. Bij sommige bedrijven streeft de ontwikkelingsafdeling naar verandering, terwijl de operationele afdeling stabiliteit zoekt. Bedrijven die DevOps omarmen, zoeken daarentegen zowel naar de stabiliteit van hun ingezette bedrijfsmiddelen als naar de frequentie van verandering. Maar om dit resultaat te bereiken, is een cultuuromslag nodig.

Configuratiebeheer biedt, net als agile, teams het vertrouwen om snel veranderingen door te voeren. De organisatie wijst beheertaken toe aan de ontwikkelingsteams volgens agile principes, waardoor ze hun eigen infrastructuur kunnen leveren, configureren en onderhouden. Je bouwt het op en je bedient het.

Waar passen pijplijnen in configuratiebeheer?

Softwarepijplijnen (of 'waardestroom', die we kunnen ontwerpen met tools zoals Plutora) zijn de stadia die we doorgaans automatiseren om code van commit naar productie te verplaatsen. Pijplijnen omvatten doorgaans fasen zoals linting-code, unit-testcode, integratietestcode en het maken van artefacten.

Een softwarepijplijn is dus een vorm van configuratiebeheer. Wanneer we software bouwen met behulp van tools zoals Docker, codificeren we onze bouwinstructies in een Dockerfile. Dit stelt ons in staat om de afhankelijkheden van onze artefacten beter te begrijpen.

Is configuratiebeheer van infrastructuur-als-code echt iets?

Infrastructuur-als-code (of IaC) is de praktijk om ervoor te zorgen dat alle infrastructuurvoorziening via code wordt gedaan. Het doel van IaC is om gedocumenteerd bij te houden welke services er zijn, waar ze zich bevinden en onder welke voorwaarden ze beschikbaar zijn. Configuratiebeheer kan besluiten componenten van IaC te gebruiken om een ​​volledig inzicht te krijgen in alle technologische middelen die eigendom zijn van een organisatie.

Heeft u doorlopend integratie-/leveringsconfiguratiebeheer?

Het proces om te garanderen dat software altijd in een vrijgeefbare vorm is, staat bekend als continue levering. Dit kan worden bereikt door verregaande automatisering en testen. Continue integratie is het proces waarbij vaak ongelijksoortige software-artefacten op één locatie worden samengebracht om ervoor te zorgen dat de code met succes kan worden geïntegreerd. Tools voor continue integratie, vaak servers die automatiseringstestsuites uitvoeren, werken als een soort configuratiebeheer door inzicht te bieden in de procedures die nodig zijn om een ​​specifieke software-asset in te stellen en te configureren.

Dat zou enkele van uw resterende vragen moeten beantwoorden over hoe configuratiebeheer aansluit bij methoden of ideeën die u mogelijk gebruikt of waarmee u bekend bent. Elke discussie over configuratiebeheer zou echter ontoereikend zijn zonder een discussie over tooling. Laten we daarom eens kijken naar de verschillende tools die ons ter beschikking staan ​​voor het implementeren van configuratiebeheer.

Hulpprogramma's voor configuratiebeheer

#1. Git

Git is de toonaangevende oplossing voor versiebeheer voor het bijhouden van codewijzigingen. Het opnemen van configuratiebeheergegevens met code in een Git-repository biedt een uitgebreid versiebeheeroverzicht van een heel project. Git is een fundamentele tool voor configuratiebeheer op een hoger niveau. De volgende lijst met alternatieve tools voor configuratiebeheer is bedoeld om in een Git-repository te worden bewaard en om Git-versiecontrole te gebruiken.

#2. Dokwerker

Containerisatie is, net als een configuratievergrendeling, een geavanceerde vorm van configuratiebeheer die wordt aangeboden door Docker. Docker is gebaseerd op configuratiebestanden genaamd Dockerfiles, die een lijst met opdrachten bevatten die worden beoordeeld om de bedoelde momentopname van de status van het besturingssysteem te reconstrueren. Docker genereert containers van deze Dockerfiles, dit zijn snapshots van een vooraf ingestelde applicatie. Dockerfiles zijn toegewijd aan een Git-repository voor versiebeheer en vereisen extra configuratiebeheer voordat ze op een infrastructuur kunnen worden geïmplementeerd.

#3. Terravorm

HasiCorp's Terraform is een open-source configuratiebeheerplatform. IaC wordt door Terraform gebruikt om clusters, cloudinfrastructuur en services in te richten en te beheren. AWS, Microsoft Azure en andere cloudplatforms worden ondersteund door Terraform.

Elk cloudplatform heeft zijn eigen weergave en interface voor basisinfrastructuurcomponenten zoals servers, databaseservers en wachtrijen. Terraform creëerde een abstractielaag van configuratietools voor cloudplatforms. Met de configuratietools kunnen teams bestanden maken die reproduceerbare beschrijvingen zijn van hun infrastructuur.

#4. Chef, Marionet, Ansible, Zout Stapel

IT-automatiseringsframeworks omvatten Ansible, Salt Stack, Chef en Puppet. Verschillende typische systeembeheerdersprocessen worden door deze frameworks geautomatiseerd. Elk raamwerk maakt gebruik van een set configuratiegegevensbestanden, meestal YAML of XML, die worden geanalyseerd door een uitvoerbaar bestand.

De configuratiegegevensbestanden schetsen de stappen die moeten worden genomen om een ​​systeem te configureren. Het uitvoerbare bestand voert vervolgens de acties uit. De taal van het uitvoerbare bestand varieert tussen de platforms; Ansible en Salt Stack zijn op Python gebaseerd, terwijl Chef op Ruby is gebaseerd. Deze methode is analoog aan het uitvoeren van ad-hoc shell-scripts, maar biedt een meer gestructureerde en verfijnde ervaring via de ecosystemen van de respectievelijke platforms.

Deze tools bieden de automatisering die nodig is om CI/CD te bereiken.

Hoe kan men aan de slag met configuratiebeheer?

Natuurlijk kun je niet in een oogwenk van "nul" naar "gewenste toestand" gaan. Voordat u een configuratiebeheersysteem kiest, moet u eigenlijk eerst bepalen waarom u er een nodig heeft. Zo gaat u aan de slag met configuratiebeheer:

  • Begin met het samenstellen van handmatige checklists en documentatie in een gemeenschappelijke groepering van configuratie-opties die op alle (of de meeste) systemen bestaan. Door uw inspanningen op het gebied van configuratiebeheer in eerste instantie te richten op de meest voorkomende patronen, kunt u de meeste menselijke arbeid besparen en uw bedrijf snelle automatiseringsvoordelen opleveren.
  • Controleer of monitoring, antivirus en andere veelgebruikte software in de checklist zijn opgenomen.
  • Om herbruikbare stukjes infrastructuur als code te ontwikkelen, categoriseert u systemen op basis van wat er moet veranderen om ze specifiek te maken voor specifieke toepassingen, geografische locaties of andere categorieën.
  • Kies een configuratiebeheersysteem.

Conclusie

Dat is alles wat er is! Hopelijk verduidelijkt dit uw begrip van configuratiebeheer. Het draait allemaal om het bijhouden van de huidige staat van uw software en infrastructuur.

Er zijn tal van benaderingen voor het implementeren van configuratiebeheer, evenals tal van tools en procedures. Neem daarom, als het op strategie aankomt, de tijd om keuzes te evalueren en te bepalen hoe u wilt dat uw configuratiebeheerprocedures werken.
Toch zal het het uiteindelijk allemaal waard zijn. Als u uw configuratiebeheer op orde heeft, zijn uw teams veiliger, productiever en sneller in staat wijzigingen door te voeren!

Veel succes, en controleer, volg en schrijf vanaf nu alles als code!

Referenties

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *

Dit vind je misschien ook leuk