azure roadshow

96
Grégory Renard CTO – R&I Manager Wygwam MVP & Microsoft Regional Director http://blogs.developpeur.org/redo www.wygwam.com Sébastien Warin R&I Technical Lead Wygwam Microsoft MSP & MCPD http://sebastien.warin.fr www.wygwam.com

Upload: sebastien-warin

Post on 13-May-2015

1.938 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Azure Roadshow

Grégory RenardCTO – R&I Manager WygwamMVP & Microsoft Regional Directorhttp://blogs.developpeur.org/redowww.wygwam.com

Sébastien WarinR&I Technical Lead Wygwam

Microsoft MSP & MCPDhttp://sebastien.warin.fr

www.wygwam.com

Page 2: Azure Roadshow

Agenda

IntroductionCloud Computing

Windows Azure Platform

Microsoft Online Service

Windows Azure

Compute

Storage

SQL Azure

Page 3: Azure Roadshow
Page 4: Azure Roadshow

Windows Azure

« Windows » + « Azure »Windows = un OS ?

Azure = Késako ?

OS : Système d'exploitationAbstraction du matériel

Exécution de programmes

Stockage de données

Exemple : Windows Vista, Windows 7, Windows 2008, …

Page 5: Azure Roadshow

Windows AzureUn 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 NService 3

……

Page 6: Azure Roadshow

Azure, vu de dessous : des machines,

Page 7: Azure Roadshow

... installées dans des datacenters.

Page 8: Azure Roadshow

Emplacements des Data Centers

Australie

Washington Virginie

Irlande

Pays-bas

Hong Kong

Singapour

Emplacements actuels MS Online

•Plusieurs 10aines/100aines de

milliers de serveurs

•Economies d'échelle

•Electricité, réseau …

•Opérations

Page 9: Azure Roadshow

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.

Page 10: Azure Roadshow

Desktop vs Cloud hardwareDesktop Hardware Cloud Hardware

• Dysfonctionnements du matériel vite catastrophique pour le système

• Extensibilité limitée par CPU / HDD/ RAM

• Les défaillances des composants peu catastrophique pour le système

• Extensibilité limitée par la puissance électrique / locaux

Page 11: Azure Roadshow

La Plateforme Windows Azure

Page 12: Azure Roadshow

Symétrie« On Premises – In the cloud »

Page 13: Azure Roadshow

Symétrie « On Premises – In the cloud »

Page 14: Azure Roadshow

Vue du datacenter

NIVEAU DE CHARGE

CA

PAC

ITE

IT

Charge

actuelle

Ressources IT allouées

“Perte“ de capacité

Manque de ressources

Couts fixes des

ressources IT

Prévision de

charge

Barrière à l'innovation

Page 15: Azure Roadshow

Vue du cloud

Charge actuelle

Ressources

IT allouées

Réductions des investissements

initiaux

Pas de sur-disponibilité

Pas de manque de

ressources

Ajustement des ressources en cas de baisse

d'activité

Prévision de charge

NIVEAU DE CHARGE

CA

PAC

ITE

IT

Page 16: Azure Roadshow

Interopérabilité

Azure™ Services Platform

Page 17: Azure Roadshow

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

AvantagesDisponibilité 24/7 et redondance

Payez ce que vous consommez

Simple, administration transparente

Elasticité

Page 18: Azure Roadshow

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

Page 19: Azure Roadshow

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 »

Page 20: Azure Roadshow

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 SaaSde son logiciel

Une application Web prototype pour tester un concept

Lancement de votre Startup

….

Page 21: Azure Roadshow

Service Architectures Web role (ASP.NET, WCF ou Fast-CGI)

Default.aspx

Storage

LB Worker.cs

Page 22: Azure Roadshow

Service ArchitecturesWorker role

Default.aspx

Storage

LB Worker.cs

Page 23: Azure Roadshow

Service ArchitecturesWeb and worker roles

Default.aspx

Storage

Worker.cs

Page 24: Azure Roadshow
Page 25: Azure Roadshow

Le portail clients Online Services :

https://mocp.microsoftonline.com

Gestion des abonnements

3 offres :Accelerator Core

Accelerator Extented

Consumption

Page 26: Azure Roadshow

Portail de développement et déploiement Azure

