Affichage des articles dont le libellé est Elasticsearch. Afficher tous les articles
Affichage des articles dont le libellé est Elasticsearch. Afficher tous les articles

mardi 20 octobre 2020

Comment devenir un Ingénieur DevOps ?

Le DevOps est à la mode en ce moment, est ce que cela va durer est ce que cela va être balayé par une autre mode, en tous les cas c'est une bonne pratique pour les éditeurs de logiciels. 

Pourquoi on écrit ainsi DevOps avec un 'O' majuscule et bien parce que le DevOps vient de la réunion ou l'union de deux services dans l'Entreprise d'une part les Devs la R&D et d'autre part les Ops les Opérationnels ceux qui sont en contact avec le client.

Il a été diagnostiqué que le plus grand nombre de problèmes dans le continus delivery client vient du fait de la séparation entre la R&D et les Opérationnels par manque de communication, par une culture différentes, le déploiement chez les clients s'en ressent. D'où l'idée de réunir sinon ces deux services, de créer en tous cas des ressources ayant les deux culture R&D et Déploiement client chargé de faire la liaison.

Cela conduit à l'automatisation, ou le scripting (la mise en scripts) de tout un tas d'opérations qui pouvaient être faites à la main mais qu'il est souhaitable d'automatisées pour des questions de répétabilité et pour les rendre facile à utiliser.

Alors aujourd'hui un Ingénieur DevOps c'est quoi ? Et bien, c'est quelqu'un qui fait le lien entre la R&D et le déploiement chez le client qui rédige ces scripts pour s'assurer que tout se passera correctement  lors du Continus Delivery chez le client. 

Je vous propose de disséquer la fiche de poste de l'ingénieur DevOps :

Compétences techniques requises pour l'Ingénieur DevOps :

Franchement, vous croyez que celui qui a rédigé cette fiche sait de quoi il parle ? La première ligne c'est pour maintenir des Bases de Données. C'est toujours un problème de maintenir des versions de Bases de données et pouvoir faire des livraisons incrémentales et du rétrofite avec les Bases de données.

Les Outils de l'Ingénieur DevOps
Les Outils de l'Ingénieur DevOps

Voici quelques explications succinctes sur ces différents outils de la Stack DevOps. 

Elasticsearch : moteur de recherche et d'analyse permet de faire des recherches rapides dans des bases immense. Kibana pour afficher sous forme graphique probablement des logs récupérés par Logstash

Logstash : moteur de collecte de données open source avec des capacités de pipelining en temps réel. Logstash peut unifier dynamiquement les données de sources disparates et normaliser les données dans les destinations de votre choix.

Nexus ? A priori personne ne sait vraiment ce que ce terme vient faire là mdr

Ansible : est un outil d'automatisation informatique. Il peut configurer des systèmes, déployer des logiciels et orchestrer des tâches informatiques plus avancées telles que des déploiements continus ou des mises à jour progressives sans temps d'arrêt.

Puppet : est un logiciel libre permettant la gestion de la configuration de serveurs esclaves (GNU/Linux, Mac OS X et Windows2). Il est écrit à l'aide du langage de programmation Ruby et est diffusé sous licence Apache

Openstack : est un système d'exploitation "cloud" qui contrôle de grands pools de ressources de calcul, de stockage et de mise en réseau dans un centre de données, tous gérés et provisionnés via des API avec des mécanismes d'authentification communs.


Il faut en convenir, cela fait une sacrée Stack, pas mal d'outils à maîtriser mais on reconnait là des outils pour loguer, contrôler, faire des diagnostiques, scripter, déployer des applications logicielles.

En réalité, il n'est pas nécessaire de maîtriser la totalité de ces outils présents sur cette fiche de poste, beaucoup de fonctionnalités sont redondantes entre les différents outils. Le vrai travail serait de rationaliser ces outils.

Voilà, nous avons maintenant une meilleure connaissance des outils du DevOps, des outils qu'ils va falloir prendre en main pour devenir un véritable Ingénieur DevOps.

Sur ce Blog - Les Articles sur le DevOps


lundi 28 septembre 2020

Connaissez-vous la stack, la pile logicielle, Grafana, Prometheus, Loki, Jaeger, Cortex, and Graphite ?

