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

lundi 8 avril 2019

C'est quoi un Ingénieur d'Intégration Continue

L’intégration continue est un concept qui se base sur l’analogie avec une usine automatisée. Sauf qu’au lieu de construire des voitures, on construit un logiciel. Un logiciel est modifié sans cesse et pour sécuriser son processus de fabrication, il faut automatiser le plus possible sa fabrication.

En 2013, j'écrivais déjà un article sur l'intégration continue : Outils d'Intégration Continue

Attention l'intégration continue s'entend souvent sur multiplateformes une partie des développements viennent de Windows et peut être qu'une autre partie vient de Linux, il faudra évoquer CMake.

Pour découvrir rapidement CMake :

Alexandre Laurent - Développez.com - Utiliser CMake pour compiler un projet

Etape par étape, je vais détailler les outils correspondants au métier de l'Ingénieur d'intégration continue. Dans les équipes de développement une personnes est dédiée à l'intégration continue. C'est ce qui différencie un développement artisanal d'un véritable développement professionnel. 

Alors quelles sont les spécificités de ce métier ? Quelles sont les nouveautés de ces dernières années.

Ingénieur d'intégration continue définition de poste

Je débute par une définition de poste voilà ce que je propose :

Collaborer avec les experts techniques R&D (architectes logiciel et experts métier) et les utilisateurs (équipes de qualification des produits) pour comprendre les exigences métier et identifier les solutions d’intégration et déploiement automatisés et de validation automatique de nos produits logiciels.

Il s'agit bien sûr d'une très grosse société au sein d'une très grosse équipe. Là on se rend compte que l'intégration continue n'a pas pu être mise en œuvre, il faut donc un facilitateur.

Et l'on donne l'outil Jenkins

Nous y voilà, nous avons une parfaite connaissance d'MSBuild on y ajoute les Outils d'Intégration Continue et au dessus de tout ça l'outil Jenkins va nous permettre de faire quoi ?

https://jenkins.io/solutions/c/
Jenkins Documentation Use-cases - C/C++

Jenkins Définition

Jenkins est un serveur d'automatisation open source autonome qui peut être utilisé pour automatiser toutes sortes de tâches liées à la création, au test, à la livraison ou au déploiement de logiciels.

Jenkins Installation

Jenkins est une application web à laquelle on accède par localhost une fois installée.

Jenkins - Getting started with the Guided Tour

La suite consiste à créer des pipeline des canaux de livraison continue. L'objectif de Jenkins est de pouvoir enchaîner les différentes étapes pour construire tester et déployer l'application.

Vous maîtrisez un outil comme Jenkins vous êtes un Ingénieur d'Intégration Continue.

Vous avez maintenant tout le loisir de vous former à Jenkins. Je voudrais aborder une notion importante de Jenkins c'est Blue Ocean dit comme ça c'est flou mais Blue Ocean vient se mettre au dessus de Jenkins et permet de repenser l'expérience utilisateur de Jenkins. Blue Ocean est un éditeur de pipeline.

En suite, je pense faire un tour du côté de ce site :

Continuous Integration with MSBuild and Jenkins – Part 1

Et puis un petit retour sur la doc Jenkins et l'intégration de MSBuild Plugin pour l'intégration continue sur plateforme Windows :

Jenkins - MSBuild Plugin

Car MSBuild cela je connais bien :

MSBuild - Outils d'intégration continue

Donc un Ingénieur d'intégration continue ce serait quelqu'un qui maîtrise aussi bien MSBuild que Jenkins. Ce blog est donc l'outil pour devenir un Ingénieur d'Intégration Continue.


vendredi 14 décembre 2018

Connaissez-vous la RPA, la Robotic Process Automation ?

Dans son principe la Robotic Process Automation est une technique qui consiste à mettre à la place de l'utilisateur un robot face aux IHMs du Système d'Information. Ceci afin d'automatiser des tâches répétitives.

