Architecture azure performante

35
ARCHITECTURE AZURE PERFORMANTE Histoire du développemen t d’une application haute performance sur azure

Transcript of Architecture azure performante

Page 1: Architecture azure performante

ARCHITECTURE AZURE

PERFORMANTE

Histoire du développement d’une appl icat ion haute performance sur azure

Page 2: Architecture azure performante

© Pyxis Technologies inc.

/studio

ExpertiseQualité

Respect

Agile Big Data custom CQRS Desktop Event

Sourcing Microsoft .NET C# Scrum Software development Training

Web

nous

som

mes

Page 3: Architecture azure performante

© Pyxis Technologies inc.

INTRODUCTION

Page 4: Architecture azure performante

© Pyxis Technologies inc.

Budget Limité

POURQUOI?

Page 5: Architecture azure performante

© Pyxis Technologies inc.

Budget LimitéPotentiel de

croissance

POURQUOI?

Page 6: Architecture azure performante

© Pyxis Technologies inc.

Budget LimitéPotentiel de

croissanceBase d’utilisateurs

international

POURQUOI?

Page 7: Architecture azure performante

© Pyxis Technologies inc.

Budget LimitéPotentiel de

croissanceBase d’utilisateurs

internationalCoût / revenu

POURQUOI?

Page 8: Architecture azure performante

© Pyxis Technologies inc.

Budget LimitéPotentiel de

croissanceBase d’utilisateurs

internationalCoût / revenuConstruit pour la

performance

POURQUOI?

Page 9: Architecture azure performante

© Pyxis Technologies inc.

HOSTING

Private cloud

Page 10: Architecture azure performante

© Pyxis Technologies inc.

Storage SQL, Document, Archivage, Système de fichier, image de VM

SQL, Document, image de VM

SQL, Document,

Processing Toutes plateformes

Toutes plateformes

Toutes plateformes

Service Bus Queue, Event (SNS), Lamba

Queue, Topic, Event Hub

Maison

Scalability Automatique Automatique Maison ou OSFamiliarité Faible Moyenne FaibleSelf-service Portail intégré Portail intégré Manuel

HOSTING - COMPARAISON

Private cloud

Page 11: Architecture azure performante

© Pyxis Technologies inc.

RECHERCHE

AZURE SEARCH SERVICE

Page 12: Architecture azure performante

© Pyxis Technologies inc.

Performance Excellente Excellente ExcellenteFonctionnalités Full text search Multi-indexing,

query language, multi plateforme

Index mutlti-dimension

Maturité Mature Mature JeuneScalabilité Inter-noeud Manuelle avec

(SOLR)Auto

Familiarité Moyennement familié

Très familié Peu

RECHERCHE - COMPARAISON

Page 13: Architecture azure performante

© Pyxis Technologies inc.

PersistantAccès lentDistribution de

données pas toujours facile

Persistant (avec redondance)

Accès ultra rapideDistribution des

données by design

STORAGE - MEDIUM

Page 14: Architecture azure performante

© Pyxis Technologies inc.

STORAGE - FORMATBlob• Donnée non-structurée• Objets de grande taille

Table• Donnée tabulaire (structure plane)• Accès rapide

Document• Structure hiérarchique• Schéma variable

Donnée relationnelles• Structure normalisée• Utilisation d’index

Page 15: Architecture azure performante

© Pyxis Technologies inc.

CACHE

Page 16: Architecture azure performante

© Pyxis Technologies inc.

SERVICE BUS

Page 17: Architecture azure performante

© Pyxis Technologies inc.

FRONT END

Page 18: Architecture azure performante

© Pyxis Technologies inc.

Performance Moyenne pour comtenu statique

Excellente

Fonctionnalités

Dynamique, donc sans limite

Server side, donc limité

Maturité Mature MatureScalabilité Infinie, client side Selon les instances de

serveurFamiliarité Moyenne Bonne

FROND END - COMPARAISON

Page 19: Architecture azure performante

© Pyxis Technologies inc.

MAILING

Page 20: Architecture azure performante

© Pyxis Technologies inc.

Fonctionnalités

Envoi de masse, suivi des lectures, support de gabarits

Envoi individuels, suivi des lectures, support de gabarits

Scalabilité Transparente TransparenteTemplate Built-in Built-inÉcosystème Librairie Nuget Librairie NugetApi Rest Rest, SMTP

MAILING - COMPARAISON

Page 21: Architecture azure performante

© Pyxis Technologies inc.

Déploiement (automatisé)Test de performance dès le débutTest local, émulé in-proc, émulé Azure

Minimiser le downtimeSéparation des updates et des requêtes (CQRS)

A CONSIDÉRER

Page 22: Architecture azure performante

© Pyxis Technologies inc.

Commande Requête

Données dénormalis

ée

Rapide d’accès

Réplicable

Intégrité des

données

Exécution lente

Règles d’affaires

SANS COMPROMIS

Page 23: Architecture azure performante

© Pyxis Technologies inc.

Retarder les décisions

Architecture évolutive

Abstraction des dépendances

Système à deux vitesses

ARCHITECTURE - INITIALE

Page 24: Architecture azure performante

© Pyxis Technologies inc.

ARCHITECTURE – APRÈS 3 SPRINTS

Page 25: Architecture azure performante

© Pyxis Technologies inc.

ARCHITECTURE - FINALE

Page 26: Architecture azure performante

© Pyxis Technologies inc.

Sélecteur de persistanceBlobTableMémoireAutre…

Contexte de persistancePas de requêtes complexeMise à jour en lot

IMPLÉMENTATION - PERSISTANCE

Page 27: Architecture azure performante

© Pyxis Technologies inc.

IMPLÉMENTATION - PERSITANCE

Persistance Store Factory

BlobPersistance

IPersistanceStore

FilePersistance

TablePersistance

MemoryPersistance

IPersistanceStore

IPersistanceStore

IPersistanceStore

IPersistanceStore

IPersitanceStorevoid Save<T>

T Get<T>void Delete<T>bool Any<T>IEnumerable<T> GetSome<T>IEnumerable<T> Query<T>IEnumerable<T> GetAll<T>void Purge

Page 28: Architecture azure performante

© Pyxis Technologies inc.

Recherche en mémoireLuceneSearch Api réutilisable

IMPLÉMENTATION - RECHERCHE

Page 29: Architecture azure performante

© Pyxis Technologies inc.

CRÉATION D’INDEX

Factory

Dialect

IndexerMapper

Data provider

Query Builder

Map betweenDomain Object

AndLucene

Handle search index content

Build index queries

Return POCO to index

Page 30: Architecture azure performante

© Pyxis Technologies inc.

RECHERCHE

Service

IndexSearcher

IndexManager

QueryBuilder

Mapper

Page 31: Architecture azure performante

© Pyxis Technologies inc.

Une mise à jour en deux tempsTraitement des donnéesRafraichir les sites web

JobFire & forgetQueue (Azure)

ÉvénementPublisher / SubscriberEvent (Azure)

IMPLÉMENTATION – JOB/MESSAGE

Page 32: Architecture azure performante

© Pyxis Technologies inc.

EXÉCUTION DE JOB

Request AzureQueue Worker

Page 33: Architecture azure performante

© Pyxis Technologies inc.

ÉVÉNEMENTS

Update AzureEvent

Web Site

Web Site

Web Site

Page 34: Architecture azure performante

© Pyxis Technologies inc.

Indexation des pagesAngular vs MVC

Difficulté de testerDifférente configuration

DebuggingLocalÉmulateurCloud

PROBLÈMES

Page 35: Architecture azure performante

© Pyxis Technologies inc. 35

Rappelez-vousPenser la performance dès le début ne coûte pas plus cher

Prévoir l’évolution et la flexibilitéSe découpler de l’implémentation

Questions?

LA FIN