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 rainer@timecockpit.com www.timecockpit.comwww.timecockpit.com, www.cubido.atwww.cubido.at 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): 1.22 2.500 Server/Container Ca. 400.000 Server/Container-Farm Austausch bei ca. 60% Ausfall / Container http://news.cnet.com/8301-10805_3-10020902-75.html http://www.datacenterknowledge.com/inside-microsofts-chicago-data-center/microsoft-chicago-center-aisle-container/ http://www.datacenterknowledge.com/inside-microsofts-dublin-mega-data-center/microsofts-dublin-data-center-server-pods/

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 http://yourapp.cloudapp.net

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 = @"C:\temp\azuretests"; }

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 2121 2121 1111 1111 C1C1 C1C1 C2C2 C2C2 Removing Poison Messages 1111 1111 2121 2121 3 3 4040 4040 Producers Consumers P2P2 P2P2 P1P1 P1P1 3030 3030 2. GetMessage(Q, 30 s)  msg 2 1. GetMessage(Q, 30 s)  msg 1 1111 1111 2121 2121 1010 1010 2020 2020 Quelle: Microsoft PDC

38 C1C1 C 1 C2C2 C2C2 Removing Poison Messages 3 4040 4040 Producers Consumers P2P2 P2P2 P1P1 P1P1 1111 1111 2121 2121 2. 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 1111 1111 2121 2121 6. msg1 visible 30 s after Dequeue 3030 3030 1212 1212 1111 1111 1212 1212 Quelle: Microsoft PDC

39 C1C1 C1C1 C2C2 C2C2 Removing Poison Messages 3 4040 4040 Producers Consumers P2P2 P2P2 P1P1 P1P1 1212 1212 2. 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 1 12. DequeueCount > 2 13. Delete (Q, msg1) 1212 1212 6. msg1 visible 30s after Dequeue 9. msg1 visible 30s after Dequeue 3030 3030 1313 1313 1212 1212 1313 1313 Quelle: Microsoft PDC

40 Konfigurationsinformationen

41 Konfiguration des Service XML Dateien Schema siehe MSDN http://msdn.microsoft.com/en- us/library/dd179398.aspx http://msdn.microsoft.com/en- us/library/dd179398.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: http://msdn.microsoft.com/en-us/library/ee336250.aspx http://msdn.microsoft.com/en-us/library/ee336250.aspx ASP.NET Membership Updated Scripts: http://support.microsoft.com/kb/2006191 http://support.microsoft.com/kb/2006191  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 http://blogs.msdn.com/sqlazure/archive/2010/02/17/9965464.aspx http://blogs.msdn.com/sqlazure/archive/2010/02/17/9965464.aspx

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/10.000 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 http://www.microsoft.com/windowsazure/offers/ http://www.microsoft.com/windowsazure/sla/ http://www.microsoft.com/windowsazure/tco/

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 http://www.microsoft.com/windowsazure/offers/ http://www.microsoft.com/windowsazure/sla/ http://www.microsoft.com/windowsazure/tco  Entwicklungsumgebung http://go.microsoft.com/fwlink/?LinkID=128752 http://go.microsoft.com/fwlink/?LinkID=168920&clcid=0x409 http://go.microsoft.com/fwlink/?LinkID=129448  Wichtige Werkzeuge http://code.msdn.microsoft.com/windowsazuremmc http://cloudberrylab.com/default.aspx?page=explorer-azure  Azure Training Kit http://go.microsoft.com/fwlink/?LinkID=130354

58 Azure – Ihre Entwickler-Maschine  Windows Azure Tools für Visual Studio http://go.microsoft.com/fwlink/?LinkID=128752  SQL Azure Sync Framework PowerPack http://go.microsoft.com/fwlink/?LinkID=168920&clcid=0x409  AppFabric SDK http://go.microsoft.com/fwlink/?LinkID=129448  Windows Azure Management Console http://code.msdn.microsoft.com/windowsazuremmc  Azure Tutorial auf codefest.atcodefest.at http://www.codefest.at/?tag=/azure+tutorial

59 Rainer Stropek time cockpit / cubido business solutions gmbh rainer@timecockpit.com www.timecockpit.comwww.timecockpit.com, www.cubido.atwww.cubido.at 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