Soit le robot vient en aide à l'utilisateur, on parlera alors de "RPA Attended", soit le robot s'exécute de façon autonome, on parlera alors de "RPA Unattended".

RPA - Robotic Process Automation
RPA - Robotic Process Automation

La RPA se situe au dessus du scriptage au sens ou le robot attaque directement l'IHM du Système d'Information. Il y a conservation de l'intégrité des données telles qu'elles sont traitées par les utilisateurs alors qu'un script pourrait endommager des données ou ne pas respecter le processus utilisateur.

Je fais l'impasse sur les arguments marketing ce qui m'importe c'est l'intérêt de la solution technique. Après une première recherche sur Internet à la vue de la qualité et de l'agressivité des Sites, c'est sûr, c'est un sujet en vogue en ce moment.

Je vous laisse lire les arguments marketing des premières solutions trouvées sur Internet :

Kofax - Get the Power of Robotic Process Automation

Laserfiche - What is Robotic Process Automation?

Techniquement qu'elle pile d'outil qu'elle Stack ?

Pour réaliser un projet de RPA, il faut mettre en place de outils on parle de UiPath grafiquement on a vu lors d'une démonstration, la possibilité de réaliser un graphe de processus pour enchaîner les opérations nécessaires à la réalisation de la tâche de RPA.

UiPath Solution

Pas de prix, pas de détail sur la solution, on vous propose de : "Démarrer tout suite". C'est embêtant on a peu d'élément pour se faire  une idée de la solution.

Je vous laisse avec les arguments marketing :

UiPath - Robotic Process Automation (RPA)

Donc techniquement de quoi vas t-on avoir besoin pour mettre en œuvre notre projet de RPA ?

Stack Open Source de RPA Robotic Process Automation

python

Le langage, le ciment fédérateur de la stack d'outils

Autolt

AutoIt Scripting Language : AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general Scripting.

https://www.autoitscript.com/site/autoit/
Autolt - Scripting

AutoIt v3 est un langage de script gratuit de type BASIC conçu pour automatiser l'interface graphique Windows et les scripts généraux. Il utilise une combinaison de frappes de touche simulées, de mouvements de la souris et de manipulations de fenêtres / contrôles afin d’automatiser les tâches de manière impossible ou fiable avec d’autres langues (par exemple, VBScript et SendKeys).

Selenium

Set of tools used to automate testing of Web Applications

sikuli

Réaliser vos scripts de façons visuelle

Jenkins

bien connu des développeurs DevOps

JOBScheduler

pourquoi pas

ELK Stack

Faire des logs, des logs, toujours logger pour savoir ce qu'il se passe au sein du SI.

Open RPA

Bon et alors et maintenant ? Si on essayait d'en savoir un plus techniquement en regardant par exemple les solutions Open RPA en opposition aux solutions propriétaires qui oblige à être en relations commerciale avec le fournisseur.

Voici la solution LECSYS :

LECSYS - Open RPA
La RPA (Robotic Process Automation) consiste à remplacer des actions utilisateurs sur l’environnement informatique existant (SI, outils bureautique, web…) par des actions effectuées par un automate.

RPA Exemples et Toturials

Allons encore un peu plus loin avec Guru99 :

GURU99 - RPA Tutorial: What is, Tools and Samples
Une vision industrielle de la Robotic Process Automation avec un exemple concret d'automatisation du traitement des factures. Des explications et des exemples vers les principaux outils comme UiPath, Blue Prism, en anglais.

Conclusion sur la RPA

J'ai maintenant une idée plus fine et je l'espère vous aussi de ce que peut être la RPA (Robotic Process Automation). Je compléterai cet article la prochaine fois que l'on évoquera la Robotic Process Automation.

Ca fait un peu flipper ce concept quand même. Et malgré les arguments marketing que vous pouvez avoir lu, ce n'est pas à mettre dans toutes les mains, il faut une bonne maitrise de la programmation pour réaliser et aller au bout d'un projet réussi de RPA.

N'hésitez pas à commenter apportez votre grain de sel !