Microservices : Etes-vous prêt à relever le défi ?

© Martin Fowler

Durant les dernières décennies, plusieurs nouvelles méthodologies et architectures ont été introduites dans l’industrie logicielle, toutes avec la promesse de rendre les entreprises plus productives, agiles, flexibles et  capables de répondre plus efficacement aux changements imposés par le marché et les réglementations. Ainsi on a vu les services Web, SOA, les architectures basées sur les composants, les ESB, et j’en passe.

Aujourd'hui c'est au tour des microservices.

La mise en œuvre d’une architecture en microservices se heurte à plusieurs problématiques organisationnelles, conceptuelles et techniques. Je me contenterai dans cet article de citer un exemple de chaque type :

TYPESCRIPT : Du Super JS

TypeScript est un langage de programmation JavaScript open-source développé par Microsoft (Co-créé par Anders Hejlsberg, principal inventeur de C#).

Il constitue un sur-ensemble de JavaScript, ce qui signifie que tout code JavaScript valide peut être utilisé avec TypeScript. Le code est transpilé par le biais d’un transpileur vers du code JS standard, qui lui sera interprété par le navigateur.

Son but principal est d'améliorer et sécuriser la production de code JS.

Customer development

J'ai participé au Workshop introduction au Customer Service présenté par @AlexJubien au Web2Day de Nantes.
Après nous avoir présenté les courbes de croissances exponentielles que doivent faire les Start-Up, on s'est arrêté sur sa courbe adaptée où se mêle enthousiasme, confrontation à la réalité, puis expérimentation... et particulièrement sur le Product/Market Fit.
Ce point particulier où le produit tant rêvé match avec la réalité du marché, et qui va permettre à notre Start-up de décoller.

Mais comment trouver ce point, le bon produit? Et puis, en quoi cela peut nous intéresser si on ne souhaite pas monter sa Start-Up?

Devoxx 2017 : Retour sur « Soyez une ‘feign’asse quand vous écrivez un client REST Java »

J'ai eu l'opportunité de me rendre à la Devoxx 2017, durant laquelle j'ai pu participer à la conférence "Soyez une 'feign'asse quand vous écrivez un client REST Java" présentée par Alexandre NAVARRO, lead dev à la Société Générale.

L'objectif de cette présentation était de faire une démonstration de la librairie Feign, développée par Netflix. Cette librairie permet de simplifier grandement le développement d'un client REST en Java, afin de récupérer des données venant de services externes.

Bases de Sécurité

La sécurité informatique est un enjeu majeur dans le monde de l’entreprise. Trois objectifs principaux s’en dégagent. Il faut tout d’abord s’assurer de l’intégrité des données, elles ne doivent pas être altérées. De plus, il est essentiel d’en garantir la disponibilité dans le cadre prévu. Et enfin il faut évidemment veiller à la confidentialité des données. Il est également possible d’ajouter trois autres objectifs que sont la traçabilité de la donnée ce qui signifie concrètement que l’accès ou la tentative d’accès à la donnée est conservé. Il y a aussi l’authentification qui permet la gestion des droits d’accès utilisateur. Et enfin la non-répudiation  dans le sens où chacun est responsable de ses actions et qu’aucun tiers ne doit être en mesure de s’en attribuer la paternité.

Partant de ce constat, il existe énormément de failles de sécurité. Ici nous nous focaliserons davantage sur le domaine du Web. Le but de cet article n’est pas d’en faire une liste exhaustive mais simplement de s’intéresser à une poignée d’entre elles en les définissant de façon générale et par l’exemple pour finir sur quelques bonnes pratiques Php à adopter.

* * *

jOOQ : Faire du SQL en JAVA

Le framework jOOQ (Java Object Oriented Querying) permet de réaliser simplement des requêtes SQL en JAVA, et supportant les principaux SGBD (Postgres, MySQL, Oracle, H2...)

jOOQ repose sur un système de génération de code afin de créer les classes correspondant aux tables présentes en base. Afin d'en bénéficier il suffit d'ajouter le plugin jooq-codegen dans le pom.xml et d’exécuter le goal maven generate-sources.