Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Rainer Stropek time cockpit / cubido business solutions gmbh

Ähnliche Präsentationen


Präsentation zum Thema: "Rainer Stropek time cockpit / cubido business solutions gmbh"—  Präsentation transkript:

1 Rainer Stropek time cockpit / cubido business solutions gmbh Blauer Himmel – Teil 1 Einführung in Windows Azure

2 Agenda  Cloud – ist doch einfach nur Hosting, oder?  Die Windows Azure Cloud  Hello World – lokale Entwicklungsumgebung  Windows Azure einrichten  Architektur von Anwendungen in Windows Azure  SQL Azure  Call to Action!

3 Flexibel Strom Kühlung Netzwerk Zutritt Hardware Hardware ist spannend Betriebssystem Datenbank Backup Ausfallssicherheit Load Balancing SLAs Daten unter Kontrolle Lizenzen Einnahme- quelle Skalierbarkeit Katastrophen- schutz On-Premise Applikation

4 Flexibel Hardware ist spannend Betriebssystem Datenbank Backup Ausfallssicherheit Load Balancing SLAs Daten unter Kontrolle Lizenzen Einnahme- quelle Skalierbarkeit Hosted Applikation

5 Flexibel Backup SLAs Daten unter Kontrolle Einnahme- quelle Cloud Applikation

6 Arten von Cloud Computing Infrastructure as a Service (IaaS) Mieten einer virtuellen Maschine + grundlegender Services Netzwerk, Hardware, etc. abstrahiert Platform as a Service (PaaS) Mieten von Rechenkapazitäten für auszuführende Anwendungen Sogar die virtuellen Maschinen sind abstrahiert Software as a Service (SaaS) Zugang zu einer fertigen Anwendung mieten

7 Cloud Computing optimal für jeden? Pro Cloud  Starke Schwankungen Last/Ressourcen  Zukünftige Kapazität schwer abschätzbar  Fehlendes Infrastrukturwissen Warum?  Pay-Per-Use  Elastizität, dynamische Ressourcen  Infrastruktur-Outsourcing  Starke Schwankungen Last/Ressourcen  Zukünftige Kapazität schwer abschätzbar  Fehlendes Infrastrukturwissen Warum?  Pay-Per-Use  Elastizität, dynamische Ressourcen  Infrastruktur-Outsourcing Contra Cloud  Strenge Datenschutzbedingungen  Geringe Kosten bei Ausfall  Hohe Preissensitivität Warum? Daten nicht im eigenen Rechenzentrum Daten eventuell nicht im Land Wenig Kontrolle über Infrastruktur  Strenge Datenschutzbedingungen  Geringe Kosten bei Ausfall  Hohe Preissensitivität Warum? Daten nicht im eigenen Rechenzentrum Daten eventuell nicht im Land Wenig Kontrolle über Infrastruktur Auf keinen Fall  zusätzliche Option

8 Agenda  Cloud – ist doch einfach nur Hosting, oder?  Die Windows Azure Cloud  Hello World – lokale Entwicklungsumgebung  Windows Azure einrichten  Architektur von Anwendungen in Windows Azure  SQL Azure  Call to Action!

9 Windows Azure-Plattform Power Usage Efficiency (PUE): Server/Container Ca Server/Container-Farm Austausch bei ca. 60% Ausfall / Container

10 Windows Azure – Verfügbarkeit N. Central – US Sub-region W. Europe Sub-region S.E. Asia Sub-region E. Asia Sub-region N. Europe Sub-region S. Central - US Sub-region

11 Was braucht eine „Cloud-Plattform“? Zugriff auf Ressourcen/Datenquellen (ADO.NET EF, nHibernate, System.IO...) Anwendungslogik, Geschäftslogik UI (Web)UI (AJAX, RIA, Client) Dienste von anderen Anwendungen und Organisationen TCP/TDS Alles Mögliche HTTP/XML (SOAP, REST…) HTTP/HTML HTTP/XML (SOAP, REST…) Stream

12 Was braucht eine „Cloud-Plattform“? Zugriff auf Ressourcen/Datenquellen (ADO.NET EF, nHibernate, System.IO...) Anwendungslogik, Geschäftslogik UI (Web)UI (AJAX, RIA, Client) Dienste von anderen Anwendungen und Organisationen TCP/TDS Alles Mögliche HTTP/XML (SOAP, REST…) HTTP/HTML HTTP/XML (SOAP, REST…) Stream Storage Rechenleistung (skalierbarer) Store Relationale Datenbank Sichere Integration

