web 2.0

PDC2010 : une bourrasque de nouveautés sur Windows Azure

La Professional Developer Conference 2010 vient de se dérouler à Redmond. Cette année une véritable bourrasque de nouveautés dans les nuages de Windows Azure :

L'une des plus remarqué est sans doute l'annonce d'un Team Foundation Server dans les nuages de Windows Azure. Il n'y a pas longtemps je parlais d'uns serveur d'intégration pour du .net dans les nuages. Dans trés peu de temps on poura utiliser TFS.

Windows Azure Virtual Network

Windows Azure Connect va vous permettre de relier votre réseau d’entreprise à Windows Azure, pour connecter par exemple votre Sql Azure à votre Active Directory. Avec cette fonctionnalité vos services hébergés sur Windows Azure seront comme “à la maison”.

 

Windows Azure AppFabric

3 nouveaux service bientôt en CTP :

  • AppFabric Caching : Un cache distribué pour vos applications Azure
    AppFabric Caching diagram
  • AppFabric Integration : pour connecter votre “BizTalk Server” à vos services Azure AppFabric Integration diagram
  • AppFabric Composite App :
    AppFabric Composite App diagram 
  • Une nouvelle version du Service Bus est aussi au programme
    Toutes ces nouveautés seront en CTP début 2011.

Windows Azure

Un nouveau portail amélioré en Silverlight.

Une extra Small Instance, permettra pour la modique somme de 0,05$/ heure d’héberger un service. Cette nouveauté était très attendu par la communauté, et devrait permettre d’augmenter l’adoption de la plateforme.

VM rôle Windows Azure : cette technologie permet de prendre en charge Windows Server 2008 R2 dans Windows Azure. Autre nouveauté très attendue et annoncé dés les débuts de Windows Azure va permettre de faire tourner toutes les applications qui ne pouvaient pas encore tourner sur Windows Azure.

- Virtualisation d'applications serveur : cette nouvelle fonctionnalité permet aux développeurs de transférer des images d'applications vers Windows Azure en tirant parti des capacités d’administration de la plateforme.

- Full IIS Web Role : Le Web Role pourra bientôt héberger plusieurs sites web permettant d’exploiter le serveur IIS à 100%


Toutes ces nouveautés seront disponible en version finale ou en beta fin 2010

Sql Azure, DataMarket et Azure Storage

De nouvelles fonctionnalités de reporting sur Sql Azure, et une mise à jour de la synchro  Sql Azure.

Codename “Dallas” rentre en production et devient DataMarket. Véritable place marché de l’API.  Il est intégré au Windows Azure MarketPlace  qui permet  de partager, trouver, acheter et vendre des composants et des formations pour Windows Azure.

La possibilité d’avoir des index secondaire sur les Azure Table Storage.

Pour voir ou revoir les sessions de la PDC 2010 sur Windows Azure.

Azure Camp Back From PDC10 le 22 novembre au campus Microsoft

Pour approfondir ces nouveautés ou pour en savoir plus venez le 22 novembre au campus Microsoft participer à l’Azure Camp Back From PDC10. Un simple mail a azurecamp@zecloud.fr suffit pour vous inscrire.
Plus d’infos ici.

Tags:

Azure Camp Back From PDC10 le 22 novembre au campus Microsoft

Venez retrouver toutes les annonces Azure de la PDC 2010 le 22 novembre au campus Microsoft, pour un Azure Camp sur le thème “Back From PDC”.

Ce sera aussi l’occasion de continuer le projet “OuSuisJe” démarré au précédent AzureCamp, ou d’en commencer de nouveaux.

Les Azure Camps sont des évènements fédérateurs dont l'objectif final est de produire des applications Métier en opensource pour Windows Azure.

Il s'agit de mêler pédagogie (exposé sur une fonctionnalité, retour d'expérience par des expérimentés), pratique (réalisation de modules / applications) et esprit communautaire (développement de concert et publication du code sur CodePlex).

