All posts in Nos clients

ElasticSearch ILM et répartition des données

Description

La gestion d’une centaine de milliards de documents (données issues de logs applicatifs, équipements réseau, middlewares, etc.) s’avère coûteuse (machines, disques, espace de sauvegarde, etc.).
Pour alléger ce coût d’infrastructure nous devons distinguer les données brûlantes des données tièdes et froides (voir gelées). C’est ce que propose ElasticSearch avec l’ILM (Index Lifecycle Management). Nous vous proposons ainsi d’analyser sa mise en œuvre sur un cluster de production d’un de nos clients.
Les données considérées brûlantes doivent être exploitables dans des temps de réponse très courts, nous devons donc les placer sur des machines dimensionnées correctement. Les requêtes sur les données tièdes et froides n’ont pas besoin d’être aussi performantes, ces données peuvent donc automatiquement être déplacées vers des machines plus modestes grâce aux règles de rétention offertes par ILM.

Limitations des écrans dans Kibana et Cerebro

Kibana, l’interface graphique de la suite Elastic ne propose pas une vue synthétique de cette répartition. Nous pouvons obtenir cette information de répartition grâce à plusieurs requêtes, mais nous devons alors croiser les résultats, ce qui est fastidieux.
Cerebro, une interface graphique issue de la communauté open source, est excellent dans la visualisation de la répartition de la charge, mais ne propose pas cette visualisation au niveau du cycle de vie.
Même constat pour Elasticvue, qu’il s’agisse de sa version desktop, extension Chrome ou webapp.
Un moyen d’obtenir les informations souhaitées est donc de passer par l’API d’ElasticSearch.
Avec une première API nous pouvons obtenir les rôles des machines :

GET _nodes/settings?filter_path=nodes.*.roles,nodes.*.name

{
  "nodes": {
    "ECNRRDP2SUKmcu3s9qJgnA": {
      "name": "es3",
      "roles": [
        "data_cold",
        "ingest",
        "master"
      ]
    },
    "NXZNCa_BQ_SE613oSnDf-g": {
      "name": "es6",
      "roles": [
        "data_cold",
        "ingest",
        "master"
      ]
    },
    "jqmdwzdeQHG84601oQjpGw": {
      "name": "es1",
      "roles": [
        "data",
        "data_hot",
        "ingest",
        "master"
      ]
    },
    "4z2k13n8SZS4t2JmLielaQ": {
      "name": "es4",
      "roles": [
        "data",
        "data_hot",
        "ingest",
        "master"
      ]
    },
    "AFRMIIagRWK4Cu-ZhbLH2A": {
      "name": "es5",
      "roles": [
        "data_warm",
        "ingest",
        "master"
      ]
    },
    "sxljzKF-Q1app0VSkVgTxg": {
      "name": "es2",
      "roles": [
        "data_warm",
        "ingest",
        "master"
      ]
    }
  }
}

Puis avec une deuxième API nous pouvons récupérer le cycle de vie des indices (index au pluriel).

