web 2.0

Azure Camp le 19 janvier, spécial SaaS , avec ZeCloud et BizSpark

Venez participer au prochain Azure Camp le 19 janvier 2011 au campus Microsoft. Sur le thème du SaaS ( Software as a Service) , venez démarrer votre SaaS au cours de cet Azure Camp.

Ce sera aussi l’occasion de rencontrer le programme BizSpark. Avant l’Azure Camp si vous voulez rejoindre le programme BizSpark pour bénéficier d’hébergement Azure gratuit pour votre projet, contactez moi. Plus d’infos sur le programme BizSpark et les conditions d’inscription dans mon précédent Post.   

Les Azure Camps sont des évènements fédérateurs dont l'objectif final est de produire des applications 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 18h à 21h ( et au delà pour ceux qui veulent)

Le programme :

18h : Conférence d’introduction: Présentation des nouveautés de la plateforme Azure, ainsi que de samples de code pour bien démarrer son SaaS sur Azure.

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

19h à 21h : 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 21h: 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 pour les participants quelques petits cadeaux 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, soit via l’évènement Facebook dédié, ou un mail à Azurecamp@zecloud.fr avec vos  nom et prénom, ou même un message sur Twitter.

Tags:

ZeCloud est maintenant Bizspark Network Partner

 

C’est un gros plus pour les prochains Azure Camps, cela permettra aux projets de décoller plus facilement et ainsi de devenir de véritables entreprises.

D’ailleurs en janvier aura lieu le prochain Azure Camp avec le programme BizSpark dont voila une petite présentation :

Microsoft vient de mettre en place un tout nouveau programme conçu spécifiquement pour fournir aux startups telles que la vôtre des logiciels, un support technique et une visibilité susceptibles de favoriser votre réussite. Ce programme, nommé BizSpark, donne accès aux éléments suivants :

· Logiciels. Rejoignez le programme BizSpark et en quelques clics vous aurez accès à des outils de développement Microsoft complets, y compris Visual Studio Team System, ( l’équivalent d’un MSDN ultimate) ainsi qu'à des licences de production pour développer et commercialiser votre solution.  Et surtout du crédit gratuit sur Windows Azure.  Tout cela pendant 3 ans.

· Support technique. BizSpark vous donne accès à un support technique professionnel assuré par Microsoft et vous met en relation avec une communauté internationale d'experts susceptibles de vous aider à faire prospérer votre entreprise.

· Visibilité. Grâce à BizSpark, vous bénéficierez d'une visibilité globale auprès d'investisseurs, de clients et de partenaires potentiels.

Les conditions d'éligibilité sont minimes : Si vous êtes une société privée qui crée un produit ou un service logiciel (même avec du code Open Source), que vous êtes en activité depuis moins de trois ans et que votre revenu est inférieur à 1 million de dollars US, vous pouvez rejoindre le programme BizSpark.

Si vous êtes activement engagé dans le développement de logiciels mais n'avez pas encore le statut d'entreprise, vous êtes également autorisé à vous inscrire au programme Microsoft BizSpark.

Pour cela, vous devez être parrainé par un partenaire BizSpark Network Partner, tel que ZeCloud. Vous trouverez davantage de détails concernant ce programme ici .

Lorsque vous serez prêt à vous inscrire, contactez moi à propos du parrainage et afin d'obtenir votre code d'inscription.

