plate-forme de gestion des données evolutivité et le meilleur coût de possession (tco)...

21
Régis Mauger Architecte Infrastructure; [email protected] Microsoft France SQL Server Service Broker Une solution d’échange de messages pour bâtir des applications asynchrones sur les principes du couplage lâche. Patrick Guimonet Architecte Infrastructure; [email protected] Microsoft France

Upload: colombain-sauvage

Post on 04-Apr-2015

108 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Régis MaugerArchitecte Infrastructure; [email protected] France

SQL Server Service BrokerUne solution d’échange de messages pour bâtir des applications asynchrones sur les principes du couplage lâche.

Patrick GuimonetArchitecte Infrastructure; [email protected] France

Page 2: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Gestion des DonnéesPlate-forme de gestion des données

Evolutivité et le meilleur coût de possession (TCO)Disponibilité, montée en charge, service d’intégration

Productivité des développeurs et des administrateursIntégration avec Visual Studio, .NetTechnologie XML nativeIntéropérabilité avec les web services

Chaine décisionnelle intégrée

Page 3: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Service Broker : c’est quoi ?Une nouvelle technologie faisant partie intégrante du

moteur de base de données fournissant l’infrastructure et les services pour bâtir des applications asynchrones, à couplage lâche, disponibles, sûres et distribuées.

Asynchrones: Plus grande montée en charge et performances par traitements différésMise en queues: Persistance des messagesOrienté Messages: Permettre de nouveaux types d’applications distribuées , asynchrones et disponibles par échanges de messages entre base SQl ServerCouplage lâche: SOA; application constituée de services qui inter-agissent via des messages, les queues de messages sont à la base de ce couplage lâcheDisponibilité: Once and Only Once in OrderSécurité: Intégrité des messages, authentification. Sécurité des dialogues et du transportDistribuées: Transparence de localisation

Page 4: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Nouveaux ordres DDL et DML pour créer les queues, créer un dialogue, envoyer des messages, recevoir des messages …Gestion, déploiement et opérations intégrés

Déploiement, configuration et administration: 1 seul système pour les données et les messagesSécurité de SQL Server, outils communs (SSMS, Profiler, Catalog View, Perfmon)

Modèle de programmation communAccès aux données et messages en T-SQLTransactions distribuées sans commit à 2 phases

Développeur et DBA peuvent utiliser les mêmes outils pour bâtir et gérer des applications distribuées performantes

Les performances comme objectif

MOM totalement intégré au SGBD(Middleware Orienté Message)

Page 5: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Architecture Service Broker

ApplicationInitiatrice

ApplicationCible

Service ServiceDialog Conversation

QueueTransportTransport

Queue

Niveau applicatif

Niveau logique

Niveau physique

TCP/IP

Page 6: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Cinématique Service Broker

TCP/IP

Niveau logique

Niveau physique

ServiceDialog Conversation

TransportTransportQueue

ApplicationInitiatrice

ApplicationCible

Service

Queue

Niveau applicatif

On é

crit

On

litTransmission asynchrone

Démo

1

Page 7: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Service Broker « Hello World »

Démo 1

Page 8: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Architecture Service Broker

ApplicationInitiatrice

ApplicationCible

MessageType

MessageType

Service Service

Queue

Contract Contract

Queue

Niveau applicatif

Niveau logique

Niveau physique

TCP/IP

Endpoint

Transport Transport

Dialog Conversation

Endpoint

Démo

2

Page 9: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Service BrokerEchange de messages sécurisé entre 2 instances

Démo 2

Page 10: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Utilisations possibles

Ce que vous permet Service Broker:Exécution asynchrone d’ordres DDL/DMLExécution en parallèle de procédures Stockées (performance)Scale up ou scale out avec un impact minimum sur le code, couplage lâche , applications distribuéesLoad balancingImplémentation rapide de traitements batchsDisponibilitéSOAAlimentation de DW« Bufferisation » des requêtes lors des pics de charges

Simple, extensions au T-SQL

Page 11: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Sécurité

Valeur de l’information contenue dans les messagesDépendant de: même instance, intranet, WAN non sécuriséService Broker garantit que la conversation est sécurisée et que des bases de données non autorisée ne pourront pas envoyer de messagesSécurité des dialogues (BEGIN DIALOG [ CONVERSATION ])