Les Azure Camps s’adressent donc aussi bien aux débutants qu’aux passionnés expérimentés.

L’Azure Camp aura lieu de 15h à 18h ( et au delà pour ceux qui veulent)
Thomas Conté Architecte Evangéliste sur la plateforme Windows Azure sera présent.

Le programme :

15h : Conférence d’introduction: Présentation des nouveautés de la plateforme Azure

15h30 : Brainstorming entre les participants pour décider des projets.

16h à 18h : Coding Party : A la fin, le but est d’avoir un début d’application (ou une appli complète) qui compile et dont on peut faire une démo.

Après 18h: Ce sera l’occasion d’échanger entre les participants, autour de boissons fraiches.

Donc ne manquez pas cet Azure Camp ce sera  l’occasion de démarrer de nouveaux projets, et de partager les retours d’expériences des projets précédents. Et quelques surprises seront au rendez vous.

Un pc portable au minimum pour 2 personnes est requis avec les outils nécessaires pour développer sur Azure.

L'adresse du Campus Microsoft :

39 quai du Président Roosevelt

92130 Issy les moulineaux France

Pour se rendre chez Microsoft c’est très simple, c’est juste à coté d’une gare de  RER, du tram et du métro, retrouvez toutes les informations pour vous y rendre sur leur site.

Pour s’inscrire un simple mail suffit à Azurecamp@zecloud.fr avec vos  nom et prénom, ou un message sur Twitter.

Tags:

Azure Camp du 18 octobre

Un nouveau projet à été démarré par l’ensemble des participants : OuSuisJe

Un jeu de devinette pour Windows Phone 7 utilisant la photo et la géolocalisation.
Le but est de deviner les lieux , paysages pris par d'autres membres.

Retrouvez les slides de la présentation Azure de l’Azure Camp du 18 octobre.

Prochain Azure Camp en novembre, restez connectés pour  l’annonce du prochain Azure Camp.

Tags:

Propulser Subversion (SVN) dans les nuages de Windows Azure

Une des fonctionnalités fort sympathique de Windows Azure est qu’on peut y exécuter à peu prés tout ce qu’on peut exécuter sur un serveur Windows, du moment qu’on ne fait pas trop appel à COM ou à la base de registre.
En résumé tout ce que vous pouvez faire tourner sur Windows sous un compte non administrateur, tournera sur Azure. C’est grâce à cela qu’on peut exécuter du Java sur Windows Azure.

Dans cet article je vais vous présenter comment propulser votre serveur subversion dans les “nuages“ grâce à Windows Azure.

SVN qu’est ce que c’est ?

Pour ceux qui ne connaitraient pas Subversion, c’est un système de gestion de versions centralisé, très populaire et open source, sous licence Apache. Si vous ne connaissez pas Subversion je vous invite à lire cet article sur Wikipedia

Les préparatifs

Commencez par vous procurer les binaires d’un serveur subversion pour Windows. Et la vous avez l’embarras du choix http://subversion.apache.org/packages.html pour cet exemple j’avais pris la version 1.5.6 de collabnet.

Pas besoin d’installer le serveur sur votre poste il vous faut juste extraire le dossier bin qui contient svnserve.exe et les dll associées.

Ensuite on va uploader ce dossier dans les blobs de votre storage Azure. Pour cela j’ai utilisé  le cloudberry explorer qui permet d’y naviguer à la manière d’un explorateur de fichier.

Créez un container nommé “svn” et uploadez y le contenu du dossier bin que vous avez extrait.

Le Worker Role

Un Worker Role va récupérer les binaires stockés dans les blobs, les copier sur le local storage de la VM Azure, puis démarrer notre serveur svn.

Pour cela commençons par créer un nouveau Worker Role en utilisant les templates de Visual Studio.

Configuration du Worker Role

Ouvrez le ServiceDefinition.csdef 

Rajouter l’attribut enableNativeCodeExecution au WorkerRole, ainsi le WorkerRole peut exécuter du code non managé.

