SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Architecture d'une 
application full API 
orientée micro service
Présentation 
• Yves Heitz 
DevOps Klubup 
• Xavier Gorse / @xgorse 
CTO & Co-fondateur Klubup 
Fondateur Elao
Qu’est ce qu’un micro service ? 
http://martinfowler.com/articles/microservices.html
Qu’est ce qu’un micro service ? 
http://martinfowler.com/articles/microservices.html
Klubup 
• Connecter les @personnes et les #passions 
autour de la notion du Klub 
• On est membre d’un Klub 
• On partage dans un Klub 
• On sponsorise un Klub
Klubup 
• Liste des services
Services 
Klub SF2 Mysql 
Search Silex SOLR 
Pics Silex - 
Register NodeJS Redis 
Provider NodeJS - 
Metrics GO Logentries 
Notification PHP Iron.io Firebase
Applications 
Front Backbone 
iOS ObjectiveC 
Android Java 
Mirador SF2 
Twitter streaming MeteorJS 
GraphManager MeteorJS
Pourquoi ? 
• Appli monolithique de 60 Bundles 
• Mobile 
• Application full Javascript 
• Optimisation des dev Back/Front
Bon candidat à un service 
• Scope fonctionnel délimité 
• Datastore spécifique 
• Bootstrap d’un nouveau fonctionnel 
• Nouvelle techno
Mauvais candidat à un service 
• Data existante 
• Transactionnel 
• Nano service 
• Nouvelle techno
Quelle techno pour mon service ? 
• Compétences 
• Productivité 
• Performance 
• Evolution de techno
Communication 
• HTTP : Universel 
• API REST JSON : Universel, Simple 
• Consommation directe 
• Consommation encapsulée via un service
Gestion d’erreurs 
• Accepter 
• Criticité 
• Front 
• Back
Sécurité 
• OAuth2 pour les applications 
• OAuth2, Hawk et réseau privé pour les services 
• OAuth2 pas adapté entre les services 
• HTTPS
Transactionnel 
• Pas de gestion de transaction cross services 
• Seulement au sein d'un service 
• Accepter l’erreur pour éviter les transactions
Monitoring / Reporting 
• Basé sur les log avec Logentries 
• RequestId pour regrouper les logs 
• UserAgent des applications et des services
Monitoring / Reporting 
• Basé sur les log avec Logentries 
• RequestId pour regroupé les logs 
• UserAgent des applications et des services
Scalabilité 
• Isolation 
• Horizontalement / Verticalement 
• Séparation API Lecture / Ecriture 
• Concurrency des workers 
• Humaine : 1 team / 1 service
Performance 
• Rendre la main le plus vite possible au front 
• Difficulté de la parallélisation en PHP 
• Limiter les rebonds entre les services 
• Latence HTTP 
• Traitement asynchrone
Asynchrone 
• Iron.io SAAS : IronMQ & IronWorker 
• Callback HTTP 
• Messaging avec workers 
• Généralisation des messages sur toutes les API
Iron.io
Cache 
• Pas de cache au niveau applicatif 
• Séparation /public/* et /private/* 
• Public : Cache HTTP via Varnish 
• Private : pas de cache pour l’instant
Infra 
• Provisionning avec Chef OpsCode 
• VM via OpenVz 
• Autonomie des deploy Applications/Services 
• Impact nouveau service / nouvelle techno
Conclusion 
• Composant 
• Orienté métier 
• Approche produit 
• Décentralisation 
• Infrastructure automatisée 
• Gestion des erreurs
Conclusion 
• Couplage : Applications, Services, Infra 
• Bootstrap rapide 
• Industrialisation et refactoring douloureux 
• Ouverture du code 
• Setup et debug compliqués
Next Step ? 
• Baptême du feu à la charge 
• Rationalisation 
• Industrialisation 
• Docker
Merci 
Recrute sur Lyon Recrute sur Paris

Mais conteúdo relacionado

Último

rapport stage OCP : Elaboration plan des machines : La machine stockeuse et ...
rapport stage OCP : Elaboration plan des machines :  La machine stockeuse et ...rapport stage OCP : Elaboration plan des machines :  La machine stockeuse et ...
rapport stage OCP : Elaboration plan des machines : La machine stockeuse et ...NiHad27
 
webinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdf
webinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdfwebinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdf
webinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdfInstitut de l'Elevage - Idele
 
2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx
2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx
2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptxBassamRhouma
 
webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...
webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...
webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...Institut de l'Elevage - Idele
 
QCM Réseaux informatique V19.02.2017.pdf
QCM Réseaux informatique V19.02.2017.pdfQCM Réseaux informatique V19.02.2017.pdf
QCM Réseaux informatique V19.02.2017.pdfAyoub893663
 
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdf
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdfwebinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdf
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdfInstitut de l'Elevage - Idele
 

Último (6)

rapport stage OCP : Elaboration plan des machines : La machine stockeuse et ...
rapport stage OCP : Elaboration plan des machines :  La machine stockeuse et ...rapport stage OCP : Elaboration plan des machines :  La machine stockeuse et ...
rapport stage OCP : Elaboration plan des machines : La machine stockeuse et ...
 
webinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdf
webinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdfwebinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdf
webinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdf
 
2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx
2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx
2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx
 
webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...
webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...
webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...
 
QCM Réseaux informatique V19.02.2017.pdf
QCM Réseaux informatique V19.02.2017.pdfQCM Réseaux informatique V19.02.2017.pdf
QCM Réseaux informatique V19.02.2017.pdf
 
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdf
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdfwebinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdf
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdf
 

Architecture d'une application Full API orienté micro service

  • 1. Architecture d'une application full API orientée micro service
  • 2. Présentation • Yves Heitz DevOps Klubup • Xavier Gorse / @xgorse CTO & Co-fondateur Klubup Fondateur Elao
  • 3. Qu’est ce qu’un micro service ? http://martinfowler.com/articles/microservices.html
  • 4. Qu’est ce qu’un micro service ? http://martinfowler.com/articles/microservices.html
  • 5. Klubup • Connecter les @personnes et les #passions autour de la notion du Klub • On est membre d’un Klub • On partage dans un Klub • On sponsorise un Klub
  • 6. Klubup • Liste des services
  • 7. Services Klub SF2 Mysql Search Silex SOLR Pics Silex - Register NodeJS Redis Provider NodeJS - Metrics GO Logentries Notification PHP Iron.io Firebase
  • 8. Applications Front Backbone iOS ObjectiveC Android Java Mirador SF2 Twitter streaming MeteorJS GraphManager MeteorJS
  • 9. Pourquoi ? • Appli monolithique de 60 Bundles • Mobile • Application full Javascript • Optimisation des dev Back/Front
  • 10. Bon candidat à un service • Scope fonctionnel délimité • Datastore spécifique • Bootstrap d’un nouveau fonctionnel • Nouvelle techno
  • 11. Mauvais candidat à un service • Data existante • Transactionnel • Nano service • Nouvelle techno
  • 12. Quelle techno pour mon service ? • Compétences • Productivité • Performance • Evolution de techno
  • 13. Communication • HTTP : Universel • API REST JSON : Universel, Simple • Consommation directe • Consommation encapsulée via un service
  • 14. Gestion d’erreurs • Accepter • Criticité • Front • Back
  • 15. Sécurité • OAuth2 pour les applications • OAuth2, Hawk et réseau privé pour les services • OAuth2 pas adapté entre les services • HTTPS
  • 16. Transactionnel • Pas de gestion de transaction cross services • Seulement au sein d'un service • Accepter l’erreur pour éviter les transactions
  • 17. Monitoring / Reporting • Basé sur les log avec Logentries • RequestId pour regrouper les logs • UserAgent des applications et des services
  • 18. Monitoring / Reporting • Basé sur les log avec Logentries • RequestId pour regroupé les logs • UserAgent des applications et des services
  • 19. Scalabilité • Isolation • Horizontalement / Verticalement • Séparation API Lecture / Ecriture • Concurrency des workers • Humaine : 1 team / 1 service
  • 20. Performance • Rendre la main le plus vite possible au front • Difficulté de la parallélisation en PHP • Limiter les rebonds entre les services • Latence HTTP • Traitement asynchrone
  • 21. Asynchrone • Iron.io SAAS : IronMQ & IronWorker • Callback HTTP • Messaging avec workers • Généralisation des messages sur toutes les API
  • 23. Cache • Pas de cache au niveau applicatif • Séparation /public/* et /private/* • Public : Cache HTTP via Varnish • Private : pas de cache pour l’instant
  • 24. Infra • Provisionning avec Chef OpsCode • VM via OpenVz • Autonomie des deploy Applications/Services • Impact nouveau service / nouvelle techno
  • 25. Conclusion • Composant • Orienté métier • Approche produit • Décentralisation • Infrastructure automatisée • Gestion des erreurs
  • 26. Conclusion • Couplage : Applications, Services, Infra • Bootstrap rapide • Industrialisation et refactoring douloureux • Ouverture du code • Setup et debug compliqués
  • 27. Next Step ? • Baptême du feu à la charge • Rationalisation • Industrialisation • Docker
  • 28. Merci Recrute sur Lyon Recrute sur Paris