13 Azure – Ihre Entwickler-Maschine  Windows Azure Tools für Visual Studio (inkl. SDK) Enthält lokale Simulationsumgebung Developer Fabric, kurz DevFabric  Windows 7, Windows Server 2008, Windows Vista mit SP1 installiert  IIS 7.x mit ASP.NET, WCF HTTP, CGI  Microsoft Visual Studio Visual Studio 2008 mit SP1 Visual Web Developer 2008 Express mit SP1 Visual Studio 2010  SQL Server 2005 Express Edition oder höher

14 Agenda  Cloud – ist doch einfach nur Hosting, oder?  Die Windows Azure Cloud  Hello World – lokale Entwicklungsumgebung  Windows Azure einrichten  Architektur von Anwendungen in Windows Azure  SQL Azure  Call to Action!

15 demodemo Hello World in der DevFabric

16 DevFabrik Local Machine Windows Azure Simulation Environment Development Fabric Development Storage

17 DevStorage einrichten Speicherung in SQL Server Initialisierung mit DSInit Default: SQL Express SQL Server: dsInit /sqlInstance dsInit /sqlInstance.

18 Unterschied DevFabrik / Azure DevFabrik Debugging möglich Zugriff auf lokale Ressourcen des Computer (z.B. GAC, Filesystem, SQL Server, etc.) Logging im DevFabrik UI sichtbar Azure App läuft nicht als Admin Änderung der Anzahl an Instanzen oder Servicerestart möglich

19 Cloud Service hinzufügen

20 Agenda  Cloud – ist doch einfach nur Hosting, oder?  Die Windows Azure Cloud  Hello World – lokale Entwicklungsumgebung  Windows Azure einrichten  Architektur von Anwendungen in Windows Azure  SQL Azure  Call to Action!

21 demodemo Windows Azure Umgebung einrichten

22 Azure Testen

23 Windows Azure Management-Portal

24 Windows Azure Portal

25 Deploymentprozess

26  Publish im VS auf Cloudprojekt erstellt Packagefile Configfile  Typen von Deployments In-place Upgrade VIP (Virtual IP) Swap Upgrade

27 Agenda  Cloud – ist doch einfach nur Hosting, oder?  Die Windows Azure Cloud  Hello World – lokale Entwicklungsumgebung  Windows Azure einrichten  Architektur von Anwendungen in Windows Azure  SQL Azure  Call to Action!

28 Windows Azure Roles

29 Rollen Mind. eine Rolle pro Service Web Role IIS 7, ASP.NET Ein HTTP und/oder ein HTTPS Endpoint (siehe.csdef-Datei) Worker Role Hintergrundverarbeitung Beliebige Anzahl an HTTP, HTTPS und/oder TCP Endpoints

30  Warum kein „normales“ Dateisystem? Binärdaten in der Cloud

31 Temporäre Dateien (Code, 1/2)

