SlideShare une entreprise Scribd logo
@xebiconfr #xebiconfr
Cédric
Hauber
React Realtime
@ scale
@xebiconfr #xebiconfr
1
Cédric Hauber
Cloud Builder @ wescale
Scaling addict
Code lover
Beer drinker
@xebiconfr #xebiconfr
Le temps réel
@xebiconfr #xebiconfr
1a
- Une meilleure expérience web
Pourquoi ?
5
- Mieux capter l’attention de l’utilisateur
- Accumuler plus de données
@xebiconfr #xebiconfr
1b
- Plus qu’une fonctionnalité, un type d’application
Comment ?
6
- Pas de technologies « magiques » mais bien choisies
- Ce n’est pas si compliqué qu’il n’y paraît.
@xebiconfr #xebiconfr
2React, Redux, RethinkDB,
Kubernetes… késako ?
@xebiconfr #xebiconfr
2a
- Une bibliothèque javascript
- Écrit par Facebook
- Des composants réutilisables
- Pas de templates, une syntaxe simple (JSX) ressemblant a du
HTML
- 52 000+ stars, 9 000+ forks, 800+ contributeurs
React
8
@xebiconfr #xebiconfr
2b À quoi ressemble React
9
render() {

return <div>

<Likes likes={this.props.likes}/>

<LikeButton onIncrement={this.like}>Like</LikeButton>

</div>

}
@xebiconfr #xebiconfr
2c
- Une bibliothèque JavaScript
- Un état global pour votre application
- Permet de découpler nos composants
- Permet de restituer l’était d’une application à n‘importe quel moment
- Une forte communauté 24 000+ stars, 4 000+ forks, 300+
contributeurs
Redux
10
@xebiconfr #xebiconfr
2d À quoi ressemble Redux
11
export const incrementLike = (increment) => {

return {

type: INCREMENT_LIKES,

payload: increment

};

};



const ACTION_HANDLERS= {

[INCREMENT_LIKES]: (state, action) => action.payload + state

};



export default function likesReducer(state = 0, action) {

const handler = ACTION_HANDLERS[action.type];

return handler ? handler(state, action) : state

}
@xebiconfr #xebiconfr
2e
- Une base de donnéeS NoSQL
- Très bien codée
- Fait pour le temps réel
- JavaScript friendly
- Scaling horizontal et linéaire
- 16 500+ stars, 1 300+ forks et 100+ contributeurs
RethinkDB
12
@xebiconfr #xebiconfr
2f À quoi ressemble RethinkDB
13
r.table("likes").get(1).update((item) => {

item.getField("value").add(1);

}).run(conn)
@xebiconfr #xebiconfr
2g
- L’orchestrateur par excellence de conteneurs Docker / Rkt
- Initiative lancée par Google
- 17 000+ stars, 5 700+ forks et 900+ contributeurs
- Pokemon Go possède le plus gros cluster Kubernetes hébergé chez
Google !
Kubernetes
14
@xebiconfr #xebiconfr
3Voyons cela en détail
@xebiconfr #xebiconfr
3a
export const rethinkMiddleware = store => next => action => {

if (!action) return;

if (!action.server)

return next(action);

if (isConnected) {

sendMessage(action);

} else {

onConnect.push(action);

}

};
Redux middleware
16
@xebiconfr #xebiconfr
3b
const watchLikes = action => dispatch => {

RethinkDB.execute((r, conn) => {

return r.table("likes").get(1).run(conn)

.then((counter) => dispatch({ type: UPDATE_LIKES_COUNT, payload: counter.value}))

.then(() => {

return r.table(« likes »).get(1).changes({squash: true}).run(conn)
.then((cursor) => {

cursor.each((err, doc) => {

if (err) return;

dispatch({

type: UPDATE_LIKES_COUNT,

payload: doc.new_val.value

});

});

});

});

});
};