https://windows.azure.com

Connexion avec son LiveID

Gestion et deploiements des services AzureHosted Service

Storage Service

SQL Azure

….

Page 27: Azure Roadshow
Page 28: Azure Roadshow

Site Web ASP.NET

Default.aspx

Page 29: Azure Roadshow

Elasticité du Cloud

Montée en charge (Scalabilité)

Disponibilité 24/7

Default.aspxLB

Page 30: Azure Roadshow

Execution & Stockage

Stockage

Page 31: Azure Roadshow

Stockage sur Windows Azure

Azure Storage

SQL AzureSQL Server 2008 in the Cloud

Blobs Tables

Queues

Page 32: Azure Roadshow

Différents rôles

Plusieurs types de roles :Web Role

Plusieurs sous-types : ASP.NET, WCF, Fast-CGI (PHP,…)

Worker Role

« VM » Role (à venir)

Azure Storage, SQL Azure, ou ….

Web RoleLB

nWorker

Role

m

Page 33: Azure Roadshow

Web Role

Storage Services

Site Web ou Web Service

Basé sur IIS7Exécution ASP.NET, Service WCF et fast-CGI (ex. PHP)

Configuration XML (IIS7)

Pipeline managé (.NET)

SSL

Public Internet

Web RoleLoad

Balancer

Page 34: Azure Roadshow

Worker Role

Avec ou sans connexion entrante

Exemple : traite les taches d’une file d’attente (Azure Queue)

Comparaison : Windows Service (daemon)

Storage Service

Public Internet

Worker Role

Page 35: Azure Roadshow

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…

Page 36: Azure Roadshow

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>

Page 37: Azure Roadshow

Service Architecture

Internet

StorageTables

LB

Blobs

Worker Service

Worker Service

Worker Service

Web Site(ASPX, ASMX, WCF)Web Site

(ASPX, ASMX, WCF)Web Site

(ASPX, WCF, etc.)

Queues

Windows Azure

Internet

LB

Page 38: Azure Roadshow

Environnement de développementEmulation des services du Cloud sur votre poste local

Développement et test local

Debugging dans Visual Studio

Page 39: Azure Roadshow

Déploiement dans le Cloud

• Génération du package depuis Visual Studio

• Envoi du package sur Windows Azure (via le portail Web ou par les API)

• 10-15min plus tard, application fonctionnelle dans le Cloud

Déploiement

• Emulation local du Cloud

• Development Fabric

• Development Storage

• Debugging dans Visual Studio

Test et debugging

• Visual Studio + Azure Tools

• Technologies existantes (.NET, ASP.NET, GCI/PHP, …)

Développement

Page 40: Azure Roadshow

Mon 1èr service sur Windows Azure

Page 41: Azure Roadshow

Role Programming Model

Défini par le RoleEntryPoint

OnStart()Appellé par la Fabric au demarrage, nous permettantd’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”

Page 42: Azure Roadshow

Configuration

Service ConfigurationServiceconfiguration.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

Page 43: Azure Roadshow

MonitoringPas de debugging dans le Cloud (seulement en local)

Utiliser les Traces et DebugDiagnosticMonitorTraceListener

Utiliser l’API Diagnostics pour configurer et collecterEventLogs

PerformanceCounters

Trace/Debug information (logging)

IIS Logs, Failed Request Logs

Crash Dumps

Page 44: Azure Roadshow

Configuration

Page 45: Azure Roadshow

DéploiementEtape 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

Page 46: Azure Roadshow

Déploiement

https://windows.azure.com/

Création du service « Hosted Service »

Upload du package Azure.cspkg

.cscfg

Page 48: Azure Roadshow

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 UpgradeMise à jour à la volée

Mise à jour du service entier ou juste d’un role particulier

Utilise les “Upgrade domain”

Page 49: Azure Roadshow

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’applicationMonté en charge et élasticité

Haute disponibilité

Paiement à la consommation

Page 50: Azure Roadshow
Page 51: Azure Roadshow

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

Page 52: Azure Roadshow

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 parserdu 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)

Page 53: Azure Roadshow

Development Storage

Emulation des Azure Storage du cloud en local

Permet le développement offline

Requis SQL Express 2005/2008

Page 54: Azure Roadshow

Storage dans le Cloud