Alors voilà un sujet des plus complexes que l'on va démystifier pour tenter de vous, de nous expliquer ce qu'est cette stack logicielle ; Grafana, Prometheus, Loki, Jaeger, Cortex, and Graphite. Alors si l'on connait Grafana et Prometheus mais que sont les autres ? Oui en même temps vous allez me dire que l'on ne connait pas si bien Prometheus.

Pour être franc, celui que l'on connait c'est Grafana. Alors allons y, c'est quoi Prometheus ? Au premier abord on dirait Grafana ... Ce que l'on sait, c'est que Grafana est un fork de Kibana. Kibana est une extension d'affichage pour les données issues de la Suite Elastic search.


Kibana extension de elastic search

Mais alors quand je vois la stack sur la première page de Prometheus :


Stack Prometheus Includes

Je sais pas vous mais moi, je ne me sens pas très bien, un peu envie de vomir ... D'autant que l'on ne retrouve pas, ni Loki, ni Jaeger, ni Cortex, ni Graphite. 

Ce que je peux vous dire, au niveau fonctionnalités c'est que l'on est dans l'univers des connecteurs de données et de leurs afficheurs de données sous forme de graphes.

Ce qui me surprend tout de même c'est que le slogan de Prometheus est un peu identique à celui de Grafana à savoir : Power your metrics and alerting with a leading open-source monitoring solution.

Leading Open Source Monitoring Solution ... Donc Prometheus est une source de données pour Grafana.

Prometheus source de données pour Grafana

Mais on pourrait dire Grafana extension de visualisation des données pour Prometheus.

Poursuivons notre recherche sur cette stack ... avec Jaeger


Monitor and troubleshoot transactions in complex distributed systems

Jaeger permet d'instrumenter votre application. Quant à Loki on dirait d'après le sigle est absorbé par Grafana.

Grafana Labs - Jaeger data source
Grafana nous explique comment ajouter Jaeger comme "data source" afin de pouvoir requêter dans les traces de votre application.

Cortex est absorbé !

Graphite : Grafana vs Graphite

Grafana vs Graphite

Conclusion

Dans cet univers des connecteurs aux données et des afficheurs graphiques pour afficher de beaux tableaux de bord, Grafana se paye la part du lion et le luxe de faire croire qu'il intègre tout le monde alors qu'il est plutôt en train de les absorber en commençant par les connecteurs dont il multiplie le nombre quasiment à l'infini. Et les afficheurs graphiques qu'il supprime en les absorbant.

mardi 30 octobre 2018

Comment et pourquoi centraliser les logs pour l'ensemble de votre SI ?

C'est primordiale pour un Système d'Information de centraliser les Logs, c'est à dire en fait d'avoir un système cohérent de production puis d'analyse des Logs pour la couverture de l'ensemble de votre Système d'Information. De surcroit, il faut que votre système de log soit performant pour retracer identifier les problèmes rapidement.

Je viens de discuter avec un client final de son système et de la catastrophe que sont pour lui les logs car dans son SI les logs ont été écris par maintes équipes différentes avec toutes sortes de briques différentes. Il voudrait un peu de rationalisation.

Alors que je viens de lire cet article :
Syloé - Pourquoi traiter et centraliser vos logs avec ELK et Craylog ?

ELK c'est pour Elasticsearch, Logstash et Kibana une suite de logiciels Open Source, on parle de Stack ELK. Kibana est un greffon de visualisation de données pour Elasticsearch.

Stack Elasticsearch Logstash Kibana

La solution qui est préconisé c'est d'utiliser Craylog et ELK, avec ELK l'inconvénient c'est la non-gestion des utilisateurs. Craylog permet de gérer les utilisateurs et les permissions façon LDAP.


Voilà nous avons fait le tour rapide de la centralisation des logs de l'ensemble de votre Système d'Information. C'est pas fini vous vous en doutez, pas si simple de mettre en œuvre cette pile de softs pour faire des logs.

C'est une nécessité absolue dans un SI de capitaliser sur les logs, de les maitriser, de les centraliser, de les expliquer pour l'ensemble des équipes soft. La façon dont est traité la problématique "faire des logs" dans un SI est caractéristique de la qualité de ce SI.