export default {

[WATCH_LIKES]: watchLikes

};
Server-side
17
@xebiconfr #xebiconfr
4La montée en charge
@xebiconfr #xebiconfr
4a Pourquoi Docker et Kubernetes
19
- Le meilleur moyen de packager une application
- Parce que nous voulons monter en charge rapidement
- Sans Kubernetes, orchestrer des conteneurs est un enfer.
@xebiconfr #xebiconfr
4b Notre architecture
20
RethinkDB
Replicas
RethinkDB
Proxy
API FEED
NGINX
FRONTEND
@xebiconfr #xebiconfr
4c
Test 1 :
- 1 conteneur API
- 1 conteneur FEED
- 1 frontend
- 500 clients / sec
Résultat :
132ms / requête
0 Timeout / 0 Erreurs 500 / 0 Network errors
Résultats
21
@xebiconfr #xebiconfr
4d
Test 2:
- 10 conteneur API
- 1 conteneur FEED
- 1 frontend
- 5000 clients / sec
Résultat :
206ms / requête
0 Timeout / 0 Erreurs 500 / 0 Network errors
Résultats
22
@xebiconfr #xebiconfr
5Conclusion

Contenu connexe

Tendances

Automatiser l'ère post-dev
Automatiser l'ère post-devAutomatiser l'ère post-dev
Automatiser l'ère post-dev
Emmanuel CHAFFRAIX
 
Be zend docker
Be zend dockerBe zend docker
Be zend docker
Kevin Verschaeve
 
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Publicis Sapient Engineering
 
Pachyderm big data de l'ère docker
Pachyderm big data de l'ère dockerPachyderm big data de l'ère docker
Pachyderm big data de l'ère docker
Enguerran Delahaie
 
Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017
Saïd Bouras
 
Mybatis : Spring Data à la rescousse
Mybatis : Spring Data à la rescousse Mybatis : Spring Data à la rescousse
Mybatis : Spring Data à la rescousse
Kokou Gaglo
 
Elasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautésElasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautés
Mathieu Elie
 
Consul @Criteo - usages et patches
Consul @Criteo - usages et patchesConsul @Criteo - usages et patches
Consul @Criteo - usages et patches
Pierre Souchay
 

Tendances (8)

Automatiser l'ère post-dev
Automatiser l'ère post-devAutomatiser l'ère post-dev
Automatiser l'ère post-dev
 
Be zend docker
Be zend dockerBe zend docker
Be zend docker
 
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
 
Pachyderm big data de l'ère docker
Pachyderm big data de l'ère dockerPachyderm big data de l'ère docker
Pachyderm big data de l'ère docker
 
Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017
 
Mybatis : Spring Data à la rescousse
Mybatis : Spring Data à la rescousse Mybatis : Spring Data à la rescousse
Mybatis : Spring Data à la rescousse
 
Elasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautésElasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautés
 
Consul @Criteo - usages et patches
Consul @Criteo - usages et patchesConsul @Criteo - usages et patches
Consul @Criteo - usages et patches
 

En vedette

James W. Berry
James W. BerryJames W. Berry
James W. Berry
Berry W
 
Devoxx France - Nouvelles du Front
Devoxx France - Nouvelles du FrontDevoxx France - Nouvelles du Front
Devoxx France - Nouvelles du Front
Publicis Sapient Engineering
 
Pequeños talentos. grupo 2 final
Pequeños talentos. grupo 2 finalPequeños talentos. grupo 2 final
Pequeños talentos. grupo 2 final
Pedro José Garrido Garrido
 
Sistema de entrenamiento
Sistema de entrenamientoSistema de entrenamiento
Sistema de entrenamiento
NeniTah Carrillo
 
Gestión financiera y pública clase 1
Gestión financiera y pública clase 1Gestión financiera y pública clase 1
Gestión financiera y pública clase 1
Carlos Echeverria Muñoz
 
quistes de coledoco
quistes de coledocoquistes de coledoco
quistes de coledoco
mafersc6
 
XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services Par Al...
XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services  Par Al...XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services  Par Al...
XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services Par Al...
Publicis Sapient Engineering
 
Log I am your father
Log I am your fatherLog I am your father
Log I am your father
DataWorks Summit/Hadoop Summit
 
XebiCon'16 : Data Lake Done Right ! Par Matthieu Blanc, Data Architect chez X...
XebiCon'16 : Data Lake Done Right ! Par Matthieu Blanc, Data Architect chez X...XebiCon'16 : Data Lake Done Right ! Par Matthieu Blanc, Data Architect chez X...
XebiCon'16 : Data Lake Done Right ! Par Matthieu Blanc, Data Architect chez X...
Publicis Sapient Engineering
 
Ứng dụng thiền định vào công việc và học tập
Ứng dụng thiền định vào công việc và học tậpỨng dụng thiền định vào công việc và học tập
Ứng dụng thiền định vào công việc và học tập
Huytraining
 
XebiCon'16 : PMU et le Big Data - d'une approche mono projet à une démarche e...
XebiCon'16 : PMU et le Big Data - d'une approche mono projet à une démarche e...XebiCon'16 : PMU et le Big Data - d'une approche mono projet à une démarche e...
XebiCon'16 : PMU et le Big Data - d'une approche mono projet à une démarche e...
Publicis Sapient Engineering
 
So Sánh building sections, wall sections, detail view, plan callout, detail c...
So Sánh building sections, wall sections, detail view, plan callout, detail c...So Sánh building sections, wall sections, detail view, plan callout, detail c...
So Sánh building sections, wall sections, detail view, plan callout, detail c...
Huytraining
 

En vedette (12)

James W. Berry
James W. BerryJames W. Berry
James W. Berry
 
Devoxx France - Nouvelles du Front
Devoxx France - Nouvelles du FrontDevoxx France - Nouvelles du Front
Devoxx France - Nouvelles du Front
 
Pequeños talentos. grupo 2 final
Pequeños talentos. grupo 2 finalPequeños talentos. grupo 2 final
Pequeños talentos. grupo 2 final
 
Sistema de entrenamiento
Sistema de entrenamientoSistema de entrenamiento
Sistema de entrenamiento
 
Gestión financiera y pública clase 1
Gestión financiera y pública clase 1Gestión financiera y pública clase 1
Gestión financiera y pública clase 1
 
quistes de coledoco
quistes de coledocoquistes de coledoco
quistes de coledoco
 
XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services Par Al...
XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services  Par Al...XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services  Par Al...
XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services Par Al...
 
Log I am your father
Log I am your fatherLog I am your father
Log I am your father
 
XebiCon'16 : Data Lake Done Right ! Par Matthieu Blanc, Data Architect chez X...
XebiCon'16 : Data Lake Done Right ! Par Matthieu Blanc, Data Architect chez X...XebiCon'16 : Data Lake Done Right ! Par Matthieu Blanc, Data Architect chez X...
XebiCon'16 : Data Lake Done Right ! Par Matthieu Blanc, Data Architect chez X...
 
Ứng dụng thiền định vào công việc và học tập
Ứng dụng thiền định vào công việc và học tậpỨng dụng thiền định vào công việc và học tập
Ứng dụng thiền định vào công việc và học tập
 
XebiCon'16 : PMU et le Big Data - d'une approche mono projet à une démarche e...
XebiCon'16 : PMU et le Big Data - d'une approche mono projet à une démarche e...XebiCon'16 : PMU et le Big Data - d'une approche mono projet à une démarche e...
XebiCon'16 : PMU et le Big Data - d'une approche mono projet à une démarche e...
 
So Sánh building sections, wall sections, detail view, plan callout, detail c...
So Sánh building sections, wall sections, detail view, plan callout, detail c...So Sánh building sections, wall sections, detail view, plan callout, detail c...
So Sánh building sections, wall sections, detail view, plan callout, detail c...
 

