Jump to content

Active Directory, ASP.NET, IIS und Tomcat auf Windows Server 2012R2


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Guten Tag,

 

 

wir möchten verschiedene (Web)Anwendungen hosten, durch die ein relativ umfangreicher Mix aus verschiedenen Technologien zusammen kommt (siehe unten).

Bisher haben wir schon etwas rumprobiert, wodurch wir zu dem Schluss gekommen sind auf jeden Fall zu virtualisieren, hauptsächlich um Konflikte zu vermeiden. Aber auch um das System skalierbar zu halten. Die Hostmaschine ist ein leistungsstarker QuadCore Xeon mit 32GB RAM und Windows Server 2012 R2. Zur virtualisierung soll das Microsoft eigene Hyper-V eingesetzt werden. Wir sind uns jedoch noch nicht so ganz sicher, wie wir das aufteilen und realisieren. Ein Mix aus Windows und Linux wird unvermeidbar sein, da z.B. Varnish nativ nur unter Linux läuft. Lösungen wie Cygwin gefallen mir nicht wirklich, ich ziehe da eine richtige Linux-VM vor. Erfahrung in der Administration von Windows und Linux ist vorhanden. Als Linux-Distribution wird Debian oder Ubuntu eingesetzt, das sollte denke ich keinen Unterschied machen. Zusätzlich werden noch ein paar Entwickler-Tools wie z.B. Jenkins dazu kommen.

Um das ganze möglichst übersichtlich zu gestalten, werde ich unsere bisherigen Planungen und Bedenken strukturiert in einzelnen Punkten auflisten:

 

Virtuelle Server:

 

VM #1: Active Directory

Der MS-Verzeichnisdienst soll das 'Herzstück' werden. Jeder Nutzer wird ein AD-Konto besitzen, und damit per Single Sign-on ALLE unsere Projekte nutzen können. Teilweise werden wir dafür in den Projekten selbst auf Plugins, teilweise auf Eigenentwicklungen zurückgreifen. Der AD-Server läuft in einer Windows Server 2012R2 VM. 

 

VM #2: Varnish Fronted-Server

Varnish soll in einer Debian-VM auf Port 80 von außen erreichbar sein. Bei dem momentanen Traffic wird er schätzungsweise die Hälfte aller dynamisch generierten Requests cachen können. Die übrigen leitet er an den IIS (VM #3) und Tomcat (VM #4) weiter.

 

VM #3: IIS + PHP + ASP.NET

Der IIS ist unser Haupt-Backend und soll in einer zweiten VM mit Windows Server 2012 R2 laufen. Er kümmert sich um unsere PHP sowie ASP.NET Anwendungen. Momentan gibt es auf PHP-Basis sowohl fertige CMS-Systeme, aber auch Eigenentwicklungen. Selbst entwickelte ASP.NET Programme existieren noch nicht, werden bald folgen. 

Überlegung: IIS nur für ASP.NET nutzen, PHP mit einem schlanken Webserver wie nginx oder Lighttpd (würden beide vollkommen ausreichen) in einer Linux-VM laufen lassen.

Vorteil: Bessere Performance

Nachteil: Overhead durch zusätzliche VM und zusätzlicher Webserver, Infrastruktur wird komplizierter da PHP und ASP.NET Requests getrennt werden müssen.

 

VM #4: Apache Tomcat

Wird für eine JavaServer Pages Webanwendung benötigt, zu der wir bisher keine Alternative gefunden haben, die alle Anforderungen erfüllt. Hier ist eine vergleichsweise geringe Last zu erwarten, da dieser Server lediglich als Intranet für ca. 20 Leute genutzt wird. Als OS dürfte Linux sinnvoll sein.

 

VM #5: MariaDB (MySQL Fork)

Dieser Datenbankserver wird zurzeit ausschließlich für PHP-Projekte genutzt. Wir denken Linux wäre hier die beste Wahl.

 

VM #6: MS-SQL Server 2013

MS-SQL soll ausschließlich für ASP.NET Anwendungen genutzt werden unter Windows Server 2012 R2. 

Überlegung1: MS-SQL komplett weglassen und stattdessen in ASP.NET auch den MySQL-Server aus VM #6 nutzen.

Vorteil: Alle Daten zentral in einer Datenbank, keine zwei Datenbankserver (und damit eine extra VM) am laufen. 

Nachteil: Möglicherweise Performance-Einbußen oder Kompabilitätsprobleme in ASP.NET? MySQL-Treiber wurde in ASP.NET kurz angetestet und funktioniert offenbar, jedoch bisher keine ausführlicheren Tests und Vergleiche zu MSSQL.

 

VM #7: Git

Für eigene Software haben wir momentan testweise den TFS im Einsatz. Wahrscheinlich werden wir aber zu Git wechseln, da flexibler und besser für unsere Zwecke geeignet. Hier halten wir eine eigene VM für sinnvoll. OS noch nicht festgelegt. 

 

Virtualisierung

Wir haben das ganze recht großzugüg aufgeteilt, da genug Ressourcen zur Verfügung stehen und wir Konflikte möglichst vermeiden wollen. Mit Hyper-V soll zudem der RAM dynamisch verteilt werden. Generell soll alles möglichst performant laufen. Kleinere Abstriche die der Vermeidung von Komplikationen und anderen Probleme dienen wären jedoch vertretbar.

Die Server sollen ein internes Netzwerk bilden. Jeder Server erhält eine eigene interne IP. Über internes Routing und NAT soll die Kommunikation stattfinden. Varnish bekommt z.B. alle Requests der öffentlichen IP auf Port 80. Was nicht gecached werden kann wird an den IIS (192.168.0.2) bzw. Tomcat (192.168.0.3) weitergeleitet. 

 

Einschätzungen und Verbesserungsvorschläge sind natürlich gerne gesehen. Auch wenn ihr Erfahrung damit habt, bestimmte Komponenten zusammen auf eine Maschine zu legen, die wir hier getrennt haben. Gerade bei PHP würde mich stark interessieren, ob es sich lohnen würde das in eine Linux-VM zu legen, oder ob es da sinnvoller ist den IIS mit FastCGI zu nutzen. 

Link zu diesem Kommentar


Hallo,

 

wir haben mit IIS + php sehr unterschiedliche Erfahrungen gemacht :-) Unsere eigenen php-Scripte rennen hervorragend. Es gibt aber Systeme (z.B. WordPress, phpMyAdmin) die sind sowas von langsam, da verzweifelt man dran. Daher haben wir eine extra Linux+Apache+php-VM installiert und können jetzt flexibel entscheiden, wo welches Script läuft.

 

Gruß

 

Stefan

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...