Transcript
Page 1: Architecture d'une application Full API orienté micro service

Architecture d'une application full API

orientée micro service

Page 2: Architecture d'une application Full API orienté micro service

Présentation

• Yves HeitzDevOps Klubup

• Xavier Gorse / @xgorse CTO & Co-fondateur KlubupFondateur Elao

Page 3: Architecture d'une application Full API orienté micro service

Qu’est ce qu’un micro service ?

http://martinfowler.com/articles/microservices.html

Page 4: Architecture d'une application Full API orienté micro service

Qu’est ce qu’un micro service ?

http://martinfowler.com/articles/microservices.html

Page 5: Architecture d'une application Full API orienté micro service

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

Page 6: Architecture d'une application Full API orienté micro service

Klubup

• Liste des services

Page 7: Architecture d'une application Full API orienté micro service

ServicesKlub SF2 Mysql

Search Silex SOLR

Pics Silex -

Register NodeJS Redis

Provider NodeJS -

Metrics GO Logentries

Notification PHP Iron.io Firebase

Page 8: Architecture d'une application Full API orienté micro service

ApplicationsFront Backbone

iOS ObjectiveC

Android Java

Mirador SF2

Twitter streaming MeteorJS

GraphManager MeteorJS

Page 9: Architecture d'une application Full API orienté micro service

Pourquoi ?

• Appli monolithique de 60 Bundles

• Mobile

• Application full Javascript

• Optimisation des dev Back/Front

Page 10: Architecture d'une application Full API orienté micro service

Bon candidat à un service

• Scope fonctionnel délimité

• Datastore spécifique

• Bootstrap d’un nouveau fonctionnel

• Nouvelle techno

Page 11: Architecture d'une application Full API orienté micro service

Mauvais candidat à un service

• Data existante

• Transactionnel

• Nano service

• Nouvelle techno

Page 12: Architecture d'une application Full API orienté micro service

Quelle techno pour mon service ?

• Compétences

• Productivité

• Performance

• Evolution de techno

Page 13: Architecture d'une application Full API orienté micro service

Communication

• HTTP : Universel

• API REST JSON : Universel, Simple

• Consommation directe

• Consommation encapsulée via un service

Page 14: Architecture d'une application Full API orienté micro service

Gestion d’erreurs

• Accepter

• Criticité

• Front

• Back

Page 15: Architecture d'une application Full API orienté micro service

Sécurité

• OAuth2 pour les applications

• OAuth2, Hawk et réseau privé pour les services

• OAuth2 pas adapté entre les services

• HTTPS

Page 16: Architecture d'une application Full API orienté micro service

Transactionnel

• Pas de gestion de transaction cross services

• Seulement au sein d'un service

• Accepter l’erreur pour éviter les transactions

Page 17: Architecture d'une application Full API orienté micro service

Monitoring / Reporting

• Basé sur les log avec Logentries

• RequestId pour regrouper les logs

• UserAgent des applications et des services

Page 18: Architecture d'une application Full API orienté micro service

Monitoring / Reporting

• Basé sur les log avec Logentries

• RequestId pour regroupé les logs

• UserAgent des applications et des services

Page 19: Architecture d'une application Full API orienté micro service

Scalabilité

• Isolation

• Horizontalement / Verticalement

• Séparation API Lecture / Ecriture

• Concurrency des workers

• Humaine : 1 team / 1 service

Page 20: Architecture d'une application Full API orienté micro 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

Page 21: Architecture d'une application Full API orienté micro service

Asynchrone

• Iron.io SAAS : IronMQ & IronWorker

• Callback HTTP

• Messaging avec workers

• Généralisation des messages sur toutes les API

Page 22: Architecture d'une application Full API orienté micro service

Iron.io

Page 23: Architecture d'une application Full API orienté micro service

Cache

• Pas de cache au niveau applicatif

• Séparation /public/* et /private/*

• Public : Cache HTTP via Varnish

• Private : pas de cache pour l’instant

Page 24: Architecture d'une application Full API orienté micro service

Infra

• Provisionning avec Chef OpsCode

• VM via OpenVz

• Autonomie des deploy Applications/Services

• Impact nouveau service / nouvelle techno

Page 25: Architecture d'une application Full API orienté micro service

Conclusion

• Composant

• Orienté métier

• Approche produit

• Décentralisation

• Infrastructure automatisée

• Gestion des erreurs

Page 26: Architecture d'une application Full API orienté micro service

Conclusion

• Couplage : Applications, Services, Infra

• Bootstrap rapide

• Industrialisation et refactoring douloureux

• Ouverture du code

• Setup et debug compliqués

Page 27: Architecture d'une application Full API orienté micro service

Next Step ?

• Baptême du feu à la charge

• Rationalisation

• Industrialisation

• Docker

Page 28: Architecture d'une application Full API orienté micro service

Merci

Recrute sur ParisRecrute sur Lyon


Recommended