Når watchdog filosofien ikke er klar

fre mar 04, 2011 (Axcon)

DogVores telefonsystem har gjort knuder i det sidste halve år eller mere. Ikke sådan rigtig meget, men den lille box skulle alligevel have en restart en til to gange hver måned. Det var altid noget med at vi lidt op af formiddagen opdagede at telefonerne var døde.

Løsningen var simpel: stik-ud og stik-ind og så kørte det to minutter senere. Der var også den langsomme metode: ringe til IP telefoni udbyderen og få fat på deres support. De ville så gøre forskellige ting, som ikke så ud til at hjælpe før man hev stikket på boksen. Det kunne nemt tage et lille kvarter.

Vi overvejede at sætte et tænd-sluk-ur på boksen, så den blev genstartet hver nat på et tidspunkt, hvor der ikke var brug for telefonerne alligevel. Men vi fik det aldrig gjort. Problemet var jo til at leve med, bare irriterende når man nu selv lever af at lave indmad til apparater, der bare virker…

Da vi så havde situationen sidst, tog vi den alvorlige tur med supporten. Og de connectede til boksen og fik faktisk stillet en diagnose (påstod de).

Men der var en af kommentarerne fra supporteren, der triggede os her… Den afslørede at problemet så ud til at være skabt af boksens eget forsøg på genstart hver nat, hvor den så ikke kom ordentlig i gang efter genstarten… Det stemmer fint med, at vi oplevede problemet om morgenen.

Grotesk work-around

Det groteske er altså at man får lavet en work-around, for det må det natlige forsøg på soft genstart være, som formentlig ender med at lave mere skade end gavn. Det er bare ikke godt ingeniørarbejde.

Men hvordan gør man, så et apparat kan køre 24/7/365 i den virkelige verden? Uden at det går helt amok i overkill, redundans og prisen op i skyerne?

Prisbevidst 24/7/365 filsofi

Min filosofi er skabt af en lang række erfaringer og observationer, og lyder nogenlunde sådan her. Der skal være et godt og simpelt design, som inkluderer to ting:

  • Et robust design med en målsætning om at kunne køre 24/7/365 uden watchdog og andre kneb.
  • En simpel og gennemtænkt hardware watchdog mekanisme, som er så simpel, at den virker hver gang, og som genstarter apparatet fra kold.

Altså en designfilosofi der groft sagt går ud på at sikre, at bukserne bliver siddende med livrem alene, og så med et par solide seler som en backup plan der aldrig skal bruges (yngre læsere, der opfatter perfekt bukseføring som en ballancegang mellem at have bukser på og være ved at tabe dem, må undskylde min old-school sammenligning).

Design og test, test, test

Dertil skal lægges en test, som tager udgangspunkt i de to grundbestandele af designet, hvor der lægges vægt på test af netop de elementer:

  • Test at grunddesignet er robust og kan køre uden at aktivere watchdog mekanismen – OVERHOVEDET OG MED EN MARGIN!
  • Test at watchdog mekanismen virker som den skal og når den skal – altså når noget alligevel ikke fungerer. Det kræver provokerede fejl jnf. ovenstående.

For at opnå dette i praksis skal watchdog tænkes ind fra start. Dels som en hardware mekanisme, som er så simpel at den virker. Dels så det er muligt at teste og verificere, at designet har en solid margin. Og så skal designfilosofien købes helt ind i sjælen af hele holdet, så eksistensen af watchdog mekanismen ikke får designerne til at slække bæltet et par huller af ren bekvemmelighed, så selerne kommer i spil i dagligdagen.

Det er min designfilosofi, som jeg er sikker på ville have givet os mindre bøvl med telefonerne, men hvad siger du? Hvordan er din filosofi?

Hvad mener du?