Archi & techno

Circuit breaker, un pattern pour fiabiliser vos systèmes distribués (ou microservices) : partie 3

Maintenant que nous avons vu la théorie sur les précédents articles disponibles ici et ici, penchons-nous sur la pratique.

Comment l’implémenter ?

Plusieurs solutions sont possibles pour l’implémenter.
Par exemple en Java il existe des librairies qui le font pour nous comme :

Focalisons-nous sur Netflix Hystrix.

Lire la suite

Sécurité

Mon premier certificat

Mon premier certificat

Je dois passer mon site en https mais je ne sais pas comment faire

– Pour passer ton site en https, il te faut un certificat, et tu vas voir, ce n’est pas très compliqué.

– Un certifiquoi ?

– Un certificat. Les certificats permettent de chiffrer les messages et d’authentifier.

— Et en français, ça veut dire quoi ?

— Ça te permet d’authentifier, c’est à dire vérifier l’identité de la personne / entreprise. Dans ton cas, ça permettra aux utilisateurs de ton site de s’assurer que le site appartient bien à ton entreprise. La partie chiffrement permet de faire en sorte que seul toi puisse lire le message, il est incompréhensible pour les autres car ils n’ont pas la clé pour le déchiffrer.

– Et ça marche comment ?

Lire la suite

Digitalisation

#PortraitDeCDO, mais qui sont les Chief Digital Officer ?

Découvrez qui sont les Chief Digital Officer avec #PortraitDeCDO

#portraitdecdo

Le métier de Chief Digital Officer (CDO) ou Directeur Digital est apparu depuis 2 ans dans la plupart des grandes entreprises du CAC40. Il se développe maintenant au sein des ETI, et parfois même les PME en ont un. Mais alors comment expliquer un tel engouement ? Mal ou peu connu, mal  ou peu compris, mal identifié, avec un rôle très différent d’un secteur à l’autre, d’une entreprise à une autre, ce nouveau métier reste encore assez obscur pour les non-initiés. Les contours de son intervention au sein de son entreprise sont très variables, sa mission et les moyens qui lui sont alloués le sont tout autant. Il s’agit a priori d’un job transitoire, en tout cas on imagine mal qu’il puisse rester dans sa forme actuelle dans les années à venir.

Lire la suite

Archi & techno

Circuit breaker, un pattern pour fiabiliser vos systèmes distribués (ou microservices) : partie 2

Lors de l’article précédant, nous avons vu quelques solutions possible pour résoudre la gestion des dépendances (externe ou interne) qui peuvent (et le seront tôt ou tard) défaillantes lors de l’exécution de notre application.

Regardons d’un peu plus près le design pattern circuit breaker.

Une solution possible : le design pattern circuit breaker ?

Le circuit breaker permet de contrôler la collaboration entre différents services afin d’offrir une grande tolérance à la latence et à l’échec.

Pour cela, en fonction d’un certain nombre de critères d’erreur (timeout, nombre d’erreurs, élément dans la réponse), ce pattern permet de désactiver l’envoi de requêtes au service appelé et de renvoyer plus rapidement une réponse alternative de repli (fallback), aussi appelé graceful degradation.

 

 

Design pattern : circuit breaker

Lire la suite

IoT

L’administration des objets connectés (Device management) Partie 1 / 2

Périmètre de l’administration des objets connectés

De la nécessité de l’administration des objets

Les projets d’objets connectés commencent souvent par valider le cas d’usage métier avec quelques dizaines d’objets prototypes. Les objets sont alors paramétrés à la main et suivis individuellement dans une feuille excel… Le cycle de vie de l’objet est “artisanal”. Mais lorsque l’entreprise veut passer à l’échelle industrielle, elle s’aperçoit que le nombre d’objets et de leurs variations matérielles et logicielles font du cycle de vie un casse-tête. La nécessité d’organiser la vie des objets et de disposer d’applications d’administration pour assurer la qualité de service attendue devient impérieuse. Chez OCTO, nous considérons que l’administration des objets est le deuxième sujet le plus prioritaire après la validation du cas d’usage métier. Lire la suite

Archi & techno

Circuit breaker, un pattern pour fiabiliser vos systèmes distribués (ou microservices) : partie 1

L’évolution des besoins (réductions des coûts et du time to market, concept d’ATAWAD (AnyTime, AnyWhere, AnyDevice)…) a mis en avant certaines architectures (architecture  applicative cloud ready, architecture microservices, architecture distribuée…).

Cela a engendré de nouvelles problématiques, en particulier l’augmentation du nombre de dépendances et donc potentiellement soumise au réseau.