Similaire à XebiCon'16 : Realtime React par Cédric Hauber, Cloud Designer et Builder chez WeScale

XebiCon'16 : GraphQL et Falcor, un nouveau regard sur les architectures REST ...
XebiCon'16 : GraphQL et Falcor, un nouveau regard sur les architectures REST ...XebiCon'16 : GraphQL et Falcor, un nouveau regard sur les architectures REST ...
XebiCon'16 : GraphQL et Falcor, un nouveau regard sur les architectures REST ...
Publicis Sapient Engineering
 
Hands on drone challenge - xebicon'18
Hands on  drone challenge - xebicon'18Hands on  drone challenge - xebicon'18
Hands on drone challenge - xebicon'18
Jean-Baptiste Claramonte
 
Self-Service infrastructure pour GCP avec Terraform et Gitlab
Self-Service infrastructure pour GCP avec Terraform et GitlabSelf-Service infrastructure pour GCP avec Terraform et Gitlab
Self-Service infrastructure pour GCP avec Terraform et Gitlab
Julien Wittouck
 
Kubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestrationKubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestration
Wescale
 
Kubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration DockerKubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration Docker
Jean-Baptiste Claramonte
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Publicis Sapient Engineering
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applications
Christophe Villeneuve
 
Paris RailsCamp 2009
Paris RailsCamp 2009Paris RailsCamp 2009
Paris RailsCamp 2009
Olivier Gutknecht
 
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
Publicis Sapient Engineering
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Fabien Arcellier
 
la réalité mélangée de A a Z
la réalité mélangée de A a Zla réalité mélangée de A a Z
la réalité mélangée de A a Z
Christophe Villeneuve
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilité
Publicis Sapient Engineering
 
AR / VR / XR dans les navigateurs
AR / VR / XR dans les navigateursAR / VR / XR dans les navigateurs
AR / VR / XR dans les navigateurs
Christophe Villeneuve
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)
Camille Roux
 
Javascript proprement
Javascript proprementJavascript proprement
Javascript proprement
Guillaume Collic
 
SkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React NativeSkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React Native
Benoit Fillon
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le Cloud
Tugdual Grall
 
XebiCon'16 : NodeJS x Craftsmanship - Comment faire un projet dans les règles...
XebiCon'16 : NodeJS x Craftsmanship - Comment faire un projet dans les règles...XebiCon'16 : NodeJS x Craftsmanship - Comment faire un projet dans les règles...
XebiCon'16 : NodeJS x Craftsmanship - Comment faire un projet dans les règles...
Publicis Sapient Engineering
 
Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Publicis Sapient Engineering
 
la realite a l assaut du web
la realite a l assaut du webla realite a l assaut du web
la realite a l assaut du web
Christophe Villeneuve
 

Similaire à XebiCon'16 : Realtime React par Cédric Hauber, Cloud Designer et Builder chez WeScale (20)

XebiCon'16 : GraphQL et Falcor, un nouveau regard sur les architectures REST ...
XebiCon'16 : GraphQL et Falcor, un nouveau regard sur les architectures REST ...XebiCon'16 : GraphQL et Falcor, un nouveau regard sur les architectures REST ...
XebiCon'16 : GraphQL et Falcor, un nouveau regard sur les architectures REST ...
 
Hands on drone challenge - xebicon'18
Hands on  drone challenge - xebicon'18Hands on  drone challenge - xebicon'18
Hands on drone challenge - xebicon'18
 
Self-Service infrastructure pour GCP avec Terraform et Gitlab
Self-Service infrastructure pour GCP avec Terraform et GitlabSelf-Service infrastructure pour GCP avec Terraform et Gitlab
Self-Service infrastructure pour GCP avec Terraform et Gitlab
 
Kubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestrationKubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestration
 
Kubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration DockerKubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration Docker
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applications
 
Paris RailsCamp 2009
Paris RailsCamp 2009Paris RailsCamp 2009
Paris RailsCamp 2009
 
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
 
la réalité mélangée de A a Z
la réalité mélangée de A a Zla réalité mélangée de A a Z
la réalité mélangée de A a Z
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilité
 
AR / VR / XR dans les navigateurs
AR / VR / XR dans les navigateursAR / VR / XR dans les navigateurs
AR / VR / XR dans les navigateurs
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)
 
Javascript proprement
Javascript proprementJavascript proprement
Javascript proprement
 
SkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React NativeSkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React Native
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le Cloud
 
XebiCon'16 : NodeJS x Craftsmanship - Comment faire un projet dans les règles...
XebiCon'16 : NodeJS x Craftsmanship - Comment faire un projet dans les règles...XebiCon'16 : NodeJS x Craftsmanship - Comment faire un projet dans les règles...
XebiCon'16 : NodeJS x Craftsmanship - Comment faire un projet dans les règles...
 
Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !
 
la realite a l assaut du web
la realite a l assaut du webla realite a l assaut du web
la realite a l assaut du web
 

Plus de Publicis Sapient Engineering

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
Publicis Sapient Engineering
 
Xebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to CloudXebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to Cloud
Publicis Sapient Engineering
 
XebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern InfrastructureXebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern Infrastructure
Publicis Sapient Engineering
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
Publicis Sapient Engineering
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
Publicis Sapient Engineering
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
Publicis Sapient Engineering
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
Publicis Sapient Engineering
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
Publicis Sapient Engineering
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
Publicis Sapient Engineering
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
Publicis Sapient Engineering
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
Publicis Sapient Engineering
 
XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture
Publicis Sapient Engineering
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID Connect
Publicis Sapient Engineering
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
Publicis Sapient Engineering
 
XebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an aprèsXebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an après
Publicis Sapient Engineering
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018
Publicis Sapient Engineering
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
Publicis Sapient Engineering
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
Publicis Sapient Engineering
 
XebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieuXebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieu
Publicis Sapient Engineering
 
XebiCon'18 - Orchestration : Conteneurs vs Musique
XebiCon'18 - Orchestration : Conteneurs vs MusiqueXebiCon'18 - Orchestration : Conteneurs vs Musique
XebiCon'18 - Orchestration : Conteneurs vs Musique
Publicis Sapient Engineering
 

Plus de Publicis Sapient Engineering (20)

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
 
Xebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to CloudXebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to Cloud
 
XebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern InfrastructureXebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern Infrastructure
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
 
XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID Connect
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
 
XebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an aprèsXebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an après
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
 
XebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieuXebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieu
 
XebiCon'18 - Orchestration : Conteneurs vs Musique
XebiCon'18 - Orchestration : Conteneurs vs MusiqueXebiCon'18 - Orchestration : Conteneurs vs Musique
XebiCon'18 - Orchestration : Conteneurs vs Musique
 

Dernier

Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 

Dernier (6)

Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 

