azure roadshow

Post on 13-May-2015

1.938 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Agenda

IntroductionCloud Computing

Windows Azure Platform

Microsoft Online Service

Windows Azure

Compute

Storage

SQL Azure

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, …

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

……

Azure, vu de dessous : des machines,

... installées dans des datacenters.

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

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.

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

La Plateforme Windows Azure

Symétrie« On Premises – In the cloud »

Symétrie « On Premises – In the cloud »

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

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

Interopérabilité

Azure™ Services Platform

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é

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

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 »

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

….

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

Default.aspx

Storage

LB Worker.cs

Service ArchitecturesWorker role

Default.aspx

Storage

LB Worker.cs

Service ArchitecturesWeb and worker roles

Default.aspx

Storage

Worker.cs

Le portail clients Online Services :

https://mocp.microsoftonline.com

Gestion des abonnements

3 offres :Accelerator Core

Accelerator Extented

Consumption

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

….

Site Web ASP.NET

Default.aspx

Elasticité du Cloud

Montée en charge (Scalabilité)

Disponibilité 24/7

Default.aspxLB

Execution & Stockage

Stockage

Stockage sur Windows Azure

Azure Storage

SQL AzureSQL Server 2008 in the Cloud

Blobs Tables

Queues

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

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

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

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…

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>

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

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

Développement et test local

Debugging dans Visual Studio

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

Mon 1èr service sur Windows Azure

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”

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

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

Configuration

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

Déploiement

https://windows.azure.com/

Création du service « Hosted Service »

Upload du package Azure.cspkg

.cscfg

Déploiement

WLID : Miclive1@live.beWLID : Miclive2@live.bePassword : Passw0rd

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”

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

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

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)

Development Storage

Emulation des Azure Storage du cloud en local

Permet le développement offline

Requis SQL Express 2005/2008

Storage dans le Cloud

Créer un “Storage Account”

Vous aurez en retour :

Endpoint

Access Keys

CDN

https://windows.azure.com/

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

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

Table Storage ConceptsAccount, table et entité

EntitéTableAccount

Account

Users

Name=…hash=…

Name=…hash=…

PhotoIndex

Tag=…id=…

Tag=…,id=…

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>

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

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

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

Application web consommant les Azure Tables

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

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

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

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…

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

Ajout du stockage des « avatars »

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)

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

Concept du Queue Storage Account, queue et message

MessageQueueAccount

Account

Thumbnail Jobs

128x128, http://…

256x256, http://…

Indexing Jobs

http://…

http://…

Worker Role pour miniaturationQueues pour communication Web<>WorkerRole

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

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

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

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

SQL AzureDeploiement

SQL AzureAccès aux databases

Changement de laConnection String

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

Les réplicats

Environment partagé

SQL AzureEn cas de panne

!

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

Partitionnement

1 x 10GB database1 Instances

10 x 1GB databases10 Instances

Outils SQL & Development

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

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

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

Deploiement et migration

Déploiement basic avec des Scripts SQL

SQL Server Management Studio 2008 R2

SQL Azure Migration Tool

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

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

Migration vers SQL Azure

SQL Azure … en Résumé :

Veritable SQL Server “in the cloud”

Administration logique

Paiement à la demande

Disponibilité de 99,99%

Azure en conclusionIntroduction

Cloud Computing

Windows Azure Platform

Microsoft Online Service

Windows AzureCompute et Storage

SQL Azure

Plateforme Windows Azure MSDN Premium

top related