Tijdens de afgelopen PDC 2010 werden er verschillende nieuwigheidjes voor Windows Azure aangekondigd. Een daarvan was de Windows Azure Connect functionaliteit.


Deze Connect technologie is bedoeld om het scenario met Cloud en een koppeling met on-premise software/servers of databases. Waarbij het niet of nog niet mogelijk is om de on-premise software te porten naar de Cloud. Met een VM role zou je legacy software natuurlijk ook naar de Cloud kunnen verplaatsen, maar dan moet deze software wel op een Windows 2008 R2 platform geinstalleerd kunnen worden.


Ik heb een kleine test opstelling gemaakt. Het gaat mij om de werking en niet direct om de zinnige toepassing in dit scenario. Het scenario ziet er als volgt uit, op mijn laptop (KRIMSON) heb ik een SQL Server database. In de Cloud heb ik een WebRole. Op de Webpagina van de WebRole connect ik naar de SQL Server op mijn Laptop. De opgehaalde data toon ik in het scherm.


azureconnect01


Het scherm ziet als volgt uit:


azureconnect11


Het zijn twee Read-only Textboxen en een button. Achter de button zit deze code. Zoals je ziet geen specifieke Azure code. Sterker nog in een normale Webapplicatie zou je deze code ook tegen kunnen komen. (RED: Oke, voldoet niet helemaal aan enige standaard)



   1: protected void Button1_Click(object sender, EventArgs e)
   2: {
   3:     TextBox1.Text = string.Empty;
   4:     TextBox2.Text = string.Empty;
   5:     Label1.Text = string.Empty;
   6:  
   7:     try
   8:     {
   9:         using (SqlConnection sqlc = 
  10:                     new SqlConnection(
  11:                           “Data Source=KRIMSON;
  12:                           Initial Catalog=TestDb;
  13:                           User Id=<user>;Password=<wachtwoord>”)
  14:               )
  15:         {
  16:             sqlc.Open();
  17:  
  18:             using (SqlCommand command = sqlc.CreateCommand())
  19:             {
  20:                 command.CommandText = “SELECT tekst FROM AzureConnectExampleDb”;
  21:                 string obj1 = (string)command.ExecuteScalar();
  22:  
  23:                 TextBox1.Text = obj1;
  24:  
  25:                 command.CommandText = “SELECT ‘Connected Server: ‘ + @@SERVERNAME”;
  26:                 string obj2 = (string)command.ExecuteScalar();
  27:  
  28:                 TextBox2.Text = obj2;
  29:             }
  30:         }
  31:     }
  32:     catch (Exception ex)
  33:     {
  34:         Label1.Text = ex.Message;
  35:     }
  36: }

Om de connectie met mijn Laptop mogelijk te maken moeten we wel een aantal dingen regelen. In de properties van de Webrole we de Activation token van de Endpoint nodig. Deze kun je opvragen op de portal.


azureconnect15


Op de Azure Management portal is linksonder een button met Virtual Network. Deze button brengt je naar de pagina met de instellingen van de Virtual Network settings.


azureconnect02azureconnect03


Ook het instellen van een locale Endpoint is hier mogelijk. Daarvoor wordt je naar een andere site door verwezen. (RED: Jammer dat de link geen echte link is.)


azureconnect05


Als je naar de URL gaat en de software installeert, krijg je in de Action center een nieuw icoon. Ook in de Eventviewer is er een aparte sectie voor de Logging van Windows Azure Connect.


azureconnect06azureconnect08


Na deze installatie en het overnemen van de Activation token in de properties van de WebRole kunnen we het Azure project deployen naar de Cloud. Deze deployment is niet anders dan gebruikelijk.


Op de Azure Managemet portal moeten we dan connectie tussen de lokale endpoint en de Webrole leggen. Anders is zijn het nog steeds twee losse en opzichzelf staande End-points. De combinatie van de twee maakt het spannend. Als de connectie niet gemaakt is, dan zie je een rood kruis in het Windows Azure Connect icoon in het Action center. Als de connectie tussen beide End-points tot stand gebracht is, dan is dat aan het icoon te zien.


azureconnect04


Als je naar de WebRole RDP-t kun je zien dat op de VM van de WebRole dezelfde software voor het opzetten van de verbinding is geinstalleerd.


azureconnect09


Maar nu terug naar mijn test opstelling. De WebRole was geinstalleerd op mijn Staging area en via de URL http://099837cc5ff64bfeb021794498f63cac.cloudapp.net/ kom ik op de webpagina van de WebRole. En na de klik op de button komt de informatie uit de Database inderdaad op mijn scherm.


azureconnect13


En als ik de SQL Server services op mijn Laptop stop, dan krijg je inderdaad een foutmelding dat de connectie niet gemaakt kan worden.


azureconnect14


Oke, het kostte nog wel wat hoofdbrekers om de Test opstelling ook inderdaad werkend te krijgen. Mijn SQL Server was op het lokale netwerk niet bereikbaar, daarvoor moest ik nog een paar gaten in mijn Firewall maken. Dit was ook nodig voor Windows Azure Connect.


Ik geloof dat er beslist toepassingen zijn voor deze manier van koppelen tussen de Cloud en on-premise servers/databases. Maar of dit ook de optimale oplossing betwijfel ik. Vooral voor overgangsituaties is het een handige toepassing.

Op dit moment houdt hij zich voornamelijk bezig met Microsoft Azure, Cloud, C#, Software Ontwikkeling, Architectuur, etc. Hij werkt als consultant voor zijn eigen bedrijf JOEP-IT bv. In zijn vrije tijd is hij voorzitter, bestuurslid, eindredacteur en eventorganisator bij de SDN (Software Development Network). Sinds 1 oktober 2010 is hij MVP.

Leave a Reply

Your email address will not be published. Required fields are marked *