Encryptage du messageVérification de l’identité des participantsAutorisation de validité de l’intégrité

Sécurité du transport (CREATE/ALTER ENDPOINT)Prévenir l’envoie de messages par une base de données non autoriséeSi mis en oeuvre “enabled”, une autorisation est requise pour se connecter au endpoint

Permissions SQL Server sur les ordres SEND, RECEIVE, CONNECT, ...

Page 12: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Configuration & AdministrationInstallation

Exécution de scripts (se baser sur des « templates » validés)Configuration des endpoints, certificats, remote service bindings et des routes

Arrêter/Démarrer une applicationChanger le statut de la queue OFF/ON

Sauvegarde/restaurationPartie intégrante de la sauvegarde de la base de donnéesSauvegarde de tous les composants externes (external activation)msdb – informations de routagemaster – endpoints et informations de sécurité pour le transportAprès le restore, s’assurer que le service_broker_guid dans sys.databases is inchangé

Gestion des Queues# messages dans les queues in a queue SELECT COUNT(*) FROM dbo.ExpenseQueue WITH (NOLOCK) ;Arrêter/Démarrer une queue: ALTER QUEUE... WITH STATUS ON/OFF

Page 13: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Exposer/Consommer

ExposerConsommer.vsd

Page 14: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Service BrokerAdministration et Dépannage

Démo 3

Page 15: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Surveillance & Dépannage

PRINT dans les Procédures stockées activées écriture dans l’error log SQL Server

Colonnes activation_procedure et is_activation_enabled dans la vue sys.service_queue pour déterminer le nom et le statut d’une procédure stockée associée à une queue de messages

Colonne transmission_status dans sys.transmission_queue

Pour forcer la suppression de tous les messages de la transmission queue: ALTER DATABASE db_name SET NEW_BROKER, à utiliser avec

précaution (voir Scalability Experts book)

Utiliser “Broker” event class dans le Profiler pour tracer l’activité

Utiliser “Broker Activation” et “Broker Statistics” dans PerfMon pour monitorer

Colonnes is_receive_enabled et is_enqueue_enabled dans sys.service_queues pour s’assurer que la queue est “enabled”

Espace disque pour 100 messages/s en 2 heures !Exemple: (100 x 3600 x 2) = 720 000 messages dans la queue si l’application de destination est indisponible

Page 16: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Communication

Communication.vsd

Page 17: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Case Studies

Microsoft IT Sales Analysis Support

http://members.microsoft.com/CustomerEvidence/Search/Evide

nceDetails.aspx?EvidenceID=4236&LanguageID=1

Application interne de reporting (SQL Server 2005 Service

Broker et partitionnement de tables)

Gain de 60% sur le développement avec Service Broker en

comparaison de tâches SQL

Page 18: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Ressources

The Rational Guide to SQL Server 2005 Service BrokerRoger Wolter, ISBN: 1932577203Télécharger le chapitre 15

SQL Server 2005: Changing the ParadigmScalability Experts, ISBN: 0672327783

http://www.sqlservicebroker.com/ (Forums)http://www.gotdotnet.com/codegallery/codegallery.aspx?id=9f7ae2af-31aa-44dd-9ee8-6b6b6d3d6319 (GotDotNet Service Broker code gallery)

http://forums.microsoft.com/msdn/showforum.aspx?forumid=91&siteid=1http://blogs.msdn.com/rushidesai/http://www.sqlskills.com/blogs/bobb/ (Bob Beauchemin)http://www.pluralsight.com/blogs/dan/default.aspx (Dan Sullivan)

Page 19: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

Q & A

Page 20: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

La référence technique

pour les IT Pros :technet.microsoft.com

La référence technique

pour les développeurs :

msdn.microsoft.com

S’informer - Un portail d’informations, des événements, une newsletter bimensuelle personnalisée

Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs

Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique

Visual Studio 2005 +

Abonnement MSDN Premium

Abonnement TechNet Plus :

Versions d’éval + 2 incidents support

Page 21: Plate-forme de gestion des données Evolutivité et le meilleur coût de possession (TCO) Disponibilité, montée en charge, service d’intégration Productivité

© 2007 Microsoft France

Votre potentiel, notre passion TM