Quantcast
Channel: Michael Könings Blog : tvdlunch
Viewing all articles
Browse latest Browse all 2

TVDLunch: nie mehr alleine Mittagessen dank einer Location Based Windows Phone 7 App, basierend auf Azure, OData und Bing Maps (Teil 2)

$
0
0

 

Passend zur Markteinführung des neuen Windows Phone 7 (WP7) haben wir uns überlegt, wie wir für einen Vortrag die aktuellen Technologien von Microsoft auf eine interessante und „präsentionstaugliche“ Art kombinieren können. Was dabei herausgekommen ist, möchte ich in den folgenden Beiträgen vorstellen.

Fangen wir also an mit

Windows Azure Cloud Services

 

Mit Microsofts Cloud Angebot Azure nutzen wir die Möglichkeit, eine Anwendung hochskalierbar zu machen und die Kapazität bedarfsgesteuert regulieren zu können. Natürlich ist das ein bisschen übertrieben für eine kleine Anwendung wie TVDLunch. Das Beispiel kann aber die prinzipiellen Vorteile einer Cloud Lösung verdeutlichen. Ich möchte hier versuchen, mit einfachen Worten die Vorteile zu beschreiben:

1. Bedarfsgesteuert

Warum soll man Server-Kapazität für 24h bezahlen wenn man sie effektiv nur 3h am Tag benötigt ?

Mit Azure ist es leicht, die Anwendung z.B. nach 15 Uhr auf „Standby“ zu schalten, dadurch sinken die Kosten auf ein Minimum. Dieses Prinzip kann auf viele Anwendungen übertragen werden. Wer dann noch Hunger hat, muss leider alleine Essen gehen...

2. Skalierbar

TVDLunch hat logischerweise gegen 12:00 einen Peak in der Auslastung, wenn traditionell die meisten Menschen zum Essen gehen möchten. Damit keine gefährlichen Stress-Situationen durch Unterzuckerung entstehen (ausgelöst durch schlechte Performance des Web Services durch Überlastung und die damit verbundenen Wartezeiten) können bei Bedarf weitere Instanzen des Services gestartet werden. Sind alle Lunch-Verabredungen getätigt, kann man diese wieder abschalten.

3. Managed

Für ein „Nicht-Line-Of-Business“System wie dieses (Ihr Magen sieht das vielleicht anders :-)) soll der Aufwand für Wartung und Betrieb so gering wie möglich sein. Es bietet sich also an, auf die preiswerten Cloud Services zu setzen. Extra-Kosten für die interne Betreuung des Systems, sowie für Leitungskapazität, Backup, Ausfallsicherung etc. fallen somit nicht an. Azure bietet hier ein Cent/Rappen genaues Abrechnungssystem für die bezogenen Leistungen, das die Kosten transparent macht.

4. Verfügbar

Microsoft Azure nimmt uns das Problem ab, die Daten zu den Kollegen zu bringen, egal wo sich diese befinden (weltweit :-)). Grundsätzlich profitiert eine Cloud basierte Applikation von den „unendlich“ verfügbaren Kapazitäten der Grossanbieter. Das gilt z.B. auch für das Netzwerk: Auch eine kleine Anwendung wie TVDLunch muss in der Cloud nicht befürchten, auf der Datenleitung mit anderen Systemen zu konkurrieren. Das ist bei selbstbetriebenen Diensten nicht selbstverständlich, wenn die zentrale Internet-Anbindung des Unternehmens für viele Anwendungen gleichzeitig genutzt wird.

Wie bringt man eine Applikation in die Azure Cloud ?

Mit einer Kreditkarte :-). Wer schon mal in einem Online Shop eingekauft hat, wird es auch ohne weiteres schaffen, einen Account bei Azure zu eröffnen. Kosten über eine Grundgebühr hinaus fallen grundsätzlich erst bei der ersten Nutzung an. Die aktuellen Preise finden Sie hier. Haben Sie einen MSDN Account ? dann können sie sofort loslegen. Haben Sie gerade ein Startup Unternehmen gegründet ? Dann ist BizSpark vielleicht interessant. Ein Förderprogramm für Gründer, das jetzt auch Cloud Dienste beinhaltet.

Und dann?

Microsoft Azure besteht aus 2 Angebotsbündeln:

1. Windows Azure

Compute, AppFabric, Queues und mehr.

2. SQL Azure

SQL Datenbank, Data Sync, Reporting, Appliance

