25 juin 2024
– 3 minutes de lecture
Transformation Agile des Organisations
Séverin Legras
Directeur Agilité, Projets & Produits
Retour sur la 4ème édition du Campus de l'Innovation Managériale
25 juin 2024
– 3 minutes de lecture
Transformation Agile des Organisations
Séverin Legras
Directeur Agilité, Projets & Produits
Faire émerger une vision cible et la partager !
25 juin 2024
– 3 minutes de lecture
Transformation Agile des Organisations
Ombeline de Lavenère
Senior Manager Organisation Apprenante & Leadership Agile
25 juin 2024
– 3 minutes de lecture
Transformation Digitale
Hajer Lagha
Senior Manager Transformation Digitale
Vers une livraison continue : les stratégies et bonnes pratiques pour concevoir une usine logicielle CI/CD performante
24 juin 2024
Pascal Ly
Consultant Senior Architecture
La mise en place d’une usine logicielle CI/CD (intégration et déploiement continu) est un élément clé pour les équipes DevOps. Cependant, il existe un débat sur la meilleure approche pour atteindre cet objectif : construire en interne ou acheter une solution sur le marché.
Dans les 2 cas, un investissement initial est nécessaire, mais indispensable pour obtenir des résultats probants sur la durée.
Toutefois, les options sont nombreuses et variées. Dès lors, toutes les possibilités offertes sur le marché peuvent rapidement dépasser une entreprise.
La transition vers le DevOps implique un changement culturel et une collaboration étroite entre développeurs (Dev) et exploitants (Ops). Cette évolution repose sur le choix judicieux et la mise en œuvre efficace d’une chaîne d’outils adaptée.
Quels sont les éléments à prendre en considération pour construire un écosystème DevOps à la fois agile et performant ?
Quelles sont les étapes pour mener à bien cette réflexion ?
Une usine logicielle (UL) permet d’automatiser les processus liés au développement de logiciels avec une approche structurée. L’usine logicielle tire son inspiration des pratiques de Toyota dans les années 70, avec des processus de fabrication automatisée.
Les objectifs auxquels répond ce type de plateforme sont multiples :
Les développeurs réduisent les risques lors des déploiements en utilisant une plateforme commune pour le contrôle de version, l’analyse de code, et les tests.
L’orchestration et l’automatisation de ces activités fiabilisent ainsi les mises en Production. Elles assurent une livraison continue du produit tout en restant conforme à l’évolution du marché.
Il est désormais incontestable que les entreprises qui adoptent la culture DevOps bénéficient d’un retour sur investissement significatif. Pour plus d’informations, consultez notre article les 6 bonnes raisons afin de vous convaincre de franchir le pas !
Pour commencer, utilisez une architecture de référence pour guider la construction d’un système de développement et de livraison automatisé.
Une plateforme DevOps est constituée d’outils nécessaires à l’industrialisation du développement. Ces outils peuvent être regroupés sous 5 grandes familles d’activités :
Chaque famille comprend plusieurs fonctions qui ne sont pas destinées à être toutes implémentées, et encore moins au même moment. Ainsi, vous pouvez réaliser les tests de non-régression en dehors du pipeline et les intégrer dans un deuxième temps.
La création d’une usine logicielle nécessite une vision à court, moyen et long terme. Elle nécessite l’application des bonnes pratiques dès le début, et une réflexion sur le niveau d’intégration souhaité.
Combien de chaînes DevOps à mettre en place ? Pour quels besoins ?
La définition de l’architecture de référence n’est que la première étape de votre démarche.
Avant de commencer à construire des pipelines de livraison de logiciels, il est crucial de définir les utilisateurs de ces usines.
L’usage doit être étudié sous plusieurs aspects :
Mettre en place plusieurs pipelines n’implique pas une totale autonomie de chaque équipe en matière de choix technologiques et de stratégie globale.
Avant de créer une UL, il est essentiel que les équipes coopèrent, partagent leurs décisions et alignent leurs savoir-faire pour le déploiement et le partage des connaissances : You build it, You run it (celui qui conçoit est aussi celui qui déploie), and You share it (et partage ses connaissances à travers des communautés de pratiques pour aligner les savoir-faire).
Par choix stratégique de l’entreprise, il arrive souvent que des applications fusionnent pour ne former qu’un seul et même outil. Si une seule usine logicielle ne gère pas initialement les applications, réévaluez le choix de l’usine pour réaliser les tests et se conformer aux risques de sécurité des différentes parties.
En revanche, il n’est pas nécessaire d’administrer plusieurs outils de gestion du code source sur le(s)quel(s) seraient raccordés le(s) pipeline(s).
Les possibilités sont nombreuses et la conception ne s’arrête pas à ces perspectives. Certains découpages seront plus favorables à l’entreprise en fonction de la maturité des équipes, de l’homogénéité des solutions, du budget, ou encore des enjeux métiers.
Vaut-il mieux acheter une solution du marché, payer à l’usage, ou se créer sa propre pile technologique ?
Le choix relève d’une décision stratégique et est porté suivant plusieurs axes de réflexion :
Ne sous-estimez pas l’effort et le coût nécessaire pour construire et maintenir un pipeline basé sur des logiciels open source (ex: GIT, Jenkins, SonarQube, Maven) : l’open source ne signifie pas nécessairement que c’est gratuit, mais que vous avez la possibilité de modifier et customiser le code source à votre convenance.
L’avantage d’utiliser une plateforme externalisée en mode PaaS ou SaaS (ex: Azure Devops, AWS CodePipeline, Google Cloud Build, GitLab) est de pouvoir immédiatement en tirer de la valeur. Certes, un outil propriétaire générera des coûts de licence ou d’utilisation, mais vous pourrez vous concentrer à 100% sur l’essentiel : délivrer de la valeur pour les métiers.
De plus, une solution orientée « As A Service » propose une chaîne d’outils “Tout-en-Un” et s’affranchit des risques d’obsolescence. Les mises à jour sont généralement transparentes pour les utilisateurs.
Les différences entre les logiciels open source et propriétaires vont bien au-delà de l’accessibilité du code source. Elles incluent également des éléments cruciaux tels que l’assistance technique, l’UX/UI, l’innovation, la sécurité et les coûts.
La réussite d’une organisation DevOps repose en grande partie sur une vision partagée à long terme et des ressources humaines et financières allouées à sa mise en place : auditez vos équipes et votre organisation !
Pour identifier les applications de votre entreprise et celles éligibles à une automatisation, commencez par les localiser.
Selon la cartographie que vous établirez, une stratégie envisageable consisterait à mettre en place :
Cette option a notamment pour avantage de limiter la gestion des routes et des flux réseau.
Certains éditeurs proposent des solutions clé-en-main et gèrent la maintenance de l’UL à la place du client.
Même s’il peut y avoir des avantages à utiliser une plateforme “As A Service”, il faut néanmoins rester vigilant avant de se lancer. En effet, certaines peuvent couvrir plusieurs langages ou sont compatibles avec plusieurs fournisseurs Cloud, alors que d’autres vont chercher à vous verrouiller avec un fournisseur en particulier.
Aussi bien d’un point de vue de l’infrastructure que du logiciel, une étude est à mener et plusieurs éléments sont à prendre en considération.
Pour un outil propriétaire :
Pour un outil open source :
Pour les 2 types :
Organisez un REX : renseignez-vous auprès de votre réseau professionnel, mais également au sein de votre direction ou département. Il se pourrait qu’une autre entité de votre entreprise ait déjà installé une UL et qui corresponde à votre besoin ! Un retour d’expérience est une mine d’information qui pourra conforter ou orienter les décisions, évitant ainsi quelques études complémentaires à l’implémentation.
Le Digital Employee Experience (DEX) : Quelle valeur peut-elle vous apporter ?
18 juin 2024
Achraf KHOUZAR
Senior Consultant
81 % des directeurs et acteurs IT pensent que les entreprises qui ne font pas du DEX une priorité seront distancées par leurs concurrents.
Avec l’évolution constante des technologies et le développement du travail à distance, les entreprises accordent de plus en plus d’importance à l’expérience digitale de leurs collaborateurs.
D’un point de vue collaborateur, les attentes vis-à-vis de leur environnement de travail ont également connu une transformation significative. Plusieurs facteurs doivent être pris en considération pour répondre aux nouvelles exigences et aspirations des employés.
D’après une étude d’Ivanti, 63 % des employés exercent une partie de leur activité en dehors du cadre traditionnel du bureau, et de ce fait, garantir une expérience numérique satisfaisante, sécurisée et efficace pour les collaborateurs devient un enjeu considérable pour la majorité des entreprises.
Comment peut-on définir la solution DEX et que peut-elle vous apporter ?
Gartner définit les outils de la Digital Employee Expérience, dite DEX comme une « évolution de la supervision de l’expérience digitale, de la gestion unifiée des terminaux (UEM) et des outils de monitoring et de gestion à distance”.
Dans un sens plus large, il faut considérer la DEX non seulement comme un outil mais comme une stratégie globale qui vient superviser, sécuriser et optimiser l’expérience numérique des collaborateurs.
Ils permettent aux équipes de la Digital Workplace (DWP) d’avoir une vue globale sur l’expérience digitale des employés et de mettre en place des stratégies centrées sur l’humain.
La Digital Employee Experience est une tendance majeure dans le monde professionnel. Les chiffres clés montrent l’importance croissante de la DEX dans la stratégie de transformation numérique des entreprises.
En effet, selon une étude Ivanti, 80 % des directeurs et acteurs IT interrogés considèrent la DEX comme un élément clé de leur stratégie de transformation numérique.
De plus, 81 % d’entre eux pensent que les entreprises qui ne font pas du DEX une priorité seront distancées par leurs concurrents.
Lorsque l’on évoque le Digital Employee Expérience ou également appelée Tour de contrôle, il est essentiel de comprendre les enjeux de cet outil au sein des entreprises.
Tout d’abord, la gestion de la DEX joue un rôle majeur dans
La solution DEX offre une visibilité de bout en bout sur l’IT pour améliorer l’expérience digitale des employés :
Pour choisir une solution DEX adaptée à ses besoins, il est essentiel de prendre en compte certaines fonctionnalités clés, notamment :
Accroître le digital expérience | Établir des mesures strictes sur le Digital Workplace Mesurer la perception qu’ont les collaborateurs de leur expérience technologique Mesurer la performance du réseau, des équipements et des applicationsIdentifier les tendances organisationnelles en termes d’adoption ou d’utilisation des technologiesEnrichir la définition de persona à travers l’intégration de données DEX |
Réduire les incidents | Identifier les problèmes de performances non signalées et ainsi lutter contre les “Digital Friction” Identifier et suivre les tendances de performances des équipements avant la survenue de l’incident Identifier et remédier aux freins du télétravail, tel qu’un mauvais réseau Wifi |
Augmenter l’efficience | Améliorer l’experience du service desk en facilitant la résolution précoce des incidents(shift left), par l’obtention de données pertinentes (utilisateur, équipement, etc)Identifiez avec précision tous les collaborateurs impactés par un incidentAméliorez l’expérience d’Onboarding des employés en utilisant les données du DEX pour déterminer les applications et services dont ils peuvent avoir besoin |
Réduire les coûts | Supprimer les logiciels inutilisés et récupérer les coûts de licence Rightsizing des terminaux physiques et logiques Réduire la dette technique en supprimant les apps obsolètes qui ont été remplacéesIdentifier les opportunités de réduction de la consommation d’énergie |
Accélérer les valeurs | Soutenir les programmes d’amélioration continue de l’ingénierie et des services.Identifier la performance de vos équipements et applications par rapport aux concurrents Identifier les opportunités de déploiementEvaluer l’impact du Digital Workplace sur le business |
Faisons un focus sur l’utilisation du DEX dans un contexte de travail hybride pour prévenir et réduire les incidents au sein d’une entreprise.
Alors que les modèles de travail hybride deviennent la norme, les organisations doivent offrir une expérience digitale cohérente, fiable et sécurisée à leurs employés. Les applications de communications unifiées font partie des applications les plus critiques dans ce modèle car impactent directement la productivité.
Les défis
Parmi les bénéfices pour ce cas d’usage:
La DEX offre une sorte de tour de contrôle pour les équipes en charge du digital workplace en entreprise. Et en tant que tour de contrôle, elle se charge de collecter les informations relatives aux équipements, applications et autres ressources que l’on peut associer à l’IA pour permettre aux équipes IT d’agir de manière proactive dans la prise de décisions et améliorer l’expérience des collaborateurs.
Dans ce contexte en constante évolution, les entreprises doivent s’adapter pour répondre aux nouvelles attentes des collaborateurs.
En favorisant un mode de travail hybride, en mettant en place un cadre culturel et managérial propice à l’épanouissement des employés, et en offrant une expérience digitale exemplaire, les entreprises seront en mesure d’attirer et de retenir les talents clés.Reconnaître la valeur de chaque collaborateur et placer son bien-être au cœur des préoccupations permettra aux entreprises de prospérer dans un environnement compétitif tout en renforçant l’engagement et la loyauté de leurs équipes. Le Digital Employee Experience est ainsi un levier essentiel pour assurer la réussite de l’entreprise dans cette nouvelle ère du travail.
Concevoir ses APIs avec Stoplight : un tour d’horizon
18 juin 2024
Stoplight est un outil de conception d’API qui permet aux développeurs de créer, de documenter et de tester des API de manière efficace et collaborative. Il embarque les fonctionnalités que l’on retrouve en partie sur les outils accélérateurs de développement d’API tels que Postman, SoapUI ou encore l’écosystème Swagger.
Quelles sont les caractéristiques spécifiques de l’outil et ses limites le cas échéant ?
Comment se positionne-t-il par rapport à des outils implémentant des fonctions comparables ?
Stoplight permet de créer de nouveaux projets sous la spécification OpenAPI. A noter que GraphQL ou AsyncAPI ne sont pas encore supportés. L’outil pouvant s’interfacer avec GitLab, GitHub, BitBucket ou encore Azure DevOps, il est aussi possible d’importer des projets existants.
Une fois le projet créé, il faut maintenant définir notre API. Il est possible soit de la créer (fichier format JSON ou YAML), soit d’importer un fichier de spécification OpenAPI, ou une collection Postman. Diverses versions d’OpenAPI sont supportées (2.0, 3.0 et 3.1 à l’heure de la rédaction de cet article).
On pourra définir des modèles d’objets communs à notre projet ou spécifiques à une API. L’édition des endpoints, des paramètres et des réponses se fera facilement soit en utilisant la vue formulaire, soit la vue code, dans tous les cas avec une preview en temps réel.
Pour bien garder à jour notre projet, en se branchant par exemple à GitHub, il est possible de configurer les échanges souhaités et ainsi de mettre à jour l’API à chaque changement de Git et vice-versa.
Le linting d’une API est une analyse de son code pour faire remonter des erreurs, warnings et incohérences, à la manière d’un compilateur.
Stoplight propose des style guides de linting par défaut qu’on peut ensuite modifier ou importer. Ces règles seront utilisées pour l’outil de linting intégré basé sur Spectral.
Cela permet de vérifier que la définition de l’API correspond aux bonnes pratiques du marché et aux méthodes spécifiques à l’entreprise.
La configuration du linting est évidemment modifiable à souhait. On pourra ainsi garantir plus facilement une cohérence accrue entre des API qui auraient été faites par diverses personnes, ainsi que réduire le nombre d’erreurs. D’où finalement une API de meilleure qualité.
La documentation de l’API dans Stoplight est gérée via le composant open source Elements intégré à la plateforme. Suivant la spécification OpenAPI, on pourra facilement créer la documentation des endpoints, des réponses, le tout avec un environnement interactif et non figé.
De plus, Stoplight supporte les fichiers Markdown (dans l’onglet Docs) permettant de documenter l’API davantage. Cela offre la possibilité d’y intégrer du contenu non textuel : tableaux, images, diagrammes Mermaid ou contenu d’autres sites (Twitter, Youtube, Giphy, Spotify, etc.). La documentation n’en sera que plus riche et la découverte de votre API facilitée, d’où une meilleure adoption.
Il est possible de tester l’API à l’aide de fonctionnalités nativement intégrées dans l’outil. Ainsi la vérification de contrat sera t-elle automatique via le cross checking de la spécification Open API.
Stoplight propose une interface à travers laquelle écrire et exécuter des tests pour évaluer la réponse de chaque endpoint et méthode. Il est également possible d’utiliser le module Prism pour simuler les appels, dans un environnement de test minimal intégré.
La plateforme supporte les méthodes d’autorisation OAuth2 et OpenIDConnect. L’outil met à disposition une interface dans laquelle il est ainsi possible de déclarer la modalité de contrôle utilisée, le flow et les paramètres évalués (clé d’API, token, credentials)
Enfin l’outil intègre également l’utilitaire de ligne de commande NPM et permet de pousser les mises à jour d’une API sur l’interface de navigation de Stoplight. L’API sera alors sur le Studio Web.
Une fois l’API testée et validée, vous pouvez utiliser Stoplight pour générer du code serveur et client à partir de votre définition d’API. En effet la plateforme est équipée d’un générateur de code (stubs serveur, configuration…) supportant plusieurs langages de programmation (notamment Java, JavaScript…).
Les capacités de Stoplight à l’heure de la rédaction de cet article sont cependant plus focalisées sur la documentation et les features de collaboration, et sont plus limitées sur la génération de code que celles d’un Swagger Codegen par exemple.
On peut noter pour conclure que Stoplight est un outil avec une couverture relativement large des fonctionnalités de conception et de construction d’une API. Il supporte également les standards d’implémentation en la matière (norme OpenAPI, flux de sécurisation avec OAuth et OIDC…).
Il répond de manière plus complète à des besoins en amont de conception et de développement. Cependant, il présente des limites. Il offre également une couverture moins importante sur des fonctions plus aval, telles que la publication et le contrôle plus fin d’accès à des ressources exposées par API.
Auteurs : Srikanth & Hugues