Créer un “Storage Account”

Vous aurez en retour :

Endpoint

Access Keys

CDN

https://windows.azure.com/

Page 55: Azure Roadshow

Windows Azure Storage Account

Un utilisateur créer un Storage AccountPeut choisir l’emplacement géographique

“US Anywhere”, “US North Central”, “US South Central”,

Peut heberger le Storage dans le mêmeemplacement que le ComputeVous recevez la clé secrete 256 bit à la création du compte

Information commercialeChaque Storage Account peut stocker jusqu’à 100 TB Par défaut, limite de 5 Storage Accounts par abonnement

Page 56: Azure Roadshow

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

Page 57: Azure Roadshow

Table Storage ConceptsAccount, table et entité

EntitéTableAccount

Account

Users

Name=…hash=…

Name=…hash=…

PhotoIndex

Tag=…id=…

Tag=…,id=…

Page 58: Azure Roadshow

Entités et Propriétés

Chaque Entité peut avoir jusqu’a 255 propriétés

Chaque Entité doit comporter les propriétésPartition key

Row key

Timestamp

Pas de schéma fixé pour le reste des propriètés2 entités dans la même table peut avoir des propriétés différentes

Stocké sous forme de paire de <Name, TypedValue>

Page 59: Azure Roadshow

Types des propriétésPartition key et Row key

String (1KB max.)

Autre propriétésString (64KB max.)

Binary (64KB max.)

Bool

DateTime

GUID

Int

Int64

Double

Page 60: Azure Roadshow

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

Page 61: Azure Roadshow

PartitioningPerformance

Utilisez un “PartitionKey” qui est commun dans vosrequê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 chargeMicrosoft 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

Page 62: Azure Roadshow

Application web consommant les Azure Tables

Page 63: Azure Roadshow

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

Page 64: Azure Roadshow

Blocks ouPages

Concepts du Blob Storage

BlobContainerAccount

Account

Pictures

IMG001.JPG

IMG002.JPG

Movies MOV1.AVI

Block/Page 1

Block/Page 2

Block /Page 3

Page 65: Azure Roadshow

Blob Containers

Blob ContainerUn container contient une collection de blobs

Est défini par une visibilitéPrivate ou Public

Associé à des metadonnéesLes metadonnées sont des paires <clé, valeur>

Jusqu’à 8KB par container

Page 66: Azure Roadshow

Fonctionnalité des BlobsUn blob peut stocker de large objet (de plusieur centainede GB)

Associé ou non à des metadonnéesMétadonnées de paire de <clé, valeur>, (max. 8KB par blob)

Interface RESTPutBlob

Insère un nouveau blob ou écrase le blob existant

GetBlobRecupére le blob

DeleteBlobCopyBlob…

Page 67: Azure Roadshow

Deux types de Blobs

Block Blob Usage standardChaque 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

Page 68: Azure Roadshow

Ajout du stockage des « avatars »

Page 69: Azure Roadshow

Résumé Windows Azure Blobs

Stokage fiable de fichiers nommés

Accessible en HTTP/REST

Deux types de blobsBlock Blobs – streaming

Page Blobs – random read/write (nouveau)

Page 70: Azure Roadshow

Queues

Service de QueueCréer et supprimer des queues

Message:Récupére le plus ancien (FIFO)

Taille maximum de 8kb par message

Operations:put

get

delete

Page 71: Azure Roadshow

Concept du Queue Storage Account, queue et message

MessageQueueAccount

Account

Thumbnail Jobs

128x128, http://…

256x256, http://…

Indexing Jobs

http://…

http://…

Page 72: Azure Roadshow

Worker Role pour miniaturationQueues pour communication Web<>WorkerRole

Page 73: Azure Roadshow

Résumé Windows Azure Queues

Fourni un service distribution de messageQueue FIFO (First In First Out)

Pas de limite du nombre de messages dans la Queue

La taille du message doit être <= 8KB

Page 74: Azure Roadshow
Page 75: Azure Roadshow

De SDS à SQL Azure

Evo

luti

on

SQL Azure

TDS + TSQL Model

Web App

SQL Client*

Windows Azure

REST Client

REST (Astoria)

ADO.Net + EF

SQL Client*

Cloud

HTT

P

HTT

P+R

EST

TDS