C’est à ce moment qu’apparaissent à nouveau les “Illusions de l’informatique distribuée” :

  • Le réseau est fiable.
  • Le temps de latence est nul.
  • La bande passante est infinie.
  • Le réseau est sûr.
  • La topologie du réseau ne change pas.
  • Il y a un et un seul administrateur réseau.
  • Le coût de transport est nul.
  • Le réseau est homogène.

Et ces illusions ne prennent pas en compte la partie dépendance et leurs lots de problèmes (crash, temps de réponse lent, réponse non conforme…).

Pour répondre à ces défis, la philosophie de design for failure (les traitements applicatifs doivent, dès leur conception, prévoir le cas où les composants qu’ils appellent pourraient tomber en erreur) a pris encore plus d’importance.

Et donc nous somme passé de « prévenir toutes les défaillances » à « les défaillances font partie du jeu ».

Parmi toutes les solutions composant le design for failure, nous allons nous pencher sur le design pattern “Circuit Breaker” popularisé par Michael Nygard dans le livre “Release It!”.

Mais avant cela, faisons un tour rapide sur d’autres solutions permettant de gérer des problèmes de dépendances.

Lire la suite

IoT

Libérer les forces créatrices de l’IoT

La vision

Les objets connectés et leur logiciel embarqué deviennent une partie intégrante du système d’information d’entreprise. En passant d’un SI centré sur les applications “serveur”, puis à un SI où le mobile tient une place stratégique,  on arrive à un SI où les applications serveurs, le mobile et les objets connectés forment un SI totalement distribué. Avec des capacités toujours plus fortes et des prix toujours plus bas, l’objet connecté rejoint les serveurs et les mobiles dans le domaine du développement logiciel d’entreprise.

libereriot

L’objet connecté se positionne aujourd’hui comme l’application mobile s’est positionnée hier, d’abord à l’extérieur de l’entreprise (studios, agences Web)  jusqu’au moment où la DSI a repris son destin en main en réalisant elle-même ses applications mobiles. Il en va de même pour les objets connectés. Lire la suite

Big Data

Classification d’images : les réseaux de neurones convolutifs en toute simplicité

Vous souhaitez créer une IA capable de classifier des images ?

  • Qu’elle reconnaisse Pikachu sur Pokemon Go ?
  • Qu’elle automatise des opérations répétitives comme le tri de légumes ?
  • Voire qu’elle réalise des tâches expertes comme un diagnostic de la rétinopathie diabétique

Les réseaux de neurones convolutifs sont l’outil de choix dans la besace du Data Scientist pour ce type de problèmes. Ce sont des algorithmes phares du Deep Learning, objets d’intenses recherches… dont la richesse peut impressionner.

Il est pourtant possible de créer très simplement des modèles performants : avec peu d’images, peu de capacités de calcul et sans maîtrise des arcanes algorithmiques. Toute l’astuce consiste à réutiliser des réseaux pré-entraînés sur d’autres problèmes, par des techniques de transfer learning. La librairie open-source Keras permet de coder cela en quelques lignes, avec une API claire et de haut niveau.

Ce guide prend pour exemple la récente compétition Kaggle StateFarm, une excellente arène pour développer vos capacités de dresseurs d’algorithmes. Nous introduisons deux techniques de transfer learning qui donnent d’excellents résultats. Puis nous traversons ensemble les couches techniques mises en oeuvre, pour déjouer les embûches théoriques et pratiques que vous pourriez rencontrer.  Lire la suite

Archi & techno

La PKI Vault sur le grill

Vault (par HashiCorp) est un coffre fort permettant de stocker divers secrets, de les restituer, voire de les générer. Beef GrillPlus concrètement, il peut fournir à des utilisateurs ou à des services tout un tas de secrets – généralement temporaires – comme des certificats, des tokens, des couples login/mot de passe générés dans une instance PostgreSQL ou MongoDB et bien d’autres … et le tout par le CLI fourni ou par son API HTTP.

HashiCorp propose deux versions de l’application, une OpenSource et une payante – Vault Enterprise – avec support éditeur et quelques fonctionnalités supplémentaires : l’intégration aux modules HSM, une IHM utilisateur, un dashboard permettant de monitorer la bonne santé de l’instance et un workflow de gestion (init & unseal) améliorés.

L’éditeur est déjà connu pour ses solutions Packer, Terraform ou Consul. Avec Vault il vient compléter son panel d’outillage DevOps et OpenSource.

Nous souhaitons intégrer Vault chez un client où nous automatisons déjà tout, de l’allocation des réseaux aux déploiements des applications finales. Dans un besoin de sécurisation des flux entre ces applications, avoir une PKI as-a-service qui peut générer à la demande des certificats reconnus par l’entreprise devient donc indispensable. Nous vous proposons donc de découvrir Vault et de vous faire une idée de la façon dont Vault peut répondre à ce besoin.
Lire la suite