XebiCon'16 : Realtime React par Cédric Hauber, Cloud Designer et Builder chez WeScale

  • 2. @xebiconfr #xebiconfr 1 Cédric Hauber Cloud Builder @ wescale Scaling addict Code lover Beer drinker
  • 5. @xebiconfr #xebiconfr 1a - Une meilleure expérience web Pourquoi ? 5 - Mieux capter l’attention de l’utilisateur - Accumuler plus de données
  • 6. @xebiconfr #xebiconfr 1b - Plus qu’une fonctionnalité, un type d’application Comment ? 6 - Pas de technologies « magiques » mais bien choisies - Ce n’est pas si compliqué qu’il n’y paraît.
  • 7. @xebiconfr #xebiconfr 2React, Redux, RethinkDB, Kubernetes… késako ?
  • 8. @xebiconfr #xebiconfr 2a - Une bibliothèque javascript - Écrit par Facebook - Des composants réutilisables - Pas de templates, une syntaxe simple (JSX) ressemblant a du HTML - 52 000+ stars, 9 000+ forks, 800+ contributeurs React 8
  • 9. @xebiconfr #xebiconfr 2b À quoi ressemble React 9 render() {
 return <div>
 <Likes likes={this.props.likes}/>
 <LikeButton onIncrement={this.like}>Like</LikeButton>
 </div>
 }
  • 10. @xebiconfr #xebiconfr 2c - Une bibliothèque JavaScript - Un état global pour votre application - Permet de découpler nos composants - Permet de restituer l’était d’une application à n‘importe quel moment - Une forte communauté 24 000+ stars, 4 000+ forks, 300+ contributeurs Redux 10
  • 11. @xebiconfr #xebiconfr 2d À quoi ressemble Redux 11 export const incrementLike = (increment) => {
 return {
 type: INCREMENT_LIKES,
 payload: increment
 };
 };
 
 const ACTION_HANDLERS= {
 [INCREMENT_LIKES]: (state, action) => action.payload + state
 };
 
 export default function likesReducer(state = 0, action) {
 const handler = ACTION_HANDLERS[action.type];
 return handler ? handler(state, action) : state
 }
  • 12. @xebiconfr #xebiconfr 2e - Une base de donnéeS NoSQL - Très bien codée - Fait pour le temps réel - JavaScript friendly - Scaling horizontal et linéaire - 16 500+ stars, 1 300+ forks et 100+ contributeurs RethinkDB 12
  • 13. @xebiconfr #xebiconfr 2f À quoi ressemble RethinkDB 13 r.table("likes").get(1).update((item) => {
 item.getField("value").add(1);
 }).run(conn)
  • 14. @xebiconfr #xebiconfr 2g - L’orchestrateur par excellence de conteneurs Docker / Rkt - Initiative lancée par Google - 17 000+ stars, 5 700+ forks et 900+ contributeurs - Pokemon Go possède le plus gros cluster Kubernetes hébergé chez Google ! Kubernetes 14
  • 16. @xebiconfr #xebiconfr 3a export const rethinkMiddleware = store => next => action => {
 if (!action) return;
 if (!action.server)
 return next(action);
 if (isConnected) {
 sendMessage(action);
 } else {
 onConnect.push(action);
 }
 }; Redux middleware 16
  • 17. @xebiconfr #xebiconfr 3b const watchLikes = action => dispatch => {
 RethinkDB.execute((r, conn) => {
 return r.table("likes").get(1).run(conn)
 .then((counter) => dispatch({ type: UPDATE_LIKES_COUNT, payload: counter.value}))
 .then(() => {
 return r.table(« likes »).get(1).changes({squash: true}).run(conn) .then((cursor) => {
 cursor.each((err, doc) => {
 if (err) return;
 dispatch({
 type: UPDATE_LIKES_COUNT,
 payload: doc.new_val.value
 });
 });
 });
 });
 }); };
 
 export default {
 [WATCH_LIKES]: watchLikes
 }; Server-side 17
  • 19. @xebiconfr #xebiconfr 4a Pourquoi Docker et Kubernetes 19 - Le meilleur moyen de packager une application - Parce que nous voulons monter en charge rapidement - Sans Kubernetes, orchestrer des conteneurs est un enfer.
  • 20. @xebiconfr #xebiconfr 4b Notre architecture 20 RethinkDB Replicas RethinkDB Proxy API FEED NGINX FRONTEND
  • 21. @xebiconfr #xebiconfr 4c Test 1 : - 1 conteneur API - 1 conteneur FEED - 1 frontend - 500 clients / sec Résultat : 132ms / requête 0 Timeout / 0 Erreurs 500 / 0 Network errors Résultats 21
  • 22. @xebiconfr #xebiconfr 4d Test 2: - 10 conteneur API - 1 conteneur FEED - 1 frontend - 5000 clients / sec Résultat : 206ms / requête 0 Timeout / 0 Erreurs 500 / 0 Network errors Résultats 22