Beslutningsgrunnlag for valg av transport til Exchange-integrasjonen

Winrm som transportmetode

Ved bruk av Winrm som transportmetode, vil Cerebrum bruke Winrm-tjenesten på en springbrettmaskin til å starte samt kommunisere med PowerShell.

Per operasjon som utføres mot Exchange blir da PowerShell startet, før kommandoen kjøres.

Standard implementasjon

Fordeler

  • Cerebrum benytter en type transport til integrasjon mot Windows
  • Transport er allerede implementert og testet i stor grad
  • Intet behov for tredjepartsprogramvare (f.eks. vShell) på Windows-siden

Bakdeler

  • Dårlig ytelse

Hastighet

Første kall tar gjennomsnittlig 16.06 sekunder. Påfølgende kall for opprettelse av ny postboks tar gjennomsnittlig 1.84 sekunder.

Trådet implementasjon

En trådet variant av Winrm-transporten vil kunne kjøre kall mot Exchange i parallell.

Fordeler

  • Stor reduksjon i kjøretid da kommandoer kjøres parallelt
  • Cerebrum benytter en type transport til integrasjon mot Windows
  • Transport er allerede implementert og testet i stor grad
  • Intet behov for tredjepartsprogramvare (f.eks. vShell) på Windows-siden

Bakdeler

  • Nogle økt kompleksitet i forbindelse med tråder.

Hastighet

Ved bruk av en trådet implementasjon der kommandoer kjøres i parallell, er det mulighet for å spare tid.

Kjører man f.eks. 10 tilkoblinger i parallell mot en relativt sprek maskin (mail-mbox01), tar hvert kall for å lage en ny postboks gjennomsnittlig 5.18 sekunder, mens sesjonsopprettelse tar gjennomsnittlig 21.59 sekunder.

Da dette kjører i parallell, ender vi opp med å opprette 1.65 postbokser per sekund. I forhold til eksportens kjøretid, ender vi da opp med å bruke 0.6 sekunder per kall for opprettelse av postboks.

SSH som transportmetode

Brukes SSH som transportmetode mellom Cerebrum og Exchange, vil den initsielle tilkoblingen mellom Cerebrum og springbrettet mot Exchange være basert på SSH i stedet for Winrm.

Ikke-sesjonsbasert transport

Ikke-sesjonsbasert transport oppfører seg på samme måte som Winrm-transporten som i dag er implementert. Denne virker ved at det for hvert kall mot Exchange, opprettes en ny SSH-tilkobling, og startes en ny instans av PowerShell per kall. Winrm-komponenten byttes altså ut med SSH.

Fordeler

Bakdeler

  • En del overhead per kall, iom. at SSH-tilkobling må opprettes, og PowerShell startes.
  • Øker kompleksitet iom. at det må vedlikeholdes to forskjellige transportmetoder for integrasjon
  • Dårlig ytelse
  • Trenger tredjeparts programvare for å tilby SSH

Hastighet

Transportmetoden greier eksempelvis å opprette en ny postboks på gjennomsnittlig 2.14 sekunder. Første oppkobling tar gjennomsnittlig 15.83 sekunder.

Sesjonsbasert transport

Sesjonsbasert transport skiller seg fra Winrm-transporten (per idag) og eventuell ikke-sesjonsbasert SSH-transport, ved at SSH-tilkoblingen holdes ved like, og PowerShell ikke avsluttes mellom hvert kall.

Fordeler

  • Potensielt sett ~1 sekund tid spart på hvert kall mot Exchange da man unngår start av PowerShell per kall

Bakdeler

  • Økt kompleksitet i Cerebrum
  • Noe fragil løsning. Avslutning av kommandoer detekteres på bakgrunn av parsing av kommandoens output.
  • Trenger tredjeparts programvare for å tilby SSH

Hastighet

Denne løsningen er ikke implementert og testet, da det er vanskelig å få tak i teksten som blir returnert av kommandoer i PowerShell. Løsningen virker for sårbar til å gå i produksjon.

Konklusjon

Siden hastighet er en tungtveiende faktor, bør man velge Winrm som transport, siden Winrm er raskere en SSH selv i en enkelttrådet variant.

Ved bruk av en trådet Winrm-variant er det ikke nødvendig med modifikasjon av selve transporten. Dette kan implementeres i synkroniseringsjobben som Cerebrum kjører.

Publisert 11. sep. 2013 12:14