Post on 14-Jul-2015
transcript
Développer votre
application facebook
avec azureCyril GIACOPINOTeam manager .NETtequilarapido.
Pierre LAGARDEArchitecte solution
Microsoft
TEQUILARAPIDO
45collaborateursfidèles
3,9M€CA 2010
35clientsactifs
14ansNous rencontrions GDF SUEZIl y a
Supervzin est une solution d'optimisation de la performance sur
les réseaux sociaux qui permet:
de comprendre et d'analyser son audience de mesurer la performance de ses
concurrents de suivre ses contenus les plus engageants
d'identifier ses ambassadeurs
Présentation de Windows Azure
Déploiement / Elasticité de Windows AzureWindows Azure Compute / Facebook Apps
La fédération d’identitéAccess Control Service 2.0 / Windows Identity Fondation SDK
Facebook OpenGraph API avec ASP.NET MVC3WebRole & Facebook C# SDK
Subscriptions API & WorkerRoleWorkerRole & Queue & Facebook C# SDK
SOMMAIRE
Compute
Storage
DataSQL Azure
Data Sync
ConnectivityProject
“Sydney”
Security “Geneva”
Application Services
Frameworks “Dublin” “Velocity”
Service Bus
Access Control
Table Storage Blob Storage Queue DriveContent Delivery
Network
Windows Azure Platform
C / C++Win32 VHD
Windows Azure Platform
Compute C / C++Win32 VHD
Développement,Hébergement, et plateforme
d’administration
.NET, Java PHP, Python, Ruby, native code
(C/C++, Win32, etc.)
ASP.NET
providers, FastCGI, memcached, MySQL, Tomcat
Full-trust
Management API’s via REST, and logging and
diagnostics systems
Plusieurs rôle– Web, Worker, Virtual Machine (VHD)
Plusieurs taille de VM disponible
1.6 GHz CPU x64, 1.75GB RAM, reseau 100Mbps
, 250GB stockage volatile
Small (1X), Medium (2X), Large (4X), X-Large (8X)
Mises à jour séquencées par domain et par rôle, pas de
coupure de services
Windows Azure Platform
Storage
Rich data abstractions – tables, blobs, queues, drives, CDN
Capacity (100TB), throughput (100MB/sec),
transactions (1K req/sec)
High accessibility
Supports geo-location
Language & platform agnostic REST APIs
URL: http://<account>.<store>.core.windows.net
Client libraries for .NET, Java, PHP, etc.
High durability – data is replicated across datacenters
High scalability – data is automatically partitioned and load
balanced across servers
Windows Azure Platform
Storage for large, named files plus their metadata
Block Blob
Each blob consists of a sequence of blocks
Each block is identified by a Block ID
Size limit 200GB per blob
Blob Storage
Windows Azure Platform
Performance efficient, highly available and provide reliable
message delivery
Asynchronous work dispatch
Inter-role communication
Polling based model; best-effort FIFO data structure
Queue operations
Create Queue
Delete Queue
List Queues
Get/Set Queue Metadata
Queue
> Message operations
• Add Message
• Get Message(s)
• Peek Message(s)
• Delete Message
Windows Azure Platform
Data
Highly available, scalable, and consistent distributed relational
database; geo-replication and geo-location of data
Relational database, provided as a service
Highly symmetrical development and tooling
experience (use TDS protocol and T-SQL)
Highly scaled out, on commodity hardware
Built on the SQL Server technology foundation
Editions: Web (1GB), Business (25GB)
Windows Azure Platform
Security
Access Control Service 2.0
- Authentification via fournisseurs d’identité multiples
- S’intègre avec LiveId, Facebook, Yahoo, Google…
- Disponible en production
- Gratuit actuellement
- Courant 2012 : 1,99$ pour 100,000 transactions
Access Control
AutoScaling Application Block (CodeName WASABI)
http://www.windowsazure.com/en-us/develop/net/how-to-guides/autoscaling/
Installation de Facebook C# SDK avec nuget
Authentification client via Javascript SDK
Appel à l’API Facebook côté serveur
Facebook OpenGraph API avec ASP.NET
MVC3
A chaque connexion d’un utilisateur facebook sur l’application il est
nécéssaire de mettre à jour toutes les informations le concernant.
On ne fait plus de « polling » sur facebook pour mettre à jour les données
Facebook nous notifie directement de la modification d’un objet
Limitations, cela est disponible uniquement sur les objets suivants:
User
Permissions
Page
Subscriptions API & RealTime Update
User
feed, friends, activities, interests, music, books, movies, television, likes, checkins
Permissions
Notification du changement des autorisations surune application
Page
Notification de mise à jour, uniquement les champs de l’objet application disponiblepubliquement.
Subscriptions API & RealTime Update
Subscriptions API & RealTime Update
- Mise à jour des informations
du profil
(musics/movies/interests
etc….)
- Vérification des autorisation
sur l’application
Subscriptions API & RealTime Update
- Mise à jour des informations
du profil
(musics/movies/interests
etc….)
- Vérification des autorisation
sur l’applicationX
Subscriptions API & RealTime Update
Schéma classique sans Windows Azure
SubscriptionsTraitement et appel à l’API
Mise à jour des informations
{ "object": "user", "entry": [ {
"uid": 1335845740, "changed_fields":
[ "name", "picture" ], "time": 232323
}, { "uid": 1234, "changed_fields": [
"friends" ], "time": 232325 } ] }
Appel de l’URL de callback en GET
Subscriptions API & RealTime Update
Schéma classique sans Windows Azure
SubscriptionsTraitement et appel à l’API
Mise à jour des informations
{ "object": "user", "entry": [ {
"uid": 1335845740, "changed_fields":
[ "name", "picture" ], "time": 232323
}, { "uid": 1234, "changed_fields": [
"friends" ], "time": 232325 } ] }
Appel de l’URL de callback en GET
Subscriptions API & RealTime Update
Schéma classique sans Windows Azure
SubscriptionsTraitement et appel à l’API
Mise à jour des informations
{ "object": "user", "entry": [ {
"uid": 1335845740, "changed_fields":
[ "name", "picture" ], "time": 232323
}, { "uid": 1234, "changed_fields": [
"friends" ], "time": 232325 } ] }
Appel de l’URL de callback en GET
Subscriptions API & RealTime Update
Avec Windows Azure
SubscriptionsStockage en queue
des traitements à effectuer
{ "object": "user", "entry": [ {
"uid": 1335845740, "changed_fields":
[ "name", "picture" ], "time": 232323
}, { "uid": 1234, "changed_fields": [
"friends" ], "time": 232325 } ] }
WebRole recevant le callback en GET Queue Message WorkerRole assurant les
appels à l’api facebook
On dépile la queue de message à traiter
Subscriptions API & RealTime Update
Avec Windows Azure
SubscriptionsStockage en queue
des traitements à effectuer
{ "object": "user", "entry": [ {
"uid": 1335845740, "changed_fields":
[ "name", "picture" ], "time": 232323
}, { "uid": 1234, "changed_fields": [
"friends" ], "time": 232325 } ] }
X WebRole recevant le callback en GET
Queue Message
X WorkerRole assurant les appels à l’api facebook
On dépile la queue de message à traiter
Romain Stiffler
Dev lead Supervizin
tequilarapido.
Rodrigue Hajjar
.NET Developper
Microsoft Students
Partner
tequilarapido.
Remerciements
Testez Windows Azure
gratuitement pendant
90 jours
http://aka.ms/
tester-azure-90j
Abonnés MSDN, vous
bénéficiez de
Windows Azure
http://aka.ms/
activer-azure-msdn
Des ressources Windows Azure
gratuites
Chaque semaine, les DevCampsALM, Azure, Windows Phone, HTML5, OpenDatahttp://msdn.microsoft.com/fr-fr/devcamp
Téléchargement, ressources et toolkits : RdV sur MSDNhttp://msdn.microsoft.com/fr-fr/
Les offres à connaître90 jours d’essai gratuit de Windows Azure
www.windowsazure.fr
Jusqu’à 35% de réduction sur Visual Studio Pro, avec l’abonnement MSDN
www.visualstudio.fr
Pour aller plus loin
10 février
2012Live Meeting
Open Data - Développer des applications riches avec le protocole Open
Data
16 février
2012Live Meeting
Azure series - Développer des applications sociales sur la plateforme
Windows Azure
17 février
2012Live Meeting Comprendre le canvas avec Galactic et la librairie three.js
21 février
2012Live Meeting La production automatisée de code avec CodeFluent Entities
2 mars
2012Live Meeting
Comprendre et mettre en oeuvre le toolkit Azure pour Windows Phone 7,
iOS et Android
6 mars
2012Live Meeting Nuget et ALM
9 mars
2012Live Meeting Kinect - Bien gérer la vie de son capteur
13 mars
2012Live Meeting Sharepoint series - Automatisation des tests
14 mars
2012Live Meeting
TFS Health Check - vérifier la bonne santé de votre plateforme de
développement
15 mars
2012Live Meeting
Azure series - Développer pour les téléphones, les tablettes et le cloud
avec Visual Studio 2010
16 mars
2012Live Meeting
Applications METRO design - Désossage en règle d'un template METRO
javascript
20 mars
2012Live Meeting
Retour d'expérience LightSwitch, Optimisation de l'accès aux données,
Intégration Silverlight
23 mars
2012Live Meeting OAuth - la clé de l'utilisation des réseaux sociaux dans votre application
Prochaines sessions des Dev Camps