Une fois en possession de votre code, l'inscription à BizSpark est simple et rapide. Aucun paiement ni information bancaire ne sont requis, et aucune somme ne doit être versée d'avance. (Lorsque la startup met un terme à son inscription au programme (ou à l'issue des trois ans), elle doit s'acquitter de 100 dollars US.)

Rendez-vous sur le site Web Bizspark  pour en savoir plus !

Alors est ce que les futures startups de demain commenceront dans un Azure Camp, qu’en pensez vous ?

Tags:

ZeCloud est maintenant Bizspark Network Partner

 

C’est un gros plus pour les prochains Azure Camps, cela permettra aux projets de décoller plus facilement et ainsi de devenir de véritables entreprises.

D’ailleurs en janvier aura lieu le prochain Azure Camp avec le programme BizSpark dont voila une petite présentation :

Microsoft vient de mettre en place un tout nouveau programme conçu spécifiquement pour fournir aux startups telles que la vôtre des logiciels, un support technique et une visibilité susceptibles de favoriser votre réussite. Ce programme, nommé BizSpark, donne accès aux éléments suivants :

· Logiciels. Rejoignez le programme BizSpark et en quelques clics vous aurez accès à des outils de développement Microsoft complets, y compris Visual Studio Team System, ( l’équivalent d’un MSDN ultimate) ainsi qu'à des licences de production pour développer et commercialiser votre solution.  Et surtout du crédit gratuit sur Windows Azure.  Tout cela pendant 3 ans.

· Support technique. BizSpark vous donne accès à un support technique professionnel assuré par Microsoft et vous met en relation avec une communauté internationale d'experts susceptibles de vous aider à faire prospérer votre entreprise.

· Visibilité. Grâce à BizSpark, vous bénéficierez d'une visibilité globale auprès d'investisseurs, de clients et de partenaires potentiels.

Les conditions d'éligibilité sont minimes : Si vous êtes une société privée qui crée un produit ou un service logiciel (même avec du code Open Source), que vous êtes en activité depuis moins de trois ans et que votre revenu est inférieur à 1 million de dollars US, vous pouvez rejoindre le programme BizSpark.

Si vous êtes activement engagé dans le développement de logiciels mais n'avez pas encore le statut d'entreprise, vous êtes également autorisé à vous inscrire au programme Microsoft BizSpark.

Pour cela, vous devez être parrainé par un partenaire BizSpark Network Partner, tel que ZeCloud. Vous trouverez davantage de détails concernant ce programme ici .

Lorsque vous serez prêt à vous inscrire, contactez moi à propos du parrainage et afin d'obtenir votre code d'inscription.

Une fois en possession de votre code, l'inscription à BizSpark est simple et rapide. Aucun paiement ni information bancaire ne sont requis, et aucune somme ne doit être versée d'avance. (Lorsque la startup met un terme à son inscription au programme (ou à l'issue des trois ans), elle doit s'acquitter de 100 dollars US.)

Rendez-vous sur le site Web Microsoft Startup Zone  pour en savoir plus !

Alors est ce que les futures startups de demain commenceront dans un Azure Camp, qu’en pensez vous ?

Tags:

Php et Sdk 1.3 Azure : Comment réparer l'erreur 500

Si vous avez installé le dernier Sdk 1.3 pour Azure et essayé de déployer un Cgi Web Role avec un site Php.

Vous avez probablement vu ce message :

HTTP 500 Internal Server Error

Alors que votre site fonctionnait parfaitement probablement auparavant, évidemment ça énerve.

Le nouveau Sdk 1.3 à du transformer votre Cgi Web Role en Full IIS Web role, et apparemment même si votre web.config  a la bonne config pour le handler Php (si vous embarquez le runtime php dans votre web role ):

    <handlers>
      <add name="PHP Fast CGI" verb="*" path="*.php" 
scriptProcessor="%RoleRoot%\approot\php\php-cgi.exe" modules="FastCgiModule"
resourceType="Unspecified" /> </handlers>

L’erreur est quand même la. Apparemment en Full IIS web role, Azure n’arrive pas à atteindre le runtime php.

Une solution consiste à remettre votre cgi web role comme avant.

Une section sites à du être rajouté dans votre fichier CSDEF :

    <Sites>
      <Site name="Web">
        <Bindings>
         <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>


Commentez cette section et le site devrait refonctionner.

En attendant que le Full IIS web role fonctionne avec Php.

Tags:

Classic Asp dans les nuages c'est maintenant possible avec Azure.

Homelidays.com est un site historiquement en Classic Asp à fort trafic,  puisqu’il est dans les 20 sites les plus consultés de france.

Cet été j’y ai travaillé en tant que consultant, sur leur migration de Classic Asp vers Asp.net. Pour que la transition se fasse le plus en douceur, l’option choisie à été de développer un service permettant de partager la session entre les pages Asp et Asp.net afin de faire cohabiter les deux technologies dans le même site.

Un schéma étant meilleur qu’un long discours.

La société a décidé de publier ce composant en Open Source sous licence Apache. Le projet s'appelle Homelidays Session Service à télécharger sur Codeplex

Vous me direz quel est le rapport avec Azure la dedans. Et bien avec les dernières nouveautés annoncés pour Windows  Azure à la PDC. Il est maintenant possible d’héberger du Classic Asp sur Azure. Et en utilisant le session service, la session Asp n’est plus stockée en mémoire dans le serveur web, mais dans une base de données Sql Server pouvant donc être hébergée sur Sql Azure.
Votre site Asp peut ainsi être exécuté en plusieurs instance, et est donc prêt pour le Cloud.
Une évolution possible du composant serait de stocker ces sessions dans le storage Azure pour améliorer encore la montée en charge.

Si migrer du Classic Asp dans les nuages vous intéresse n’hésitez pas à me contacter.

Tags:

Slides de l’Azure Camp Back From Pdc 10 du 22 novembre

Vous pouvez retrouver ici les slides présenté lors de l’Azure Camp Back From Pdc du 22 novembre.

Vous pouvez aussi retrouver l’intégralité des annonces de la PDC 2010 en français dans ce webcast  réalisé au campus Microsoft.

Et l’intégralités des sessions (en anglais) de la PDC 2010 est disponible sur le site de la PDC.

Cet Azure Camp à aussi été l’occasion de continuer le projet “OuSuisJe” Un jeu de devinette utilisant la photo et la géolocalisation, via une appli Windows Phone 7 et un service hébergé sur Azure. Lancement prévu pour les Techdays 2010

Tags:

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: