Azure Service Fabric pour les développeurs

Post on 08-Jan-2017

62 views 3 download

Transcript of Azure Service Fabric pour les développeurs

Azure ServiceFabric pour les développeurs

Wilfried WOIVRE

Nicolas CLERC

@wilfriedwoivreMVP Azure - SOAT

@nclercArchitect Cloud - Microsoft

Finance & assuranceServicesIndustrie et telecomMedia

• Société d’expertise et de conseil spécialisée dans les technologies Java, Microsoft, Web, Mobile et l’agilité.

• Positionné sur des offres d’expertises pointues telles que le Cloud, le BigData, le DevOps, Le software craftsmanship, mais aussi sur les architectures SOA, microservices…

• 15 années « d’expérience projet » sur l’ensemble des secteurs d’activité.

• Notre mission ? Comprendre les enjeux techniques et extra-techniques de vos projets informatiques, pour vous garantir un accompagnement adapté à vos besoins et vos budgets.

Microservices ‘2 minutes montre en

mains’

• Fini les applications figées !• Evolution continue • Rythme de livraison de plus en plus soutenu• Besoin de réactivité face aux attentes des clients et utilisateurs• Nécessite de concevoir et opéré des services à forte montée en

charge

Abandon des architectures monolithiques pour un découpage fin des applications en micro-service autonome (code, équipe de développement, rythme de développement et de livraison)

Micro-servicesPourquoi cette approche ?

Micro-servicesvs approche monolithique

N° 6

• La montée en charge est assurée en clonant l’application en totalité sur les serveurs, VM ou container.

App 1• Un application à base de

micro-service isole ses fonctionnalités dans des micro-services indépendants.• Chaque service est ‘scalable’ de manière

indépendante, et déployé sur des noeuds (serveur, VM, container, …)

App 1 App 2

Azure Service FabricLa plateforme Microsoft pour déployer vos micro-services

N° 7Public Cloud Other CloudsOn Premises

Private cloud

Cycle de vie

applicatifScaling

indépendantMise à jour

indépendanteTrès haute

disponibilité Optimisation des

ressources

Stateless/Stateful

• Ensemble de nœud (serveur ou machines virtuelles) formant un ‘pool’ de ressources

- Un système d’exploitation : Windows (GA) ou Linux (Preview)- Le runtime Service Fabric

• Potentiellement plusieurs centaines de nœuds• auto-réparable• capacité ajustable dynamiquement

Cluster Service Fabric

N° 8

Instance OS

Instance OS Instance OS

Instance OSInstance OS

Instance OS

Fabric

Node

Fabric

Node Fabri

cNode

Fabric

Node Fabric

Node

Fabric

Node

N° 9

Portail Azure, Création d’un cluster, Dashboard de monitoring et d’administration

Azure Service FabricPlateforme et modèles applicatifs

N° 10

Plateforme ServiceFabric

Modèle applicatif “ReliableService” : SDK & API

“Reliable storage”

Actor model framework

“Guest executable”

- N’importe quel exécutable

- ServiceFabric gère le cycle de vie de l’exécutable

- Intégration limitée avec la plateforme

“container”

- Déploiement de container

- ServiceFabric gère le cycle de vie de du container

- Intégration limitée avec la plateforme

Stateless service

- Modèle applicatif simple- Forte intégration

(monitoring, health, load balancing, communication, localisation, …)

- Multi technologies

Statefull service

- Proximité des ‘données’ avec le service

- Replication automatique des données

Actor service- Pattern « virtual

Actor Model »

Node 1 Node 2 Node 3 Node XYZ

• Azure VMScaleSet • VM Windows• VM Linux

• Définition déclarative de l’application• Composée d’un ensemble de services• Unité de packaging, déploiement et version

Structure d’un Application ServiceFabricL ’ Application

N° 11

Application Type A

Service Type 1 Service Type 2 Service Type 3

Code Config Data Code Config Data Code Config Data

N° 12

Création d’une application ServiceFabric avec Visual StudioDéploiement dans l’environnement de développementDéploiement sur un cluster Azure Service Fabric sécurisé

• Récupération d’un code legacy (.EXE)• Hébergement d’une application basée sur une

technologie sans intégration fine à la plateforme (pas de SDK)

Service « Guest executable »

N° 13

N° 14

Création d’un service Guest ExecutableDéploiement et execution

• MicroService sans état persisté • ou persisté en dehors de ServiceFabric

• Intégration fine à la plateforme ServiceFabric• SDK & API managé ou native

• Télémétrie et Monitoring de l’état intégré à ServiceFabric

• Scaling Fin

Reliables ServicesStateless

N° 15

N° 16

Création d’un service StatelessExposer le service

• Structure de stockage intégré pour la création de service avec état (Statefull)

• Evolution ‘cloud’ des collections du framework .Net• Persistance au plus proche du service• Réplication automatique et configurable des données • Généralisation de l’asynchronisme• Support des transactions• ReliableDictionary<T1,T2> and

ReliableQueue<T>

Reliable ServiceReliable Collections

N° 17

DEMO

N° 18

Création d’un service Statefull

• L’exposition via une URL publique n’est valable que pour les services accessibles depuis l’Internet• Loadbalancing effectué par le cluster (Azure LoadBalancer +

VM ScaleSet dans Azure)• Même sécurisés, certains services ne doivent pas être

exposé sur l’internet• Les services doivent pouvoir communiquer entre eux• Donc être identifiable et localisable

fabric:/DemoSFstep00/MonServeurHttpGuesExecService

Communication inter-service

N° 19

N° 20

Appel d’un service statefull à partir d’un service statelessService de Naming

• Basé sur le pattern « Virtual Actor Model »• Même philosophie que le projet « Orleans », mais intégré à

ServiceFabric • L’acteur est une unité de traitement• Légère• Avec état• Massivement scalable• Single threaded (pas de soucis de concurrence)• Communication asynchrone par messages

Actor Service

N° 21

N° 22

Création d’un service d’acteur

Scaling des servicesMontée en charge « horizontale » par service

N° 23

Products API

Recommendations API

Ratings API

Web Front

ApplicationType: ServiceFabricShopType

ServiceType: ShopFrontType

ServiceType: ProductApiType

ServiceType: RecommandationsApiType

ServiceType: RatingsApiType

N° 24

Scaling de servicesScaling du cluster

Partitionnement pour une meilleur montée en charge horizontaleChoix de la logique de partitionnementLes partitions (et leur réplicas) sont réparties sur les différents nœuds du clusterAdaptation automatique aux changement de topologie du cluster

Scaling des servicesPartitionnement

N° 25

Vous voulez jouez avec ServiceFabric ?

http://aka.ms/tryservicefabric

N° 26GRATUIT !!!

N° 27

@microsoftfrance @Technet_France @msdev_fr@wilfriedwoivre - @nclerc

N° 28

Notez cette sessionEt tentez de gagner un Surface Book

Doublez votre chance en répondant aussi au questionnaire de satisfaction globale* Le règlement est disponible sur demande au commissariat général de l’exposition. Image non-

contractuelle