<WorkerRole name="WorkerRole" enableNativeCodeExecution="true">

A l’intérieur de cette balise insérez le code nécessaire pour déclarer l’utilisation des LocalResource

<LocalResources>
      <LocalStorage name="InstanceDriveCache" cleanOnRoleRecycle="false" sizeInMB="300" />
      <LocalStorage name="SvnFiles" cleanOnRoleRecycle="true" sizeInMB="300" />
</LocalResources>

Le LocalStorage que j’ai nommé SvnFiles sera pour les binaires de Svn.
Et le InstanceDriveCache servira comme cache disque pour mon repository svn.

A l’intérieur de la balise ConfigurationSettings ajouter :

<Setting name="SvnFilesContainerName" />
Cela permettra de déclarer le nom du container dans lequel j’ai stocké les binaires de SVN et
de le changer par la suite sans modifier le code de mon Worker Role
 
Et enfin dans les Endpoints rajouter comme cela un nouveau endpoint : 
<Endpoints>
      <InputEndpoint name="WorkerIn" protocol="tcp" port="3690" />
</Endpoints>

Ainsi nous ajoutons un endpoint vers l’extérieur pour notre Worker Role, le port étant celui du protocole svn.

Ouvrez le Serviceconfiguration.cscfg

et ajouter dans ConfigurationSettings :

<Setting name="SvnFilesContainerName" value="svn" />
pour déclarer le nom du container dans lequel j’ai stocké les binaires de svn
 
Vous pouvez aussi faire cette configuration en utilisant les écrans de propriétés du WorkerRole 
(clic droit, puis propriété sur le workerrole dans le projet de configuration du service)
 

Le Worker Role

Un serveur SVN c’est bien, mais où seront stockées mes repository ?

En fait nous allons utiliser un Windows Azure Drive (ou Xdrive).  Le Windows Azure Drive c’est un disque NTFS mais dans les nuages. Il est stockée sous forme de blob dans le storage Azure et monté dans la VM Azure par le Worker Role.

L’un des gros avantages d’utiliser le Windows Azure Drive est que mes repository SVN ne sont ainsi nullement lié à Azure. Le jour au je veux rapatrier mon serveur SVN et ses repository chez moi, c’est très simple il me suffit de recopier l’image disque (le .vhd) chez moi et de le remonter comme disque local (trois clics de souris sous Windows 7)

Attention par contre en utilisant un Azure Drive on reste limité en termes de montée en charge, puisque on ne peu monter un Azure drive que sur une seule instance de notre worker role en lecture/écriture.
Si on démarre plusieurs instances notre Azure Drive ne sera disponible qu’en lecture sur les autres instances, et par conséquent notre serveur svn aussi.

Donc la montée en charge se limite à augmenter la taille de la VM.

ouvrez le WorkerRole.cs

dans la classe du WorkerRole déclarer à l’intérieur de la classe cet objet :

private Process svnserve;
private string driveLetter;
private CloudDrive myCloudDrive;

L’objet svnserve nous servira à démarrer le processus du serveur SVN. Et le CloudDrive c’est l’objet correspondant au Windows Azure Drive.

 
Dans la méthode OnStart() rajouter :
// Initialize config environment 
            CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =>
            {
                configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));
            });
InstallAndStartSvn();  

Les premières lignes sont pour initialiser la configuration, puis la  méthode va copier et démarrer le serveur SVN.

Voila le contenu de la  méthode InstallAndStartSvn  :

Les 2 premières lignes vont met permettre d’initialiser l’accès au blob

 
CloudStorageAccount storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
CloudBlobClient blobfoldersClient = storageAccount.CreateCloudBlobClient();

La je récupère le chemin local à la VM de la localresource que j’ai déclaré dans ma configuration

 
String svnroot = RoleEnvironment.GetLocalResource("SvnFiles").RootPath;
 