* Client access enabled using TDS for ODBC, ADO.Net, OLEDB, PHP-SQL, Ruby, …

Dat

a C

ente

r

ODBC, OLEDB, ADO.Net PHP, Ruby, …

OLD SDS

REST/SOAP + ACE Model

Web App

REST Client

Windows Azure

REST Client

HTT

P

HTT

P+R

EST

Dat

a C

ente

r

Cloud

Page 76: Azure Roadshow

Service Provisioning Model

Chaque account a 0 ou plusieurs serversProvisionnement sur le Portal

Unité de facturation

Chaque server a 0 ou plusieurs databasesContient les métadonnées des databases

Unité de Geo-location et Authentication

Nom DNS généré

Chaque database a des objets SQL standardUsers, Tables, Vues, Index, etc.

Unité la plus petite pour la facturation

Page 77: Azure Roadshow

Architecture

Infrastructure partagée au niveau SQLRoutage des requêtes, securité et isolation

Replication et failover automatique

Load balancing

Provisionnement instantané

Machine 5SQL Instance

SQL DBUserDB1

UserDB2

UserDB3

UserDB4

Machine 6

SQL Instance

SQL DBUserDB1

UserDB2

UserDB3

UserDB4

Machine 4

SQL Instance

SQL DBUserDB1

UserDB2

UserDB3

UserDB4

Page 78: Azure Roadshow

SQL AzureDeploiement

Page 79: Azure Roadshow

SQL AzureAccès aux databases

Changement de laConnection String

Page 80: Azure Roadshow

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

Page 81: Azure Roadshow

Les réplicats

Page 82: Azure Roadshow

Environment partagé

Page 83: Azure Roadshow

SQL AzureEn cas de panne

!

Page 84: Azure Roadshow

Modele de conception

Petite et moyenne base de donnéesUtilisez une seule database

Même modèle comme sur un on-premise SQL Server

Grosses base de donnéesPartionnez 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

Page 85: Azure Roadshow

Partitionnement

1 x 10GB database1 Instances

10 x 1GB databases10 Instances

Page 86: Azure Roadshow

Outils SQL & Development

Page 87: Azure Roadshow

Compatibilité

Dans le scope de la V1

Tables, index et vues

Procédures stockées

Triggers

Contraintes

Table variables, session temp tables (#t)

Hors du scope de la v1

Transactions distribuées

Requetes distribuées

CLR

Service Broker

Type Spatial

Page 88: Azure Roadshow

Connexion

Libraries et outils existantsADO.NET, ODBC, PHP

Pré-installé sur les roles Azure Compute

Support des controles ASP.NET

Clients directement connectés à la databasePas de USE

Page 89: Azure Roadshow

Administration Logique vs. Physique

SQL Azure met le focus sur l’administation logiqueCréation et management des schémas

Optimisation des requêtes

Securité (Logins, Users, Roles)

Administration physique transparanteRé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

Page 90: Azure Roadshow

Deploiement et migration

Déploiement basic avec des Scripts SQL

SQL Server Management Studio 2008 R2

SQL Azure Migration Tool

Page 91: Azure Roadshow

Securité

Utilise le modele standard SQLAuthentifier un login, mapper à un user et role

Autoriser les users et roles aux objets SQL

Limité à l’authentication SQLUsername + password

Prochainement : AD Federation, WLID, et autresprotocoles d’authentication

Gateway TDS filtre les adresses IP autorisées

Page 92: Azure Roadshow

Tarification ?

Web Edition

1 GB Database

$9.99 / mois

Bandwidth$0.10 /GB en entrée

$0.15 /GB en sortie

Business Edition

10GB Database

$99.99 / mois

BP$0.10 /GB en entrée

$0.15 /GB en sortie

Page 93: Azure Roadshow

Migration vers SQL Azure

Page 94: Azure Roadshow

SQL Azure … en Résumé :

Veritable SQL Server “in the cloud”

Administration logique

Paiement à la demande

Disponibilité de 99,99%

Page 95: Azure Roadshow

Azure en conclusionIntroduction

Cloud Computing

Windows Azure Platform

Microsoft Online Service

Windows AzureCompute et Storage

SQL Azure

Plateforme Windows Azure MSDN Premium

Page 96: Azure Roadshow