K9s est un outil de ligne de commande qui permet aux administrateurs de cluster Kubernetes de naviguer, de gérer et de surveiller leur cluster de manière interactive.
L’un des principaux avantages de K9s est son interface utilisateur intuitive qui permet une navigation simple et rapide dans le cluster. Il offre également une vue en temps réel des ressources du cluster, comme les pods, les services et les nodes. En outre, K9s permet aux utilisateurs de lancer des commandes de manière interactive, ce qui facilite grandement la gestion du cluster.
K9s est également très utile pour le débogage et monitoring. Il permet de voir les journaux en temps réel des pods et de les filtrer en fonction de différents critères. Cela peut être très utile lorsque vous cherchez à identifier les problèmes dans votre cluster.
En résumé, K9s est un outil pratique pour les administrateurs et développeurs Kubernetes qui cherchent à simplifier la gestion et la surveillance de leur cluster. Son interface utilisateur intuitive et ses fonctionnalités de débogage en font un outil essentiel pour tous ceux qui travaillent avec Kubernetes.
Une fois que K9s est installé, vous pouvez lancer l’outil en utilisant la commande k9s. Cela ouvrira une interface utilisateur interactive dans votre terminal.
Pour naviguer dans l’interface de K9s, vous pouvez utiliser les touches fléchées et la touche Entrée. Vous pouvez également utiliser les raccourcis clavier suivants:
p pour afficher les pods
s pour afficher les services
n pour afficher les nodes
d pour afficher les déploiements
Si vous sélectionnez un pod, vous pouvez utiliser les touches fléchées pour naviguer dans les différentes ressources du pod, comme les journaux ou les événements. Vous pouvez également utiliser la touche l pour afficher les journaux en temps réel du pod sélectionné.
Pour exécuter une commande dans un pod, sélectionnez le pod et appuyez sur la touche c. Cela ouvrira une interface interactive où vous pouvez entrer la commande souhaitée.
K9s offre également une fonction de filtrage qui vous permet de chercher des ressources en fonction de différents critères. Pour utiliser cette fonction, appuyez sur la touche / et entrez votre requête de recherche.
Pour quitter K9s, utilisez la commande q.
Je vous recommande de consulter la documentation de K9s pour en savoir plus sur les différentes fonctionnalités et les raccourcis clavier disponibles. Vous pouvez également utiliser la commande h pour afficher l’aide en ligne de K9s .
Nous allons voir comment envoyer simplement un message sur Rocket Chat via son API, le tout en Go.
Tout d’abord, vous devez importer les paquets nécessaires. Vous aurez besoin de “net/http” pour envoyer une requête HTTP et de “encoding/json” pour encoder et décoder du JSON:
import (
"net/http"
"encoding/json"
)
Ensuite, définissez l’URL de l’API de RocketChat et le canal sur lequel vous souhaitez envoyer le message. Vous devrez également définir un nom d’utilisateur et un jeton d’authentification qui seront utilisés pour vous authentifier auprès de l’API.
Ensuite, créez une structure de données JSON qui sera utilisée pour envoyer les données de votre message à l’API.
type message struct {
Channel string `json:"channel"`
Text string `json:"text"`
}
Créez une fonction pour envoyer le message. Cette fonction prendra en entrée le texte du message à envoyer et enverra une requête POST à l’API de RocketChat avec le message codé en JSON dans le corps de la requête.
func sendMessage(text string) error {
// Créez une nouvelle instance de la structure de message avec votre texte et le canal cible
m := message{Channel: channel, Text: text}
// Encodez la structure en JSON
payload, err := json.Marshal(m)
if err != nil {
return err
}
// Créez une nouvelle requête POST avec l'URL de l'API et le corps de la requête codé en JSON
req, err := http.NewRequest("POST", apiURL+"/chat.postMessage", bytes.NewBuffer(payload))
if err != nil {
return err
}
// Ajoutez les en-têtes de l'API, y compris le nom d'utilisateur et le jeton d'authentification
req.Header.Add("Content-Type", "application/json")
req.Header.Add("X-Auth-Token", token)
req.Header.Add("X-User-Id", username)
// Envoyez la requête à l'API en utilisant le client HTTP par défaut
_, err = http.DefaultClient.Do(req)
if err != nil {
return err
}
return nil
}
Vous pouvez maintenant utiliser cette fonction pour envoyer un message en appelant simplement “sendMessage” et en passant le texte du message en tant qu’argument:
err := sendMessage("Ceci est un message de test")
if err != nil {
// Traitez l'erreur si nécessaire
}
Et c’est tout! Vous avez maintenant un programme Go qui envoie un message à un canal RocketChat via son API.
Note: assurez-vous de remplacer les chaînes de caractères de constante (comme l’URL de l’API et le nom d’utilisateur) avec les valeurs de votre serveur RocketChat. Vous pouvez obtenir votre jeton d’authentification en suivant la documentation de l’API de RocketChat.
Pour utiliser un pipeline personnalisé avec Jenkins, il faut d’abord créer un fichier Jenkinsfile et le mettre dans votre référentiel de code source. Ce fichier Jenkinsfile décrit les étapes de votre pipeline de construction, de test et de déploiement.
Pour créer un pipeline Jenkins, vous pouvez utiliser le langage de script Jenkins ou le plugin Pipeline Jenkins. Le langage de script Jenkins est une syntaxe simple basée sur Groovy qui permet de décrire votre pipeline de manière déclarative. Le plugin Pipeline Jenkins, quant à lui, offre une syntaxe avancée qui permet de créer des pipelines plus complexes en utilisant des directives spéciales.
Voici un exemple de pipeline Jenkins qui utilise le langage de script Jenkins :
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
// Execute the build script
sh './build.sh'
}
}
stage('Test') {
steps {
echo 'Running tests...'
// Run unit tests
sh './run_tests.sh'
}
}
stage('Deploy') {
steps {
echo 'Deploying to production...'
// Deploy the code to production
sh './deploy.sh'
}
when {
expression {
return env.BRANCH_NAME == 'master'
}
}
}
}
}
Ce pipeline Jenkins comprend trois étapes : Build, Test et Deploy. L’étape de build exécute un script de build, l’étape de test exécute des tests unitaires et l’étape de déploiement déploie le code en production.
La déclaration “when” à la fin de l’étape de déploiement permet de déterminer si cette étape doit être exécutée ou non. Dans cet exemple, l’étape de déploiement n’est exécutée que si la variable d’environnement BRANCH_NAME est égale à “master”, ce qui signifie que le code a été poussé sur la branche principale. Cela permet de s’assurer que le code déployé en production a été testé et validé.
Vous pouvez également utiliser des variables d’environnement et des paramètres dans ce pipeline Jenkins pour rendre votre pipeline plus flexible et réutilisable. Par exemple, vous pouvez définir une variable d’environnement qui contient l’URL de déploiement et la passer en tant que paramètre au script de déploiement.
En utilisant un pipeline Jenkins de déploiement automatique avec tests, vous pouvez automatiser votre processus de construction, de test et de déploiement, ce qui peut vous faire gagner du temps et réduire les erreurs humaines.
Les SCOP (Sociétés Coopératives et Participatives) sont des entreprises qui sont détenues et gérées par leurs salariés. Le modèle décisionnel des SCOP en France a connu plusieurs évolutions au cours des dernières décennies.
Au début des années 1970, de nombreuses SCOP ont été créées en France dans le but de permettre aux salariés de prendre en main leur destin professionnel et de s’impliquer dans la gestion de l’entreprise. À cette époque, les SCOP étaient principalement créées par des salariés qui voulaient reprendre leur entreprise en cas de licenciement de leur patron.
Au fil des années, le modèle décisionnel des SCOP a évolué pour devenir plus participatif et inclusif. Dans les SCOP modernes, tous les salariés ont un droit de vote lors des assemblées générales et peuvent participer à la prise de décision au sein de l’entreprise. De plus, les SCOP ont mis en place des organes de gouvernance participative, tels que les conseils de surveillance et de gestion, qui permettent aux salariés de participer activement à la gestion de l’entreprise.
En résumé, l’évolution du modèle décisionnel des SCOP en France a permis aux salariés de prendre une plus grande part dans la gestion de l’entreprise et de s’impliquer davantage dans les décisions stratégiques.
L’open source est très populaire en France et est largement utilisé dans les entreprises et les organisations du pays. Il y a de nombreuses communautés open source actives en France, ainsi que des événements et des conférences consacrés à l’open source qui ont lieu régulièrement. L’adoption de l’open source est également soutenue par le gouvernement français, qui a adopté des politiques visant à encourager l’utilisation de logiciels libres dans le secteur public. En général, l’open source est bien perçu en France et est considéré comme une force pour l’innovation et la collaboration.
L’économie de l’Open source et du logiciel libre
Le business model de l’open source est basé sur la distribution gratuite du code source d’un logiciel. Cependant, cela ne signifie pas que les entreprises qui s’engagent dans l’open source ne gagnent pas d’argent. Il existe plusieurs façons pour les entreprises de monétiser leur engagement dans l’open source.
Comme le logiciel libre est distribué gratuitement avec son code source, les entreprises qui s’engagent dans le développement de logiciels libres doivent trouver d’autres moyens de monétiser leur travail.
Offrir des services de support et de formation liés à l’utilisation du logiciel open source.
Vendre des versions “entreprise” du logiciel, qui incluent des fonctionnalités supplémentaires ou un support de niveau supérieur.
Monétiser les services liés au logiciel open source, tels que l’hébergement ou l’intégration.
Obtenir des financements à partir de sponsors ou de donateurs.
Comme tous les ans, s’est tenu cette année le HackingHealth à Besancon, du 14 au 16 octobre, en collaboration avec le CHU de Besançon et l’université de Besançon.
Le Hacking Health est un événement qui présente des défis techniques / technologiques liés au vaste sujet qu’est la santé. Cela peut aller de l’amélioration d’un système avancé de mécanique, au développement d’une application web ou bien encore, une solution au décor des chambres d’enfants hospitalisés, effrayés par les poches de sang.
Suite à l’expérience des porteurs de projets, ils ressentent un problème particulier et proposent aux participants du Hacking Health de tenter de résoudre celui-ci, en apportant un regard neuf, une approche différente et des techniques nouvelles.
Les participants sont des étudiants ou des professionnels qui vont donner leur temps pour résoudre ces défis, près de 300 depuis la première édition du HackingHealth.
L’une des équipes qui nous intéresse, était contituée de collaborateurs de Cadoles, qui ont choisi le projet de l’Etablissement français du Sang, autour de la collecte de l’étiquetage des poches de sang collectées auprès des donneurs.
Dans le cycle de vie de la collecte et distribution des poches de sang, l’identification de celles-ci est très importante pour la sécurité des receveurs. Dans la réalité de tous les jours, des erreurs peuvent être commises. Le challenge était donc de trouver une solution afin de limiter au maximum l’erreur humaine. La perte en temps et en ressource est considérable et étant donné l’importance de la disponibilité du sang dans le domaine de la santé, il est intéressant de chercher à améliorer ce système si cela est possible.
Une fois le groupe formé, le vendredi soir, départ pour le Hacking Health à 17h00.
Les porteurs de projets sont là, 7 étudiants et 3 professionnels aussi. Début du brainStorming qui va durer jusqu’à 1h du matin. C’est une partie très intéressante où les porteurs de projets vont devoir expliquer les processus à des béotiens en ne faisant aucun raccourci et répondre à des questions pouvant pourtant être triviales. Après quelques heures, l’équipe a réussi à identifier un problème central, et après diverses propositions, elle s’est arrêtée sur un début de solution qui sera affinée au cours du weekend.
La solution était la mise en place d’une combinaison entre un lecteur de code barre et une application web qui affiche dynamiquement l’évolution de l’étiquetage, établit des étapes de scans et recueille les informations au préalable pour assurer la corrélation entre les informations médicales et le nombre de poches à collecter ainsi que les tubes qui serviront aux analyses.
À partir de là, plusieurs groupes se sont formés pour pouvoir réaliser cette solution:
Un groupe « développement » chargé de développer une application qui soit fonctionnelle.
Un groupe de « design » chargé de créer les visuels et de respecter une expérience utilisateur optimale dans le parcours utilisateur.
Une équipe « matériel » chargée de récupérer un lecteur code barre et de créer les code barre définis.
Une équipe « pitch » chargée du film de promotion du projet et de la solution pour la présentation à la fin du Hacking Health.
Après 8 heures de sommeil chacun sur le weekend et beaucoup de cafés, l’équipe est parvenu à réaliser un prototype fonctionnel.
L’autre équipe était sur une autre problématique, celle du sport. Les deux porteurs de projets étaient à la recherche de données leur permettant d’annalyser la posture d’un courreur afin d’identifier un potentiel déséquilibre pendant sa course.
Pour arriver à cela, nous avions à disposition des données brutes issues de capteurs (gyroscope, accéléromètre). Notre groupe était consituté de 3 professionels et d’un étudiant. La première soirée a été consacrée à l’identification des besoins, les pistes pour y arriver, l’explication de ce qui avait déjà été fait auparavant par d’autres intervenants mais qui n’avait mené à aucun résultat.
À la fin de cette première soirée, les besoins ont été identifiés, à savoir: ressortir des temps de contact, temps de vol ainsi que la longueur de foulée cycle à cycle lors d’une course.
Le deuxième jour, trois groupes se sont formés:
un sur l’annalyse des capteurs utilisés afin d’identifier si il y avait un quelconque moyen de récupérer les données sans passer par l’application du constructeur.
un sur l’annalyse des données brutes issues des différents capteurs afin de ressortir les temps de contact, temps de vol, longeur de foulée
un sur la création de l’interface permettant la gestion des capteurs ainsi que le relevé de données pour un “patient”
Nous avons identifié que les capteurs utilisés par les porteurs de projets n’étaient pas sous licence libre, leur utilisation dans un but commerciale est interdit. Un des membres du groupe avait une autre solution: un capteur sous licence libre qu’il utilise au quotidien. La suite s’est donc faite uniquement avec l’annalyse des données de ce dernier capteur.
À la fin du weekend, l’équipe a été capable de ressortir les données recherchées par les porteurs de projet, et de rendre des informations pertinentes. Le projet, qui n’était au départ qu’une question de faisabilité/utilité, a obtenu une réponse concrète et favorable.
Une nouvelle formation à Docker rejoins notre catalogue.
Apprenez à utiliser Docker afin d’intégrer ce nouvel outils à vos process de dévelopement et de livraison. Comprendre la conteneurisation et ses enjeux. Rédiger vos conteneurs et optimisez les.
Cette formation est basé sur celle proposé par Jérôme Petazzoni auquel plusieurs de nos collaborateurs ont participés dans le passé.
Afin d’éprouver cette nouvelle formation, elle sera dispensé à certains nouveaux développeurs de Cadoles, afin d’en faire profiter à tout le monde.
Le 20 septembre 2022 s’est déroulé le deuxième SpeedTeching organisé par le Developers Group Dijon Cadoles n’a pas manqué d’y participer. Au cours des deux heures de l’événement, organisé cette fois dans les locaux d’AtolCD, plusieurs ateliers étaient ont pris forme de groupes d’échanges entre professionnels du milieu, venant de plusieurs acteurs de l’IT de Dijon et alentours. L’occasion d’échangers sur les pratiques de chacuns, de discuter des difficultés et réussites de chacun. S’en est suivi un petit pot de l’amitié.
Cadoles ne manquera pas de participer aux prochaines itérations.
Suite aux différentes participations de Cadoles au Hacking Health, Cadoles a été invité au CHU de Besançon au Showroom de l’innovation en santé. L’objectif du showroom, montrer et démontrer que des évènements comme le Hacking Health peuvent déboucher sur des réalisations concrètes et innovantes. Avec 14 autres entreprises innovantes dans le domaine de la santé, Cadoles a présenté deux projets issus des Hacking Health
L’annuaire de la confédération générale des SCOP dénombre cent cinquante-sept sociétés coopératives opérant dans le secteur du numérique et de l’informatique. Dans la région Bourgogne-Franche Comté, quatre sociétés sont identifiées dans ce secteur d’activité : Majerti, Owlnext, Débutant-e Accepté-e et Cadoles.
Au contraire de secteurs comme le BTP, l’industrie, la communication, les CAE, le numérique ne dispose pas d’une fédération dans le cadre du mouvement des SCOP. Seules quelques Unions Régionales disposent d’un permanent chargé de l’animation de ce secteur d’activité.
Suite aux rencontres qui ont eu lieu dans le cadre du congrès de Rennes, des représentants du secteur ont fait le constat de ce manque de structuration au niveau national et, plus encore, de l’envie de se structurer. Se structurer, c’est s’organiser pour collaborer et produire plus efficacement. Les besoins sont assez communs d’une société à l’autre : communication, échange, production, contrôle qualité. La veille sur les outils adéquats et leur mise en œuvre ont un coût non négligeable qui peut être diminué en répartissant les efforts sur plusieurs sociétés. La conception et l’application de procédures de travail est un travail itératif long. Les échanges de pratiques entre société permet de l’accélérer.
Se structurer, c’est également obtenir une meilleure visibilité et une meilleure capacité à répondre aux demandes des clients. On se heurte parfois à une inadéquation entre la dispersion des compétences dans des sociétés à taille humaine et l’attente d’un interlocuteur unique de la part des clients du secteur. Dans ce contexte, les SCOP du numérique gagnent à pouvoir faire front commun. Il est souvent plus facile de trouver une information pertinente et les interlocuteurs appropriés dans une structure arborescente avec un point d’entrée unique.
Des initiatives de structuration locales sont déjà en œuvre. Elles reprennent le maillage des Unions Régionales. Les régions Île-de-France, Auvergne-Rhône-Alpes et Provence-Alpes-Côte-d’Azur-Corse sont précurseurs dans le domaine. Les initiatives courantes prennent la forme d’association (Cooptech en île-de-France), d’une mise en relation animée par les permanents des Unions Régionales, de simples relations entre sociétés. Si les initiatives animées par les Unions Régionales disposent de l’avantage certain du travail d’animation de leurs permanents, les sociétés peuvent également être moteur de la structuration.
C’est sur la base de ces initiatives que les travaux pour une structuration à l’échelle nationale sont entrepris. La réunion mensuelle de l’association Cooptech qui s’est tenue le 19 avril 2022 a eu une audience élargie. Des acteurs du numérique, sociétés coopératives, permanents des Unions Régionales des SCOP et de la fédération de la communication ont profité de l’événement pour amorcer la discussion. En l’absence d’une fédération pour le secteur du numérique, la fédération du secteur de la communication est volontaire pour soutenir la structuration du secteur.
Les échelles régionale et nationale offrent toutes les deux des avantages. La première pour des raisons pratiques : la distance et le nombre de participants moindres facilitent les échanges. La seconde pour des raisons de visibilité et de poids dans l’échiquier économique du pays.
C’est pourquoi la structuration est envisagée aux deux niveaux. Deux mois, c’est le temps laissé pour une structuration préliminaire en région avant un premier bilan national : En Bourgogne-Franche Comté, un rendez-vous intermédiaire est donc programmé pour le 31 mai 2022 avec l’ambition de rassembler les quatre sociétés coopératives du secteur. Au programme, des présentations techniques mettant à l’honneur les savoir-faire des coopérateurs et des discussions sur les modalités de la structuration autour d’un repas convivial.