Es würde den Rahmen diese Beitrages sprengen, wenn ich alle Komponenten hier einzeln erklären wollte. Wir haben für diese Projekt versucht, eine „klassische“ Web-Applikation in die Cloud (und dann aufs Handy) zu bringen. Dazu braucht man zunächst nur die Windows Azure Compute Dienste ( Laufzeitumgebung für ASP.NET Anwendungen) sowie die relationale Datenbank SQL Azure Database.

 

Was braucht man noch ?

Als nächstes wird Visual Studio Cloud-fähig gemacht: Laden Sie die das Azure SDK herunter und installieren Sie es. Auf der verlinkte Seite finden sie eine Reihe von Links zu Dokumentation, Tutorials weiteren Downloads usw.. Keine VS Lizenz ? mit Visual Studio Express geht es auch.

Als .NET Entwickler haben Sie es bereits geahnt: In Visual Studio stehen jetzt eine Reihe von Projekt-Templates zur Verfügung, um .NET Anwendungen für die Cloud zu erstellen. Das Beste daran: Sie können Ihren Code sofort lokal testen und debuggen, wie eine „normale“ Webapplikation. Visual Studio stellt eine lokale Emulation der Cloud Laufzeitumgebung zur Verfügung. Wenn Sie mit Ihrer Lösung zufrieden sind, können sie diese auf Azure hochladen. Auch das geschieht direkt aus Visual Studio heraus. Ich werde später noch ein bisschen konkreter erklären, wie wir TVDLunch auf diese Weise erstellt haben.

Mit dem neuen Silverlight Frontend kann man seine Azure Anwendungen im Browser verwalten. Man hat jeweils eine Test- sowie eine Produktivumgebung zur Verfügung, zwischen denen man die Anwendung einfach hin und her verschieben kann. Das dauert immer einige Minuten, man sollte diesen Schritt jeweils erst machen, wenn man ein neues Release lokal fertig getestet hat.
Mit dem gleiche Frontend stellt man auch die Anzahl der Instanzen ein (Skalierung), sowie weitere Parameter.

Und die Datenbank ?

Von hier sind es nur ein paar Mausklicks zur SQL Azure SQL Database. Hier legt man mit SQL Azure eine SQL Server 2008 Datenbank an, die sich aus Entwickler-Sicht wie eine „normale“ DB verhält. Man kann sich über SQL Server Management Studio damit verbinden, wie mit jeder anderen SQL Server Datenbank. (Voraussetzung ist, dass Sie eine Firewallregel eigerichtet haben). Eigentlich sehr unspektakulär.

image_thumb[4]

Im Detail gibt es (systembedingt) natürlich Unterschiede, vor allem bezogen auf User Management und Storage Parameter. Wer es genau wissen will, findet hier alle Informationen.

Kann jetzt jeder auf die SQL Daten zugreifen ?

Wenn man es nicht will, selbstverständlich nicht. Die SQL Azure Datenbanken sind für die Verbindung mit anderen Systemen gedacht, nicht für den direkten Zugriff durch Endanwender. Dazu ist eine Firewall eingerichtet, die nur bestimmten IP-Adressen(Bereichen) Zugang erlaubt. Zusätzlich werden verschlüsselte Zugänge unterstützt. Wer zusätzlich noch die gespeicherten Daten verschlüsseln möchte, findet dazu Informationen hier.
Neben dem Security Aspekten wollen wir die Speicherungsschicht in der Anwendung abstrahieren können. Dieses architektonische Mittel erlaubt es uns, die technische Implementierung zu verändern, ohne die andere Teile der Applikation zu beeinflussen. So können wir das System z.B. später leicht skalieren, in dem wir die Daten horizontal partitionieren (auf mehrere Server verteilen).

Und wie geht es weiter?

jetzt haben wir gesehen, das Visual Studio auch im Cloud-Zeitalter der Dreh- und Angelpunkt für die .NET Applikationsentwicklung ist und bleibt. Das wird sich auch bei den nächsten Abschnitten des Projektes nicht ändern.

Im nächsten Schritt legen wir eine Service Schicht über die Datenbank legen (OData Web Services) um den Zugriff nach unseren Vorstellungen zu erlauben. Dann werden wir diese Daten “konsumieren”, mit einem Ajax Web-Frontend, sowie einer Windows Phone Applikation. Für die Visualierung von Geo-Location Daten werden wir das API von Bing Maps verwenden. Ich hoffe das ich die Beiträge zeitnah liefern kann!


Viewing all articles
Browse latest Browse all 2

Latest Images