Archive

Posts Tagged ‘Azure’

Bonne année 2012 … et Flight in the Azure !

Je vous présente en mon nom et celui de l’équipe QuidMind nos meilleurs vœux pour cette nouvelle année 2012. Qu’elle soit porteuse de santé, réussites et succès.

… Et c’est encore mieux quand une bonne nouvelle accompagne les vœux. Et cette nouvelle – bien que ne concernant pas Windows Azure – va nous transporter dans les “clouds” : Je parle bien entendu de Microsoft Flight.

Microsoft vient de communiquer de nouvelles informations pour nous mettre l’eau à la bouche :

  • Le jeu de base sera téléchargeable gratuitement (avec une scène “l’ile principale de Hawaï” et plusieurs missions intégrées). L’”Icon A5” (avion disponible commercialement fin 2012 http://www.iconaircraft.com/ ) sera le premier disponible en simulation.
  • Les joueurs connectés avec “Games for Windows Live” auront accès à du contenu complémentaire (avions, missions, collecte de ‘succès’, …)
  • Des compléments (avions, scènes, personnalisation, …) seront achetables séparément pour les plus accrocs
  • flighticon_a5_1icon_a5_2

Je vous rappelle qu’il est encore possible de s’inscrire pour participer à la beta : https://connect.microsoft.com/site1134/InvitationUse.aspx?ProgramID=6087&InvitationID=FLY-BRQX-BXTB

 

Bonne année 2012 à tous.

Publicités

Service à Haute Disponibilité et Forte Montée en charge avec Azure ServiceBus (AppFabric)

“High Availability and highly scalable web service with Windows Azure ServiceBus (AppFabric)”

 

La version “November 2011” du SDK Windows Azure fusionne les deux principaux SDK (Le SDK Azure ainsi que les librairies de développement AppFabric ServiceBus et AppFabric Caching). Ce SDL apporte le support de nouveaux types de projets (MVC3, Silverlight RIA, HPC Preview, …)

Téléchargement : http://www.microsoft.com/windowsazure/sdk/

Outre ce packaging plus simple, cette nouvelle version apporte son lot de nouveautés techniques (http://msdn.microsoft.com/en-us/library/windowsazure/gg441573.aspx)

En parallèle avec l’évolution du SDK, l’implémentation du ServiceBus au sein d’Azure accueille une nouvelle fonctionnalité très attendue : la répartition de charge. Cette nouvelle caractéristique est indépendante des SDK. Elle est automatiquement disponible dès qu’on utilise le ServiceBus (à partir du SDK v1.5).

 

Azure Service Bus

Pour rappel, le ServiceBus Azure est bus de service fournissant des fonctionnalités de sécurité,  d’agrégation, de répertoire et d’exposition des services. Une société peut ainsi agrégé l’ensemble de ses services (publiques ou privés) en un point fédérateur unique hébergé par Windows Azure et accessible à partir d’une url racine unique et stable dans l’espace et le temps (par exemple : services.masociete.com), les services s’agrégeant en sous url (services.masociete.com/compta/ , sercices.masociete.com/catalogue/product, …)

Bien que supportant de multiples technologies clientes, l’intégration du service bus au sein du framework .Net est particulièrement propre et simple par l’utilisation de Binding WCF spécifiques.

Pour une explication sur les bases du ServiceBus AppFabric et de sa mise en œuvre, je vous conseille la lecture de l’article que j’ai publié dans la revue Programmez n° 131 (http://www.programmez.com/magazine_articles.php?titre=Windows-Azure–le-cloud-computing-pour-les-developpeurs&id_article=1393&magazine=131). Si vous souhaitez recevoir les sources de l’exemple envoyez moi un email (nclerc [at] quidmind.com).

 

La haute disponibilité avec Azure

Windows Azure est une plateforme fiable, hautement disponible, redondante. Chaque brique composant Windows Azure met en œuvre des mécanismes de redondance et/ou de répartition de charge apportant haute disponibilité et performances à vos applications :

Azure Compute :

  • Load Balancing en entrée des WebRole,
  • Load Balacing sur les endpoint exposés par des WorkerRole,
  • Load Balancing pour les communications entre Web et Worker
  • Routing via le DNS pour une répartition multi datacenter dynamique de la charge

Azure Storage :

  • Stockage dupliqué
  • Load balancing pour le requêtage client
  • Augmentation du nombre de serveurs de requêtage en fonction de la charge
  • Partitionnement des tables

SQL Azure :

  • Triple réplication de la base de données avec reconstruction automatique des réplicas pour une continuité de service.
    L’ensemble de ces fonctionnalités permet ainsi à Microsoft de vous garantir contractuellement un SLA (niveau de disponibilité contractuellement garanti).

      Haute disponibilité avec le ServiceBus

      En interne le service bus met en œuvre des mécanismes de haute disponibilité garantissant que votre namespace (l’url racine d’agrégation des services) est disponible et tient la charge contractuellement définie.

    Par contre, dans toute chaine, la résistance totale est égale à la résistance du maillon le plus faible … Et dans le cas du serviceBus, le maillon le plus faible est (la plupart du temps) le service qui lui est connecté : soucis de stabilité, de montée en charge, de disponibilité, problème de connectivité, …

     

    Dans une architecture orienté services, la haute disponibilité passe par l’utilisation d’éléments redondés sans état (pas de persistance de contexte entre deux appels). Or jusqu’a présent, la redondance devait être géré au niveau du service exposé sur le service bus. Ce qui dans la plupart des cas se traduit par … “aucune redondance” Sad smile

    Depuis novembre 2011, le ServiceBus supporte une fonctionnalité de répartition de charge piloté par le service bus. Il suffit ainsi de déclarer plusieurs services (n instances du même services, plusieurs services différents mais implémentant les mêmes contrats) sur la même url d’agrégation, le services bus répartira ensuite la charge de connexion/session entre les différentes instances disponibles.

    Auparavant l’inscription multiple d’un service sur une uri précise déclenchait une exception “Endpoint not available” si un service était déjà déclaré. Depuis novembre, cette inscription est accepté et active la répartition de charge entre les services inscrits.

    Il est ainsi possible de répartir les services dans des zones géographiques (datacenter azure, hébergement privé, …) distinct afin de limiter le risque d’interruption de service lié à une coupure réseau, tout en augmentant dynamiquement le nombre d’instance de service pour absorber la charge.

     

    Un peu de pratique

    Dans l’exemple suivant je prend le cas d’un service destiné à géré des prises de commandes. Le service permet de créer une commande et d’ajouter des lignes de commandes. Il est écrit en C# et exposé sous la forme d’un service WCF hébergé dans une application ligne de commande. Comme il se doit, ce service se doit d’être fiable et tenir la charge.

    Ce service est exposé en nettcp et agrégé sur un namespace du service bus : sb://quidminddemoservices.servicebus.windows.net/GestionCommande.

    Deux instances sont lancés :

    ServiceUn

     

    L’application cliente permet de créer une commande puis de saisir des lignes de commandes :

    image

     

    Le résultat au niveau des services est bien une répartition équitable des appels entre les différentes instances déclarées :

    serviceDeux

     

    Vous n’avez plus aucune excuse pour ne pas redonder vos services !

    Nouveautés Windows Azure du 12/12/2011

    Depuis quelques minutes la plateforme Windows Azure a évolué de nouveau. Quelques nouveautés et des bonnes nouvelles pour nos factures :

    • Ajout de nouveau pallier pour les bases SQL 100Go & 150Go en Business Edition. (sans augmentation de prix , soit 100Go ou 150Go au prix des 50Go)
    • Amélioration ou nouveaux supports de technologies issue de l’open source ou d’éditeur tiers : NodeJS, Java, MondDB, MemCached, …
    • Baisse de prix et réduction : Gratuité du Service Bus (AppFabric) jusqu’en mars 2012 (situation idéal pour tester mon prochain billet)
    • Baisse de prix de 25% pour les couts de bande passante USA & Europe.
    • Visualisation plus pratique des factures avec un suivi temps réel des consommations.

    Simuler ou vérifier un cout : http://www.windowsazure.com/en-us/pricing/calculator/

    AzureBillingRealTIme

    Catégories :Windows Azure Étiquettes : , ,

    Windows Azure SDK 1.5 et l’erreur “DevFC.exe stopped working”

    Apres installation du SDK Azure 1.5 sur mon poste de développement, l’émulateur Azure (Windows Azure Compute Emulator) ne pouvait plus démarrer. Une boite de dialogue d’erreur “DevFC.exe stopped working” indiquait le crash de l’émulateur du Fabric Controller de l’émulateur.

    Pourtant tout fonctionnait bien avec le SDK 1.4

    Solution brute : je fais une VM pour mon Dev … mais je ne sais toujours pas ce qui coince sur mon poste de développement originel.

    Solution finaude : Analyser les logs, et aimer la ligne de commande Sourire

    Les logs du FabricControler de développement se trouve dans C:\Users\[VOTRE_USER_NAME]\AppData\Local\dftmp\DevFCLogs.

    En analysant ce fichier, on trouve une exception :

    Exception occurred when trying to open service host. {0}, {1}`Il existe déjà un écouteur sur le point de terminaison IP 127.0.0.1:12000. Vérifiez que vous n’essayez pas d’utiliser ce point de terminaison plusieurs fois dans votre application et qu’aucune autre application n’écoute sur ce point de terminaison.`

    Tout est dans le message Sourire : un autre programme occupe le port IP 12000 que cherche à utiliser DevFC.exe. 

    Pour savoir quel programme utilise ce port, ouvrez une invite de commande, et exécuter la commande “netstat –b –n –a” pour lister tous les ports IP utilisés sur le système et quel programme les utilise :

    port12000

    Et je découvre que le port 12000 est utilisé par le programme “htcUPCTloader.exe” … programme de gestion des terminaux Android HTC.

    Je stoppe le programme avec le gestionnaire de tache, redémarre le “Compute emulator” … et tout marche à merveille, je peux déployer mes applications Azure dans le Compute Emulator.

     

    AmpouleDans mon cas, il s’agissait du port 12000 occupé par htcUPCTLoader, pour d’autres cas recensés il s’agit du port 12001 occupé par VMWare. La procédure pour identifier l’origine reste la même.

     

    Espérons que Microsoft corrige ce désagrément en mettant en place une sélection automatique des ports.

    Catégories :Windows Azure Étiquettes : , , , ,

    SDK Client Azure pour Android : Windows Azure Toolkit for Devices

    Suite à mon précédent billet dans lequel j’annonçais la disponibilité d’un toolkit client Azure pour iPhone (iOs), Microsoft vient publier le toolkit pour Android.

    Ces toolkits sont des implémentations natives (iOs/ObjectiveC, Android/Java) d’une couche d’accès client pour les services de la plateforme de Cloud computing Microsoft Windows Azure (Azure Storage, authentification, …).

    Toolkit pour iPhone/iOs :  https://github.com/microsoft-dpe/wa-toolkit-ios

    Toolkit pour Android : https://github.com/microsoft-dpe/wa-toolkit-android

    Toolkit pour Windows Phone 7 : http://watwp.codeplex.com/

    Wade Wegner publie sur son blog un exemple de mise en œuvre du toolkit sur Android : http://www.wadewegner.com/2011/08/windows-azure-toolkits-for-devices-now-with-android/

    Etat de santé des services de la plateforme Azure

    Vous utilisez la plateforme Azure et vous souhaitez avoir une idée de l’état de santé des services de la plateforme (Compute, Storage, Connect, SQL, Appfabric, management, …) ?

    Tout se passe sur cette URL : http://www.microsoft.com/windowsazure/support/status/servicedashboard.aspx

    Et accessible sous forme de flux RSS en plus !

    image

    Catégories :Windows Azure Étiquettes : , ,

    des Windows Azure Toolkit de plus en plus mobile

    Windows Azure est la plateforme de cloud computing de Microsoft. L’ensemble de ses services (management, Windows Azure Storage, Windows Azure AppFabric, …) est accessible via des API Rest et donc potentiellement utilisable à partir de n’importe quelle technologie capable d’émettre des requêtes http.

    Voilà pour le beau discours Sourire, pourtant dans la réalité rien ne vaut une belle couche d’encapsulation utilisé la technologie de l’application client.

    En standard, le SDK Azure fournit l’encapsulation pour .NET (3.5 & 4.0) sous forme d’un framework .Net.

    concernant Windows Phone 7, Microsoft met a disponible un toolkit open source sur Codeplex permettant l’accès aux Storage, … il s’agit du Windows Azure Toolkit pour Windows Phone 7

    Mais là, où ca devient franchement intéréssant, c’est l’annonce il y a quelque heures de la disponibilité de Toolkit pour iPhone et Android !!

    Pour iPhone, le toolkit est d’ores et déjà disponible ici : https://github.com/microsoft-dpe 

    Le Toolkit pour Android est en cours de développement.

     

    L’annonce officielle : http://blogs.technet.com/b/microsoft_blog/archive/2011/05/09/microsoft-announces-windows-azure-toolkits-for-ios-android-and-windows-phone.aspx

    Comment démarrer avec iOs : http://www.wadewegner.com/2011/05/windows-azure-toolkit-for-ios/

    http://blogs.msdn.com/b/windowsazure/archive/2011/05/09/title-now-available-windows-azure-toolkit-for-ios.aspx

     

    Bon développements Sourire

    Catégories :Windows Azure, Windows Phone Étiquettes : , , , ,