J’utilise à présent une classe qui va copier le contenu du container “Svn” dans le dossier correspondant à la local resource  (La classe est disponible plus loin dans l’article)

 
StoreFoldersInBlobs.Folder SvnFolder = new StoreFoldersInBlobs.Folder(
    svnroot, blobfoldersClient.GetContainerReference(RoleEnvironment.GetConfigurationSettingValue("SvnFilesContainerName"))
);
SvnFolder.CopyContainerToFolder();

Trace.WriteLine(" Copie du svn effectué :)");

Maintenant je monte mon Azure Drive.

 
MountAzureDrive();
 

Et je démarre mon serveur SVN.

 
int port = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["WorkerIn"].IPEndpoint.Port;
svnserve = new Process()
  {
     StartInfo = new ProcessStartInfo(Path.Combine(svnroot, @"svnserve.exe"), 
" --daemon" + " --root " + driveLetter + " --listen-port " + port)
      {
         UseShellExecute = false,
         WorkingDirectory = svnroot,
         RedirectStandardOutput = true,
         CreateNoWindow = true
      }
  };
svnserve.Start();    
Trace.WriteLine("Serveur Svn démarré");       
}

A présent n‘oubliez pas de rajouter dans la méthode Run du WorkerRole :

svnserve.WaitForExit();
Trace.WriteLine(" svn a fermé");

Sans quoi votre Worker Role redémarrerait tout de suite aprés avoir fini de démarrer, tournant en boucle indéfiniment de l’état Busy à Starting.

Pour en savoir plus sur les Windows Azure Drive je vous recommande cet article de Thomas Conte

Le code suivant va créer s’il n’existe pas et monter l’Azure Drive.  Vous pouvez ainsi soit créer vos repository en local en utilisant le mode d’emploi de l’article de Thomas Conte pour créer votre vhd en local, y créer un repository à l’aide de la commande "svnadmin create” y régler les droits appropriés en modifiant les fichiers de config du repository puis uploader votre vhd sur Azure toujours avec le cloudberry explorer.

Le contenu de la méthode qui va monter le Windows Azure Drive pour le stockage du repository :

 
CloudStorageAccount storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
LocalResource localCache = RoleEnvironment.GetLocalResource("InstanceDriveCache");
CloudDrive.InitializeCache(localCache.RootPath + "cache", localCache.MaximumSizeInMegabytes);
Trace.WriteLine(" cache créé");
// Just checking: make sure the container exists 
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
blobClient.GetContainerReference("drives").CreateIfNotExist();

// Create cloud drive 
myCloudDrive = storageAccount.CreateCloudDrive(
    blobClient
    .GetContainerReference("drives")
    .GetPageBlobReference("mysupercooldrive.vhd")
    .Uri.ToString()
);

try
{
    myCloudDrive.Create(64);
}
catch (CloudDriveException ex)
{
    Trace.WriteLine(ex.Message);
//     handle exception here 
//    exception is also thrown if all is well but the drive already exists 
}
driveLetter = "";
try
{
    driveLetter = myCloudDrive.Mount(25, DriveMountOptions.Force);
}
catch (Exception e)
{
    Trace.WriteLine(e.Message);
}
Trace.WriteLine("disque monté " + driveLetter);

 

Soit tout faire sur le cloud, en écrivant le code approprié. Voila un exemple de code que vous pouvez rajouter dans votre Worker Role pour créer un repository aprés le démarrage du serveur :

Process svnad = new Process()
  {
     StartInfo = new ProcessStartInfo(Path.Combine(svnroot, @"svnadmin.exe"), " create " + driveLetter + "test")
     {
        UseShellExecute = false,
        WorkingDirectory = svnroot,
        RedirectStandardOutput = true,
        CreateNoWindow = true
      }
   };
   svnad.Start;
   svnad.WaitForExit();
   svnad.Dispose();

Vous pouvez aussi créer un Web Role avec une page d’administration qui exécutera ce code, qui permettra ainsi de créer de nouveaux repository.

Et créer d’autres pages web d’administration qui permettront de gérer les droits de vos repository SVN.

