Keine AnÜ oder projektbedingte Festanstellung.
Problembeschreibung
Das Deployment von Aktualisierungen der Logistik-Software wird mithilfe mehrerer Scripte durchgeführt, die manuell abgearbeitet werden müssen. In Ländern mit vielen Verteilzentren hat dies einen Ausfall von bis zu 10 Stunden zur Folge. Auch ist der Prozess aufgrund der möglichen Varianten bei der Vorgehensweise (je nach Zielumgebung, Upgrade-Typ und Zielland) und der intensiven manuellen Nacharbeit (Steuerung der Serverdienste und Citrix-Sitzungen, Erstellen von Backups, Anstoßen und Prüfen des Deployments, Konfiguration und Verteilung der Clients für Mobilgeräte, Anwenden der SQL-Skripte) sehr fehleranfällig und erfordert tiefer gehende Fachkenntnisse. Das Deployment für mehrere Länder gleichzeitig wäre sehr wünschenswert, ist aber wegen der Komplexität der aktuellen Vorgehensweise nicht zu bewältigen und wegen des Schichtbetriebs in den Verteilzentren immer mit einer sehr aufwändige Abstimmung zwischen den Standorten verbunden.
Ziel
Das Ziel des Projekts war, möglichst viele Schritte zu automatisieren und so weit zu optimieren, dass das Deployment Möglichst wenig Downtime verursacht. Auch soll das Operating bei dem Prozess unterstützt werden, sodass die Schulung des Personals weniger Aufwändig ausfällt und ihm dennoch möglichst wenige Fehler unterlaufen können.
Analyse
Bei meiner Analyse des aktuellen Prozesses habe ich ein enormes Optimierungspotential aufgedeckt. Der Prozess kann vollständig automatisiert und an entscheidenden Stellen sogar parallelisiert werden, sodass das Deployment ohne nennenswerten personellen Aufwand für unbegrenzt viele Länder gleichzeitig ausgerollt und die Downtime auf wenige Minuten reduziert werden können.
Ergebnis: HAVI Auto-Deploy
Bei „HAVI Auto-Deploy“ handelt es sich um ein PowerShell Programm, welches den gesamten Deployment Prozess automatisiert und für mehrere Zielländer parallel durchführt. Für die eingängige Bedienung der Software sorgt eine komfortable grafische Oberfläche, welche in den vier Aufgaben „Check-in release“, „Build tasklist“, „Execute tasks“ und „View dashboard“ unterteilt ist.
Das Projekt ist noch nicht vollständig abgeschlossen und das Programm befindet sich in einer späten Entwicklungsphase, aber der aktuelle Entwicklungsstand des Programms belegt bereits, dass das Ziel übertroffen wird:
Der Prozess wird vollständig automatisiert, es können beliebig viele Länder parallel aktualisiert werden und die Downtime wird auf wenige Minuten reduziert.
Die Bedienung des Programs ist wegen der komfortablen grafischen Oberfläche ist sehr eingängig und die Unterstützung durch das Programm ist so umfangreich, dass es kaum Schulung bedarf, um ein Deployment durchzuführen.
Das Programm gibt die Varianten bei der Vorgehensweise unter Berücksichtigung der Gegebenheiten vor, fängt alle bekannten Eventualitäten ab und unterbindet Fehlmanipulation äußerst zuverlässig.
Eine Abstimmung zwischen den Standorten ist nicht mehr notwendig, da die Verteilzentren sich mit einer angekündigten und wenige Minuten dauernden Downtime gut arrangieren können.
Wegen der internationalen Ausrichtung dieses Unternehmens habe ich sämtliche Kommunikation, Unterlagen und das Endprodukt in Englisch gehalten.
Problembeschreibung
Im Labor-Automationssystem DxA 5000 gab es sporadisch Verbindungsabbrüche in der Kommunikation zwischen den Steuereinheiten. Eine Recherche des Kunden führte zu dem Verdacht, dass die Ursache in der Zeitsynchronisierung zu suchen sei. Da der Fehler aber nur sporadisch auftrat, konnte er die Ursache nicht eindeutig zuordnen.
Analyseergebnis
Meine Analyse ergab, dass die Zeitsynchronisation in der dort implementierten Form tatsächlich eine Ursache für Kommunikationsprobleme darstellt, aber möglicherweise nicht die einzige Fehlerquelle ist.
Maßnahmen
Ich habe eine korrekte ntpd-Implementierung für die Infrastruktur vorgenommen und das PowerShell-Script StartDxA geschrieben, welches die Startsequenz aller Systeme steuert.
Ergebnis
Sauber implementierte ntpd Umgebung.
StartDxA: Das PowerShell-Script StartDxA wird beim Systemstart automatisch ausgeführt und steuert den Ablauf und das Timing des weiteren Startvorgangs. Bei einem Fehler werden dem Anwender detaillierte Informationen über den Systemzustand angezeigt und die Möglichkeit geboten, über grafische Elemente (per Touchscreen) entsprechend den Empfehlungen des Scripts auf den Fehler zu reagieren. Um zukünftigen Anforderungen gerecht zu werden, können Timing, zu startende und prüfende Dienste und Programme und weitere Parameter über eine .ini-Datei beliebig erweitert werden.
Es treten weiterhin Kommunikationsabbrüche auf, allerdings deutlich seltener. Auch konnte nun die Zeitsynchronisierung als Fehlerquelle ausgeschlossen und die Fehler der vom Kunden selbst entwickelten Software (C#/.Net) zugeordnet werden.
Im Rahmen dieses Projekts habe ich mehrere Tools zur Entlastung der Administratoren und Wahrung des Qualitätsstandards in PowerShell entwickelt (detaillierte Beschreibung der Tools weiter unten):
ScriptTemplate
Eine klar strukturierte Vorlage für eigene PowerShell-Scripte, die den Befehlssatz der PowerShell um wichtige Grundfunktionen erweitert. Alle folgenden Tools basieren auf diese Vorlage und nutzen die von der Vorlage bereitgestellten Grundfunktionen.
WinTaskMan
Tool zur zentralisierten Organisation, Planung und Deployment von Scheduled-Tasks für die gesamte Windows-Infrastruktur, mit einem sehr umfangreichen Funktionssatz und einer komfortablen grafischen Oberfläche.
ManageVMs
Tool zur Prüfung und Steuerung großer Mengen von Hyper-V VMs. Durch Parallelisierung der Prozesse kann es sehr viele VMs in sehr kurzer Zeit prüfen und steuern.
CheckCertificates
Dieses Tool prüft die Gültigkeit der verfügbaren Zertifikate am CA, erstellt einen HTML-Bericht (farblich gegliederte Tabelle, CSS-Formatiert) und schickt diesen per Email an vorgegebene Empfänger.
CheckVolumes
Dieses Tool prüft Auslastung, Gesundheitszustand und Fragmentierungsgrad von physikalischen und Cluster-Shared Volumes, erzeugt einen detaillierten Bericht (farblich gegliederte Tabellen, Listen und Erläuterungen) und sendet diesen – je nach eingestelltem Schwellwert – per Email.
TaskDiagnostics
Dieses Tool prüft ob auf einem Zielsystem alle Voraussetzungen für die Verwaltung durch WinTaskMan und das Ausführen von PowerShell-Scripte als Scheduled-Task erfüllt sind. Es erstellt einen detaillierten Bericht.
Detaillierte Beschreibung der Tools
ScriptTemplate
Diese Script-Vorlage richtet sich an Administratoren, die nur gelegentlich in den Genuss der Script-Entwicklung in PowerShell kommen, und an solche, die eine konsistente Struktur in ihren Scripten und eine komfortable Auswertung der Rückmeldungen wünschen.
Die Vorlage kann den Prozess der Script-Entwicklung beschleunigen, da sich der Nutzer auf die Kernfunktion seines Scripts konzentrieren kann, denn Struktur und wiederkehrende Grundfunktionen wie z.B. das Logging oder die Nutzung einer .ini-Datei zur Parametrierung sind bereits implementiert. Darüber hinaus vereinfacht diese Vorlage das Debugging eigener Scripte, dank ihrer ausführlichen, sauber gegliederten und konsistenten Logging-Funktionen. Für die Optimierung zeitkritischer Routinen stellt sie außerdem einen Zeitmessfunktion bereit.
Implementierte Basisfunktionen:
Auswertung von Kommandozeilenparameter. Unterteilung der Parameter in optionale und Pflicht-Parameter und Vorgabe von Standardwerten, Unterstützung des Anwenders durch eine Hilfefunktion.
Nutzung einer .ini Datei, sodass zur Anpassung von Parametern der Quellcode nicht angepasst werden muss.
Logging (mehrere Log-Level) in eine Datei (CSV-Format) und – je nach Log-Level – in das Windows Event-Log.
Versand von Log-Files, Berichten und/oder Fehlermeldungen per E-Mail.
Auswerten der Laufzeit einzelner Routinen zwecks Optimierung.
Detaillierte Informationen zum implementierten Logging:
Verfügbare Log-Level: „Debug“, „Info“, „Warn“ und „Error“.
Logging in eine Datei:
Die Datei ist CSV-formatiert und zusätzlich optisch in Spalten gegliedert.
Die Sitzung startet mit einem Header, welcher allgemeine Informationen zu Script, Systemumgebung und Kommandozeilenparameter enthält.
Einträge werden mit Funktionsname, Zeitstempel und fortlaufender Nummer versehen.
Am Ende der Sitzung erhält das Log einen Footer mit einer Log-Statistik und der Angabe der Gesamtlaufzeit.
Einträge vom Typ „Warn“ und „Error“ werden zusätzlich in das Windows Event-Log geschrieben.
WinTaskMan
Organisation, Planung und Deployment aller Scheduled-Tasks der gesamten Windows-Infrastruktur, von einem zentralen Server aus. Der Workflow wird durch eine komfortabel zu bedienende, klar gegliederte und in WPF realisierte grafische Oberfläche unterstützt.
Task-Management
Tasks werden in Repositories und Kategorien organisiert und für das Deployment vorgehalten. Dargestellt wird das aktuell gewählte Repository in einer übersichtlichen Baumstruktur.
Ein Task besteht aus einem Schedule und dem vom Schedule referenzierten Script.
Schedules können vollständig (samt Trigger) komfortabel in WinTaskMan definiert werden.
Bereits bestehende Schedules können importiert werden.
Ein Script kann aus einer Datei oder aus mehrere Dateien und Unterordner bestehen.
Schedules und Scripte sind beliebig kombinierbar. Referenzen zum Script leitet WinTaskMan aus den vorhandenen Informationen ab und trägt sie in die Schedule-Informationen ein.
Aus den Schedule-Parametern generiert WinTaskMan die für den Task-Import im Windows-Task-Scheduler benötigte .XML-Datei.
Es können Task-Vorlagen erstellt und beliebig weiterverwendet werden.
Server-Management
Bei allen Aufgaben wird der Administrator durch detaillierte ToolTips, ausführliche Hinweisdialoge und eine sehr komfortable Suchfunktion unterstützt. Fehlmanipulationen werden durch kontextsensitives Aktivieren der Schaltflächen und durch die Nutzung von Vorgabewerten (sofern angebracht) vermieden.
ManageVMs
Dieses Tool Steuert große Mengen von Hyper-V VMs. Dank Parallelisierung der Aufgaben kann es in sehr kurzer Zeit sehr viele VMs steuern. Dazu verteilt es die Aufgaben an die Clusternodes und startet sie dort asynchron. So können alle Clusternodes gleichzeitig bestückt werden und mehrere Threads pro Clusternode parallel laufen.
Aufgaben die mit dem Tool in der aktuellen Version an die VMs angewandt werden können sind:
Starten und Stoppen der VM, abhängig von ihrem aktuellen Zustand und ihrer Zuordnung. Die Zuordnung kann das Tool aus SCCM-Collections, einer Liste in Dateiform oder einer SQL-Tabelle auslesen.
Erzeugen, Einspielen und selektives Löschen von Checkpoints.
Sobald Threads auf einem Clusternode frei sind, versorgt das Tool den Clusternode mit neuen Aufgaben, bis alle Jobs abgearbeitet wurden. Die Auslastung der Clusternodes wird überwacht und kann parametriert werden.
Zwecks Optimierung der Job-Queue protokolliert das Tool die Laufzeit jeder Aufgabe (sowohl CPU- als auch Wartezeit) und stellt am Ende der Sitzung eine Statistik im Log-File bereit, denn bei einem hohen Parallelisierungspotential (viele Clusternodes mit mehreren verfügbaren Threads) und einer gut eingestellten Job-Queue kann das Script innerhalb von wenigen Minuten mehrere Tage CPU-Zeit nutzen. Eine schlecht optimierte Job-Queue hingegen, kann innerhalb von Minuten mehrere Tage Leerlauf verursachen.
CheckCertificates
Prüft die Gültigkeit der verfügbaren Zertifikate am CA, erstellt einen HTML-Bericht (farblich gegliederte Tabelle mit den bald auslaufenden Zertifikaten, CSS-Formatiert) und schickt diesen per Email.
Der Schwellwert für die Gültigkeit kann vorgegeben werden.
Zertifikatstypen können in Gruppen zusammengefasst und den Gruppen Empfänger-Adressen zugeordnet werden, sodass die Berichte gezielt die betroffenen Gruppen erreichen.
CheckVolumes
Prüft Auslastung, Gesundheitszustand und (optional) Fragmentierungsgrad von Speichervolumes, erzeugt einen detaillierten Bericht (farblich gegliederte Tabellen, Listen und Erläuterungen) und sendet diesen per Email.
Erfasst und analysiert sowohl physikalische als auch Cluster-Shared Volumes.
Die Prüfung des Fragmentierungsgrades ist optional, da sie u.U. eine hohe Last verursachen kann.
Für die Hosts und Volume-Typen können BlackLists hinterlegt werden.
Zusätzlich kann ein Filter übergeben werden, welcher auf die Hostnamen angewandt wird.
Der Versand des Berichts erfolgt wahlweise immer, oder wenn ein vorgegebener Zustand bei mindestens einem Volume festgestellt wurde.
Der Füllgrad ist in 6 Stufen unterteilt, von „leer“ über „kritisch“ bis „voll“. Diese werden im Bericht farblich gekennzeichnet.
TaskDiagnostics
Prüft ob auf einem Zielsystem die Voraussetzungen für das Ausführen von PowerShell-Scripte als Scheduled-Task erfüllt sind und erstellt einen detaillierten Bericht. Wenn die Voraussetzungenfür das Versenden von Emails erfüllt sind, schickt es den Bericht per Email.
Geprüft werden:
User-Account und Gruppenmitgliedschaft
Dateisystem-Berechtigungen
Erforderliche Ordner und Freigaben
Funktionsfähigkeit der Auswertung von Kommandozeilenparameter
Funktionsfähigkeit von Logging in Datei und Windows-Event-Log
Verfügbarkeit von Email-Versand
Das von mir im Projekt "Middleware Administration & Entwicklung – 12.2017" entwickelte Tool zum Deployment von Web-Applikationen „DeployGUI“, durfte ich um weitere Anforderungen, u.A. Parallelisierung der Aufgaben (Multithreading) erweitern, sodass mehrere Server und WebApps gleichzeitig abgearbeitet werden und umfangreiche Deployments deutlich schneller ablaufen können.
Problembeschreibung
Etwa 4.000 Windows 10 Tablets sind bundesweit im Einsatz, welche alle möglichst dauerhaft mit dem VPN des Kunden verbunden sein sollen. Aus Sicherheitsgründen darf aktuell jedoch lediglich das Mobilfunknetz genutzt werden, da die Mobilfunk-Verbindungen in ein vom Provider bereitgestelltes VPN münden. Aktualisierungen von Betriebssystem und Betriebssoftware (Eigenentwicklung auf Basis von SAP) werden immer umfangreicher und bereits jetzt belasten sie den Betrieb sehr, da das Herunterladen der Aktualisierungen über die Mobilfunkverbindung sehr viel Zeit in Anspruch nehmen kann und oftmals abbricht und neu gestartet werden muss.
Zielsetzung und Vorgaben
Die Aktualisierungen sollen über jedes beliebige Netzwerk (privates WLAN der Anwender, Hotel-WLAN, öffentliche WLAN-HotSpots, Kabel-gebunden per Ethernet oder USB, Bluetooth, ... ) geladen werden können. Allerdings dürfen die Tablets durch die Anbindung an das fremde Netzwerk nicht kompromittiert werden können.
Idealerweise sollte dieses Ziel mit Windows Bordmitteln erreicht werden, auf jeden Fall jedoch ohne eine Abhängigkeit zu einer kommerziellen Fremdsoftware zu erzeugen. Auch sollen den Anwendern keine administrativen Privilegien erteilt werden müssen.
Lösungsansatz: Filterregeln in der Windows Firewall
Diese Lösung hatte der Kunde bereits vor meiner Ankunft geprüft und verworfen, denn nach der Einrichtung einer für die zeitnahe Aktualisierung der Regeln aus der Ferne notwendigen Infrastruktur, ließen sich folgende behindernde Aspekte nicht aus dem Weg räumen:
Unbekannte Netzwerkverbindungen können nicht in Form einer Black-List im System hinterlegt werden und eine zeitnahe Pflege der Black-List, welche für die lückenlose Absicherung der Tablets unabdingbar wäre, ist darüber hinaus technisch nicht realisierbar.
Die Nutzung einer White-List ist ebenfalls unpraktikabel, da hier jede neue Verbindung von einem Administrator freigeschaltet werden müsste, bevor sie genutzt werden kann. Dies erforderte bei dieser Größenordnung die Einrichtung einer dedizierten Hotline und eine Personalaufstockung im operativen Bereich. Auch brächte dies dennoch nicht den erhofften Vorteil, da die aktualisierte Liste zum Tablet synchronisiert werden müsste, was wegen einer schlechten oder nicht vorhandenen Mobilfunk-Verbindung scheitern könnte.
Meine Lösung: MWNS
Ein PowerShell-Tool, welches das Tablet bei jedem Verbindungsaufbau erneut abschottet.
Zur Gewährleistung der Anforderungen an Sicherheit und Zuverlässigkeit, habe ich das Tool in drei Module unterteilt, welche ich im folgenden kurz beschreibe:
Modul 1: Der Watchdog
Dieses Modul läuft im Systemkontext. Die Laufzeit beträgt nur wenige Sekunden. Es wird getriggert, sobald Windows eine Netzwerkverbindung aufbaut (Event-Driven). Sämtliche Netzwerkverbindungen an allen Schnittstellen werden erfasst.
Funktion dieses Moduls:
Sobald eine Netzwerkverbindung aufgebaut wird, konfiguriert dieses Modul das Tablet, sodass ausschließlich das VPN des Kunden erreichbar ist. Dazu analysiert es die neu aufgebaute Verbindung und passt die Konfiguration an. Dies geschieht innerhalb von Millisekunden und vom Anwender völlig unbemerkt (eine Statusmeldung wurde vom Kunden nicht gewünscht).
Merkmale der vom Watchdog erzeugten Konfiguration:
Sie ist zeitlich unbegrenzt und bleibt auch nach einem Neustart des Tablets erhalten.
Auch eine Konfiguration per DHCP wird erkannt und angepasst, sodass auch diese nicht dazu beitragen kann, den Mechanismus zu umgehen.
Bei mehreren parallel verbundenen Netzwerken (z.B. über Ethernet, WLAN und UMTS) wird das bevorzugte Netz priorisiert. Niedriger priorisierte Verbindungen werden dennoch ebenfalls angepasst, als Fallback-Lösung vorgehalten und erst aktiviert, wenn die nächsthöher priorisierte Verbindung ausfällt.
Auch Verbindungen zu oder von Geräten aus demselben Teilnetz (z.B. bei öffentlichen HotSpots sehr wichtig) werden durch die Anpassung unterbunden.
Wird eine Konfiguration nicht mehr benötigt, löscht dieses Modul sie, damit das Tablet nicht unnötig belastet und im Laufe der Zeit immer träger wird.
Modul 2: Die grafische Oberfläche (Touchscreen-optimiert).
Das zweite Modul läuft im Kontext des aktuell angemeldeten Anwenders und bietet ihm eine grafische Oberfläche mit großen aussagekräftigen Symbolen, über die er per Touchscreen, ohne Kenntnis der dem Vorgang zugrunde liegenden Abläufe, die möglichen Verbindungswege aktivieren und deaktivieren kann. Dazu benötigt er keinerlei erhöhte Privilegien, denn dieses Modul führt die Änderungen nicht selbst durch, sondern kommuniziert sie an den Aktuator (das 3. Modul).
Auf einer zweiten grafischen Ebene, welche nur eingeblendet wird, wenn eine Mitglied der Administratorengruppe angemeldet ist, kann das Tool über eine Eingabemaske (ebenfalls Fingerfriendly) konfiguriert werden.
Die Konfigurationsoptionen werden in einer ausschließlich den Administrator zugänglichen .ini-Datei hinterlegt. Die .ini-Datei wird bei jedem Aufruf der Software und bei jeder neuen Netzwerkverbindung frisch eingelesen. Dies ermöglicht es, neue Anforderungen in Form einer angepassten .ini-Datei auszurollen (z.b. per GPO) und sehr kurzfristig zu aktivieren.
Modul 3: Der Aktuator
Dieses Modul lauscht auf Signale vom 2. Modul. Sobald ein Signal erkannt wurde, führt es eine Plausibilitätsüberprüfung durch und aktiviert oder deaktiviert die Netzwerkverbindungen gemäß den Wünschen und Gegebenheiten. Auch liefert es auf Anfrage von Modul 2 den aktuellen Zustand der Anbindungen zurück, sodass die Anzeige der grafischen Oberfläche stets akkurat ist.
Dieses Modul läuft ebenfalls im Hintergrund, wahlweise im Kontext des lokalen Administrators oder dem eines eigens dafür eingerichteten und mit den benötigten Berechtigungen ausgestatteten User accounts.
Weitere Merkmale dieser Lösung
Die Software bietet einige Dialoge, in welchen der Anwender bei Verbindungsproblemen mit Tipps zur Vorgehensweise unterstützt wird.
Die Lösung ist zweisprachig ausgelegt (Deutsch und Englisch). Je nach installierter Windows Sprachversion wird automatisch die passende Sprache gewählt (dies kann jedoch mit einen Eintrag in der .ini Datei übersteuert werden).
Das Tool habe ich mit einer Installationsroutine mit Unattended-Mode versehen, sodass sie parallel auf tausende Geräte gleichzeitig ausgerollt und installiert werden kann. Die Installationsroutine protokolliert den Erfolg der Installation in das Windows Ereignisprotokoll, sodass der Administrator über ein Monitoring zuverlässig feststellen kann, dass das Tool erfolgreich installiert wurde. War die Installation nicht erfolgreich, besteht dennoch keine Gefahr für das Gerät, denn ohne das Tool bleibt das Gerät für fremde Netze weiterhin gesperrt.
Ergebnis
Aktualisierungen können nun performant und sicher über jedes beliebige Netz installiert werden. Der Anwender kann selbst entscheiden, welche Verbindung dafür genutzt werden soll. Dennoch sind die Tablets weiterhin lückenlos gesichert.
Die dafür eingesetzte Lösung ist aufgrund des modularen Prinzips Resistent gegen Fehlerzustände und Manipulationsversuche. Auch lässt sie sich mit wenig Aufwand, kontrolliert auf die Tablets ausrollen und installieren.
Der Aufwand für die Definition, Hinterlegung und Pflege von Black- oder White-Lists und das Risiko, dass die Liste nicht zeitnah gepflegt oder übertragen werden kann entfallen.
Aufgaben
Middleware Operating und Administration: (Tagesgeschäft)
Manuelles Konfigurieren, Paketieren und Verteilen von Web-Applikationen auf Tomcat Server.
Konfigurieren/Debuggen der Tomcat Installationen und Sicherstellen der Verfügbarkeit von Basisdienste und Anwendungen, Aktualisierung und Härtung der Tomcat- und Java Basis.
Middleware Entwicklung:
Optimierung und Automatisierung von Konfiguration, Paketierung, Deployment und Installation von Tomcat-Instanzen und Web-Apps.
Management Entwicklung:
Entwicklung eines Tools zur Visuellen Planung der verfügbaren Ressourcen.
Entwicklungsergebnisse
DeployGUI
Umfangreiches und leistungsfähiges Admin-Tool, zum CheckIn/CheckOut und automatischem Konfigurieren, Paketieren und Deployen der Web-Apps. Mit wahlweise automatischer oder Manueller Versionierung der Apps.
TcGIn
Operating-Tool mit Statusanzeige, Dienstesteuerung, Installation und Backup/Restore von Middleware-Instanzen und Applikationen.
Durch dieses Tool braucht das Operating-Team keine fachlichen Kenntnisse mehr.
StagesRoadmap
Übersichtliche und grafisch ansprechende Visualisierung und Planung der verfügbaren Ressourcen* und von Notizen. Die Notizen und Ressourcen werden auf einer Zeitleiste dargestellt und können direkt in der Zeitleiste geplant werden.
*Ressourcen sind:
Systemumgebungen (Stages)
Systeme/Instanzen (Server oder Tomcat-Instanzen)
Web-Applikationen samt Versionsnummern
Teams und Teammitglieder.
Detailbeschreibung der Produkte
DeployGUI:
CheckIn/CheckOut von Paketen aus der Entwicklungsumgebung, mit wahlweise manueller oder automatischer Versionierung.
Zuweisung von Paketen zu Stages, mit automatischer Konfiguration der Pakete für die Stages (Analysieren/Bearbeiten von MANIFEST.MF, .xml, .inf und .properties Dateien) und Generierung der angepassten .war Datei.
Deployment der Pakete samt Installer (TcGIn) auf die Zielsysteme.
Dieses Tool habe ich in PowerShell geschrieben. Die grafische Oberfläche ist in XAML realisiert und basiert auf WPF. Daten werden in einer SQL-Datenbank vorgehalten.
TcGIn (Tomcat Global Installer):
Anzeige des Serverstatus und Steuerung der Tomcat-Dienste.
Installation / Aktualisierung und Backup / Restore von Tomcat-Instanzen.
Installation / Deinstallation / Aktualisierung von Web-Applikationen.
Identifizierung von Fehlern während der Installation. Automatisches Restore bei fatalen Fehlern.
Ausgabe aussagekräftiger Fehlermeldungen in Klartext und mit Tipps zur weiteren Vorgehensweise (in Englisch).
Bedienung über eine übersichtliche grafische Oberfläche.
Dieses Tool habe ich in PowerShell geschrieben. Die grafische Oberfläche in XAML/WPF.
StagesRoadmap:
Zeitlich unbegrenzte, scroll- und zoombare Zeitleiste auf der Horizontalen Achse, mit Darstellung von Kalendertage und -wochen nach ISO 8601 und Hervorhebung des aktuellen Tages.
Wochenende und Feiertage werden farblich abgesetzt.
Unterscheidung zwischen bundesweite und lokale Feiertage (lokales Bundesland einstellbar).
Darstellung von Datums-gebundenen Notizen.
Klar gegliederte Übersicht der Systemumgebungen, auf der vertikalen Achse granular auf/zu klappbar bis hinunter zu den einzelnen Web-Apps und ihrer Versionsnummern.
Ansicht von Status der Umgebungen und Installierte Versionen der Instanzen und Applikationen für jeden beliebigen Zeitpunkt (Snapshot).
Darstellung der Planungselemente (Paket-Deliveries und -Deployments, Penetration-, Disaster-Recovery- oder Last-und-Performance-Tests, Reservierung von Systemumgebungen, …) auf der Zeitachse, in Form von Farblich hervorgehobenen und beschrifteten Symbolen. Die Planungselemente sind beliebig anpassbar.
Darstellung und Planung von Team / Teammitglieder (Urlaub, Anwesenheit, Abwesenheit und Verfügbarkeit), ebenfalls auf der Zeitachse und in Form von farblich gekennzeichneten Symbolen.
Planung einzelner Ressourcen direkt in der Zeitleiste durch
Rechtsklick auf einen Tag / Ressource
oder durch Auswahl eines Zeitraums innerhalb einer Ressource, mit anschließendem Rechtsklick
Druck oder Export der aktuellen Darstellung als .pdf (z.B. für Berichte / Präsentationen).
Die Eingabemasken werden – sofern es der Kontext erlaubt – automatisch ausgefüllt. Drop-Down Listen erleichtern die Auswahl der möglichen Optionen und vermeiden Fehleingaben. Die Zeitleiste wird auf der Grundlage der erfassten Daten dynamisch generiert.
Das Tool ist flexibel aufgebaut und die Darstellung wird über Vorlagen gesteuert, sodass viele Aspekte der Visualisierung ohne Programmierkenntnisse anpassbar sind. Die Gestaltungsmöglichkeiten umfassen unter anderem:
Frei wählbarer Zeitraum der Zeitleistenansicht, frei zoombare Zeitleiste und fein granular wählbare Detailstufe der Umgebungsdarstellung.
Farbgebung der Elemente und der Hervorhebung der Wochen- und Feiertage.
Symbole für die Darstellung der Vorgänge (3 Symbolsätze mit modernen Farbverläufen und weichen Schatten sind bereits in der Layout-Vorlage hinterlegt, die Layout-Vorlage kann beliebig erweitert werden).
Dieses Tool habe ich in Excel/VBA realisiert. Standard Excel Elemente und die die für die Planung nicht benötigten Tabellen werden ausgeblendet (Kiosk-Mode / Passwortgeschützt).
Aufgabe
Implementierung der von mir in 2015 entwickelten K-Fall Lösung (siehe mein Projekt von 11.2015 "Entwicklung eines K-Fall Konzepts"), welche hauptsächlich auf der Netzwerkebene, durch ausreizen der Fähigkeiten der Firewalls und Router ermöglicht wird. Der Schwenk zum FailOver-Standort geschieht transparent, zeitnah und automatisch.
Schritt 1: Umsetzung aller von mir vormals aufgezeigten Voraussetzungen
Hauptsächlich ging es hier darum, Server, Serverdienste, VPNs und Routen auf die neue Topologie vorzubereiten. Weiterhin das Netzwerk umzustrukturieren, d.h. Netzwerke neu segmentieren, VLANs, Routen und Firewall-Filterregeln definieren und einrichten, Anbindungen neu zu dimensionieren und redundant auszulegen.
Schritt 2: Aktivierung der K-Fall Lösung
In einer geplanten Downtime von etwa einer Stunde habe ich die K-Fall Lösung "scharf geschaltet", d.h. Routen, Firewall- und NAT-Regeln und Firewall HA-Cluster aktiviert.
Ergebnis
Alle WAN-Anbindungen sind nun optimal dimensioniert und redundant zu beiden RZ ausgelegt. Die Anbindungen zwischen den RZ wurden ebenfalls aufgebohrt und redundant ausgelegt.
An allen Standorten ist die Firewall aktiv und gehärtet.
Standorte nutzen für den Internetzugang nun den zentralen Proxyserver. Die Anbindung an das Internet wurde redundant ausgelegt und die Bandbreitennutzung mittels Kanalbündelung und Lastverteilung optimiert.
Lancom Router und DELL/SonicWall VPN-Gateway in beiden RZ wurden gehärtet.
Die Verbindung der Riverbed SteelHead Appliances zwischen den RZ wurde optimiert.
Die DELL/SonicWall SonicPoints (WLAN-Access-Points) in den Niederlassungen wurden gehärtet.
Die Performance der ESX-Farmen wurde durch neue Hardware erhöht und die Lastaufteilung optimiert.
Die Performance der NetApp Filer wurde durch neue Hardware erhöht.
Die Firewall HA-Cluster beider Standorte werden von der jeweiligen Gegenseite überwacht. Sobald der Ausfall eines Standortes zweifelsfrei erkannt wird, werden geeignete Gegenmaßnahmen ergriffen.
Aufgabe
Entwicklung einer K-Fall Lösung, die es ermöglicht, nach dem Ausfall des Hauptstandortes, gestützt durch einen FailOver-Standort (sekundäres RZ), den allgemeinen Geschäftsbetrieb innerhalb von Sekunden wieder aufzunehmen.
Bestandsaufnahme
Die vorhandene Infrastruktur ist auf 10 Standorte in Deutschland verteilt und setzt sich im Groben folgendermaßen zusammen:
WAN-Anbindungen in den unterschiedlichsten Ausprägungen (je nach Verfügbarkeit am Standort).
DELL/SonicWall VPN-Gateways, diverse Modelle, teilweise mit aktiver Firewall.
Lancom Router und DELL/SonicWall VPN-Gateway in beiden RZ.
Riverbed SteelHead Appliances zwischen den RZ.
Managed HP ProCurve Core-Switche & HP Etagenswitche mit VLANs und Trunks.
DELL/SonicWall SonicPoints (WLAN-Access-Points), diverse Modelle in den Niederlassungen.
Mehrere ESX-Farmen mit je bis zu 40 VMs in beiden RZ.
NetApp Filer in unterschiedlichen Ausbaustufen in beiden RZ.
Physikalische und virtuelle Maschinen mit Windows Server 2012 R2 und Linux, auf welchen Dienste laufen wie AD, DNS, NTP, Exchange, MS-SQL, IIS, Terminal Services, Xen-App, FTP, PRTG, uvm.
Ich habe die gesamte IT-Infrastruktur auf allen relevanten Ebenen, incl. der Sicherheitsaspekte analysiert und auf der Grundlage meiner Analyseergebnisse ein FailOver-Konzept entwickelt.
Aufgaben
Analyse der gesamten IT-Infrastruktur im Hinblick auf Performance und Zuverlässigkeit.
Beratung des CIO zu den Themen
Sicherheitsstandards in der Netzwerkinfrastruktur und bei WAN-Anbindungen.
AD-Migration und Einführung von DFS.
Migration von Citrix zu MS-TerminalServices.
Erneuerung der ESX-Farmen.
Erneuerung der NetApp Filer.
Einführung von Veeam und Migration des Backupsystems von Arcserver zu Veeam.
Entwicklung von SecForm: Ein Tool zur Prüfung und verschlüsselten Übertragung von Formulardaten
Ergebnis
Ausführliche Systemdokumentation & Pflichtenheft
SecForm
Das Problem: Kontaktdaten werden von den Kunden in einem Formular eingegeben, das über einer einfachen Wordpress-Instanz bei einem Web-Hoster bereitgestellt wird. Der Web-Hoster bietet lediglich den ungesicherten Versand der Daten per Email an. Um geltende Datenschutzbestimmungen einzuhalten, müssen die Daten jedoch verschlüsselt übertragen werden.
Die Lösung: SecForm (wird alle paar Minuten per Cron aufgerufen – seit mittlerweile 5 Jahren ununterbrochen und vollkommen fehler- und wartungsfrei).
SecForm
Baut eine SSH-Verbindung zum Internetportal auf, gesichert per Public-Key-Verfahren
Injiziert einen Script-Block in den Hauptspeicher des Servers
Der injizierte Script-Block
Prüft ob Daten bereit liegen
Kopiert vorliegende Daten über den gesicherten Kanal
Bereinigt nach Erfolgreicher Datenübertragung den Speicher des Servers
Gibt die Kontrolle zurück an SecForm
SecForm
Prüft weiterhin, ob die Datensätze gültig sind
Leitet gültige Daten per interner Email an den Kundendienst
Speichert ungültige Daten auf einem internen File-Share und benachrichtigt eine Prüfstelle per Email
Aufgaben
Urlaubsvertretung für den Systemadministrator im Tagesgeschäft.
1st, 2nd und 3rd Level Support.
Priorisierung, Kanalisierung und Klärung von Anfragen aus den Fachbereichen.
Koordination der Teammitglieder und der externen Dienstleister in laufenden Projekten.
Monitoring der Systeminfrastruktur per PRTG, Pflege der PRTG-Umgebung
Störungsbehebung und ggf. Beauftragung externer Dienstleister
Analyse der gesamten IT-Infrastruktur im Hinblick auf Sicherheitsrisiken und Optimierungspotential.
Aufgaben
Rückbau der restlichen Infrastruktur der REWE-Unterhaltungselektronik, bestehend aus Arbeitsplätzen und Serversystemen im Rechenzentrum der REWE Group.
Entwickeln und Aufsetzen eines Archivsystems.
Dieses Archivsystem soll die Daten, Anwendungen und das Warenwirtschaftssystem der REWE-UE zwecks Einhaltung der Gewährleistungs- und Produkthaftungsfristen bereitstellen.
Ergebnis
Das Archivsystem besteht nun aus 2 Windows Server 2012R2 (ESXi / Storagesystem) und einen IBM AIX Host (LPAR / Storagesystem). Diese stellen alle für eine etwaige Nachverfolgung/Kontrolle relevanten Daten und das Warenwirtschaftssystem als Archiv (read-only) bereit.
Gewartet wird das Archivsystem fortan von der REWE Informationssysteme (RIS).
Aufgabe
Die REWE-Group hat die Aufgabe des Geschäftsbetriebs ihrer Tochtergesellschaft REWE Unterhaltungselektronik GmbH beschlossen. Als ehemaliger und langjähriger Systemadministrator bei der REWE-UE, bekam ich nun den Auftrag, die gesamte IT-Infrastruktur der Filialen (ProMarkt) rückzubauen und die zentrale Infrastruktur im Rechenzentrum der REWE in Köln auf einen von mir zu definierenden Umfang zu reduzieren, welcher für die restliche Geschäftsabwicklung in der Zentrale reichen sollte.
Ursprünglich bestand die IT-Infrastruktur aus:
ca. 90 LINUX-Server
25 Windows Server (2003 – 2012R2)
3 IBM AIX Hosts
rund 70 Firewalls
insgesamt über 400 WLAN-Router, Router und Switche
über 1000 Arbeitsplätze
Unter Berücksichtigung der Abhängigkeiten und der Anforderungen des noch laufenden Geschäftsbetriebs, habe ich die Filial-Infrastruktur rückgebaut und die zentrale Infrastruktur im Rechenzentrum auf die Systeme reduziert, welche noch für die Restabwicklung benötigt wurden:
9 LINUX Server
5 Windows Server
1 AIX-Host
2 Firewalls
10 Router und Switche
rund 20 Arbeitsplätze
Dieses „Minimalsystem“ stellt folgende Dienste bereit:
ADS
DNS
DHCP
FTP
SQL-DB
Webserver
Fileserver
Terminalservices
Warenwirtschaftssysteme
Internetzugang über Firewall & Proxyserver
Aufgabe
Obschon die REWE Unterhaltungselektronik GmbH fester Bestandteil der REWE Gruppe ist und alle anderen Geschäftszweige die IT-Infrastruktur der RIS (REWE Informationssysteme) nutzt, unterhält sie eine eigenständige IT-Infrastruktur mit eigenen Datenanbindungen.
Die Filialen der REWE-UE (ProMarkt) verfügen über dezentrale Servereinheiten und Zugangspunkte und sind an die UE-Zentrale per VPN angebunden. Die zentralen Server der REWE-UE stehen im Rechenzentrum der REWE, welches von der RIS bereitgestellt wird.
Die Infrastrukturen sind an gesondert abgesicherten Punkten miteinander verbunden. Die REWE-UE nutzt extensiv Netzwerkdienste (u.a. IP-Telefonie, Storage, Datensicherung, Mail) und Anbindungen an Partnerunternehmen, welche über die Infrastruktur der RIS bereitgestellt werden.
Als Systemadministrator in Festanstellung bei der REWE-UE verantworte ich die Sicherheit, Verfügbarkeit und Weiterentwicklung der gesamten Infrastruktur der REWE-UE, inklusive der ihrer bundesweit verteilten Geschäftsstellen. In dieser Eigenschaft bilde ich auch die Schnittstelle zwischen der REWE-UE und der RIS in infrastrukturellen Fragen.
Unser Beschäftigungsverhältnis wurde einvernehmlich aufgelöst, da die REWE Gruppe ihre Tochtergesellschaft REWE Unterhaltungselektronik GmbH veräußert hat. Für mich ist dies der Anstoss, mich in die Selbständigkeit zu begeben.
Keine AnÜ oder projektbedingte Festanstellung.
Problembeschreibung
Das Deployment von Aktualisierungen der Logistik-Software wird mithilfe mehrerer Scripte durchgeführt, die manuell abgearbeitet werden müssen. In Ländern mit vielen Verteilzentren hat dies einen Ausfall von bis zu 10 Stunden zur Folge. Auch ist der Prozess aufgrund der möglichen Varianten bei der Vorgehensweise (je nach Zielumgebung, Upgrade-Typ und Zielland) und der intensiven manuellen Nacharbeit (Steuerung der Serverdienste und Citrix-Sitzungen, Erstellen von Backups, Anstoßen und Prüfen des Deployments, Konfiguration und Verteilung der Clients für Mobilgeräte, Anwenden der SQL-Skripte) sehr fehleranfällig und erfordert tiefer gehende Fachkenntnisse. Das Deployment für mehrere Länder gleichzeitig wäre sehr wünschenswert, ist aber wegen der Komplexität der aktuellen Vorgehensweise nicht zu bewältigen und wegen des Schichtbetriebs in den Verteilzentren immer mit einer sehr aufwändige Abstimmung zwischen den Standorten verbunden.
Ziel
Das Ziel des Projekts war, möglichst viele Schritte zu automatisieren und so weit zu optimieren, dass das Deployment Möglichst wenig Downtime verursacht. Auch soll das Operating bei dem Prozess unterstützt werden, sodass die Schulung des Personals weniger Aufwändig ausfällt und ihm dennoch möglichst wenige Fehler unterlaufen können.
Analyse
Bei meiner Analyse des aktuellen Prozesses habe ich ein enormes Optimierungspotential aufgedeckt. Der Prozess kann vollständig automatisiert und an entscheidenden Stellen sogar parallelisiert werden, sodass das Deployment ohne nennenswerten personellen Aufwand für unbegrenzt viele Länder gleichzeitig ausgerollt und die Downtime auf wenige Minuten reduziert werden können.
Ergebnis: HAVI Auto-Deploy
Bei „HAVI Auto-Deploy“ handelt es sich um ein PowerShell Programm, welches den gesamten Deployment Prozess automatisiert und für mehrere Zielländer parallel durchführt. Für die eingängige Bedienung der Software sorgt eine komfortable grafische Oberfläche, welche in den vier Aufgaben „Check-in release“, „Build tasklist“, „Execute tasks“ und „View dashboard“ unterteilt ist.
Das Projekt ist noch nicht vollständig abgeschlossen und das Programm befindet sich in einer späten Entwicklungsphase, aber der aktuelle Entwicklungsstand des Programms belegt bereits, dass das Ziel übertroffen wird:
Der Prozess wird vollständig automatisiert, es können beliebig viele Länder parallel aktualisiert werden und die Downtime wird auf wenige Minuten reduziert.
Die Bedienung des Programs ist wegen der komfortablen grafischen Oberfläche ist sehr eingängig und die Unterstützung durch das Programm ist so umfangreich, dass es kaum Schulung bedarf, um ein Deployment durchzuführen.
Das Programm gibt die Varianten bei der Vorgehensweise unter Berücksichtigung der Gegebenheiten vor, fängt alle bekannten Eventualitäten ab und unterbindet Fehlmanipulation äußerst zuverlässig.
Eine Abstimmung zwischen den Standorten ist nicht mehr notwendig, da die Verteilzentren sich mit einer angekündigten und wenige Minuten dauernden Downtime gut arrangieren können.
Wegen der internationalen Ausrichtung dieses Unternehmens habe ich sämtliche Kommunikation, Unterlagen und das Endprodukt in Englisch gehalten.
Problembeschreibung
Im Labor-Automationssystem DxA 5000 gab es sporadisch Verbindungsabbrüche in der Kommunikation zwischen den Steuereinheiten. Eine Recherche des Kunden führte zu dem Verdacht, dass die Ursache in der Zeitsynchronisierung zu suchen sei. Da der Fehler aber nur sporadisch auftrat, konnte er die Ursache nicht eindeutig zuordnen.
Analyseergebnis
Meine Analyse ergab, dass die Zeitsynchronisation in der dort implementierten Form tatsächlich eine Ursache für Kommunikationsprobleme darstellt, aber möglicherweise nicht die einzige Fehlerquelle ist.
Maßnahmen
Ich habe eine korrekte ntpd-Implementierung für die Infrastruktur vorgenommen und das PowerShell-Script StartDxA geschrieben, welches die Startsequenz aller Systeme steuert.
Ergebnis
Sauber implementierte ntpd Umgebung.
StartDxA: Das PowerShell-Script StartDxA wird beim Systemstart automatisch ausgeführt und steuert den Ablauf und das Timing des weiteren Startvorgangs. Bei einem Fehler werden dem Anwender detaillierte Informationen über den Systemzustand angezeigt und die Möglichkeit geboten, über grafische Elemente (per Touchscreen) entsprechend den Empfehlungen des Scripts auf den Fehler zu reagieren. Um zukünftigen Anforderungen gerecht zu werden, können Timing, zu startende und prüfende Dienste und Programme und weitere Parameter über eine .ini-Datei beliebig erweitert werden.
Es treten weiterhin Kommunikationsabbrüche auf, allerdings deutlich seltener. Auch konnte nun die Zeitsynchronisierung als Fehlerquelle ausgeschlossen und die Fehler der vom Kunden selbst entwickelten Software (C#/.Net) zugeordnet werden.
Im Rahmen dieses Projekts habe ich mehrere Tools zur Entlastung der Administratoren und Wahrung des Qualitätsstandards in PowerShell entwickelt (detaillierte Beschreibung der Tools weiter unten):
ScriptTemplate
Eine klar strukturierte Vorlage für eigene PowerShell-Scripte, die den Befehlssatz der PowerShell um wichtige Grundfunktionen erweitert. Alle folgenden Tools basieren auf diese Vorlage und nutzen die von der Vorlage bereitgestellten Grundfunktionen.
WinTaskMan
Tool zur zentralisierten Organisation, Planung und Deployment von Scheduled-Tasks für die gesamte Windows-Infrastruktur, mit einem sehr umfangreichen Funktionssatz und einer komfortablen grafischen Oberfläche.
ManageVMs
Tool zur Prüfung und Steuerung großer Mengen von Hyper-V VMs. Durch Parallelisierung der Prozesse kann es sehr viele VMs in sehr kurzer Zeit prüfen und steuern.
CheckCertificates
Dieses Tool prüft die Gültigkeit der verfügbaren Zertifikate am CA, erstellt einen HTML-Bericht (farblich gegliederte Tabelle, CSS-Formatiert) und schickt diesen per Email an vorgegebene Empfänger.
CheckVolumes
Dieses Tool prüft Auslastung, Gesundheitszustand und Fragmentierungsgrad von physikalischen und Cluster-Shared Volumes, erzeugt einen detaillierten Bericht (farblich gegliederte Tabellen, Listen und Erläuterungen) und sendet diesen – je nach eingestelltem Schwellwert – per Email.
TaskDiagnostics
Dieses Tool prüft ob auf einem Zielsystem alle Voraussetzungen für die Verwaltung durch WinTaskMan und das Ausführen von PowerShell-Scripte als Scheduled-Task erfüllt sind. Es erstellt einen detaillierten Bericht.
Detaillierte Beschreibung der Tools
ScriptTemplate
Diese Script-Vorlage richtet sich an Administratoren, die nur gelegentlich in den Genuss der Script-Entwicklung in PowerShell kommen, und an solche, die eine konsistente Struktur in ihren Scripten und eine komfortable Auswertung der Rückmeldungen wünschen.
Die Vorlage kann den Prozess der Script-Entwicklung beschleunigen, da sich der Nutzer auf die Kernfunktion seines Scripts konzentrieren kann, denn Struktur und wiederkehrende Grundfunktionen wie z.B. das Logging oder die Nutzung einer .ini-Datei zur Parametrierung sind bereits implementiert. Darüber hinaus vereinfacht diese Vorlage das Debugging eigener Scripte, dank ihrer ausführlichen, sauber gegliederten und konsistenten Logging-Funktionen. Für die Optimierung zeitkritischer Routinen stellt sie außerdem einen Zeitmessfunktion bereit.
Implementierte Basisfunktionen:
Auswertung von Kommandozeilenparameter. Unterteilung der Parameter in optionale und Pflicht-Parameter und Vorgabe von Standardwerten, Unterstützung des Anwenders durch eine Hilfefunktion.
Nutzung einer .ini Datei, sodass zur Anpassung von Parametern der Quellcode nicht angepasst werden muss.
Logging (mehrere Log-Level) in eine Datei (CSV-Format) und – je nach Log-Level – in das Windows Event-Log.
Versand von Log-Files, Berichten und/oder Fehlermeldungen per E-Mail.
Auswerten der Laufzeit einzelner Routinen zwecks Optimierung.
Detaillierte Informationen zum implementierten Logging:
Verfügbare Log-Level: „Debug“, „Info“, „Warn“ und „Error“.
Logging in eine Datei:
Die Datei ist CSV-formatiert und zusätzlich optisch in Spalten gegliedert.
Die Sitzung startet mit einem Header, welcher allgemeine Informationen zu Script, Systemumgebung und Kommandozeilenparameter enthält.
Einträge werden mit Funktionsname, Zeitstempel und fortlaufender Nummer versehen.
Am Ende der Sitzung erhält das Log einen Footer mit einer Log-Statistik und der Angabe der Gesamtlaufzeit.
Einträge vom Typ „Warn“ und „Error“ werden zusätzlich in das Windows Event-Log geschrieben.
WinTaskMan
Organisation, Planung und Deployment aller Scheduled-Tasks der gesamten Windows-Infrastruktur, von einem zentralen Server aus. Der Workflow wird durch eine komfortabel zu bedienende, klar gegliederte und in WPF realisierte grafische Oberfläche unterstützt.
Task-Management
Tasks werden in Repositories und Kategorien organisiert und für das Deployment vorgehalten. Dargestellt wird das aktuell gewählte Repository in einer übersichtlichen Baumstruktur.
Ein Task besteht aus einem Schedule und dem vom Schedule referenzierten Script.
Schedules können vollständig (samt Trigger) komfortabel in WinTaskMan definiert werden.
Bereits bestehende Schedules können importiert werden.
Ein Script kann aus einer Datei oder aus mehrere Dateien und Unterordner bestehen.
Schedules und Scripte sind beliebig kombinierbar. Referenzen zum Script leitet WinTaskMan aus den vorhandenen Informationen ab und trägt sie in die Schedule-Informationen ein.
Aus den Schedule-Parametern generiert WinTaskMan die für den Task-Import im Windows-Task-Scheduler benötigte .XML-Datei.
Es können Task-Vorlagen erstellt und beliebig weiterverwendet werden.
Server-Management
Bei allen Aufgaben wird der Administrator durch detaillierte ToolTips, ausführliche Hinweisdialoge und eine sehr komfortable Suchfunktion unterstützt. Fehlmanipulationen werden durch kontextsensitives Aktivieren der Schaltflächen und durch die Nutzung von Vorgabewerten (sofern angebracht) vermieden.
ManageVMs
Dieses Tool Steuert große Mengen von Hyper-V VMs. Dank Parallelisierung der Aufgaben kann es in sehr kurzer Zeit sehr viele VMs steuern. Dazu verteilt es die Aufgaben an die Clusternodes und startet sie dort asynchron. So können alle Clusternodes gleichzeitig bestückt werden und mehrere Threads pro Clusternode parallel laufen.
Aufgaben die mit dem Tool in der aktuellen Version an die VMs angewandt werden können sind:
Starten und Stoppen der VM, abhängig von ihrem aktuellen Zustand und ihrer Zuordnung. Die Zuordnung kann das Tool aus SCCM-Collections, einer Liste in Dateiform oder einer SQL-Tabelle auslesen.
Erzeugen, Einspielen und selektives Löschen von Checkpoints.
Sobald Threads auf einem Clusternode frei sind, versorgt das Tool den Clusternode mit neuen Aufgaben, bis alle Jobs abgearbeitet wurden. Die Auslastung der Clusternodes wird überwacht und kann parametriert werden.
Zwecks Optimierung der Job-Queue protokolliert das Tool die Laufzeit jeder Aufgabe (sowohl CPU- als auch Wartezeit) und stellt am Ende der Sitzung eine Statistik im Log-File bereit, denn bei einem hohen Parallelisierungspotential (viele Clusternodes mit mehreren verfügbaren Threads) und einer gut eingestellten Job-Queue kann das Script innerhalb von wenigen Minuten mehrere Tage CPU-Zeit nutzen. Eine schlecht optimierte Job-Queue hingegen, kann innerhalb von Minuten mehrere Tage Leerlauf verursachen.
CheckCertificates
Prüft die Gültigkeit der verfügbaren Zertifikate am CA, erstellt einen HTML-Bericht (farblich gegliederte Tabelle mit den bald auslaufenden Zertifikaten, CSS-Formatiert) und schickt diesen per Email.
Der Schwellwert für die Gültigkeit kann vorgegeben werden.
Zertifikatstypen können in Gruppen zusammengefasst und den Gruppen Empfänger-Adressen zugeordnet werden, sodass die Berichte gezielt die betroffenen Gruppen erreichen.
CheckVolumes
Prüft Auslastung, Gesundheitszustand und (optional) Fragmentierungsgrad von Speichervolumes, erzeugt einen detaillierten Bericht (farblich gegliederte Tabellen, Listen und Erläuterungen) und sendet diesen per Email.
Erfasst und analysiert sowohl physikalische als auch Cluster-Shared Volumes.
Die Prüfung des Fragmentierungsgrades ist optional, da sie u.U. eine hohe Last verursachen kann.
Für die Hosts und Volume-Typen können BlackLists hinterlegt werden.
Zusätzlich kann ein Filter übergeben werden, welcher auf die Hostnamen angewandt wird.
Der Versand des Berichts erfolgt wahlweise immer, oder wenn ein vorgegebener Zustand bei mindestens einem Volume festgestellt wurde.
Der Füllgrad ist in 6 Stufen unterteilt, von „leer“ über „kritisch“ bis „voll“. Diese werden im Bericht farblich gekennzeichnet.
TaskDiagnostics
Prüft ob auf einem Zielsystem die Voraussetzungen für das Ausführen von PowerShell-Scripte als Scheduled-Task erfüllt sind und erstellt einen detaillierten Bericht. Wenn die Voraussetzungenfür das Versenden von Emails erfüllt sind, schickt es den Bericht per Email.
Geprüft werden:
User-Account und Gruppenmitgliedschaft
Dateisystem-Berechtigungen
Erforderliche Ordner und Freigaben
Funktionsfähigkeit der Auswertung von Kommandozeilenparameter
Funktionsfähigkeit von Logging in Datei und Windows-Event-Log
Verfügbarkeit von Email-Versand
Das von mir im Projekt "Middleware Administration & Entwicklung – 12.2017" entwickelte Tool zum Deployment von Web-Applikationen „DeployGUI“, durfte ich um weitere Anforderungen, u.A. Parallelisierung der Aufgaben (Multithreading) erweitern, sodass mehrere Server und WebApps gleichzeitig abgearbeitet werden und umfangreiche Deployments deutlich schneller ablaufen können.
Problembeschreibung
Etwa 4.000 Windows 10 Tablets sind bundesweit im Einsatz, welche alle möglichst dauerhaft mit dem VPN des Kunden verbunden sein sollen. Aus Sicherheitsgründen darf aktuell jedoch lediglich das Mobilfunknetz genutzt werden, da die Mobilfunk-Verbindungen in ein vom Provider bereitgestelltes VPN münden. Aktualisierungen von Betriebssystem und Betriebssoftware (Eigenentwicklung auf Basis von SAP) werden immer umfangreicher und bereits jetzt belasten sie den Betrieb sehr, da das Herunterladen der Aktualisierungen über die Mobilfunkverbindung sehr viel Zeit in Anspruch nehmen kann und oftmals abbricht und neu gestartet werden muss.
Zielsetzung und Vorgaben
Die Aktualisierungen sollen über jedes beliebige Netzwerk (privates WLAN der Anwender, Hotel-WLAN, öffentliche WLAN-HotSpots, Kabel-gebunden per Ethernet oder USB, Bluetooth, ... ) geladen werden können. Allerdings dürfen die Tablets durch die Anbindung an das fremde Netzwerk nicht kompromittiert werden können.
Idealerweise sollte dieses Ziel mit Windows Bordmitteln erreicht werden, auf jeden Fall jedoch ohne eine Abhängigkeit zu einer kommerziellen Fremdsoftware zu erzeugen. Auch sollen den Anwendern keine administrativen Privilegien erteilt werden müssen.
Lösungsansatz: Filterregeln in der Windows Firewall
Diese Lösung hatte der Kunde bereits vor meiner Ankunft geprüft und verworfen, denn nach der Einrichtung einer für die zeitnahe Aktualisierung der Regeln aus der Ferne notwendigen Infrastruktur, ließen sich folgende behindernde Aspekte nicht aus dem Weg räumen:
Unbekannte Netzwerkverbindungen können nicht in Form einer Black-List im System hinterlegt werden und eine zeitnahe Pflege der Black-List, welche für die lückenlose Absicherung der Tablets unabdingbar wäre, ist darüber hinaus technisch nicht realisierbar.
Die Nutzung einer White-List ist ebenfalls unpraktikabel, da hier jede neue Verbindung von einem Administrator freigeschaltet werden müsste, bevor sie genutzt werden kann. Dies erforderte bei dieser Größenordnung die Einrichtung einer dedizierten Hotline und eine Personalaufstockung im operativen Bereich. Auch brächte dies dennoch nicht den erhofften Vorteil, da die aktualisierte Liste zum Tablet synchronisiert werden müsste, was wegen einer schlechten oder nicht vorhandenen Mobilfunk-Verbindung scheitern könnte.
Meine Lösung: MWNS
Ein PowerShell-Tool, welches das Tablet bei jedem Verbindungsaufbau erneut abschottet.
Zur Gewährleistung der Anforderungen an Sicherheit und Zuverlässigkeit, habe ich das Tool in drei Module unterteilt, welche ich im folgenden kurz beschreibe:
Modul 1: Der Watchdog
Dieses Modul läuft im Systemkontext. Die Laufzeit beträgt nur wenige Sekunden. Es wird getriggert, sobald Windows eine Netzwerkverbindung aufbaut (Event-Driven). Sämtliche Netzwerkverbindungen an allen Schnittstellen werden erfasst.
Funktion dieses Moduls:
Sobald eine Netzwerkverbindung aufgebaut wird, konfiguriert dieses Modul das Tablet, sodass ausschließlich das VPN des Kunden erreichbar ist. Dazu analysiert es die neu aufgebaute Verbindung und passt die Konfiguration an. Dies geschieht innerhalb von Millisekunden und vom Anwender völlig unbemerkt (eine Statusmeldung wurde vom Kunden nicht gewünscht).
Merkmale der vom Watchdog erzeugten Konfiguration:
Sie ist zeitlich unbegrenzt und bleibt auch nach einem Neustart des Tablets erhalten.
Auch eine Konfiguration per DHCP wird erkannt und angepasst, sodass auch diese nicht dazu beitragen kann, den Mechanismus zu umgehen.
Bei mehreren parallel verbundenen Netzwerken (z.B. über Ethernet, WLAN und UMTS) wird das bevorzugte Netz priorisiert. Niedriger priorisierte Verbindungen werden dennoch ebenfalls angepasst, als Fallback-Lösung vorgehalten und erst aktiviert, wenn die nächsthöher priorisierte Verbindung ausfällt.
Auch Verbindungen zu oder von Geräten aus demselben Teilnetz (z.B. bei öffentlichen HotSpots sehr wichtig) werden durch die Anpassung unterbunden.
Wird eine Konfiguration nicht mehr benötigt, löscht dieses Modul sie, damit das Tablet nicht unnötig belastet und im Laufe der Zeit immer träger wird.
Modul 2: Die grafische Oberfläche (Touchscreen-optimiert).
Das zweite Modul läuft im Kontext des aktuell angemeldeten Anwenders und bietet ihm eine grafische Oberfläche mit großen aussagekräftigen Symbolen, über die er per Touchscreen, ohne Kenntnis der dem Vorgang zugrunde liegenden Abläufe, die möglichen Verbindungswege aktivieren und deaktivieren kann. Dazu benötigt er keinerlei erhöhte Privilegien, denn dieses Modul führt die Änderungen nicht selbst durch, sondern kommuniziert sie an den Aktuator (das 3. Modul).
Auf einer zweiten grafischen Ebene, welche nur eingeblendet wird, wenn eine Mitglied der Administratorengruppe angemeldet ist, kann das Tool über eine Eingabemaske (ebenfalls Fingerfriendly) konfiguriert werden.
Die Konfigurationsoptionen werden in einer ausschließlich den Administrator zugänglichen .ini-Datei hinterlegt. Die .ini-Datei wird bei jedem Aufruf der Software und bei jeder neuen Netzwerkverbindung frisch eingelesen. Dies ermöglicht es, neue Anforderungen in Form einer angepassten .ini-Datei auszurollen (z.b. per GPO) und sehr kurzfristig zu aktivieren.
Modul 3: Der Aktuator
Dieses Modul lauscht auf Signale vom 2. Modul. Sobald ein Signal erkannt wurde, führt es eine Plausibilitätsüberprüfung durch und aktiviert oder deaktiviert die Netzwerkverbindungen gemäß den Wünschen und Gegebenheiten. Auch liefert es auf Anfrage von Modul 2 den aktuellen Zustand der Anbindungen zurück, sodass die Anzeige der grafischen Oberfläche stets akkurat ist.
Dieses Modul läuft ebenfalls im Hintergrund, wahlweise im Kontext des lokalen Administrators oder dem eines eigens dafür eingerichteten und mit den benötigten Berechtigungen ausgestatteten User accounts.
Weitere Merkmale dieser Lösung
Die Software bietet einige Dialoge, in welchen der Anwender bei Verbindungsproblemen mit Tipps zur Vorgehensweise unterstützt wird.
Die Lösung ist zweisprachig ausgelegt (Deutsch und Englisch). Je nach installierter Windows Sprachversion wird automatisch die passende Sprache gewählt (dies kann jedoch mit einen Eintrag in der .ini Datei übersteuert werden).
Das Tool habe ich mit einer Installationsroutine mit Unattended-Mode versehen, sodass sie parallel auf tausende Geräte gleichzeitig ausgerollt und installiert werden kann. Die Installationsroutine protokolliert den Erfolg der Installation in das Windows Ereignisprotokoll, sodass der Administrator über ein Monitoring zuverlässig feststellen kann, dass das Tool erfolgreich installiert wurde. War die Installation nicht erfolgreich, besteht dennoch keine Gefahr für das Gerät, denn ohne das Tool bleibt das Gerät für fremde Netze weiterhin gesperrt.
Ergebnis
Aktualisierungen können nun performant und sicher über jedes beliebige Netz installiert werden. Der Anwender kann selbst entscheiden, welche Verbindung dafür genutzt werden soll. Dennoch sind die Tablets weiterhin lückenlos gesichert.
Die dafür eingesetzte Lösung ist aufgrund des modularen Prinzips Resistent gegen Fehlerzustände und Manipulationsversuche. Auch lässt sie sich mit wenig Aufwand, kontrolliert auf die Tablets ausrollen und installieren.
Der Aufwand für die Definition, Hinterlegung und Pflege von Black- oder White-Lists und das Risiko, dass die Liste nicht zeitnah gepflegt oder übertragen werden kann entfallen.
Aufgaben
Middleware Operating und Administration: (Tagesgeschäft)
Manuelles Konfigurieren, Paketieren und Verteilen von Web-Applikationen auf Tomcat Server.
Konfigurieren/Debuggen der Tomcat Installationen und Sicherstellen der Verfügbarkeit von Basisdienste und Anwendungen, Aktualisierung und Härtung der Tomcat- und Java Basis.
Middleware Entwicklung:
Optimierung und Automatisierung von Konfiguration, Paketierung, Deployment und Installation von Tomcat-Instanzen und Web-Apps.
Management Entwicklung:
Entwicklung eines Tools zur Visuellen Planung der verfügbaren Ressourcen.
Entwicklungsergebnisse
DeployGUI
Umfangreiches und leistungsfähiges Admin-Tool, zum CheckIn/CheckOut und automatischem Konfigurieren, Paketieren und Deployen der Web-Apps. Mit wahlweise automatischer oder Manueller Versionierung der Apps.
TcGIn
Operating-Tool mit Statusanzeige, Dienstesteuerung, Installation und Backup/Restore von Middleware-Instanzen und Applikationen.
Durch dieses Tool braucht das Operating-Team keine fachlichen Kenntnisse mehr.
StagesRoadmap
Übersichtliche und grafisch ansprechende Visualisierung und Planung der verfügbaren Ressourcen* und von Notizen. Die Notizen und Ressourcen werden auf einer Zeitleiste dargestellt und können direkt in der Zeitleiste geplant werden.
*Ressourcen sind:
Systemumgebungen (Stages)
Systeme/Instanzen (Server oder Tomcat-Instanzen)
Web-Applikationen samt Versionsnummern
Teams und Teammitglieder.
Detailbeschreibung der Produkte
DeployGUI:
CheckIn/CheckOut von Paketen aus der Entwicklungsumgebung, mit wahlweise manueller oder automatischer Versionierung.
Zuweisung von Paketen zu Stages, mit automatischer Konfiguration der Pakete für die Stages (Analysieren/Bearbeiten von MANIFEST.MF, .xml, .inf und .properties Dateien) und Generierung der angepassten .war Datei.
Deployment der Pakete samt Installer (TcGIn) auf die Zielsysteme.
Dieses Tool habe ich in PowerShell geschrieben. Die grafische Oberfläche ist in XAML realisiert und basiert auf WPF. Daten werden in einer SQL-Datenbank vorgehalten.
TcGIn (Tomcat Global Installer):
Anzeige des Serverstatus und Steuerung der Tomcat-Dienste.
Installation / Aktualisierung und Backup / Restore von Tomcat-Instanzen.
Installation / Deinstallation / Aktualisierung von Web-Applikationen.
Identifizierung von Fehlern während der Installation. Automatisches Restore bei fatalen Fehlern.
Ausgabe aussagekräftiger Fehlermeldungen in Klartext und mit Tipps zur weiteren Vorgehensweise (in Englisch).
Bedienung über eine übersichtliche grafische Oberfläche.
Dieses Tool habe ich in PowerShell geschrieben. Die grafische Oberfläche in XAML/WPF.
StagesRoadmap:
Zeitlich unbegrenzte, scroll- und zoombare Zeitleiste auf der Horizontalen Achse, mit Darstellung von Kalendertage und -wochen nach ISO 8601 und Hervorhebung des aktuellen Tages.
Wochenende und Feiertage werden farblich abgesetzt.
Unterscheidung zwischen bundesweite und lokale Feiertage (lokales Bundesland einstellbar).
Darstellung von Datums-gebundenen Notizen.
Klar gegliederte Übersicht der Systemumgebungen, auf der vertikalen Achse granular auf/zu klappbar bis hinunter zu den einzelnen Web-Apps und ihrer Versionsnummern.
Ansicht von Status der Umgebungen und Installierte Versionen der Instanzen und Applikationen für jeden beliebigen Zeitpunkt (Snapshot).
Darstellung der Planungselemente (Paket-Deliveries und -Deployments, Penetration-, Disaster-Recovery- oder Last-und-Performance-Tests, Reservierung von Systemumgebungen, …) auf der Zeitachse, in Form von Farblich hervorgehobenen und beschrifteten Symbolen. Die Planungselemente sind beliebig anpassbar.
Darstellung und Planung von Team / Teammitglieder (Urlaub, Anwesenheit, Abwesenheit und Verfügbarkeit), ebenfalls auf der Zeitachse und in Form von farblich gekennzeichneten Symbolen.
Planung einzelner Ressourcen direkt in der Zeitleiste durch
Rechtsklick auf einen Tag / Ressource
oder durch Auswahl eines Zeitraums innerhalb einer Ressource, mit anschließendem Rechtsklick
Druck oder Export der aktuellen Darstellung als .pdf (z.B. für Berichte / Präsentationen).
Die Eingabemasken werden – sofern es der Kontext erlaubt – automatisch ausgefüllt. Drop-Down Listen erleichtern die Auswahl der möglichen Optionen und vermeiden Fehleingaben. Die Zeitleiste wird auf der Grundlage der erfassten Daten dynamisch generiert.
Das Tool ist flexibel aufgebaut und die Darstellung wird über Vorlagen gesteuert, sodass viele Aspekte der Visualisierung ohne Programmierkenntnisse anpassbar sind. Die Gestaltungsmöglichkeiten umfassen unter anderem:
Frei wählbarer Zeitraum der Zeitleistenansicht, frei zoombare Zeitleiste und fein granular wählbare Detailstufe der Umgebungsdarstellung.
Farbgebung der Elemente und der Hervorhebung der Wochen- und Feiertage.
Symbole für die Darstellung der Vorgänge (3 Symbolsätze mit modernen Farbverläufen und weichen Schatten sind bereits in der Layout-Vorlage hinterlegt, die Layout-Vorlage kann beliebig erweitert werden).
Dieses Tool habe ich in Excel/VBA realisiert. Standard Excel Elemente und die die für die Planung nicht benötigten Tabellen werden ausgeblendet (Kiosk-Mode / Passwortgeschützt).
Aufgabe
Implementierung der von mir in 2015 entwickelten K-Fall Lösung (siehe mein Projekt von 11.2015 "Entwicklung eines K-Fall Konzepts"), welche hauptsächlich auf der Netzwerkebene, durch ausreizen der Fähigkeiten der Firewalls und Router ermöglicht wird. Der Schwenk zum FailOver-Standort geschieht transparent, zeitnah und automatisch.
Schritt 1: Umsetzung aller von mir vormals aufgezeigten Voraussetzungen
Hauptsächlich ging es hier darum, Server, Serverdienste, VPNs und Routen auf die neue Topologie vorzubereiten. Weiterhin das Netzwerk umzustrukturieren, d.h. Netzwerke neu segmentieren, VLANs, Routen und Firewall-Filterregeln definieren und einrichten, Anbindungen neu zu dimensionieren und redundant auszulegen.
Schritt 2: Aktivierung der K-Fall Lösung
In einer geplanten Downtime von etwa einer Stunde habe ich die K-Fall Lösung "scharf geschaltet", d.h. Routen, Firewall- und NAT-Regeln und Firewall HA-Cluster aktiviert.
Ergebnis
Alle WAN-Anbindungen sind nun optimal dimensioniert und redundant zu beiden RZ ausgelegt. Die Anbindungen zwischen den RZ wurden ebenfalls aufgebohrt und redundant ausgelegt.
An allen Standorten ist die Firewall aktiv und gehärtet.
Standorte nutzen für den Internetzugang nun den zentralen Proxyserver. Die Anbindung an das Internet wurde redundant ausgelegt und die Bandbreitennutzung mittels Kanalbündelung und Lastverteilung optimiert.
Lancom Router und DELL/SonicWall VPN-Gateway in beiden RZ wurden gehärtet.
Die Verbindung der Riverbed SteelHead Appliances zwischen den RZ wurde optimiert.
Die DELL/SonicWall SonicPoints (WLAN-Access-Points) in den Niederlassungen wurden gehärtet.
Die Performance der ESX-Farmen wurde durch neue Hardware erhöht und die Lastaufteilung optimiert.
Die Performance der NetApp Filer wurde durch neue Hardware erhöht.
Die Firewall HA-Cluster beider Standorte werden von der jeweiligen Gegenseite überwacht. Sobald der Ausfall eines Standortes zweifelsfrei erkannt wird, werden geeignete Gegenmaßnahmen ergriffen.
Aufgabe
Entwicklung einer K-Fall Lösung, die es ermöglicht, nach dem Ausfall des Hauptstandortes, gestützt durch einen FailOver-Standort (sekundäres RZ), den allgemeinen Geschäftsbetrieb innerhalb von Sekunden wieder aufzunehmen.
Bestandsaufnahme
Die vorhandene Infrastruktur ist auf 10 Standorte in Deutschland verteilt und setzt sich im Groben folgendermaßen zusammen:
WAN-Anbindungen in den unterschiedlichsten Ausprägungen (je nach Verfügbarkeit am Standort).
DELL/SonicWall VPN-Gateways, diverse Modelle, teilweise mit aktiver Firewall.
Lancom Router und DELL/SonicWall VPN-Gateway in beiden RZ.
Riverbed SteelHead Appliances zwischen den RZ.
Managed HP ProCurve Core-Switche & HP Etagenswitche mit VLANs und Trunks.
DELL/SonicWall SonicPoints (WLAN-Access-Points), diverse Modelle in den Niederlassungen.
Mehrere ESX-Farmen mit je bis zu 40 VMs in beiden RZ.
NetApp Filer in unterschiedlichen Ausbaustufen in beiden RZ.
Physikalische und virtuelle Maschinen mit Windows Server 2012 R2 und Linux, auf welchen Dienste laufen wie AD, DNS, NTP, Exchange, MS-SQL, IIS, Terminal Services, Xen-App, FTP, PRTG, uvm.
Ich habe die gesamte IT-Infrastruktur auf allen relevanten Ebenen, incl. der Sicherheitsaspekte analysiert und auf der Grundlage meiner Analyseergebnisse ein FailOver-Konzept entwickelt.
Aufgaben
Analyse der gesamten IT-Infrastruktur im Hinblick auf Performance und Zuverlässigkeit.
Beratung des CIO zu den Themen
Sicherheitsstandards in der Netzwerkinfrastruktur und bei WAN-Anbindungen.
AD-Migration und Einführung von DFS.
Migration von Citrix zu MS-TerminalServices.
Erneuerung der ESX-Farmen.
Erneuerung der NetApp Filer.
Einführung von Veeam und Migration des Backupsystems von Arcserver zu Veeam.
Entwicklung von SecForm: Ein Tool zur Prüfung und verschlüsselten Übertragung von Formulardaten
Ergebnis
Ausführliche Systemdokumentation & Pflichtenheft
SecForm
Das Problem: Kontaktdaten werden von den Kunden in einem Formular eingegeben, das über einer einfachen Wordpress-Instanz bei einem Web-Hoster bereitgestellt wird. Der Web-Hoster bietet lediglich den ungesicherten Versand der Daten per Email an. Um geltende Datenschutzbestimmungen einzuhalten, müssen die Daten jedoch verschlüsselt übertragen werden.
Die Lösung: SecForm (wird alle paar Minuten per Cron aufgerufen – seit mittlerweile 5 Jahren ununterbrochen und vollkommen fehler- und wartungsfrei).
SecForm
Baut eine SSH-Verbindung zum Internetportal auf, gesichert per Public-Key-Verfahren
Injiziert einen Script-Block in den Hauptspeicher des Servers
Der injizierte Script-Block
Prüft ob Daten bereit liegen
Kopiert vorliegende Daten über den gesicherten Kanal
Bereinigt nach Erfolgreicher Datenübertragung den Speicher des Servers
Gibt die Kontrolle zurück an SecForm
SecForm
Prüft weiterhin, ob die Datensätze gültig sind
Leitet gültige Daten per interner Email an den Kundendienst
Speichert ungültige Daten auf einem internen File-Share und benachrichtigt eine Prüfstelle per Email
Aufgaben
Urlaubsvertretung für den Systemadministrator im Tagesgeschäft.
1st, 2nd und 3rd Level Support.
Priorisierung, Kanalisierung und Klärung von Anfragen aus den Fachbereichen.
Koordination der Teammitglieder und der externen Dienstleister in laufenden Projekten.
Monitoring der Systeminfrastruktur per PRTG, Pflege der PRTG-Umgebung
Störungsbehebung und ggf. Beauftragung externer Dienstleister
Analyse der gesamten IT-Infrastruktur im Hinblick auf Sicherheitsrisiken und Optimierungspotential.
Aufgaben
Rückbau der restlichen Infrastruktur der REWE-Unterhaltungselektronik, bestehend aus Arbeitsplätzen und Serversystemen im Rechenzentrum der REWE Group.
Entwickeln und Aufsetzen eines Archivsystems.
Dieses Archivsystem soll die Daten, Anwendungen und das Warenwirtschaftssystem der REWE-UE zwecks Einhaltung der Gewährleistungs- und Produkthaftungsfristen bereitstellen.
Ergebnis
Das Archivsystem besteht nun aus 2 Windows Server 2012R2 (ESXi / Storagesystem) und einen IBM AIX Host (LPAR / Storagesystem). Diese stellen alle für eine etwaige Nachverfolgung/Kontrolle relevanten Daten und das Warenwirtschaftssystem als Archiv (read-only) bereit.
Gewartet wird das Archivsystem fortan von der REWE Informationssysteme (RIS).
Aufgabe
Die REWE-Group hat die Aufgabe des Geschäftsbetriebs ihrer Tochtergesellschaft REWE Unterhaltungselektronik GmbH beschlossen. Als ehemaliger und langjähriger Systemadministrator bei der REWE-UE, bekam ich nun den Auftrag, die gesamte IT-Infrastruktur der Filialen (ProMarkt) rückzubauen und die zentrale Infrastruktur im Rechenzentrum der REWE in Köln auf einen von mir zu definierenden Umfang zu reduzieren, welcher für die restliche Geschäftsabwicklung in der Zentrale reichen sollte.
Ursprünglich bestand die IT-Infrastruktur aus:
ca. 90 LINUX-Server
25 Windows Server (2003 – 2012R2)
3 IBM AIX Hosts
rund 70 Firewalls
insgesamt über 400 WLAN-Router, Router und Switche
über 1000 Arbeitsplätze
Unter Berücksichtigung der Abhängigkeiten und der Anforderungen des noch laufenden Geschäftsbetriebs, habe ich die Filial-Infrastruktur rückgebaut und die zentrale Infrastruktur im Rechenzentrum auf die Systeme reduziert, welche noch für die Restabwicklung benötigt wurden:
9 LINUX Server
5 Windows Server
1 AIX-Host
2 Firewalls
10 Router und Switche
rund 20 Arbeitsplätze
Dieses „Minimalsystem“ stellt folgende Dienste bereit:
ADS
DNS
DHCP
FTP
SQL-DB
Webserver
Fileserver
Terminalservices
Warenwirtschaftssysteme
Internetzugang über Firewall & Proxyserver
Aufgabe
Obschon die REWE Unterhaltungselektronik GmbH fester Bestandteil der REWE Gruppe ist und alle anderen Geschäftszweige die IT-Infrastruktur der RIS (REWE Informationssysteme) nutzt, unterhält sie eine eigenständige IT-Infrastruktur mit eigenen Datenanbindungen.
Die Filialen der REWE-UE (ProMarkt) verfügen über dezentrale Servereinheiten und Zugangspunkte und sind an die UE-Zentrale per VPN angebunden. Die zentralen Server der REWE-UE stehen im Rechenzentrum der REWE, welches von der RIS bereitgestellt wird.
Die Infrastrukturen sind an gesondert abgesicherten Punkten miteinander verbunden. Die REWE-UE nutzt extensiv Netzwerkdienste (u.a. IP-Telefonie, Storage, Datensicherung, Mail) und Anbindungen an Partnerunternehmen, welche über die Infrastruktur der RIS bereitgestellt werden.
Als Systemadministrator in Festanstellung bei der REWE-UE verantworte ich die Sicherheit, Verfügbarkeit und Weiterentwicklung der gesamten Infrastruktur der REWE-UE, inklusive der ihrer bundesweit verteilten Geschäftsstellen. In dieser Eigenschaft bilde ich auch die Schnittstelle zwischen der REWE-UE und der RIS in infrastrukturellen Fragen.
Unser Beschäftigungsverhältnis wurde einvernehmlich aufgelöst, da die REWE Gruppe ihre Tochtergesellschaft REWE Unterhaltungselektronik GmbH veräußert hat. Für mich ist dies der Anstoss, mich in die Selbständigkeit zu begeben.
Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.