32 Temporäre Dateien (Code, 2/2) var tempPath = string.Empty; if (RoleEnvironment.IsAvailable) { tempPath = RoleEnvironment.GetLocalResource( "TemporaryFiles“).RootPath; } Else { tempPath }

33 Binärdaten in der Cloud Große Binärdaten hierarchisch abgelegt Asynchrone Kommunikation Semistrukturierte Daten hochskalierbar

34 Blob Access (Code) public class CloudTemplateManager : TemplateManager { public override byte[] GetRegistrationConfirmationTemplate() { var blob = this.GetTemplateContainer().GetBlobReference("Anmeldebestaetigung.docx"); return blob.DownloadByteArray(); } public override void SendRegistration(Stream source, System.Guid registrationId) { var targetFileName = string.Format("Anmeldebestaetigung_{0}.docx", registrationId.ToString()); var blob = this.GetTemplateContainer().GetBlobReference(targetFileName); blob.UploadFromStream(source); } private CloudBlobContainer GetTemplateContainer() { CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) => { configSetter(RoleEnvironment.GetConfigurationSettingValue(configName)); }); var cloudStorageAccount = CloudStorageAccount.FromConfigurationSetting( "BlobStorageConnectionString"); var cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient(); return cloudBlobClient.GetContainerReference("templates"); }

35 Queue Access (Code) CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) => { configSetter(RoleEnvironment.GetConfigurationSettingValue(configName)); }); var storageAccount = CloudStorageAccount.FromConfigurationSetting("BlobStorageConnectionString"); […] var queueStorage = storageAccount.CreateCloudQueueClient(); var queue = queueStorage.GetQueueReference("registrationqueue"); queue.CreateIfNotExist(); while (true) { var msg = queue.GetMessage(TimeSpan.FromSeconds(10)); if (msg != null) { Trace.WriteLine(msg.AsString); […] queue.DeleteMessage(msg); } else { Trace.WriteLine("No message, waiting..."); Thread.Sleep(1000); }

36 Aufteilung in Web und Worker  Komplexe, lang laufende Prozesse in den Hintergrund verlagern Sollte die Web-Anwendung nicht blockieren  Lösung: Worker Role im Hintergrund Bei uns: Generiert und verschickt Dokumente

37 C1C1 C1C1 C2C2 C2C2 Removing Poison Messages Producers Consumers P2P2 P2P2 P1P1 P1P GetMessage(Q, 30 s)  msg 2 1. GetMessage(Q, 30 s)  msg Quelle: Microsoft PDC

38 C1C1 C 1 C2C2 C2C2 Removing Poison Messages Producers Consumers P2P2 P2P2 P1P1 P1P GetMessage(Q, 30 s)  msg 2 3. C2 consumed msg 2 4. DeleteMessage(Q, msg 2) 7. GetMessage(Q, 30 s)  msg 1 1. GetMessage(Q, 30 s)  msg 1 5. C 1 crashed msg1 visible 30 s after Dequeue Quelle: Microsoft PDC

39 C1C1 C1C1 C2C2 C2C2 Removing Poison Messages Producers Consumers P2P2 P2P2 P1P1 P1P Dequeue(Q, 30 sec)  msg 2 3. C2 consumed msg 2 4. Delete(Q, msg 2) 7. Dequeue(Q, 30 sec)  msg 1 8. C2 crashed 1. Dequeue(Q, 30 sec)  msg 1 5. C 1 crashed 10. C1 restarted 11. Dequeue(Q, 30 sec)  msg DequeueCount > Delete (Q, msg1) msg1 visible 30s after Dequeue 9. msg1 visible 30s after Dequeue Quelle: Microsoft PDC

40 Konfigurationsinformationen

41 Konfiguration des Service XML Dateien Schema siehe MSDN us/library/dd aspx us/library/dd aspx

42 Konfigurationdaten lesen (Code) public static HelfenHelfenEventsEntities Create() { var connectionString = string.Empty; if (RoleEnvironment.IsAvailable) { connectionString = RoleEnvironment.GetConfigurationSettingValue( "ConnectionString"); } else { connectionString = ConfigurationManager.ConnectionStrings[ "HelfenHelfenEventsEntities"].ConnectionString; } return new HelfenHelfenEventsEntities(connectionString); }

43 Agenda  Cloud – ist doch einfach nur Hosting, oder?  Die Windows Azure Cloud  Hello World – lokale Entwicklungsumgebung  Windows Azure einrichten  Architektur von Anwendungen in Windows Azure  SQL Azure  Call to Action!

44 SQL Azure – Datenbank in der Cloud  SQL Server-Datenbank in der Cloud Gewohnter Zugriff über Tabular Data Stream  Höchst ausfallsicher im Microsoft Datacenter Immer 3 Replika einer DB vorhanden Aber max. Größe 10 GB, Transaktionsdauer < 5 Min.

45 SQL Azure

46  Load Balancer Grundlegende Firewallfunktionen Erste Hürde für potentielle Angreifer Ordnet TDS Sitzung einem Gateway-Knoten zu  Gateway-Schicht Proxy- und Firewallfunktionen Verstehen TDS Statefull Packet Inspection Umleiten gewisser T-SQL Kommandos (z.B. CREATE DATABASE )  Data Store Spezielle Version von SQL Server 2008

47 Servermanagement Über das Portal Server Admin-User Firewall Über T-SQL ( master -Datenbank) Firewall sys.firewall_rules, sys.sp_set_firewall_rule, sys.sp_delete_firewall_rule Logins Create/Drop Databases Portal Master DB User DB

48 SQL Azure  Hinweise: Un-supported features: ASP.NET Membership Updated Scripts:  Tipp: Mit SQL Management Studio 2008 kein Object Explorer, nur Query Window Mit SQL 2008 R2 CTP auch Object Explorer

49 Security SQL Authentifizierung Beispiel: Neuer Benutzer über T-SQL -- connect to master with admin create login newUser with password = 'xaz' -- connect to db with admin where user should be granted rights create user newUser from login newUser -- grant rights (here: schema permissions) grant SELECT, INSERT, … ON schema :: to newUser User

50 Connections Latenzzeiten berücksichtigen Connections können abbrechen Idle Lange Transaktionen „Throttling“ DB Failover Achtung: Seit SP1 neue Rahmenbedingungen Siehe SQL Azure Team Blog

51 Empfehlungen aus der Praxis Kurze Transaktionen Connection Pooling Connections nicht lange offen halten Reconnect-Logik Z.B. 10 Sekunden warten, erneut probieren Batching Anzahl Statements reduzieren Parametrisierte Queries verwenden Volle Angabe aller Parameter (inkl. Längenangaben) Sharding (=Aufteilen der Daten auf mehrere DBs/Server) Replizieren (=Kopieren der Daten auf mehrere DBs/Server) Schemas für Multi Tenancy Systeme

52 Agenda  Cloud – ist doch einfach nur Hosting, oder?  Die Windows Azure Cloud  Hello World – lokale Entwicklungsumgebung  Windows Azure einrichten  Architektur von Anwendungen in Windows Azure  SQL Azure  Call to Action!

53 Windows Azure-Plattform – Preise  Instanz (Web/Worker) pro Stunde Kleine VM – € 0,0852 Mittlere VM – € 0,1703 Große VM – € 0,3405 Extragroße VM – € 0,6809  Blob/Queue/Table-Speicher € 0,1064/GB pro Monat € 0,0071/ Trn.  Web Edition Max. 1 GB/DB € 7,085/DB  Business Edition Max. 10 GB/DB € 70,913/DB Datentransfer: € 0,071/GB eingehend, € 0,1064/GB ausgehend

54 Zusammenfassung  Cloud Computing – eine weitere Option Starke Last/Ressourcen-Schwankungen Unvorhersehbare Ressourcen-Entwicklungen  Windows Azure-Plattform Die Cloud-Plattform von Microsoft Rechenleistung, Storage, RDBMS, Integration Teilweise oder komplett verwendbar

55 Nächste Schritte  Holen Sie sich den Windows Azure-SDK  Richten Sie Ihre Entwickler-Maschine ein  Machen Sie sich mit SLA und Preisen vertraut  Probieren Sie es einfach aus Windows Azure Introductionary Offer (bis Juli 2010) 25 Stunden Instanz-Betrieb pro Monat gratis 1 x 1 GB SQL Azure-Datenbank pro Monat gratis 500 MB Blob/Table/Queue Storage pro Monat gratis Achtung: nach Test alles löschen – Sonst beginnt die Verrechnung bei Überschreiten!!!

56 Q&A Unterstützt Azure.NET 4.0? Verstößt man bei Nutzung von Azure gegen ein Datenschutzgesetz? Update Kann unmanaged Code ausgeführt werden? Welche Programmiersprachen werden unterstützt? Welche Plattformen außer.NET werden noch unterstützt? Wie funktioniert Backup? Von der Public zur Private Cloud …

57 Ressourcen  Angebote, Preise, SLA, TCO  Entwicklungsumgebung  Wichtige Werkzeuge  Azure Training Kit

58 Azure – Ihre Entwickler-Maschine  Windows Azure Tools für Visual Studio  SQL Azure Sync Framework PowerPack  AppFabric SDK  Windows Azure Management Console  Azure Tutorial auf codefest.atcodefest.at

59 Rainer Stropek time cockpit / cubido business solutions gmbh Danke für Ihre Aufmerksamkeit und viel Spaß in der Cloud


Herunterladen ppt "Rainer Stropek time cockpit / cubido business solutions gmbh"

Ähnliche Präsentationen


Google-Anzeigen