La classe qui sert à copier le contenu du container vers la localresource :

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Microsoft.WindowsAzure.StorageClient;

namespace StoreFoldersInBlobs
{
    public class Folder
    {
       private string LocalPath;
       private CloudBlobContainer container;

       private string GetLocalPath(string uri)
       {
           string path = LocalPath;
           // skip domain and container
           // note that this would almost certainly break running against dev storage (where paths look different)
           foreach (var segment in new Uri(uri).Segments.Skip(2))
           {
               path = Path.Combine(path, segment);
           }
           return path;
       }
       public Folder(string _localpath,CloudBlobContainer _blobcontainer)
       {
           LocalPath = _localpath;

           container = _blobcontainer;
       }
       public void CopyContainerToFolder()
       {
         var cloudBlobs = container.ListBlobs(new BlobRequestOptions() 
         { UseFlatBlobListing = true, BlobListingDetails = BlobListingDetails.Metadata }).OfType<CloudBlob>();
         foreach (var blob in cloudBlobs)
         {
             var path = GetLocalPath(blob.Uri.ToString());
             Directory.CreateDirectory(Path.GetDirectoryName(path));
             blob.DownloadToFile(GetLocalPath(blob.Uri.ToString()));
         }
       }

    }
}
 

Maintenant vous êtes prêt à propulser votre serveur SVN dans les nuages.

Mais ce n’est qu’une premiére étape, il serait de possible d’y ajouter un serveur de build, de test et de mettre tout votre processus d’intégration continue dans les nuages.

Mais cela c’est une autre histoire. Si vous êtes intéressés par cette idée, que vous êtes intéressés par un serveur SVN dans les nuages ou que vous désirez mettre votre serveur d’intégration continue dans les nuages n’hésitez pas à me contacter, ou à ajouter vos remarques dans les commentaires.

Tags:

Suivez les annonces Azure de Steve Ballmer aux MsDays en live sur ZeCloud

Demain matin le 7/10/10 à 9h30, suivez en direct sur ZeCloud depuis cette page, l'intervention de Steve Ballmer lors des Microsoft Days Paris. 

 

Tags:

Azure Camp le 18 octobre au campus Microsoft

Retrouvons nous le 18 octobre au campus Microsoft, pour ce premier Azure Camp de rentrée 2010.

Les Azure Camps sont des évènements fédérateurs dont l'objectif final est de produire des applications Métier en opensource pour Windows Azure.

Il s'agit de mêler pédagogie (exposé sur une fonctionnalité, retour d'expérience par des expérimentés), pratique (réalisation de modules / applications) et esprit communautaire (développement de concert et publication du code sur CodePlex).

Les Azure Camps s’adressent donc aussi bien aux débutants qu’aux passionnés expérimentés.

Nouveau lieu mais aussi nouvel horaire, l’Azure Camp aura lieu de 15h à 18h ( et au delà pour ceux qui veulent)

Thomas Conté Architecte Evangéliste sur la platefome Windows Azure sera présent.

Le programme :

15h : Conférence d’introduction: Présentation des nouveautés de la plateforme Azure

15h30 : Brainstorming entre les participants pour décider des projets.

16h à 18h : Coding Party : A la fin, le but est d’avoir un début d’application (ou une appli complète) qui compile et dont on peut faire une démo.

Après 18h: Ce sera l’occasion d’échanger entre les participants.

Donc ne manquez pas cet Azure Camp ce sera  l’occasion de démarrer de nouveaux projets, et de partager les retours d’expériences des projets précédents. Et quelques surprises seront au rendez vous.

Un pc portable au minimum pour 2 personnes est requis avec les outils nécessaires pour développer sur Azure.

L'adresse du Campus Microsoft :

39 quai du Président Roosevelt

92130 Issy les moulineaux France

Pour se rendre chez Microsoft c’est très simple, c’est juste à coté d’une gare de  RER, du tram et du métro, retrouvez toutes les informations pour vous y rendre sur leur site.

