Service A - Center

Werbung
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
Herunterladen