Simplicité, réutilisabilité et scalabilité
Concepts plateforme Introduction Réutilisabilité Scalabilité Simplicité Simplicité (code) Avantages Inconvénients
« Le commencement est la moitié de tout » OSGI Annuaire de services Déploiement à chaud BundleClassLoader Manifest.MF
« Du commencement on peut augurer la fin » JMS Messaging Concurrent aux event OSGI, mais beaucoup plus complet Apache Camel
Concepts plateforme Introduction Réutilisabilité Scalabilité Simplicité Simplicité (code) Avantages Inconvénients
« Plus on partage, plus on possède, voilà le miracle » Registre de services OSGI Un ou plusieurs services répondent au même besoin Filtre style LDAP Plusieurs façon de faire: SCR Blueprint Declarative services IPojo Programmatique
« On ne jouit bien que de ce qu’on partage » Accès sous forme d’appel JMS/WebSocket/Rest… Des routes Camel pour les redirections
« Détruire la concurrence, c’est tuer l’intelligence » Export de packages Fin de la « ClassLoader Hell » Support de multiple versions du même bundle Pas d’arrêt du serveur lors du déploiement d’une archive
Concepts plateforme Introduction Réutilisabilité Scalabilité Simplicité Simplicité (code) Avantages Inconvénients
« Tout enfant est en quelque façon un génie, et tout génie un enfant » Créations de VMs « On the Fly » Provisioning à partir d’une configuration serveur parent où via repository Maven Le service tracker ne détecte pas de service ayant le critère (availability < 80%) Création d’une machine via API cloud Téléchargement d’un serveur, démarrage, déploiement des frameworks sous jacents (Maven/Jenkins) Duplication du bundle ayant atteint son maximum de charges
« On peut déléguer des tâches, mais pas les responsabilités » Scalabilité via messaging JMS Web VM JMS JMS
Concepts plateforme Introduction Réutilisabilité Scalabilité Simplicité Simplicité (code) Avantages Inconvénients
« La simplicité est la sophistication suprême » Déploiement du socle/des archives via Jenkins (Continuous delivery)
« La simplicité est l’habit de la perfection » Archetype Maven pour le squelette de projet Mvn archetype:generate –DgroupId=net.osgiliath –DartifactId=archetype-osgi-jar
« La simplicité est le secret de la réussite » Enterprise Integration patterns Tout est message Web->Biz = Stomp/Websocket Biz->Biz = JMS Splitter/Aggregator Service Activator Wire Tap Router Gateway Transformer Channel adapter Filter
Concepts plateforme Introduction Réutilisabilité Scalabilité Simplicité Simplicité (code) Avantages Inconvénients
« La simplicité véritable allie la bonté à la beauté » Lombok Guava Spring Data JPA Fluent Builder Generator
« L’amour est aussi grand par le bavardage que par la conscision » Camel Bundlor Blueprint
Concepts plateforme Introduction Réutilisabilité Scalabilité Simplicité Simplicité (code) Avantages Inconvénients
« Davantage d’avantages avantagent davantage » Déploiement à chaud Chaque modification sur un ‘projet’ ne prend qu’une seconde à se déployer Le serveur du développeur démarre en début de semaine et s’arrête à la fin! Pas de coupure de prod ESB ready
« Qui écoute a l’avantage, qui parle, le donne aux autres » Componentisé Un bundle ne contient que quelques classes de classes conçue de manière découplées. Découpages entre API, SPI et implémentations. Catalogue de solution enfin disponible! EIP
« L’avantage de l’amour sur la débauche, c’est la multitude des plaisirs » Atomicité Plan de déploiement Un import ou un service n’est plus disponible: seule la chaine impactée s’arrête (mode failover présent de facto!)
Concepts plateforme Introduction Réutilisabilité Scalabilité Simplicité Simplicité (code) Avantages Inconvénients
« Quand une bonne chose à un inconvénient, il est d’ordinairement plus prudent d’ôter l’inconvénient que la chose » Test d’intégration avec les bundles AOP très difficiles à mettre en œuvre AOP différent de celui de JEE (framework hook)
« A vaincre sans péril, on triomphe sans gloire » Penser réutilisable n’est pas un acquis pour tout le monde. EIP Être consciencieux Trouver le mauvais bundle peut se révéler difficile
« Gouverner, c’est choisir entre deux inconvénients » Concepts avancés à intégrer par les architectes Duplicate export BundleClassLoader Service/BundleTracker Blueprint extensions Dynamicité des services et failover opérationnels
« Une question est une réponse » Charlie Mordant on G+ @Tcharl on twitter http://osgiliath.net
Creative Commons Attribution: Toutes les licences Creative Commons obligent ceux qui utilisent vos oeuvres à vous créditer de la manière dont vous le demandez, sans pour autant suggérer que vous approuvez leur utilisation ou leur donner votre aval ou votre soutien. Partage à l’identique: Vous autorisez les autres à reproduire, diffuser et modifier votre œuvre, à condition qu’ils publient toute adaptation de votre œuvre sous les mêmes conditions que votre oeuvre. Toute personne qui souhaiterait publier une adaptation sous d’autres conditions doit obtenir votre autorisation préalable. Pas d’utilisation commerciale: Vous autorisez les autres à reproduire, à diffuser et (à moins que vous choisissiez ‘Pas de Modification’) à modifier votre œuvre, pour toute utilisation autre que commerciale, à moins qu’ils obtiennent votre autorisation au préalable.