GET /*/_settings?filter_path=*.settings.index.routing.allocation.include,*.settings.index.uuid,*.settings.index.provided_name

{
  ".ds-my-index-1-2024.09.17-003772": {
    "settings": {
      "index": {
        "routing": {
          "allocation": {
            "include": {
              "_tier_preference": "data_hot"
            }
          }
        },
        "provided_name": ".ds-my-index-1-2024.09.17-003772",
        "uuid": "HyELPU6oTpC_EfskAxP5BQ"
      }
    }
  },
  ".ds-my-index-1-2024.09.17-003748": {
    "settings": {
      "index": {
        "routing": {
          "allocation": {
            "include": {
              "_tier_preference": "data_warm,data_hot"
            }
          }
        },
        "provided_name": ".ds-my-index-1-2024.09.17-003748",
        "uuid": "QNC-Z2loT4SCKFb2-LJKAw"
      }
    }
  },
  ".ds-my-index-1-2024.09.17-003714": {
    "settings": {
      "index": {
        "routing": {
          "allocation": {
            "include": {
              "_tier_preference": "data_cold,data_warm,data_hot"
            }
          }
        },
        "provided_name": ".ds-my-index-1-2024.09.17-003714",
        "uuid": "zIP72E-qTBSfKbZdAYmFEQ"
      }
    }
  },
  [...]
}

Et avec une troisième API nous pouvons restituer le détails des blocs de données correspondant aux indices :

GET /_cat/shards?format=json&h=index,node,state,prirep,docs

[
  {
    "index": ".ds-my-index-1-2024.09.17-003848",
    "node": "es1",
    "state": "STARTED",
    "prirep": "p",
    "docs": "120"
  },
  {
    "index": ".ds-my-index-1-2024.09.17-003848",
    "node": "es4",
    "state": "STARTED",
    "prirep": "r",
    "docs": "47"
  },
  {
    "index": ".ds-my-index-1-2024.09.17-003828",
    "node": "es5",
    "state": "STARTED",
    "prirep": "p",
    "docs": "29"
  },
  {
    "index": ".ds-my-index-1-2024.09.17-003828",
    "node": "es2",
    "state": "STARTED",
    "prirep": "r",
    "docs": "147"
  },
  [...]
]

En croisant les résultats de ces trois requêtes, nous pouvons donc savoir si un bloc de données d’un index « brûlant » est bien placé sur un noeud « brûlant ». Mais pour des milliers d’index, cela devient beaucoup plus laborieux.

Développement d’une solution de visualisation

Quelques lignes de JavaScript (64), d’HTML (80) et de CSS (118) plus tard et voici un aperçu d’un rapport réalisé sur un cluster ElasticSearch en local.

ElasticSearch ILM test

Résultat de l’analyse du cluster local

L’outil génère un fichier de rapport en format HTML, consultable depuis n’importe quel navigateur. Alors, en un coup d’œil on peut savoir si un bloc est à la bonne place.
Le code source est disponible sur Github.
Pour résumer ce que fait techniquement ce code source :

  • Lancement des 3 requêtes précédemment étudiées
  • Injection de ces données dans un moteur de template HTML
  • Sauvegarde du résultat dans un fichier HTML

Premier rapport réalisé sur une infrastructure de production et analyse

Ensuite, nous avons intégré l’outil dans une chaîne d’intégration continue de Gitlab pour automatiser la génération des rapports. Nous pouvons ainsi désormais nous interfacer avec le cluster à analyser et donc générer un premier rapport.
Quelques données sur la taille du cluster :

  • 10 machines ElasticSearch
  • 110 milliards de documents
  • 125 To de données stockées
  • 25 000 événements par seconde

Le premier rapport montre une répartition de la charge logique comme ci-dessous :

ElasticSearch ILM

Résultat de l’analyse du cluster de production

Les nœuds ayant le rôle data_warm reçoivent bien les blocs data_warm. Les nœuds ayant le rôle data (tout les rôles) reçoivent tout type de blocs.
Cependant ce n’est pas encore optimisé pour réduire les coûts car :

  • Il reste des blocs data_warm non alloués à des nœuds data_warm car ElasticSearch cherche l’équilibre en termes de nombre de blocs par machine.
  • Aucun bloc de données froides n’apparaît car les règles de rétention ne définissent pas de phase « cold ». Des nœuds data_cold doivent être ajoutés au cluster.
  • Il y a légèrement trop de données brûlantes en proportion, la durée de rétention en phase « hot » doit être revue à la baisse.

Evolution du cluster

Ainsi, après réflexions avec les équipes en charge de la maintenance du cluster, nous avons définit la cible à atteindre :

  • 3 nœuds cold (à venir)
  • 5 nœuds warm (node-3 node-9 node-10 node-1 node-2)
  • 2 nœuds hot warm master (node-4 node-5)
  • 3 nœuds hot ingest master content (node-6 node-7 node-8)

Les raisons de ces choix dépendent des caractéristiques des machines à disposition (CPU, disques, RAM).
Les mouvements de blocs vont être nombreux, et nous réfléchissons déjà à la procédure de migration afin de perturber au minimum le service. Il faut bien prendre en compte que l’espace disque pris par chaque bloc est de 50Go, et que chaque déplacement prend entre 30 minutes et 1 heure sur cette infrastructure réseau.
Nous avons ensuite planifié l’exécution de l’outil pour fournir un rapport tous les jours afin de suivre l’évolution de la répartition. Nous aurons donc un joli jeu de couleurs d’ici quelques semaines 😉

FNE-Formation ou comment financer vos formations à 100% en chômage partiel

Vous êtes nombreux à vous interroger sur le dispositif FNE-Formation aujourd’hui renforcé à cause de la crise sanitaire que nous traversons.
L’objectif de cet article est donc de vous apporter toutes les réponses afin de bénéficier au mieux de ce dispositif.

Qui peut y avoir droit ?

Tous les salariés du privé placés en chômage partiel (les contrats d’apprentissage et de professionnalisation étant exclus) ! La formation doit par contre avoir lieu durant les heures et jours de chômage partiel, donc pas pendant les congés, RTT ou jours fériés.

Quel montant est pris en charge ?

La totalité des coûts pédagogiques est prise en charge. Il faut cependant savoir que les formations en dessous de 1500 euros TTC par salarié sont traitées de manière plus rapide et de manière quasi automatique au niveau de votre DIRECCTE régionale.
Au-dessus de 1500 euros TTC par salarié une instruction plus avancée doit être engagée.

Quels types de formation ?

Toutes les formations sont éligibles, à condition d’avoir lieu à distance et à l’exception des formations en alternance et obligatoires à la sécurité incombant à l’employeur.

Quelle est la procédure à suivre ?

Il y a deux procédures possibles :

N’hésitez pas à nous contacter si vous souhaitez en savoir plus ou vous lancer, toutes nos formations au catalogue étant bien entendu disponibles à distance.

Sources :

Honeywell confie à DocDoku l’évolution de son socle mobile Android

« Une expertise évidente et une très bonne communication qui ont permis à ce projet d’être un succès » : c’est en quelques mots le retour d’Honeywell Safety and Productivity Solutions sur sa collaboration avec la Team DocDoku.

Spécialisée dans la performance des process, Honeywell Safety and Productivity Solutions construit et commercialise des solutions de capture des données (RFID, lecture de codes-barres…) et de management de l’information.

La société avait choisi DocDoku pour les accompagner dans l’évolution de leur SDK (Software development Kit) mobile sous Android.

Retrouvez la success story complète dans l’espace Nos Clients.

Retour sur Intersud 2016 à Béziers

Evénement incontournable de rencontres industrielles de la grande région

Le 6 septembre 2016, l’équipe de DocDoku s’est rendue à Intersud Béziers, un événement unique, organisé par la CCI de Béziers au stade de la méditerranée. C’était l’occasion pour preneurs et donneurs d’ordres de la région Occitanie de se rencontrer. Pas moins de 122 personnes ont répondu présents à l’invitation.

L’événement était conçu pour les professionnels de l’industrie issus de domaines d’expertise très divers (énergie, aéronautique, numérique, robotique, santé, agroalimentaire, défense, systèmes embarqués ou encore chimie).

Le but était donc de se réunir autour d’entretiens individuels de 30 minutes. De quoi développer son réseau d’affaires et pouvoir construire des projets avec des acteurs forts de la région. Entre rendez-vous individuels et conférences, la journée s’est clôturée par un moment de convivialité et de rencontres autour d’une « troisième mi-temps ».

Intersud Beziers DocDoku et Sinox

Eric Descargues, co-fondateur de DocDoku et Emmanuel Mouton, PDG de Synox

Grâce à une organisation aux petits oignons et dans un cadre exceptionnel, nous avons pu rencontrer à la fois de nombreux donneurs d’ordres et futurs partenaires issus du tissu industriel occitan.

Notre objectif premier était de faire connaître notre plateforme digitale open source DocDokuPLM, dédiée à la gestion des données industrielles, tout en s’inscrivant durablement dans notre nouvelle région.

A l’année prochaine !

DocDoku rencontre les industriels au salon de l’industrie 2015

INDUS 05

Le salon de l’industrie 2015 a regroupé, au parc des expositions de Lyon, près de 20 500 professionnels des technologies de production.
Confirmation de l’adoption massive des robots notamment intégrés auprès des équipements de productions et machines à commandes numériques pour améliorer le chargement des pièces et outils, et l’efficacité des approvisionnements.
Même tendance dans l’automatisation des postes d’assemblage par les robots.
Il semble également que la chaine d’automatisation commence toujours par la commande papier avec scan du code-barre de cette dernière.
Accent sur l’innovation avec un prix spécial accordé pour un robot collaboratif d’Akéo-Plus capable de déplacer des boîtes de poids et de taille variables tout en détectant les personnes à proximité et en contournant les obstacles.

La transformation numérique des équipementiers industriels est en marche mais reste centrée à l’adoption d’ERP et d’intégration de fonctionnalités numériques autour de la CFAO.
Il semble qu’une fracture numérique apparait entre les grands équipementiers investissant  dans  l’usine intégrée du futur et les ETI/PMI conservant une approche plus traditionnelle (non digitale) en matière de processus métier autour de leurs produits.
Certains intégrateurs métier, comme les experts en programmation de commandes numérique, souhaitent d’ailleurs compléter leurs offres avec l’utilisation de la maquette numérique en le lien avec les bureaux d’études.

Ces constats confirme que DocDoku est idéalement positionnée pour apporter les solutions digitales nécessaires aux organisations industrielles.
Notre plateforme digitale collaborative répond en effet aux besoins des PMI/ETI industrielles voulant évoluer rapidement et simplement vers la gestion électronique des documents techniques, puis vers la gestion de leurs produits, et de manière homogène et logique.

Les rencontres avec les industriels et les intégrateurs ont été prometteuses d’opportunités. Je vous recommande donc ce très bon salon pour l’année prochaine.

Notre agrément CIR renouvelé jusqu’en 2016

AgrementCIR-DocDoku

Le Ministère de l’Enseignement Supérieur et de la Recherche nous a octroyé à nouveau l’agrément Crédit d’Impôt Recherche (CIR) pour une durée de trois ans (2014, 2015, 2016) comme il l’avait fait pour 2011, 2012 et 2013.

Cela signifie que DocDoku est reconnu comme organisme ayant la capacité à mener des travaux de Recherche et Développement (R&D) et que toutes les dépenses de réalisation d’opérations de R&D confiées à DocDoku ouvrent droit au Crédit d’Impôt en faveur de la Recherche, dans les mêmes conditions que pour des investissements internes.

Pour rappel, le CIR est un dispositif d’incitation fiscale en faveur de la recherche et de l’innovation. Il permet aux entreprises de bénéficier d’un crédit d’impôt correspondant à un pourcentage du montant des dépenses investies dans l’année en recherche et développement. Cet avantage fiscal varie entre 30% et 50% de Crédit d’Impôt sur les dépenses engagées pour les projets éligibles (voir conditions sur le site du Ministère).

Vous n’avez donc plus aucune excuse valable pour ne pas vous lancer dans de nouveaux projets R&D puisque ces derniers peuvent faire l’objet d’une prise en charge substantielle par l’Etat au travers du Crédit d’Impôt Recherche lorsque vous passez par notre intermédiaire.

Pour toutes questions sur vos projets innovants, n’hésitez pas à nous contacter.

CRM et support à la vente sur tablette

Akerys est l’un des plus importants promoteurs immobiliers du sud de la France. Couvrant toute la chaine de valeur, de la construction à la commercialisation des logements ; Akerys entend optimiser cette dernière étape tant il est capital de vendre les lots en un minimum de temps.

Pour cela, Akerys nous a demandé de développer une application destinée aux commerciaux pour présenter les résidences sur iPad à leurs prospects.

L’application est divisée en deux parties (cliente et serveur) :

  • Un back-office full-web pour la création des catalogues (images, vidéos, liens, géolocalisation)
  • Une application iPad de présentation des biens immobiliers, comprenant également un CRM (saisie des fiches prospects).

 

L’application iPad fonctionne en mode déconnecté, les échanges de données avec le serveur, que ce soit le catalogue des produits et les informations du CRM sont transmis par un mécanisme de synchronisation.

Gestion des réserves

Dans le secteur de la construction, la gestion des réserves, c’est à dire le recensement des malfaçons aux différentes étapes des travaux, est une activité essentielle qui peut s’avérer compliquée en raison du volume d’anomalies qui peut dépasser la dizaine de milliers sur certains gros chantiers.

Aujourd’hui grace aux tablettes tactiles il est possible d’outiller cette tâche et dégager ainsi d’importants gains de productivité. C’est ce que nous avons fait en développant pour notre client Wapp6, éditeur spécialisé dans la construction, l’application iOS et Android Opr6 (gestion des réserves).

Opr6 iPad

 

L’implémentation du client Opr6 a été réalisée grâce au framework Titanium qui permet d’obtenir deux versions de l’application : une pour iPad/iOS et une pour Android et cela avec un rendu visuel natif. L’application fonctionne en mode déconnecté, une synchronisation est faite une première fois avant de faire la visite de chantier pour rapatrier les données du projet (plans, réserves existantes, punchlists, listes des intervenants…) et une seconde fois à la fin de la visite pour consolider les saisies effectuées sur la tablette sur le cloud (serveur python/django pour les initiés). Un rapport est alors automatiquement généré et envoyé aux personnes concernées.

La fiabilité des informations de suivi, le gain de temps, l’efficacité générale s’en retrouvent énormément améliorés.

 

Les actes médicaux sur iPad

Pour le compte de MiPih, une des plus grandes structures publiques spécialisées dans le domaine de la santé, nous avons développé une application iPad de consultation du référentiel des actes médicaux.

L’application dispose d’un module de statistiques, d’une base de données locale (SQLite) répliquée d’une base de données Oracle. Le référentiel est historisé ainsi le médecin peut connaitre précisément la législation qui était applicable au moment de la réalisation de tel ou tel acte.

mipih

Sur le plan technique, l’application est bâtie autour d’une UISplitView et les données sont accédées au travers de l’API Core Data qui est l’ORM (Object-Relational Mapping) d’iOS. Un effort particulier a du être réalisé sur le paramétrage du framework pour atteindre les objectifs de performance ambitieux qui avaient été fixés : une navigation parfaitement fluide et une recherche au fil de l’eau multi-critères instantanée.

DocDoku et Webinage font carton plein à la Mêlée Numérique XV !

Cette année encore, DocDoku était présent à la Mêlée Numérique et accompagné d’un partenaire de grande qualité avec Webinage.

Sur le stand de DocDoku, vous avez pu assisté à la présentation de l’application tactile que nous avons réalisée pour et avec Webinage.

Vous avez été également très nombreux à vouloir une démonstration de notre solution de GED Open Source disponible en SaaS.

Ces deux journées ont donc été plus que satisfaisantes pour l’équipe DocDoku car un public de qualité était au rendez-vous.

La conférence sur « HTML 5 ou l’évolution majeure du web et de l’internet mobile » présentée par Florent Garin notre Directeur Technique et Thomas van de Velde, Directeur Général de Webinage a rencontré un grand succès, avec la participation d’une centaine de personnes dans la salle !

Si vous n’avez pas pu assisté à la conférence, la présentation sera prochainement disponible sur notre blog et sur le site internet de la Mêlée Numérique.

Interview d’Eric Descargues au salon de la Mêlée Numérique 14

Découvrez l’interview d’Eric Descargues donnée lors de 14ème Mêlée Numérique :

Merci à Claude Paichard pour l’interview et à l’équipe de Pinkanova pour la réalisation.

Démonstration de l’application Android de TableOnline

Dans le cadre de sa présence au salon de la Mêlée Numérique 14.0, DocDoku a présenté la version beta de l’application Android réalisée pour TableOnline, outil de recherche et de réservation de restaurants en temps réel.

Vous trouverez ci-dessous une démonstration de l’application, ainsi que les photos prises lors de notre atelier sur les « stratégies et développements mobiles multi-plates-formes »:

Merci à @Mallox pour les photos.

Portail Liferay avec GWT intégré en SOA pour Pierre et Vacances

Aujourd’hui je viens vous faire partager une très belle expérience projet. Je vous parlerai donc d’un projet que nous avons réalisé pour notre client Pierre et Vacances, qui a su nous faire confiance jusqu’au bout pour le développement et l’infogérance de son extranet commercial.

Faire des choix en matière d’architecture logiciel en 2010 peut être un exercice difficile, c’est pourquoi l’approche de DocDoku en matière de choix techniques est basée sur les principes suivants :

  • pragmatisme, dans le choix des langages et des technologies,
  • ouverture d’esprit, nous effectuons une veille technologique permanente,
  • mise en contexte, chaque problème étant différent, les réponses à apporter doivent l’être également,
  • industrialisation, il ne s’agit pas de s’emparer de la toute dernière nouveauté mais de bâtir des solutions robustes, matures et maintenables,
  • respect des standards établis, pour garantir la pérennité des applications, et maximiser l’investissement consenti par nos clients, nous nous appuyons sur les standards unanimement reconnus.

Dans le cadre de l’extranet commercial développé pour Pierre et Vacances, les grands principes architecturaux retenus ont été les suivants :

  • utilisation du composant portail open source Liferay permettant un gain de productivité certain en particulier sur les modules génériques (droits d’accès, profils utilisateurs, agenda, publication de news…) mais respectant également la JSR 286, norme de communication entre le portail et les applications qui y sont hébergées, supportée par de nombreux éditeurs (IBM, Sun, Oracle, RedHat). Ceci permet de surcroît de limiter notre dépendance vis-à-vis d’une solution portail en particulier.
  • développement d’une architecture en couches permettant notamment de découpler les composants les uns des autres et de les faire évoluer indépendamment.  Une séparation en couches permet d’adapter en effet l’architecture physique en fonction des besoins de distribution pour une bonne capacité à monter en charge.  Une architecture n-Tiers en 4 couches distinctes a été choisie :
    • La couche d’accès aux données avec JPA-Hibernate dont le rôle est la connexion à la base de données, l’exécution des requêtes ou l’appel des procédures stockées.
    • La couche de service EJB3 et JAX-WS-Metro, ensemble des règles métiers et processus de l’application. Cette couche sera implémentée en Java via des composants transactionnels.
    • La couche métier POJO qui constitue le diagramme de classes des entités (le modèle objet).
    • La couche de présentation avec GWT et Portlet Liferay : l’interface utilisateur affiche les résultats traités par la couche métier.  Ici le framework Ajax GWT a été choisi pour à la fois offrir une ergonomie poussée et une forte maintenabilité.
  • mise en place d’une architecture de type SOA pour pouvoir exposer de façon universelle les fonctions de l’extranet pour les futures applications du SI.

Tout ceci est en production évidemment depuis la fin octobre 2009.

Agilement.

Dassault Systèmes

Avec Dassault Systèmes, nous initions notre premier billet de cette nouvelle catégorie qui est « Nos clients ».

C’est un des plaisirs de notre activité ; nous sommes amenés à entrer au sein de diverses entreprises aux métiers très différents. Par exemple, notre dernier client SaaS (l’offre hébergée de notre l’outil collaboratif) est l’institut de massages traditionnels asiatiques Maxam.

Aujourd’hui, l’entreprise présentée est donc Dassault Systèmes. DS est une filiale du groupe Dassault, le célèbre fabriquant d’avions de chasse. DS est un éditeur de logiciels, il s’agit d’ailleurs du numéro 1 français, loin devant les autres. Leur cœur de métier est la 3D et l’un de leurs produits phares est le fameux logiciel de design Catia.
Catia est utilisé par de nombreux industriels dans le monde pour concevoir leurs produits : Airbus, Boeing, PSA, Toyota…

Dernièrement, au travers de leur nouvelle marque 3DVia, Dassault Systèmes a opéré une diversification intéressante, ils se lancent sur le marché grand public et ambitionnent de démocratiser la 3D.
Le site 3dvia.com est un espace communautaire, où les internautes peuvent faire partager leurs créations, c’est l’équivalent de youtube ou dailymotion mais pour la 3D.

Bref, Dassault Systèmes est une société innovante, en bonne santé financière (ceux qui étaient présents à la grandiose soirée d’inauguration de leur campus fin 2008 n’en ont aucun doute) et pour une fois elle n’est pas américaine !