Devops for Growth
107.5K views | +8 today
Follow
Devops for Growth
For Product Owners/Product Managers and Scrum Teams: Growth Hacking, Devops, Agile, Lean for IT, Lean Startup, customer centric, software quality...
Curated by Mickael Ruau
Your new post is loading...
Your new post is loading...

Popular Tags

Current selected tag: 'architecture hexagonale'. Clear
Scooped by Mickael Ruau
Scoop.it!

Sober Look at Microservices - DZone Microservices

Sober Look at Microservices - DZone Microservices | Devops for Growth | Scoop.it
Curious observation: this is not always possible to do a transition from single to multiple deployable artifacts, or “break the monolith”. Not necessarily because “monolith” is poorly designed or implemented (this also happens, but it’s another story). The actual reason is that internal architecture might be not service-based. For example, Hexagonal Architecture is hard or impossible to refactor into service-based architecture. Another possible cause — for business reasons, it might be impossible to split domains into services. After all, applications are created to solve business problems, not vice versa.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

http://cdiese.fr/larchitecture-hexagonale-en-5-min/

L’objectif principal de l’architecture hexagonale est de découpler la partie métier d’une application de ses services techniques. Ceci dans le but de préserver la partie métier pour qu’elle ne contienne que des éléments liés aux traitements fonctionnels. Cette architecture est aussi appelée “Ports et Adaptateurs” car l’interface entre la partie métier et l’extérieur se fait, d’une part, en utilisant les ports qui sont des interfaces définissant les entrées ou sorties et d’autre part, les adaptateurs qui sont des objets adaptant le monde extérieur à la partie métier.

Dans cet article, on va dans un premier temps, expliquer plus en détails l’architecture hexagonale; comparer cette architecture avec une autre architecture moins polyvalente et enfin illustrer concrètement avec un exemple.

Mickael Ruau's insight:
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Architecture "Hexagonale"

Résumé en français de : https://thegreenbar.wordpress.com/2015/12/12/observations-about-clean-hexagonal-architecture/
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Architecture Hexagonale : trois principes et un exemple d’implémentation | OCTO Talks !

Architecture Hexagonale : trois principes et un exemple d’implémentation | OCTO Talks ! | Devops for Growth | Scoop.it

Principes de l’Architecture Hexagonale
Détail : Comment on organise le code à l’intérieur et à l’extérieur ?
Détail : Au Runtime
Détail : Inversion de Dépendances à droite
Détail : Pourquoi une Interface à gauche ?
Tester en Architecture Hexagonale
Pour aller plus loin
Références

Mickael Ruau's insight:

Documentée en 2005 dans son blog par Alistair Cockburn, l’Architecture Hexagonale est une architecture logicielle qui a beaucoup d’avantages et connaît depuis 2015 un regain d’intérêt.

L’intention originale de l’Architecture Hexagonale est :

Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases.

Soit en français :

Permettre à une application d’être pilotée aussi bien par des utilisateurs que par des programmes, des tests automatisés ou des scripts batchs, et d’être développée et testée en isolation de ses éventuels systèmes d’exécution et bases de données.

Pour explorer l’intérêt qu’il y a à piloter une application par des tests automatisés, et à la développer et tester en isolation de sa base de données par exemple, je vous conseille cette série sur la pyramide des tests : La pyramide des tests par la pratique.

La promesse est donc assez séduisante, et elle a un autre effet bénéfique : elle permet d’isoler le cœur de métier d’une application et de tester automatiquement son comportement indépendamment de tout le reste. Pas étonnant que cette architecture ait tapé dans l’oeil des praticiens de Domain-Driven Design (DDD). Attention, DDD et l’architecture hexagonale sont deux notions bien distinctes qui peuvent se renforcer mutuellement mais qui ne sont pas nécessairement utilisées ensemble. Mais ça, c’est un sujet pour une autre fois !

Pour finir, cette architecture n’est pas très compliquée à mettre en place car elle s’appuie sur des règles et principes simples et peu nombreux. Je vous propose d’explorer ces principes pour voir ce que ça implique concrètement.

 

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Pérennisez votre métier avec l'architecture hexagonale !

Pérennisez votre métier avec l'architecture hexagonale ! | Devops for Growth | Scoop.it
 

Dans la majorité des DSI où nous intervenons, nous faisons souvent le même constat depuis plusieurs années ; il reste difficile de produire des applications évolutives et pérennes. C’est d’autant plus vrai aujourd’hui alors que la révolution numérique (ne dites surtout pas digitale) bat son plein, entrainant des nouveautés incessantes en termes de technologies, d’outillage, etc. Ainsi, il est assez courant d’entendre que la durée de vie d’une application ne dépasse pas 4-5 ans et toute ou partie de la connaissance métier se perd après chaque redémarrage à zéro, malgré toute la bonne volonté du monde.

Plus précisément, nous observons chez nos clients :

  • Des choix techniques précipités. Ces derniers sont la majorité du temps faits au début du projet, alors que la connaissance est à son niveau le plus faible (volume d’utilisateurs, pics de charge, adéquation aux contraintes métier). C’est un pari sur le futur qui s’avère souvent désastreux et se fait au détriment de la connaissance métier, qui elle aussi est à son niveau le plus bas.

 

  • Un immobilisme technique. Une fois ces choix techniques faits, il est souvent difficile voire impossible de s’en défaire. Cela nécessite la plupart du temps de re-tester le périmètre complet de l’application et induit un très fort risque de régressions. Plus le temps passe, plus l’application grossit et plus l’immobilisme grandit jusqu’à atteindre un point de non-retour. Ce problème trouve son origine dans l’incapacité des équipes à séparer la logique métier des technologies, frameworks et outils utilisés.
  • Une faible testabilité de la logique métier. Ne pas séparer la logique métier de l’infrastructure n’a pas que des impacts techniques. Dans bien des équipes, les tests fonctionnels font intervenir un grand nombre de couches techniques (bases de données, middlewares). De ce fait, ils sont souvent longs à s’exécuter, le sont rarement (au mieux une fois par jour) et sont friables. Au final, ils sont souvent rares voire même abandonnés car la boucle de feedback est trop longue et trop difficile à mettre en place. En conséquence, les testeurs (ou QA) perdent la majorité de leur temps à répéter manuellement des tests qui pourraient être automatisés, réduisant ainsi la part exploratoire de leur travail. Ceci n’est évidemment pas sans conséquence sur la qualité finale de l’application.

Pour faire face à ces problèmes, il convient de faire usage d’une approche isolant logique métier et couches techniques.
Chez Xebia, nous pensons que c’est essentiel afin :

  • d’assurer la pérennité du métier de son application (les technologies doivent pouvoir changer sans risque de régression) ;
  • de renforcer l’appétence des équipes au métier, voie royale vers une plus grande qualité et une plus grande adéquation des livrables aux besoins clients.

Dans cet article, nous vous proposons de découvrir l’une de ces approches : l’architecture hexagonale.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Architecture hexagonale (logiciel) — Wikipédia

Architecture hexagonale (logiciel) - Wikipédia

Un article de Wikipédia, l'encyclopédie libre. L' architecture hexagonale, ou architecture à base de ports et d'adaptateurs, est un patron d'architecture utilisé dans le domaine de la conception des logiciels. Elle vise à créer des systèmes à base de composants d'application qui sont faiblement couplés et qui peuvent être facilement connectés à leur environnement logiciel au moyen de ports et d'adaptateurs.

No comment yet.