Azure Roadshow

2,697 views
2,628 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,697
On SlideShare
0
From Embeds
0
Number of Embeds
390
Actions
Shares
0
Downloads
61
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Azure Roadshow

  1. 1. Grégory Renard Sébastien Warin CTO – R&I Manager Wygwam R&I Technical Lead Wygwam MVP & Microsoft Regional Director Microsoft MSP & MCPD http://blogs.developpeur.org/redo http://sebastien.warin.fr www.wygwam.com www.wygwam.com
  2. 2. Agenda Introduction Cloud Computing Windows Azure Platform Microsoft Online Service Windows Azure Compute Storage SQL Azure
  3. 3. Windows Azure « Windows » + « Azure » Windows = un OS ? Azure = Késako ? OS : Système d'exploitation Abstraction du matériel Exécution de programmes Stockage de données Exemple : Windows Vista, Windows 7, Windows 2008, …
  4. 4. Windows Azure Un OS distribué sur des milliers de machines Abstraction de l'infrastructure (hardware, réseau,..) Héberge et exécute des services Stockage de données …. …… Service 1 Service 2 Service 3 Service N
  5. 5. Azure, vu de dessous : des machines,
  6. 6. ... installées dans des datacenters.
  7. 7. Emplacements des Data Centers Pays-bas Irlande Hong Kong Washington Virginie Singapour Australie •Plusieurs 10aines/100aines de milliers de serveurs •Economies d'échelle •Electricité, réseau … •Opérations Emplacements actuels MS Online
  8. 8. Une ou deux couches d’OS Un hyperviseur, sur lequel on déploie une VM hôte, qui administre N machines virtuelles CPU: x64 OS : Windows 2008 / Hyper-V Web Server : IIS 7 Apps : .Net, PHP, C++, etc.
  9. 9. Desktop vs Cloud hardware Desktop Hardware Cloud Hardware • Dysfonctionnements • Les défaillances des du matériel vite composants peu catastrophique pour le catastrophique pour le système système • Extensibilité limitée par • Extensibilité limitée par la CPU / HDD/ RAM puissance électrique / locaux
  10. 10. La Plateforme Windows Azure
  11. 11. Symétrie « On Premises – In the cloud »
  12. 12. Symétrie « On Premises – In the cloud »
  13. 13. Vue du datacenter Ressources IT allouées Prévision de charge Manque de ressources CAPACITE IT “Perte“ de Couts fixes capacité des ressources IT Barrière à l'innovation Charge actuelle NIVEAU DE CHARGE
  14. 14. Vue du cloud Ressources Prévision IT allouées de charge CAPACITE IT Pas de manque de ressources Pas de sur- disponibilité Ajustement des ressources en cas de baisse Réductions des d'activité investissements initiaux Charge actuelle NIVEAU DE CHARGE
  15. 15. Interopérabilité Azure Services Platform ™
  16. 16. Windows Azure… En résumé : Nuage de serveurs connectés: Abstraction de l’environnement d’exécution Un système de stockage distribué Allocation des ressources Environnement de programmation Avantages Disponibilité 24/7 et redondance Payez ce que vous consommez Simple, administration transparente Elasticité
  17. 17. Pourquoi utiliser le cloud ? Application demandant une très forte monté en charge Application demandant une très haute disponibilité Application ayant une charge variable Application ayant une durée de vie très courte Application demandant un stockage externe
  18. 18. In the Cloud <> On Premises Services « In the Cloud » + données « On premises » Services « On premises » + donnée « In the Cloud » Services + données « In the Cloud »
  19. 19. Exemples types d'exploitation : Un site e-commerce qui a besoin de monter en charge pendant les soldes ou les fêtes de noël Le site d’un évènement ou d’un film qui accueille beaucoup de monde sur une courte période de temps Un éditeur de logiciel qui veut faire une version SaaS de son logiciel Une application Web prototype pour tester un concept Lancement de votre Startup ….
  20. 20. Service Architectures Web role (ASP.NET, WCF ou Fast-CGI) LB Default.aspx Worker.cs Storage
  21. 21. Service Architectures Worker role LB Default.aspx Worker.cs Storage
  22. 22. Service Architectures Web and worker roles Default.aspx Worker.cs Storage
  23. 23. Le portail clients Online Services : https://mocp.microsoftonline.com Gestion des abonnements 3 offres : Accelerator Core Accelerator Extented Consumption
  24. 24. Portail de développement et déploiement Azure https://windows.azure.com Connexion avec son LiveID Gestion et deploiements des services Azure Hosted Service Storage Service SQL Azure ….
  25. 25. Site Web ASP.NET Default.aspx
  26. 26. Elasticité du Cloud LB Default.aspx Montée en charge (Scalabilité) Disponibilité 24/7
  27. 27. Execution & Stockage Stockage
  28. 28. Stockage sur Windows Azure Azure Storage Blobs Tables Queues … SQL Azure SQL Server 2008 in the Cloud
  29. 29. Différents rôles n m Worker LB Web Role Role Azure Storage, SQL Azure, ou …. Plusieurs types de roles : Web Role Plusieurs sous-types : ASP.NET, WCF, Fast-CGI (PHP,…) Worker Role « VM » Role (à venir)
  30. 30. Web Role Site Web ou Web Service Public Internet Basé sur IIS7 Exécution ASP.NET, Service WCF et fast-CGI (ex. PHP) Web Role Configuration XML Load Balancer (IIS7) Pipeline managé (.NET) Storage Services SSL
  31. 31. Worker Role Avec ou sans connexion entrante Public Internet Exemple : traite les taches d’une file Worker d’attente (Azure Role Queue) Comparaison : Windows Service Storage Service (daemon)
  32. 32. Windows Azure API Accès à l’environnement Azure via RoleEnvironment RoleEnvironment permet d’accèder À la configuration du service Azure Aux LocalResource (disque local) Aux informations du role comme les InstanceEndpoints (ex: pour communication inter- role) Expose des évènements quant au le cycle de vie de l’instance, etc…
  33. 33. Service Models Description du service (Configuration, LocalStorage, Endpoint, …) <?xml version="1.0" encoding="utf-8"?> <ServiceDefinition name="CloudService1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"> <WebRole name="WebRole"> <ConfigurationSettings> <Setting name="AccountName"/> </ConfigurationSettings> <LocalStorage name="scratch" sizeInMB="50"/> <InputEndpoints> <!-- Must use port 80 for http and port 443 for https when running in the cloud --> <InputEndpoint name="HttpIn" protocol="http" port="80" /> </InputEndpoints> </WebRole> <WorkerRole name="WorkerRole"> <ConfigurationSettings> <Setting name="AccountName"/> <Setting name="TableStorageEndpoint"/> </ConfigurationSettings> </WorkerRole> </ServiceDefinition>
  34. 34. Service Architecture Internet Internet LB Windows Azure LB Queues WebSite Site Worker Worker WebSite WebASMX, WCF) Worker (ASPX, (ASPX, ASMX, WCF) Service Service (ASPX, WCF, etc.) Service Blobs Tables Storage
  35. 35. Environnement de développement Emulation des services du Cloud sur votre poste local Développement et test local Debugging dans Visual Studio
  36. 36. Déploiement dans le Cloud Test et Développement Déploiement debugging • Visual Studio + • Emulation local du • Génération du Azure Tools Cloud package depuis • Development Visual Studio • Technologies Fabric existantes (.NET, • Development • Envoi du package ASP.NET, GCI/PHP, Storage sur Windows Azure …) • Debugging dans (via le portail Web Visual Studio ou par les API) • 10-15min plus tard, application fonctionnelle dans le Cloud
  37. 37. Mon 1èr service sur Windows Azure
  38. 38. Role Programming Model Défini par le RoleEntryPoint OnStart() Appellé par la Fabric au demarrage, nous permettant d’initialiser des taches Status à “Busy” sur le L.B. tant que ne retourne pas “true”. OnStop() Appellé quant le role se ferme Run() En général une boucle infinie pour garder le role en “vie”
  39. 39. Configuration Service Configuration Serviceconfiguration.csdef – Service Model (définition) ServiceConfiguration.cscfg – valeurs de configuration RoleEnvironment.GetConfigurationSettingValue() Ne pas utiliser le web.config pour les valeurs qui pourrait changer à l’execution
  40. 40. Monitoring Pas de debugging dans le Cloud (seulement en local) Utiliser les Traces et Debug DiagnosticMonitorTraceListener Utiliser l’API Diagnostics pour configurer et collecter EventLogs PerformanceCounters Trace/Debug information (logging) IIS Logs, Failed Request Logs Crash Dumps
  41. 41. Configuration
  42. 42. Déploiement Etape 1 : générer le package « Publish » depuis Visual Studio Deux fichiers : .CSPKG : format ZIP contenant Les roles (Web ou Worker) compilés Schéma de définition du service .CSCFG : fichier de configuration du service et des rôles
  43. 43. Déploiement https://windows.azure.com/ Création du service « Hosted Service » Upload du package Azure .cspkg .cscfg
  44. 44. WLID : Miclive1@live.be WLID : Miclive2@live.be Password : Passw0rd Déploiement
  45. 45. Mise à jours des applications Deux modes : VIP Swap et In-Place Upgrade VIP Swap: Utilise les environnements “Staging” et “Production”. Production: v1  Staging: v2, puis “swap” pour Production: v2  Staging: v1. In-Place Upgrade Mise à jour à la volée Mise à jour du service entier ou juste d’un role particulier Utilise les “Upgrade domain”
  46. 46. Pour résumer… Pour le développeur : Environnement de développent familier (.NET, Visual Studio, ASP.NET, PHP ou autre CGI) Exécution et debugging local Déploiement et Management simplifié Pour l’application Monté en charge et élasticité Haute disponibilité Paiement à la consommation
  47. 47. Services Blobs – Stockage de fichier nommé avec meta-donnée Xdrive (fevrier 2010) – Volume NTFS interfaçant les Blobs Tables – Stokage semi-structuré Une table est une collection d’entité de type clé/valeur Queues – Stockage de message dans une queue FIFO
  48. 48. HTTP/REST et interopérabilité Tous les services des Azure Storage sont exposés sous forme de Webservices HTTP/REST Tout langage/technologies sachant communiquer sur le protocole HTTP et parser du XML peut utiliser les Azure Storage API disponible pour : .NET (Microsoft.WindowsAzure.StorageClient) Java (Windows Azure SDK for Java) PHP (Windows Azure SDK for PHP)
  49. 49. Development Storage Emulation des Azure Storage du cloud en local Permet le développement offline Requis SQL Express 2005/2008
  50. 50. Storage dans le Cloud https://windows.azure.com/ Créer un “Storage Account” Vous aurez en retour : Endpoint Access Keys CDN
  51. 51. Windows Azure Storage Account Un utilisateur créer un Storage Account Peut choisir l’emplacement géographique “US Anywhere”, “US North Central”, “US South Central”, Peut heberger le Storage dans le même emplacement que le Compute Vous recevez la clé secrete 256 bit à la création du compte Information commerciale Chaque Storage Account peut stocker jusqu’à 100 TB Par défaut, limite de 5 Storage Accounts par abonnement
  52. 52. Windows Azure Tables Table d’entités composées de propriétés Conçu pour des milliards de entités Dimensionnement par partition “Partition key” & “row key” Pas de limite sur le nombre de partition Utilise ADO.NET Data Services
  53. 53. Table Storage Concepts Account, table et entité Account Table Entité Name=…hash=… Users Name=…hash=… Account Tag=…id=… PhotoIndex Tag=…,id=…
  54. 54. Entités et Propriétés Chaque Entité peut avoir jusqu’a 255 propriétés Chaque Entité doit comporter les propriétés Partition key Row key Timestamp Pas de schéma fixé pour le reste des propriètés 2 entités dans la même table peut avoir des propriétés différentes Stocké sous forme de paire de <Name, TypedValue>
  55. 55. Types des propriétés Partition key et Row key String (1KB max.) Autre propriétés String (64KB max.) Binary (64KB max.) Bool DateTime GUID Int Int64 Double
  56. 56. Partition Key et les Partitions Toute entité à une “Partition key” Toutes les entités d’une table avec le même “Partition Key” sont dans la même partition Necéssite de choisir un schéma de partitionnement pour rendre l’accès aux données scalable et performant
  57. 57. Partitioning Performance Utilisez un “PartitionKey” qui est commun dans vos requêtes Toujours essayer de spécifier la PartitionKey dans vos requetes Les entités avec la même PartitionKey sont clusterisées Les batchs et transaction sont supportés dans la même partition Montée en charge Microsoft monitore le traffic vers chaque partition Load balancing automatique sur les partitions Plus il y a de partition, plus le load balancing est simple à gérer
  58. 58. Application web consommant les Azure Tables
  59. 59. Résumé Windows Azure Blobs Table d’entité contenant des propriétés Pas de schéma fixé Accessible en HTTP/REST basé sur ADO.NET Data Service Attention à bien partitionner les entités pour la monté en charge et performance
  60. 60. Concepts du Blob Storage Blocks ou Account Container Blob Pages IMG001.JPG Pictures IMG002.JPG Account Block/Page 1 Movies MOV1.AVI Block/Page 2 Block /Page 3
  61. 61. Blob Containers Blob Container Un container contient une collection de blobs Est défini par une visibilité Private ou Public Associé à des metadonnées Les metadonnées sont des paires <clé, valeur> Jusqu’à 8KB par container
  62. 62. Fonctionnalité des Blobs Un blob peut stocker de large objet (de plusieur centaine de GB) Associé ou non à des metadonnées Métadonnées de paire de <clé, valeur>, (max. 8KB par blob) Interface REST PutBlob Insère un nouveau blob ou écrase le blob existant GetBlob Recupére le blob DeleteBlob CopyBlob …
  63. 63. Deux types de Blobs Block Blob Usage standard Chaque blob consiste en une sequence de blocks Chaque block est identifé par un BlockID Taille maximum de 200GB par blob Page Blob (nouveau) Ciblé pour les accès de type “random read/write” Chaque blob consiste en un tableau de pages Chaque page est identifiée par l’adresse de debut du blob Taille maximum de 1TB par blob
  64. 64. Ajout du stockage des « avatars »
  65. 65. Résumé Windows Azure Blobs Stokage fiable de fichiers nommés Accessible en HTTP/REST Deux types de blobs Block Blobs – streaming Page Blobs – random read/write (nouveau)
  66. 66. Queues Service de Queue Créer et supprimer des queues Message: Récupére le plus ancien (FIFO) Taille maximum de 8kb par message Operations: put get delete
  67. 67. Concept du Queue Storage Account, queue et message Account Queue Message 128x128, http://… Thumbnail Jobs 256x256, http://… Account http://… Indexing Jobs http://…
  68. 68. Worker Role pour miniaturation Queues pour communication Web<>WorkerRole
  69. 69. Résumé Windows Azure Queues Fourni un service distribution de message Queue FIFO (First In First Out) Pas de limite du nombre de messages dans la Queue La taille du message doit être <= 8KB
  70. 70. De SDS à SQL Azure ODBC, OLEDB, REST Client REST Client SQL Client* ADO.Net PHP, Ruby, … Cloud Cloud Evolution HTTP+REST HTTP+REST HTTP HTTP TDS Windows Azure Windows Azure Web App REST (Astoria) Web App Data Center Data Center REST Client ADO.Net + EF SQL Client* REST/SOAP + ACE Model TDS + TSQL Model OLD SDS SQL Azure * Client access enabled using TDS for ODBC, ADO.Net, OLEDB, PHP-SQL, Ruby, …
  71. 71. Service Provisioning Model Chaque account a 0 ou plusieurs servers Provisionnement sur le Portal Unité de facturation Chaque server a 0 ou plusieurs databases Contient les métadonnées des databases Unité de Geo-location et Authentication Nom DNS généré Chaque database a des objets SQL standard Users, Tables, Vues, Index, etc. Unité la plus petite pour la facturation
  72. 72. Architecture Infrastructure partagée au niveau SQL Routage des requêtes, securité et isolation Replication et failover automatique Load balancing Provisionnement instantané Machine 4 Machine 5 Machine 6 SQL Instance SQL Instance SQL Instance SQL DB SQL DB SQL DB User User User User User User User User User User User User DB1 DB2 DB3 DB4 DB1 DB2 DB3 DB4 DB1 DB2 DB3 DB4
  73. 73. SQL Azure Deploiement
  74. 74. SQL Azure Accès aux databases Changement de la Connection String
  75. 75. Gateway TDS Gère les aspects sécurité, inspecte les paquets pour vérifier leur validité d’un point de vue sécurité et gère la partie Login. La passerelle utilise un catalogue de données pour faire la relation vers le serveur SQL physique où se trouve la base Equilibre la charge (load balancing) des requêtes DRL Exécute les requêtes DML sur tous les réplicats
  76. 76. Les réplicats
  77. 77. Environment partagé
  78. 78. SQL Azure En cas de panne !
  79. 79. Modele de conception Petite et moyenne base de données Utilisez une seule database Même modèle comme sur un on-premise SQL Server Grosses base de données Partionnez les données dans plusieurs databases Utilisez les requêtes parallèles et merger les resultats en mémoire V1 : Publication prochaine des Best-pratices de Microsoft sur le “Scale-out” Vnext : Mise à disposition d’un couche d’abstraction pour cacher la complexité du partitionnement multi-database
  80. 80. Partitionnement 1 x 10GB database 1 Instances 10 x 1GB databases 10 Instances
  81. 81. Outils SQL & Development
  82. 82. Compatibilité Dans le scope de la V1 Hors du scope de la v1 Tables, index et vues Transactions distribuées Procédures stockées Requetes distribuées Triggers CLR Contraintes Service Broker Table variables, Type Spatial session temp tables (#t) … …
  83. 83. Connexion Libraries et outils existants ADO.NET, ODBC, PHP Pré-installé sur les roles Azure Compute Support des controles ASP.NET Clients directement connectés à la database Pas de USE
  84. 84. Administration Logique vs. Physique SQL Azure met le focus sur l’administation logique Création et management des schémas Optimisation des requêtes Securité (Logins, Users, Roles) Administration physique transparante Réplication automatique Failover transparent en cas de panne Load balancing des données pour garantir le SDL Le role DBA est plus axé sur l’administration logique avec SQL Azure
  85. 85. Deploiement et migration Déploiement basic avec des Scripts SQL SQL Server Management Studio 2008 R2 SQL Azure Migration Tool
  86. 86. Securité Utilise le modele standard SQL Authentifier un login, mapper à un user et role Autoriser les users et roles aux objets SQL Limité à l’authentication SQL Username + password Prochainement : AD Federation, WLID, et autres protocoles d’authentication Gateway TDS filtre les adresses IP autorisées
  87. 87. Tarification ? Web Edition Business Edition 1 GB Database 10GB Database $9.99 / mois $99.99 / mois Bandwidth BP $0.10 /GB en entrée $0.10 /GB en entrée $0.15 /GB en sortie $0.15 /GB en sortie
  88. 88. Migration vers SQL Azure
  89. 89. SQL Azure … en Résumé : Veritable SQL Server “in the cloud” Administration logique Paiement à la demande Disponibilité de 99,99%
  90. 90. Azure en conclusion Introduction Cloud Computing Windows Azure Platform Microsoft Online Service Windows Azure Compute et Storage SQL Azure Plateforme Windows Azure MSDN Premium

×