Løfterikt administrasjons-system

Over en million servere verden over er utstyrt med norskutviklede Cfengine.

Publisert Sist oppdatert

Cfengine er en open source-basert programvare for konfigurasjon og automatisering av datasentre og datasystemer. Det er utviklet over 15 år av professor Mark Burgess ved Høgskolen i Oslo. Firmaet Cfengine AS ble startet i juni 2008.

Cfengine hevder deres løsning er blant de kraftigste administrasjonsverktøyene som finnes, og at programvaren er installert på over en million servere.

Med Cfengine kan du beskrive ønskede tilstander eller oppførsel for servere og andre maskiner, så vil programvaren automatisk holde alle enhetene i systemet kontinuerlig oppdatert. Cfengine er laget for å skalere uendelig, og skal fungere uten problemer i klynger med flere tusen servere.

Selvreparerende

Å love systemer som er «self healing» er dristig, men Cfengine står på at så er tilfelle. Cfengine håndterer for eksempel en server fra scratch: Den booter og nødvendig operativsystem blir installert sammen med Cfengine, og dermed er den et administrert objekt. Gjennom å definere en normaltilstand, vil Cfengine søke å sette systemet tilbake til denne om det oppstår noe unormalt.

Dette skjer ved bruk av løfter som «det skal aldri være mindre enn 10 prosent ledig lagringsplass», «backup blir kjørt hver kveld klokken 23» og lignende. Disse løftene ligger i konfigurasjonsfiler som brukes av Cfengines agenter.

Ved hjelp av maler, images og andre kilder kan du håndtere flere servere som «stamceller». Du kan ha generelle maskiner, men bestemme at noen skal være web-servere, andre applikasjonsservere og så videre. Men Cfengine krever slett ikke homogent utstyr. Det er laget for nettopp å håndtere komplekse systemer med forskjellig maskinvare.

«Scripting approach» er som å klatre opp et fjell, mens Burgess' fremgangsmåte er å love en sluttilstand og at systemet «converge to end state».

Cfengine kan automatisere konfigurering av nettverksgrensesnitt, håndtering av filer og symbolske lenker, kontrollere eksekvering av skript og shell-kommandoer, sjekke og restarte daemons, konfigurere og rulle ut nye installasjoner og omgjøre ikke-autoriserte endringer. Og en del mer.

Færrest mulig alarmer

Mike Burgess forteller at Cfengine er skrevet i C og laget med tanke på at det skal bruke minst mulig av ressursene det kjører på. Programvaren kompileres på systemet den skal kjøres, så i prinsippet støttes alle operativsystemer.

– Cfengine klassifiserer maskinen først. Deretter sjekker den løftene, og måler ytelse underveis. Agenten lærer seg hvordan systemet oppfører seg, og forholder seg statistisk til tilstander, slik at avvik innenfor normale grenser ikke utløser alarmer. Selvsagt ut fra hvilken policy du definerer, sier han.

Burgess legger vekt på at systemet ikke skal ha dashbord og ikke vise for mye informasjon. Det skal være færrest mulig røde lamper, slik at det bare er ved de problemene hvor det kreves en operatør til å gripe inn som det slås alarm.

Ifølge Burgess kan Cfengine tas i bruk i små eller store steg. Du kan begynne med enkle oppgaver og bygge på etter hvert. Systemet er laget for å selv holde oversikt over løfter og deres avhengigheter.

AMD har over 40 000 servere administrert med Cfengine. Ifølge Paul Krizak, som er senior systemingeniør i AMD og sitter i Cfengines rådgivende styre, har eventuelle problemer de har hatt med Cfengine ikke vært av teknisk art, men politisk; i betydningen hvilke personer og avdelinger som har ansvaret for hva.

Ifølge Burgess er det ikke at Cfengine er open source og dermed fritt tilgjengelig som i første rekke har gitt det suksess, men at det er basert på forskning.

Startet firma

Firmaet Cfengine AS er stiftet for å håndtere programvaren videre. Mark Burgess har kommet så langt i akademia at han reiser fra konferanse til konferanse og får ikke tid til å ta seg av hjertebarnet.

– Jeg har lyst til at Cfengine skal fortsette å leve, og ikke bli kjøpt opp av noen store som stuer det bort.

Cfengine AS har så langt drevet butikk ved å holde kurs og levere tjenester, men fra og med neste versjon, som lanseres i april, vil de også levere kommersielle lisenser på programvaren.

I denne versjonen av Cfengine dokumenterer systemet seg i form av emnekart, og du kan relativt enkelt forholde det til ITIL.

– Konfigurasjonsverktøyet kan intuitivt konfigurere kunnskap i et emnekart, som tradisjonelt er en kronglete sak, som en del av totalkonfigurasjonen ved hjelp av sitt kraftige mønsterbaserte løftespråk. Likedan kan emnekart lett representere disse intensjonene i totalkonfigurasjonen og dokumentere dem. Slik blir det en symbiose/synergi mellom årsak og kunnskap i nettverket, sier Burgess.