Pour s’inscrire un simple mail suffit à Azurecamp@zecloud.fr avec vos  nom et prénom, ou un message sur Twitter.

Restez connectés sur ZeCloud pour plus d’infos dans un prochain post.

Tags:

Un nouveau rendez vous Windows Azure au MTC

Un nouveau rendez vous sur Windows Azure aura lieu mensuellement au  Microsoft Technology Center.

Les Briefings Windows Azure au Microsoft Technology Center Paris 

Microsoft Technology Center
Campus Microsoft France
39, quai du Président Roosevelt
92130 Issy-les-Moulineaux

Retrouvez le détail de l’événement sur le blog de Thomas Conte

Et restez connecté sur ZeCloud, on organise pour Octobre un Azure Camp pour la rentrée.

Tous les détails dans un prochain Post.

Tags:

Migration ZeCloud terminé

ZeCloud est hébergé sur Windows Azure depuis le début de la CTP .  Et cet été avec la fin de la CTP au niveau mondial, le site à dû déménager d'un compte CTP vers un compte payant. Ce qui a pu occasionner quelques problèmes techniques et coupures du site.

Mais maintenant le site est de nouveau complètement opérationnel.

Tags:

TechEd 2010 : Windows Azure un meilleur outillage et les nouveautés de la plateforme

En ce moment a lieu le TechEd North America. Au cours de la Keynote, Bob Muglia a annoncé les dernières nouveautés de la plateforme Azure.

Une mise à jour du SDK et des Outils pour Azure  apporte son lot de nouveautés : 

  • Le support de la version finale de Visual Studio 2010
  • Le support de .Net 4.0
  • Un explorateur du stockage Azure permet de naviguer dans ses tables et ses blobs, malheureusement uniquement en lecture seule.
  • On peut publier sa solution sur Azure directement depuis Visual Studio, plus besoin de passer par le portail.
  • Un outil qui permet de suivre et de gérer l'état de ses services dans l'Explorateur de serveurs, sans passer non plus par le portail
  • IntelliTrace est désormais supporté pour les solutions Windows Azure

La fonctionnalité de mise à jour automatique de L’OS.

Il vous suffit de sélectionner l’option sur le portail, ou de le spécifier dans votre fichier de configuration et l’OS de votre service sera automatiquement mis à jour avec les dernières mises à jour de sécurité. Vous avez aussi la possibilité de choisir des versions précédentes de l’OS correspondant aux anciennes version du SDK sur le portail via le bouton OS settings.

 

Le Windows Azure Content Delivery Network est passé en production.

Les tarifs sont les suivant

  • $0.15 par GB pour les transferts d’Europe et d’Amérique du nord
  • $0.20 par GB pour les autres transferts
  • $0.01 pour 10,000 transactions
  •  

    SQL Azure a aussi son lot de nouvelles annonces

    • Les bases SQL Azure passent à 50GB maximum
    • Le support des données spatiales, les types Geometry et Geometry seront désormais supporté
    • La community preview de Data Sync Service pour SQL Azure est désormais disponible, précédemment annoncé sous le nom de code Huron
    • Microsoft SQL Server Web Manager (SSWM)  a été annoncé, le lancement d’une community preview est prévu pour cet été. Ce sera d’après l’annonce un outil facile à utiliser pour la gestion des bases de données SQL Azure.
    • Le support d’Access 10 permettra la connectivité Access 2010 vers Sql Azure.

    Vous pouvez aussi retrouver les précédentes nouveautés annoncées au REMIX 2010 dans la conférence dédié aux développeurs

    Tags:

    Tout ce que vous avez toujours voulu savoir sur Odata (sans jamais oser le demander)

     

    Voici un  webcast très complet sur Open Data et une présentation de Dallas et le tout en français, enregistré par Thomas Conté.

     


    Interopérabilité des données avec Open Data Protocol
    envoyé par tom_conte. - Vidéos des dernières découvertes technologiques.

    Tags: