Articles

Sécurité de la chaîne d'approvisionnement logicielle

La sécurité de la chaîne d’approvisionnement logicielle est un sujet de plus en plus important. Il est essentiel de comprendre les risques et de mettre en place des mesures de sécurité adéquates.

Securisation des chaînes d’approvisionnement logiciel est devenu une considération de première classe – avec le codage et les pipelines CI/CD – lors du développement d’un produit logiciel. Trop de vulnérabilités ont été subliminalement introduites dans des produits logiciels et ont entraîné des violations catastrophiques pour nous, développeurs diligents, pour traiter la sécurité des chaînes d’approvisionnement en tant que dernière pensée. Les pratiques et principes fondamentaux énoncés dans ce Refcard fournissent une base pour créer des chaînes d’approvisionnement sûres qui produisent des livrables et des produits que les autres peuvent faire confiance.

La sécurisation des chaînes d’approvisionnement logicielles est devenue une considération de premier ordre – avec le codage et les pipelines CI / CD – lors du développement d’un produit logiciel. Trop de vulnérabilités ont été subliminalement introduites dans des produits logiciels et ont entraîné des violations catastrophiques pour nous, développeurs diligents, pour traiter la sécurité de la chaîne d’approvisionnement comme un afterthought. Les pratiques et principes fondamentaux décrits dans cette Refcard fournissent une base pour créer des chaînes d’approvisionnement sûres qui produisent des livrables et des produits que les autres peuvent faire confiance.

La sécurisation des chaînes d’approvisionnement logicielles est essentielle pour la sécurité des données. Les données sont à la fois un atout et un risque pour les entreprises. Les entreprises doivent être conscientes de la façon dont elles collectent, stockent et utilisent les données. La sécurisation des chaînes d’approvisionnement logicielles est un moyen de garantir que les données sont protégées et que les produits logiciels sont conformes aux normes de sécurité. Les pratiques recommandées comprennent la vérification des fournisseurs, l’utilisation de contrôles de sécurité et la mise en œuvre de processus de gestion des vulnérabilités.

Les outils et technologies modernes peuvent aider à sécuriser les chaînes d’approvisionnement logicielles. Les technologies telles que l’analyse statique du code, l’authentification à plusieurs facteurs et l’analyse des données peuvent être utilisées pour améliorer la sécurité des produits logiciels. L’utilisation de ces outils peut aider à identifier les vulnérabilités et à réduire le risque de violation des données. Les entreprises peuvent également mettre en œuvre des politiques et des procédures pour garantir que les produits logiciels sont conformes aux normes de sécurité. Enfin, il est important de surveiller régulièrement les chaînes d’approvisionnement logicielles afin de détecter les problèmes et de prendre les mesures nécessaires pour les résoudre.

La sécurisation des chaînes d’approvisionnement logicielles est essentielle pour assurer la sécurité des données. Les pratiques et principes décrits dans cette Refcard fournissent une base solide pour créer des chaînes d’approvisionnement sûres qui produisent des livrables et des produits que les autres peuvent faire confiance. Les outils et technologies modernes peuvent aider à améliorer la sécurité des produits logiciels et à protéger les données. Les entreprises doivent mettre en œuvre des politiques et des procédures pour garantir que les produits logiciels sont conformes aux normes de sécurité et surveiller régulièrement leurs chaînes d’approvisionnement logicielles afin de détecter les problèmes et de prendre les mesures nécessaires pour les résoudre.

La sécurisation des chaînes d’approvisionnement logicielles est devenue une considération essentielle lors du développement d’un produit logiciel. Trop de vulnérabilités ont été subliminalement introduites dans des produits logiciels et ont entraîné des

Source de l’article sur DZONE

Tutoriel OIDC pour sécuriser votre CI/CD

Apprenez à sécuriser votre CI/CD avec ce tutoriel OIDC ! Découvrez comment utiliser ce protocole pour protéger votre système de livraison continue.

Commençons par une histoire : Avez-vous entendu parler de la breach de CircleCI ? Non, pas celle où ils ont accidentellement divulgué des informations d’identification de clients il y a quelques années. Cette fois, c’est un peu plus sérieux.

The incident highlights the importance of testing security measures regularly. It’s not enough to just set up security measures and forget about them. Companies need to regularly test their security measures to make sure they are up-to-date and effective.

Commençons par une histoire : Avez-vous entendu parler de la violation de CircleCI ? Non, pas celle où ils ont accidentellement divulgué des informations d’identification de certains clients il y a quelques années. Cette fois, c’est un peu plus sérieux.

Il semble que des individus non autorisés ont pu accéder aux systèmes de CircleCI, compromettant les secrets stockés dans CircleCI. CircleCI a conseillé aux utilisateurs de faire tourner « tous les secrets » stockés dans CircleCI, y compris ceux stockés dans les variables d’environnement ou les contextes du projet.

L’incident met en évidence l’importance des tests de sécurité réguliers. Il ne suffit pas de mettre en place des mesures de sécurité et de les oublier. Les entreprises doivent régulièrement tester leurs mesures de sécurité pour s’assurer qu’elles sont à jour et efficaces.

Source de l’article sur DZONE

Alternatives à GitHub pour les projets d'apprentissage machine.

GitHub est un outil très populaire pour le développement de projets, mais il existe d’autres alternatives pour les projets d’apprentissage machine. Découvrez-les ici!

Alternatives populaires à GitHub pour les projets d’apprentissage automatique

2. GitLab (gitlab.com)

GitLab is an all-in-one platform that offers a wide range of features, including code review, issue tracking, and project management. It is an ideal choice for those who are looking for a comprehensive solution for their machine learning projects. It also provides an integrated CI/CD pipeline to automate the process of building, testing, and deploying ML models. Moreover, it offers a robust security system to ensure that your data remains safe and secure.

3. Bitbucket (bitbucket.org)

Bitbucket is another popular platform for managing machine learning projects. It is a great choice for teams that are looking for a powerful yet simple solution to manage their projects. It provides a comprehensive set of features, including code review, issue tracking, and project management. Additionally, it offers an integrated CI/CD pipeline to automate the process of building, testing, and deploying ML models.

Dans le monde technologique en constante évolution, la recherche continue de plateformes efficaces pour rationaliser les projets d’apprentissage automatique est toujours persistante. Il est indéniable que GitHub a ouvert un chemin facile pour les développeurs du monde entier. Cependant, nous comprenons la nécessité de la diversité et de l’innovation dans ce domaine. C’est pourquoi nous vous présentons les meilleures alternatives à GitHub qui peuvent révolutionner votre approche des projets d’apprentissage automatique. Plongeons-nous dans certaines de ces plateformes qui offrent des fonctionnalités et des fonctionnalités robustes qui peuvent facilement donner à GitHub un combat.

Alternatives populaires à GitHub pour les projets d’apprentissage automatique

1. DVC (dvc.org)

Le contrôle de version des données (DVC) est un puissant outil permettant une gestion et une collaboration rationalisées des projets. Fondamentalement, il simplifie la gestion des données en s’intégrant étroitement à Git, ce qui permet de suivre les modifications des données et des modèles de manière méticuleuse, similaire à la façon dont Git suit les variations du code. Cela favorise une approche plus organisée pour gérer de grands jeux de données et apporte un plus grand degré de reproductibilité, car les membres d’équipe peuvent facilement revenir aux versions précédentes si nécessaire.

2. GitLab (gitlab.com

Source de l’article sur DZONE

Outils et technologies CI/CD : libérez le pouvoir de DevOps.

Les outils et technologies CI/CD sont essentiels pour libérer le pouvoir de DevOps et optimiser votre cycle de développement. Découvrez comment!

Dans le monde trépidant du développement logiciel, l’intégration et le déploiement continus (CI / CD) sont devenus des pratiques indispensables dans les services DevOps.

Continuous Integration (CI)

Continuous Integration is a practice that enables developers to integrate code into a shared repository frequently. This allows teams to detect and fix errors quickly, as well as identify potential conflicts between different branches of code. Jenkins is the most popular CI tool, offering a wide range of features such as automated builds, tests, and deployments. Additionally, Jenkins integrates with a variety of other tools, allowing developers to create complex pipelines for their CI/CD process.

Continuous Delivery (CD)

Continuous Delivery is the practice of automating the process of delivering software updates to production. This ensures that software updates are released more quickly and reliably. To achieve this, developers rely on tools like Ansible and Chef for configuration management and deployment automation. These tools allow developers to define the desired state of their infrastructure and automate the process of provisioning and configuring servers. Additionally, they enable teams to deploy applications to multiple environments with minimal effort.

Conclusion

In conclusion, CI/CD is an essential practice in DevOps services that enables teams to deliver software updates more frequently and reliably. To achieve this, developers rely on a range of cutting-edge tools and technologies such as version control systems, continuous integration tools, and continuous delivery tools. By leveraging these tools, teams can streamline their workflows and automate various stages of the development process, ensuring smooth and reliable software delivery.

Système de contrôle de version (SCV)

Une base solide pour tout processus CI / CD dans les services DevOps est un système de contrôle de version robuste. Git est le SCV le plus utilisé, offrant des capacités puissantes de branchement et de fusion. Les développeurs peuvent collaborer sans heurts, suivre les modifications et résoudre les conflits efficacement, ce qui garantit que le code reste stable et sécurisé. GitHub, GitLab et Bitbucket sont des plateformes populaires qui intègrent Git et offrent des fonctionnalités supplémentaires telles que le suivi des problèmes, les revues de code et la gestion de projet.

Intégration continue (CI)

L’intégration continue est une pratique qui permet aux développeurs d’intégrer fréquemment du code dans un dépôt partagé. Cela permet aux équipes de détecter et de corriger rapidement les erreurs, ainsi que d’identifier les éventuels conflits entre différentes branches de code. Jenkins est l’outil CI le plus populaire, offrant une gamme étendue de fonctionnalités telles que des builds automatisés, des tests et des déploiements. De plus, Jenkins s’intègre à une variété d’autres outils, permettant aux développeurs de créer des pipelines complexes pour leur processus CI / CD.

Livraison continue (CD)

La livraison continue est la pratique qui consiste à automatiser le processus de livraison des mises à jour logicielles en production. Cela garantit que les mises à jour logicielles sont publiées plus rapidement et plus fiablement. Pour y parvenir, les développeurs s’appuient sur des outils tels qu’Ansible et Chef pour la gestion de la configuration et l’automatisation du déploiement. Ces outils permettent aux développeurs de définir l’état souhaité de leur infrastructure et d’automatiser le processus de mise en place et de configuration des serveurs. De plus, ils permettent aux équipes de déployer des applications sur plusieurs environnements avec un effort minimal.

Conclusion

En conclusion, CI / CD est une pratique essentielle dans les services DevOps qui permet aux équipes de livrer des

Source de l’article sur DZONE

Ne Pas Utiliser de Credentiels dans une CI/CD Pipeline

Les pipelines CI/CD sont des outils puissants, mais il est important de ne pas utiliser de credentiels sensibles pour éviter les risques de sécurité.

Comment Donner un Accès Sécurisé à des Services Tiers Sans Utiliser de Clés Secrètes

OpenID Connect (OIDC) is a protocol that allows users to authenticate themselves with an external identity provider, such as Auth0 or Okta. It works by exchanging an access token between the identity provider and the application. This token is cryptographically signed and contains a set of claims about the user, such as their name, email, and other attributes. The application can then use this token to authenticate the user and grant them access to resources.

En tant qu’utilisateur qui construit et maintient des infrastructures cloud, j’ai toujours été méfiant du point de vue de la sécurité lorsque je donne un accès à des services tiers, tels que les plateformes CI/CD. Tous les fournisseurs de services prétendent prendre des précautions strictes et mettre en œuvre des processus infaillibles, mais les vulnérabilités sont toujours exploitées et les erreurs arrivent. Par conséquent, ma préférence est d’utiliser des outils qui peuvent être hébergés en interne. Cependant, je ne peux pas toujours avoir le choix si l’organisation est déjà engagée auprès d’un partenaire externe, tel que Bitbucket Pipelines ou GitHub Actions. Dans ce cas, pour appliquer un IaC Terraform ou déployer un groupe d’échelle automatique, il n’y a pas d’autre choix que de fournir à l’outil externe une clé secrète API, n’est-ce pas ? Faux ! Avec la prolifération de OpenID Connect, il est possible de donner aux plates-formes tierces un accès basé sur des jetons qui n’exige pas de clés secrètes.

Le problème avec une clé secrète est qu’il y a toujours une chance qu’elle soit divulguée. Le risque augmente plus elle est partagée, ce qui se produit lorsque des employés quittent et que de nouveaux arrivent. L’un d’entre eux peut le divulguer intentionnellement ou ils peuvent être victimes d’une hameçonnage ou d’une violation. Lorsqu’une clé secrète est stockée dans un système externe, cela introduit un tout nouvel ensemble de vecteurs de fuite potentiels. Atténuer le risque implique de changer périodiquement les informations d’identification, ce qui est une tâche qui n’ajoute pas de valeur perceptible.

OpenID Connect (OIDC) est un protocole qui permet aux utilisateurs de s’authentifier auprès d’un fournisseur d’identité externe, tel qu’Auth0 ou Okta. Il fonctionne en échangeant un jeton d’accès entre le fournisseur d’identité et l’application. Ce jeton est signé de manière cryptographique et contient un ensemble de revendications sur l’utilisateur, telles que son nom, son adresse électronique et d’autres attributs. L’application peut ensuite utiliser ce jeton pour authentifier l’utilisateur et lui donner accès aux ressources.

Les jetons OIDC sont une alternative intéressante aux clés secrètes pour donner aux plates-formes tierces un accès limité aux ressources cloud. Les jetons sont générés par le fournisseur d’identité et peuvent être limités à une durée de vie spécifique et à un ensemble de revendications spécifiques. De plus, ils peuvent être révoqués à tout moment par le fournisseur d’identité si nécessaire. Les jetons OIDC sont donc une solution plus sûre et plus flexible pour donner aux plates-formes tierces un accè

Source de l’article sur DZONE

Guide de conception de tests pour votre pipeline CI/CD

Découvrez comment optimiser votre pipeline CI/CD grâce à notre guide de conception de tests complet et facile à suivre !

Lors de la livraison plus rapide du logiciel sur le marché, il est essentiel d’intégrer des tests automatisés dans votre pipeline de livraison continue pour vérifier que le logiciel respecte les normes attendues par vos clients. Votre pipeline de livraison continue peut également comporter de nombreuses étapes qui doivent déclencher ces tests automatisés pour vérifier les portes de qualité définies avant que le logiciel ne puisse passer à la prochaine étape et finalement être mis en production (voir la figure 1). Selon l’étape de votre pipeline, vos tests automatisés peuvent varier en complexité, allant des tests unitaires, d’intégration, fonctionnels et de performances. En tenant compte de la quantité et de la complexité des tests, ainsi que de la possibilité d’avoir plusieurs étapes dans votre pipeline, il peut y avoir de nombreux défis lors de l’intégration, de l’exécution et de l’évaluation de la qualité de votre logiciel avant sa sortie. 

Comment intégrer des tests automatisés pour accélérer la livraison du logiciel sur le marché tout en maintenant la qualité ?

En tant qu’informaticien enthousiaste, je sais que pour livrer plus rapidement des logiciels sur le marché, il est essentiel d’intégrer des tests automatisés dans votre pipeline de livraison continue afin de vérifier que le logiciel répond aux normes attendues par vos clients. Votre pipeline de livraison continue peut également comporter de nombreuses étapes qui doivent déclencher ces tests automatisés pour vérifier les portes de qualité définies avant que le logiciel ne puisse passer à l’étape suivante et finalement être mis en production (voir la figure 1). Selon l’étape de votre pipeline, vos tests automatisés peuvent aller de la simplicité des tests unitaires, d’intégration, d’extrémité à extrémité et de performances. En tenant compte de la quantité et de la complexité des tests, ainsi que de la possibilité d’avoir plusieurs étapes dans votre pipeline, il peut y avoir de nombreux défis à relever lors de l’intégration, de l’exécution et de l’évaluation de la qualité de votre logiciel avant sa mise en production.

Cet article décrira certains de ces défis. Je fournirai également des lignes directrices sur les meilleures pratiques à suivre pour que vos tests automatisés respectent un contrat afin d’accroître la livraison de votre logiciel sur le marché tout en maintenant la qualité. Suivre un contrat aide à intégrer vos tests de manière opportune et plus efficace. Cela aide également lorsque d’autres personnes de votre organisation doivent résoudre des problèmes dans le pipeline.

En tant qu’informaticien passionné, je sais que le codage est un élément essentiel pour intégrer des tests automatisés dans un pipeline de livraison continue. Les tests automatisés peuvent être codés pour vérifier que le logiciel répond aux normes attendues par les clients et que les portes de qualité sont respectées avant que le logiciel ne puisse passer à l’étape suivante et être mis en production. Cependant, lorsque vous codifiez des tests automatisés, il est important de tenir compte des problèmes liés à la qualité et à la fiabilité des tests. Par exemple, les tests peuvent être codés pour s’exécuter plus rapidement, mais cela peut entraîner une baisse de la qualité des résultats. Il est donc important de trouver un équilibre entre la vitesse et la qualité des tests pour garantir que le logiciel répond aux normes attendues par les clients. De plus, il est important de s’assurer que les tests automatisés sont suffisamment robustes pour pouvoir être exécutés sur différents systèmes et environnements. Cela garantit que les tests sont fiables et peuvent être utilisés pour vérifier la qualité du logiciel avant sa mise en production.

Source de l’article sur DZONE

Les modèles « en tant que service » font désormais partie de notre quotidien de consommateurs. À quand remonte la dernière fois que vous avez acheté un CD ou un DVD ? En ce qui me concerne, je ne m’en souviens pas. Toute ma famille utilise des plateformes de diffusion continue pour tout cela. Mes fils et moi commandons même nos lames de rasoir et nos crèmes de rasage selon un modèle similaire. Bien sûr, on dirait bien que c’est toujours moi qui paye, mais c’est un autre sujet !

Ce concept de vente d’un résultat en tant que service est communément appelé « servitization ». Hier simple modèle de consommation, c’est aujourd’hui une approche commerciale plus large, dans laquelle les dépenses d’investissement pour un équipement représentent de plus en plus un obstacle aux yeux de l’acheteur. Souvent, il est bien plus intéressant d’avoir accès au même équipement moyennant des frais mensuels, basés sur une utilisation à l’heure ou encore sur le débit.

Grâce à la servitization, les fabricants trouvent de nouveaux moyens de se rapprocher de leurs clients à travers des modèles économiques inédits. Pour ce faire, ils établissent une relation suivie, basée sur des transactions mensuelles alignées sur la consommation, le débit, la disponibilité ou l’exploitation des équipements plutôt que sur une transaction ou une vente ponctuelle attribuant la responsabilité de la maintenance au prestataire de services.

La servitization appelle des produits plus intelligents

Pour rendre la servitization possible, les équipementiers doivent concevoir des produits plus intelligents, capables de collecter les informations nécessaires à une facturation précise de leurs clients. Ils doivent également s’assurer que leurs équipements fonctionnent en permanence, et génèrent les données dont ils ont besoin pour prévoir les opérations de maintenance qui éviteront les pannes. Grâce à l’Internet des Objets (IdO), des capteurs emmagasinent les informations d’utilisation, de débit ou de performances pertinentes pour alimenter le processus de gestion en tant que service.

Grâce à un jumeau numérique de la machine, le fabricant et le client sont tous deux en mesure d’en surveiller les performances et d’utiliser les algorithmes d’apprentissage automatique afin d’évaluer le degré d’efficacité de son utilisation.

La valeur ajoutée de la servitization

Faire des services une part croissante et dynamique de votre activité, c’est accéder à de nouvelles sources de revenus et améliorer vos marges tout en évitant la banalisation et en érigeant la durabilité en véritable facteur de différenciation.

Prenons un exemple fictif. Soit une entreprise qui produit des machines à laver. Cette entreprise souhaite mettre en place un modèle de « lavage en tant que service », dans lequel elle facturerait ses clients en fonction du nombre de lavages réalisés chaque mois par leurs appareils.

Si, comme moi, le client fait partie d’une famille de cinq personnes, qui utilise la machine quotidiennement, il paiera davantage qu’une personne seule qui ne l’utilise qu’une fois par semaine. Le dénominateur commun est que la machine à laver doit fonctionner à pleine performance chaque fois que nécessaire.

Réinventer les modèles de services

Cette nouvelle offre de service requiert des contrats basés sur les résultats, qui incluent des mesures de performances des cycles de lavage et des accords de niveaux de service (SLA) garantissant une disponibilité à 100 %.

Afin de proposer une expérience immersive aux clients, une application peut leur fournir des données en temps réel sur leurs cycles de lavage : le moment où ils se terminent, combien de cycles ont été exécutés dans le mois, le coût, l’empreinte carbone, les performances de la machine…

Ces informations sont également utilisées par le fabricant et par une société de maintenance tierce pour gérer le cycle de vie complet des services, dans tous ses aspects : de l’installation à la facturation en passant par la garantie, l’émission de tickets de service, les interventions sur site, les réparations en atelier, la facturation et les solutions de financement.

Le modèle de service réduira également l’impact environnemental global de la machine en permettant une surveillance de la consommation d’énergie et d’eau, ainsi qu’une prise en charge de la mise hors service et du recyclage afin de maintenir l’équipement dans l’économie circulaire.

Des services précis afin de réduire les coûts et d’améliorer l’expérience client

La disponibilité des données relatives aux machines aide le fabricant et le partenaire de maintenance à repenser leurs opérations de gestion des services. Ils s’appuient sur une planification avancée basée sur l’IA pour hiérarchiser les interactions, améliorer l’utilisation des ressources et réduire les temps de déplacement.

Lorsqu’un technicien de service est dépêché pour réparer une machine, il doit avoir toutes les pièces nécessaires et toutes les informations de dépannage à portée de main via un appareil mobile. Il peut même être guidé dans son travail de réparation grâce à des lunettes à réalité augmentée. Le problème peut ainsi être résolu en une intervention, ce qui évite les longs délais provoqués par une commande de matériel après le rendez-vous.

Révolutionner le retour sur investissement en augmentant les performances des équipements et en allongeant leur durée de vie

Grâce à la visibilité accrue garantie par les capteurs d’IdO intégrés aux machines à laver, le fabricant est désormais en mesure d’assurer un suivi continu des performances de tous les équipements utilisés. Il peut ainsi surveiller leur état et leurs performances par rapport aux accords de niveau de service.

Le fabricant peut également tirer parti des données émises par toutes les machines et, grâce à des algorithmes d’intelligence artificielle, identifier des tendances ou encore anticiper le risque de défaillance. Il peut aussi proposer des opérations de maintenance préventive afin de limiter les pannes et de renforcer le service client. Enfin, ces informations peuvent être transmises aux équipes de recherche et de développement afin qu’elles éliminent tout problème récurrent au moment de concevoir la prochaine génération de la machine.

Un cycle de service de lavage vraiment complet

Il est évident que le modèle économique « en tant que service » perdurera – dans nos vies privées bien sûr, mais aussi de plus en plus au sein des entreprises modernes, auxquelles il permettra de dégager des gains dans tous les domaines.

Pour découvrir comment tracer votre voie vers une gestion de service d’excellence, téléchargez le récent livre blanc de Copperberg intitulé « Transformer la gestion des services pour une servicisation fructueuse ».

 

Richard Howells, Vice-président ERP et Supply Chain numérique chez SAP

The post Il est grand temps de prendre la « servitization » – les nouvelles prestations de services – au sérieux appeared first on SAP France News.

Source de l’article sur sap.com

Rightsizing resource requests is an increasing challenge for teams using Kubernetes—and especially critical as they scale their environments. Overprovisioning CPU and memory lead to costly overspending, but underprovisioning risks CPU throttling and out-of-memory errors if requested resources aren’t sufficient. Dev and engineering teams that don’t thoroughly understand the live performance profile of their containers will usually play it safe and request vastly more CPU and memory resources than required, often with significant budget waste.

The open source Kubecost tool (https://github.com/kubecost) has had a Request Sizing dashboard to help Kubernetes users bring more cost efficiency to their resource requests. One of the tool’s most popular optimization features, the dashboard identifies over-requested resources, offers recommendations for appropriate per-container resource requests, and estimates the cost-savings impact of implementing those recommendations. The dashboard utilizes actual usage data from live containers to provide accurate recommendations. However, leveraging the dashboard has included some hurdles, requiring users to manually update YAML requests to align resource requests with Kubecost recommendations or introduce integrations using a CD tool. 

Source de l’article sur DZONE

The goal for a successful continuous delivery process is to minimize the time it takes for development teams to go from idea to usable software by practicing agile techniques and automating the entire software delivery system: build, deploy, test, release. This Refcard explains detailed patterns and anti-patterns for core areas of CD, including the delivery and deployment phases, rollbacks, pipeline observability and monitoring, documentation, as well as communication across teams and within the organization.
Source de l’article sur DZONE