Softwareentwurf unter Berücksichtigung betrieblicher Aspekte Jürgen Pfeifer <[email protected]> Architekturberater Developer Platform & Strategy Group Microsoft Deutschland GmbH Microsoft Architects Forum Agenda 2 Worüber reden wir? Roadmap zum „Model-Based Management“ Was kann man heute schon tun? Fazit Microsoft Architects Forum Andauernde Herausforderungen im IT Lebenszyklus Entwickler verstehen die Regeln des Betriebs nicht hinreichend Der Betrieb kennt die Anforderungen der Anwendung nicht hinreichend Zunehmende Kommunikation und Aufmerksamkeit (Heute) Entwicklung Planung & Entwurf 3 Entwicklung Betrieb Test Deployment Betrieb Microsoft Architects Forum Andauernde Herausforderungen im IT Lebenszyklus Entwickler verstehen die Regeln des Betriebs nicht hinreichend Verteilte Systeme System Definition Model (Future) Entwicklung Planung & Entwurf 4 Entwicklung Der Betrieb kennt die Anforderungen der Anwendung nicht hinreichend Betrieb Test Deployment Betrieb Microsoft Architects Forum Planung Einbeziehen des Betriebs vom Start an & Fortdauernd!! Entwicklung Planung & Entwurf 5 Entwicklung Betrieb Test Deployment Betrieb Microsoft Architects Forum Erkenntnisse Betriebsaspekte gehören von Anfang an in das Design und die Entwicklung Wichtigste Themen 6 Healthmodell Taskmodell für den Betrieb Konfigurationsmodell Deployment Microsoft Architects Forum Agenda 7 Worüber reden wir? Roadmap zum „Model-Based Management“ Was kann man heute schon tun? Fazit Microsoft Architects Forum Welche Richtung nimmt Microsoft? Windows Server System Infrastructure Environment Operational Excellence mit MOF Patterns and Practices für die Anwendungsentwicklung Dynamic Systems Initiative (DSI) 8 Formalisierung wesentlicher Übergänge zwischen Entwicklung und Betrieb durch das “System Definition Model” (SDM) Microsoft Architects Forum System Definition Model System Definition Model (SDM) ist eine Modellierungssprache (DSL) zur Beschreibung des Modelles eines Systems welches alle für das Deployment und den fortlaufenden Betrieb erforder-lichen Informationen enthält. Ein SDM-Modell eines Systems ist seine lebende Blaupause. Es umfasst Struktur des Systems (Komponenten) Beziehungen zwischen den Komponenten des Systems Formulierung von Beschränkungen (Prinzipien, Policies) Betriebliche Tasks die auf dem System ausgeführt werden können SDM-basierte Deployment- und Betriebswerkzeuge manipulieren das Modell und nicht das reale System Modell 9 Reales System Microsoft Architects Forum Model-Based Management SDM Service 1. Model Update Request Reales System SDM Model System Administrator 2. Validate Update Request 4. Adapter aktualisieren das reale System 3. Model Updated 10 Microsoft Architects Forum Agenda 11 Worüber reden wir? Roadmap zum „Model-Based Management“ Was kann man heute schon tun? Fazit Microsoft Architects Forum Tolle Roadmap! Was tue ich heute? DSI und SDM sind Bestandteil einer langfristig angelegten Roadmap 12 Gehen über die „Longhorn“ Planungen hinaus (d.h. wir reden hier über das Ende dieses Jahrzehnts) Frage: was kann man heute sinnvoll tun um Betriebsaspekte so in der Entwicklung zu berücksichtigen dass man sich leichter in die Roadmap integrieren kann. Antwort: Microsoft implementiert SDM schrittweise Handlungsempfehlungen Microsoft Architects Forum Problemlösung: Kommunikation und Strukturen Entwicklung Betrieb Kommunikation Struktur (Komponenten und Beziehungen) SDM Einschränkungen (Basierend auf Prinzipien, Policies und Service Level) Healthmodell Taskmodell Konfigurationsmodell 13 Microsoft Architects Forum Struktur: Komponenten und Beziehungen Struktur (Komponenten und Beziehungen) Einschränkungen (Basierend auf Prinzipien, Policies und Service Level) Healthmodell Taskmodell Konfigurationsmodell Router/ Firewall Controller & DNS) Z.B.: Datenbanken müssen physikalisch vom Web Server 1 Webserver getrennt sein Wenn ja, welche Auswirkungen auf Authentifizierung und Sicherheits-Kontexte der Anwendung hat das? Database Web Server 2 Server 1 Welche Einschränkungen gibt es zwischen den 100 Mbps Switch Servern die die Anwendung benutzt? Web Server 3 Disk Ports, Verschlüsselung, Authentifizierung, etc. Web Server 4 14 Active Directory Domain Controller (with DNS) Wie sieht die momentane Topologie des Monitoring Server Netzwerkes und der Server aus? Admin Server Gibt es Anforderungen zur funktionalen Trennung? (with Domain Order Processing Server (with message queue, payment component, and SMTP) Array Database Microsoft Server 2Architects Forum Einschränkungen: Prinzipien, Policies und SLAs Struktur (Komponenten und Beziehungen) Einschränkungen (Basierend auf Prinzipien, Policies und Service Level) Healthmodell Welche Sicherheitsprinzipien existieren? Taskmodell Beispiele: Konfigurationsmodell Prinzip des Zugriff mit möglichst niedrigen Berechtigungen Prinzip des Zugriffs über unprivilegierte Ports Bedrohungsmodelle und Risikoabschätzungen Verschlüsselte Übertragung von Benutzername/Passwort Welche Betriebsprinzipien existieren? Welche Werkzeuge/Technologien werden für das Monitoring/Management der Anwendungen eingesetzt? Welche spezifischen Anforderungen muss eine Anwendung erfüllen damit sie überwacht/verwaltet werden kann? Organisatorische Standards Beispiele: Nur TCP/IP wird benutzt Nur Anwendungen in Managed Code sind erlaubt 15 Microsoft Architects Forum Einschränkungen: Prinzipien, Policies und SLAs (Forts.) Struktur (Komponenten und Beziehungen) Einschränkungen (Basierend auf Prinzipien, Policies und Service Level) Service Level Agreements (SLAs) Kontinuität der Dienste Healthmodell Taskmodell Konfigurationsmodell Wartungszeiten einplanen Verfügbarkeit Was darf es kosten? Clustering Performance Was sind die relevanten Metriken? Was wird wie gemessen? Begrenzungen der Infrastruktur berücksichtigen 16 • Bandbreiten, Latenzzeiten Microsoft Architects Forum Entwurf eines Healthmodelles Definition potentieller Fehler 17 Wie werden diese entdeckt, diagnostiziert und behoben? Szenarien zusammen mit dem Betrieb durchspielen und das Modell darauf anwenden. Struktur (Komponenten und Beziehungen) Einschränkungen (Basierend auf Prinzipien, Policies und Service Level) Healthmodell Taskmodell Konfigurationsmodell Strukturiertes Modell für Events und Eventlog Definition und Bereitstellung relevanter Performancezähler Erstellung eines WMI Provider für die Anwendung Verwenden Sie das Enterprise Instrumentation Framework (EIF) Erstellung eines Microsoft Operations Manager (MOM) Management Pack (wenn MOM verwendet wird) Definition aller Komponenten und deren Beziehungen Verwendung der Patterns & Practices “Application Blocks” Feedback des Betriebs für kontinuierliche Verfeinerung Microsoft Architects Forum Was ist WMI? Windows Management Instrumentation ist Microsofts Implementierung von zwei IndustrieStandards CIM (Common Information Model) WBEM (Web Based Enterprise Management) Fast alle Microsoft Produkte nutzen WMI (W2K, W2K3, XP, Driver, Server Products, .NET Runtime etc.) WMI ist eine Kerntechnologie unserer Management Tools (MOM, SMS, ApplicationCenter) 18 Microsoft Architects Forum WMI - Architektur Consumers (clients) Admin tools/ scripts Management apps Other apps Management Schema Catalog Infrastructure Management Services Instrumentation Instrumented (providers) Applications 19 OS (Win32) Devices Microsoft Architects Forum CIM Datenmodell CIM_Controller System Apps MaxNumberControlled:UINT32 ProtocolSupported:UINT16 TimeOfLastReset:DATETIME DB Core Schema Other Network CIM_InfraredController CIM_SCSIController ControllerTimeouts:UINT32 MaxDataWidth:UINT32 MaxTransferRate:UINT64 ProtectionManagement:UINT16 Device Win32_InfraredDevice CIMV2 namespace ~600 Klassen ~3000 Eigenschaften 20 Manufacturer:STRING Win32_SCSIController DeviceMap:STRING DriverName:STRING HardwareVersion:STRING Index:UINT32 Manufacturer:STRING Microsoft Architects Forum WMI.NET Entwurfsziele Native .NET Instrumentierung Reduzieren der Lernkurve für das CIM Objektmodell Dramatische Vereinfachung der Instrumentierung von .NET Anwendungen .NET-zentrisches Instrumentierungsmodell Einfaches Interface für die Veröffentlichung von Events .NET Client-Zugriff auf WMI Provider (managed und unmanaged) 21 Microsoft Architects Forum Instrumentierung von Anwendungen unter .NET (System.Management Namespace) Demo 22 Microsoft Architects Forum Enterprise Instrumentation Framework Vereinheitlichtes API für Instrumentatierung Strukturiertes WMI Eventschema Feuern via WMI, Event Log, Windows Event Trace Minimaler Overhead für die Anwendung von Instrumentierung in einer Produktionsumgebung Highspeed Diagnostic Tracing 23 Gemeinsame Manageability Basis zwischen Entwicklung, QA und Betrieb Konfigurierbares Event Filtering “Einzeiler” für das Feuern von Events für Tracing, Eventing und Logging Nutzt WMI Infrastruktur (System.Management.Instrumentation) Ermöglicht Fehlersuche im Produktionsbetrieb Ermöglicht das Tracing von Benutzeraktionen über verschiedene Schichten in einer verteilten Anwendung hinweg. Microsoft Architects Forum EIF Logische Architektur Application Server Application Server Distributed .NET Application Event Source Event Source Event Source Event Routing Event Trace WMI WMI Subscribers Trace Logs Event Source Event Routing Event Log WMI Event Log WMI Subscribers Trace Reader Event Trace Trace Logs Event Log Event Log Trace Reader Management Server Management Suite Mgmt Event Repository 24 SQL Trace Event Repository Microsoft Architects Forum Entwurf eines Taskmodelles Struktur (Komponenten und Beziehungen) Einschränkungen (Basierend auf Prinzipien, Policies und Service Level) Tasks sind Aktionen die Administratoren ausführen Heute werden Tasks Healthmodell Taskmodell Konfigurationsmodell mittels GUI oder Kommandozeile (CLI) ausgeführt oft inkonsistente Nutzung zwischen GUI und CLI verwendet mit geringem Automatisierungsgrad Manche Tools funktionieren nur lokal, andere auch remote. 25 Microsoft Architects Forum Taskmodelle Zielsetzung Microsoft: Betriebsystem und Serverprodukte sollen zu 100% Task-based, d.h. über Skript verwaltbar sein Mit Windows Server 2003 und den aktuellen Serverprodukten schon sehr weitgehend erreicht Neue Shell ist in Entwicklung (Microsoft Shell MSH, Codename „Monad“) 26 Übernimmt Konzepte von UNIX und VMS Erweitert diese Konzepte mit OO Konzepten Vollständig .NET 2.0 basiert Microsoft Architects Forum Ein kurzer Blick auf die zukünftige „Microsoft Shell“ (Codename: „Monad“) Demo 27 Microsoft Architects Forum Entwurf eines Konfigurationsmodelles Konfigurationen sind 28 Struktur (Komponenten und Beziehungen) Einschränkungen (Basierend auf Prinzipien, Policies und Service Level) Healthmodell Anwendungs-, Benutzer- oder Taskmodell Computerspezifisch Konfigurationsmodell an unterschiedlichen Stellen auf dem Rechner gespeichert Registry, Dateien, Active Directory, SQL, etc. oftmals etwas geheimnisvoll was sind die gültigen Werte? was ist der Standardwert? wann wurde der Wert zuletzt geändert? was war der vorherige Wert? wer hat den Wert geändert? Microsoft Architects Forum Konfigurationsmodell Unterstützung durch Patterns&Practices Configuration Management Application Block Vereinheitlichter Ansatz zur Verwaltung von Konfigurationsdaten Konfigurierbare Speicherorte für Konfigurationen Sichere Speicherung sensibler Konfigurationsdaten Zukunft Windows stellt Managementfunktionen für Konfigurationsdaten bereit Anwendungen stellen deklarativ Konfigurationsschema bereit 29 Microsoft Architects Forum Deployment Führen Sie einen “Release Readiness” Review durch Erstellen Sie einen Deployment-Plan der von Entwicklung und Betrieb getragen wird Deploymentprozess 30 Welche Tools werden benutzt? Brauchen die Tools spezielle Ports? Welche Zugriffsrechte werden benötigt? Microsoft Architects Forum Deployment Was ist Gegenstand des Deployment 31 - Was ASPX or ASMX files (and the associated compiled project DLL) A database (or databases) Private assemblies Shared assemblies that reside in the global assembly cache Legacy COM components Serviced components (COM+) Specific Internet Information Services (IIS) settings MessageQueue components EventLog components PerformanceCounter components Other resources that need to be installed on the target computer Microsoft Architects Forum Deployment Strategies XCopy Einfach zu nutzen für einfache Anwendungen oder Web-Services No-touch Nur für Client Windows Installer Komplexe Lösungen GUI Installationsprogramm Integration mit Systemsteuerung Unterstützt auch “stille Installationen” Rollback möglich 32 Microsoft Architects Forum Deployment – VS2005 Designer-Unterstützung für das 33 Deployment System Definition Model Validierung des Designs gegen Systemanforderungen Statische Pre-Compilierung von ASP.NET ClickOnce Deployment für Clients Microsoft Architects Forum Dynamic Systems Initiative Logical Systems Architecture Designer Distributed Service Designer 34 Microsoft Architects Forum SDM Designer für verteilte Systeme („Whitehorse“) in Visual Studio 2005 Demo 35 Microsoft Architects Forum Agenda 36 Worüber reden wir? Roadmap zum „Model-Based Management“ Was kann man heute schon tun? Fazit Microsoft Architects Forum Handlungsempfehlungen 37 Verstärkung der Kommunikation zwischen Entwicklung und Betrieb Binden Sie den Betrieb frühzeitig in die Planung und das Design ein Beginnen Sie mit der Erstellung von Health-, Taskund Konfigurationsmodellen… nutzen Sie dafür das “Design for Operations” Whitepaper. http://www.microsoft.com/dsi Erstellen Sie MOM Management Pakete http://www.microsoft.com/management/mma/createm p.mspx Nutzen Sie das Microsoft Operations Framework http://www.microsoft.com/mof Nutzen Sie die “Windows Server System Reference Architecture” http://www.microsoft.com/wssra Nutzen Sie “Patterns and Practices” http://www.microsoft.com/practices Microsoft Architects Forum © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 38 Microsoft Architects Forum 39 Microsoft Architects Forum Zone IIS Web Site Zone End Point IIS Web Server Host ToolBox Http Client End point Zone End Point Configuration Settings Editor 40 Microsoft Architects Forum Constraint Editor 41 Microsoft Architects Forum Validation Errors Integrated in task list 42 Microsoft Architects Forum <