Composite Applications 2.0 Aufbau von Software-plus-Services Architekturen in der Praxis Holger Sirtl Architect Evangelist Dariusz Parys Developer Evangelist Developer Platform and Strategy Group Microsoft Deutschland GmbH Agenda • Anforderungen des Marktes • Definition von Software-plus-Services • Azure – Microsofts Cloud Plattform • Herausforderungen bei Software-plus-Services Lösungen • Antworten mit Microsoft Azure Anforderungen des Marktes + SaaS Geschäftsmodelle Betrieb Web 2.0 User Experience + SOA Services Mashups Integration von InternetDiensten Software + Services Lokal betriebene Software kombiniert mit Cloud Services • User Experience • Verschiedene Endgeräte • OfflineFähigkeit • Flexible Konfiguration (Funktionalität) • Vertrauen • Regularien • Unternehmens -kritische Anwendungen Betrieb vor-Ort Betrieb bei einem Dienstleister Client Server Services Vor-Ort Software Cloud Services • Skalierbarkeit • Flexible Bezahlung / alternative Bezahlmodelle • Flexible Bereitstellung • Kurze Time-toMarket Software-plus-Services Flexibilität bei der Wahl des Betriebsmodells Betrieb vor-Ort Betrieb bei einem Hoster • Eigene Hardware • Eigenes Rechenzentrum • Rechenzentrum des Hosters • Spezifikation der Hardware Software Betrieb auf Azure • Rechenzentren des Plattformanbieters • Spezifikation von Service Leveln Services Möglichkeiten zu individuellen Anpassungen Skaleneffekte Software in der Cloud Neue Herausforderungen • Eigenschaften der Cloud: – Scale-out (Einsatz massiv-redundanter Standard-Hardware) – Hardwarekomponenten können ausfallen (Ausfallsicherheit muss in die Software) – Hohe Verfügbarkeitsanforderungen (24 x 7) • Auswirkungen auf: – Softwarearchitektur – Softwareaktualisierungen – Betrieb (Überwachung und Fehlersuche) Microsoft Azure Plattform für Partner- und Microsoft-Dienste Partner Lösungen Azure Services Platform ™ Microsoft Infrastruktur (Rechenzentren etc.) Software-plus-Services Durchgängigkeit der Microsoft Plattform Betrieb vor-Ort Betrieb bei einem Hoster Kunden- und Parterlösungen Kunden- und Partnerlösungen Betrieb auf Azure Kundenund Partnerlösungen Microsoft Application Platform (BizTalk Server, SQL Server, SharePoint Server, …) Software Services Möglichkeiten zu individuellen Anpassungen Skaleneffekte MS Live MS Online Windows Azure Betriebssystem für die Cloud • Gleiche Funktionalitäten, die ein Desktop-OS bietet, nur auf einer Menge vernetzter Server: – Ausführungsumgebung für Anwendungen – Dateisystem, das sich mehrere Anwendungen teilen – Ressourcenzuordnung – Programmierumgebung • Und darüber hinaus: Utility Computing – 24*7 Betrieb – “Pay for what you use” – Einfache, intuitive Administration Entwicklung von Cloud Services • In einer lokalen Entwicklungsumgebung (mit vollen Zugriff auf die Umgebung) – Entwicklung – Testen – Debugging • In der Cloud Umgebung – Betrieb und Überwachung – Management und Konfiguration – Aktualisierungen Softwareaktualisierung in der Cloud Aktualisierungen von Code und Datenschema • Herausforderung: – Rollback eines fehlgeschlagenen Deployments ist schwierig bis unmöglich • Lösung: – Nur Code- oder nur Datenupdate – Versionsnummern im Datenschema Code Vn+1 Code Vn Schema Vn Schema Vn Code Vn Code Vn+1 Schema Vn+1 Schema Vn+1 Softwareaktualisierung in der Cloud Aktualisierungen ohne Downtime • Herausforderung: – 24 x 7 Anforderungen Development • Lösung: – Stop + Start, bei größeren Änderungen oder wenn Downtimes akzeptabel sind – Azure: Rolling Updates und Staging-Umgebung Stage Deployment Production Deployment Betrieb von Cloud Services Konfigurierbares Logging und Tracing mit Alerts • Herausforderung: – Kein direkter Zugriff auf die Umgebung in der Cloud • Lösung: – Separierung von Konfigurationsinformationen vom Code – Azure: Management Konsole mit Möglichkeit zur Konfigurationsänderung zur Laufzeit – Azure: Alerts E-Mail IM SMS Betrieb in der Cloud Debugging und Fehlersuche • Herausforderung: – Kein direkter Zugriff auf die Umgebung in der Cloud • Lösung: – Logging mit Informationen zu Timestamp, Version, Umgebung, … – Azure: Windows Azure SDK mit lokaler Testumgebung („lokale Cloud“) Demo Windows Azure Zugriff auf Cloud Services • Zugriff von verschiendenartigen Clients möglich • Lose Koppelung von Clients und Services • Anbindung über Standardschnittstellen SQL Services Daten für die Cloud Database Data Sync Reporting Data Mining ETL Reference Data • Datenbankdienste für die Cloud • Relationale Datenverarbeitung über strukturierte und unstrukturierte Daten • Aktuelle Dienste: – Datenbank, Synchronisation • Zukünftige Dienste: – Reporting, Data Mining, ETL, Referenzdaten Integration von Cloud Services • Lose Koppelung von Services • Berücksichtigung des Ausfalls einzelner Services • Authentifizierung über Services hinweg • Durchgängige User Experience für den Anwender Softwarearchitektur für die Cloud Unzuverlässige Komponenten • Herausforderung: – Komponenten können ausfallen • Lösung: – Lose Koppelung – Vermeidung von „Shutdown“-Code – Einsatz von Queues für asynchrone Aufrufe – .NET Services – Azure: Azure Queues LB Einsatz von Azure Queues Default.aspx (Input) Worker.cs (Make Coffee) Windows Azure Queues .NET Services Integration für die Cloud • Erweiterung von.NET Technologien in die Cloud • Offene Zugriffsstandards Service Bus Access Control Workflow Services – REST, SOAP, RSS, … – Klassen für Java, PHP, Ruby, … • Fokus auf drei zentrale Herausforderungen bei verteilten Anwendungen: – Integration – Zugriffskontrolle – Orchestrierung Beispiel: EchoService Service A (Server) Service B (Client) Live Services Anwendungsdienste für die Cloud Mesh Services Users Devices Apps Sync Identity Communication & Presence Directory Search & Geospacial • Identity: Anwender, Geräte, Anwendungen • Zugriff auf Verzeichnisdienste • Kommunikation und Präsenzinformation • Suche & ortsbezogene Dienste • Verschiedene Geräte • Synchronisation Demo Live Mesh Software-plus-Services Flexibilität in der Architektur (Ausschnitt) Client Software PC Browser Office Mobile Client Gadgets IM Speech SMS/IM Embedded Browser Office Client Devices Consoles Application Services Presentation Static Dynamic RIA Programmatic Access Streaming RSS REST Web Services VoiceXML SIP SMTP SMS Application Business Logic (Rules) Workflow (Processes) Entities (Schema) Infrastructure Services Storage File Relational Messaging Unstructured vor-Ort Service Bus Peer to Peer Hoster Identity & Access Authentication Authorization Workflow Event Based Cloud Plattform Software Services Möglichkeiten zu individuellen Anpassungen Skaleneffekte High Throughput Hersteller Software-plus-Services Flexibilität in der Architektur (Ausschnitt) Client Software PC Browser Office Mobile Client Gadgets IM Speech SMS/IM Embedded Browser Office Client Devices Consoles Application Services Presentation Static Dynamic RIA Programmatic Access Streaming RSS REST Web Services VoiceXML SIP SMTP SMS Application Business Logic (Rules) Workflow (Processes) Entities (Schema) Infrastructure Services Storage File Relational Messaging Unstructured vor-Ort Service Bus Peer to Peer Hoster Identity & Access Authentication Authorization Workflow Event Based Cloud Plattform Software Services Möglichkeiten zu individuellen Anpassungen Skaleneffekte High Throughput Hersteller Get Started… • Azure Homepage http://www.azure.com/ • Azure Services Platform Developer Center http://msdn.microsoft.com/en-us/azure/ • PDC2008 http://www.microsoftpdc.com/ • Mein Blog http://blogs.msdn.com/hsirtl/ Zusammenfassung • Software-plus-Services kombiniert die Stärken lokaler Software mit Cloud Services • Die Microsoft-Plattform umfasst – eine On-premises Infrastruktur- und Anwendungsplattform – Windows Azure als Betriebssystem für die Cloud – Cloud Services, die in eigene Anwendungen integriert werden können – Wahlfreiheit des Deploymentmodells auf der Ebene einzelner Architekturkomponenten