Présentation du Kit de développement de blockchain Azure

Publié le 15 novembre, 2018

Principal Program Manager, Blockchain Engineering

« Développeurs ! Développeurs ! Développeurs ! » Cette expression reflète l’histoire de Microsoft en matière de démocratisation de technologies complexes et d’offre à tous de la possibilité de créer des logiciels.

En quatre décennies, nous avons levé les obstacles au développement avec l’outillage de développement, l’intégration d’entreprise, DevOps, PaaS et SaaS. Aujourd’hui, les offres sans serveur, de Functions et Logic Apps à Azure DevOps et IoT Central, suppriment les frictions du développement dans le cloud.

Ce matin, nous sommes heureux d’annoncer la première version du Kit de développement de blockchain Azure, qui repose sur des technologies sans serveur de Microsoft, et intègre en toute transparente la blockchain avec le meilleur des technologies SaaS Microsoft et tierces.

Ce kit étend les fonctionnalités de nos modèles de développement de blockchain et d’Azure Blockchain Workbench qui incorpore des services Azure pour les API de gestion de clés, de surveillance des identités et de données hors chaîne, ainsi que de messagerie, dans une architecture de référence permettant de construire rapidement des applications basées sur une blockchain.

Ces outils sont devenus pour de nombreuses organisations la première étape de leur processus de réinvention de la manière dont elles mènent leurs activités. Des applications ont été conçues pour tout, de la démocratisation du financement de la chaîne logistique au Nigeria à la sécurisation de l’approvisionnement alimentaire au Royaume-Uni. Cependant, à mesure que des modèles ont émergé dans divers cas d’usage, nos équipes ont identifié de nouvelles façons pour Microsoft d’aider les développeurs à aller plus loin, plus vite.

Cette version initiale hiérarchise les fonctionnalités liées à trois thèmes clés : la connexion d’interfaces, l’intégration de données et de systèmes, ainsi que le déploiement de contrats intelligents et de réseaux de blockchain.

Se connecter

Pour fournir des solutions de blockchain de bout en bout à des consortiums, les développeurs doivent permettre aux organisations, aux personnes et aux appareils de se connecter à la blockchain à partir d’un ensemble hétérogène d’interfaces utilisateur.

Prenons par exemple une chaîne logistique de bout en bout pour un produit tel que le cacao.

  • Des interfaces SMS et vocales permettent à de petits exploitants agricoles en Afrique de négocier et de suivre leurs marchandises dès le premier kilomètre de la chaîne logistique.
  • Des appareils Internet des objets (IoT) fournissent des données de capteur permettant de suivre les conditions des marchandises à différents points de leur parcours vers le marché : par exemple, suivi de l’humidité à l’intérieur des conteneurs dans lesquels des fèves sont maintenues à la température du produit final de crème glacée dans lequel elles doivent être incorporées.
  • Des clients mobiles permettent aux prestataires de services logistiques d’accepter et de transférer la responsabilité des produits en transit du fabricant au détaillant, en utilisant la puissance de calcul déjà disponible dans les poches de leurs employés. Les appareils mobiles disposent également de capteurs, tels que des GPS et autres appareils photo, capables d’ajouter des données complémentaires permettant de vérifier le contenu, le lieu et le moment des livraisons.
  • Des systèmes et données backend sous la forme de systèmes ERP tels que Dynamics et SAP permettent de gérer des processus de base pour différents participants. Ces systèmes deviennent également des clients via une extension, et doivent interagir avec des contrats intelligents pour fournir et recevoir des données pouvant être attestées pour le compte d’une organisation.
  • Des robots et assistants permettent aux fabricants et aux détaillants d’interagir avec la chaîne logistique. Cela inclut une interaction avec des contrats intelligents pour les commandes et la provenance, utilisant le langage naturel et des données pouvant être attestées de la blockchain pour conduire des mesures prises pour le compte d’un utilisateur.
  • Des clients web permettent aux consommateurs finaux d’interroger l’origine du produit acheté au détail, généralement un mélange de provenance et d’historique d’acheminement du produit de la ferme à l’assiette.

Le Kit de développement de blockchain Azure inclut des exemples pour tous ces scénarios, notamment des SMS entrants et sortants, des réponses vocales interactives (IVR) , IoT Hub et IoT Central, un client mobile Xamarin pour iOS et Android, l’intégration de Dynamics via Common Data Service (CDS), des robots et assistants (Cortana, Alexa, Assistant Google) et interface web.

Intégrer

Les entreprises ont recours à la blockchain et aux contrats intelligents pour faciliter les processus multiparties. La blockchain offre également une transparence en temps réel des états et événements liés à ces contrats aux participants concernés.

Des solutions de blockchain de bout en bout nécessitent une intégration avec des données, des logiciels et des médias « hors chaîne ». Des mises à jour et événements externes peuvent déclencher des actions sur des contrats intelligents. Des événements de contrat intelligent et changements d’état peuvent ensuite déclencher des actions et mises à jour de données sur des systèmes et données « hors chaîne ». Ces systèmes externes et l’intelligence artificielle devront également pouvoir interroger des données pouvant être attestées provenant de contrats intelligents pour informer l’action.

Il existe en particulier deux domaines d’intégration où des conseils sont les plus nécessaires :

Documents et médias : les documents et médias n’appartiennent pas à la chaîne, mais les processus métier incluent souvent des images, des vidéos, de l’audio, des documents Office, des fichiers de CAO pour imprimantes 3D ou d’autres types de fichiers.

Le modèle courant consiste à générer un hachage unique du média et des métadonnées qui le décrivent. Ces hachages sont ensuite placés sur une chaîne publique ou privée. Si l’authenticité d’un fichier est mise en doute, les fichiers « hors chaîne » peuvent être à nouveau hachés, et le hachage ainsi obtenu comparé au hachage « dans la chaîne » stocké dans la blockchain. Si les hachages correspondent, le document est authentique. En revanche, si le moindre pixel d’une image ou d’une lettre d’un document a changé, les hachages ne correspondent pas, et cela indique l’existence d’une falsification.

Nous publions aujourd’hui un ensemble d’applications Logic Apps qui permettent le hachage de fichiers et de métadonnées associées à ceux-ci. Sont également inclus des contrats intelligents pour les fichiers ainsi qu’un registre de fichiers pour stocker les hachages sur la chaîne.

Des applications Logic Apps ont été créées pour fournir cette fonctionnalité pour les fichiers ajoutés aux sources les plus courantes de documents et de médias, dont Stockage Azure, OneDrive, OneDrive Entreprise, SharePoint, Box, Adobe Creative Cloud et FTP .

Documents et médias

Interaction de contrat intelligent : sortir la blockchain du tableau blanc et la mettre en production implique de traiter les réalités de la manière dont les contreparties interagissent aujourd’hui. Cette réalité est que l’intégration Entreprise est compliquée.

Microsoft apporte à la blockchain ses décennies d’expérience dans ce domaine. Notre travail d’intégration de systèmes Entreprise a commencé il y a près de deux décennies avec l’introduction de BizTalk Server. Et notre focalisation sur l’intégration de base de données remonte à notre intervention dans le co-développement d’Open Database Connectivity (ODBC) dans les années 1990. Toute notre expérience a été capturée et mise à disposition dans les services Azure. Cela inclut plus de 200 connecteurs disponibles dans Logic Apps and Flow, et les fonctionnalités robustes de notre plateforme de données.

Interaction de contrat intelligent

Le Kit de développement d’applications de blockchain inclut des exemples d’intégration de Workbench dans les domaines suivants :

Connecteurs d’application logique pour blockchain

Aujourd’hui, nous annonçons également la publication prochaine d’un ensemble de connecteurs Logic Apps et Flow pour étendre ces exemples à des registres tels que Ethereum, Corda , Bitcoin, etc.

« Chez R3, nous veillons à ce que les développeurs puissent déployer CorDapps rapidement, en toute sécurité et facilement. Le Kit de développement de blockchain Azure fournira à nos entreprises clientes des outils d’intégration avec les applications, logiciels et appareils que les gens utilisent au quotidien, comme Outlook, Alexa, SMS et interface web. La blockchain quitte les laboratoires pour s’introduire dans les applications professionnelles quotidiennes. »

– Mike Ward, Directeur de la gestion des produits, R3

Le connecteur de blockchain Ethereum est aujourd’hui disponible. Il permet aux utilisateurs de déployer des contrats, d’appeler des actions de contrat, de lire l’état de contrats et de déclencher d’autres applications logiques Logic Apps en fonction d’événements du registre.

Logic Apps

Déployer

Avec la généralisation de la technologie de blockchain dans le développement de logiciels d’entreprise, les organisations sollicitent des conseils sur la manière de fournir du DevOps pour des contrats intelligents et des projets de blockchain.

Les questions courantes sont les suivantes :

  • Ma logique métier et mon schéma de données pour cette logique se reflètent dans des contrats intelligents. Les contrats intelligents sont écrits dans des langages que je connais moins bien, tels que Solidity pour Ethereum, Kotlin pour Corda ou Go pour Hyperledger Fabric.  Quels outils puis-je utiliser pour développer dans ces langages ?
  • Comment faire pour tester et déboguer des unités sur des contrats intelligents ?
  • De nombreux scénarios de blockchain reflètent des transactions et flux de travail d’entreprise multiparties. Ces flux de travail incluent des transactions signées provenant de multiples parties se déroulant dans des séquences spécifiques. Comment considérer les données pour les environnements de test dans ce contexte ?
  • Des contrats intelligents sont déployés vers la blockchain, qui est immuable. Comment considérer des éléments tels que l’infrastructure en tant que code, le Dev/Test local, les contrats de mise à niveau, etc. ?
  • La blockchain étant une technologie de données partagée par plusieurs organisations réunies au sein d’un consortium, quels sont les impacts sur les pipelines de contrôle, de génération et de mise en production de code source dans un environnement mondial multipartie ?

Bien que cette approche comporte certaines nuances, la bonne nouvelle est que, tout comme d’autres types de développements de solutions, ce modèle peut facilement être pris en compte dans un modèle DevOps.

Modèle DevOps

Nous annonçons Aujourd’hui la publication du livre blanc intitulé « DevOps for Blockchain Smart Contracts » (DevOps pour les contrats intelligents de blockchain).

« Nous sommes ravis de collaborer avec Microsoft pour créer l’expérience canonique DevOps pour les ingénieurs de blockchain. Notre document, intitulé « DevOps for Blockchain Smart Contracts » (DevOps pour les contrats intelligents de blockchain), décrit en détail de manière rigoureuse la manière de développer des applications de blockchain en tenant compte de l’intégration/livraison continues (CI/CS) dans des environnements de consortium, et fournit des exemples à ce sujet. »

– Tim Coulter, fondateur de Truffle

Le livre blanc est complété par un guide d’implémentation, disponible via le Kit de développement de blockchain Azure, qui explique comment implémenter la CI/CD pour les contrats intelligents et l’infrastructure sous forme de code utilisant Visual Studio Code, GitHub, Azure DevOps et OSS de Truffe.

Une excellente plateforme pour le développement d’applications de blockchain

Le Kit de développement de blockchain Azure est la prochaine étape de notre processus visant à rendre le développement d’applications de blockchain de bout en bout accessible, rapide et abordable pour quiconque a une idée en tête. Il bénéficie de nos investissements dans la blockchain et se connecte aux services de calcul, de données, de courrier et d’intégration disponibles à la fois dans Azure et dans le Microsoft Cloud, afin de fournir aux développeurs une palette robuste pour concrétiser leur vision.

Logic Apps and Flow fournissent un environnement de conception graphique avec plus de 200 connecteurs, ce qui simplifie considérablement le développement de solutions de blockchain de bout en bout, et Azure Functions permet l’intégration rapide de code personnalisé.

Une approche sans serveur réduit également les coûts et les frais de gestion. En l’absence de machines virtuelles à gérer, avec une extensibilité intégrée et un modèle de tarification abordable, le Kit de développement de blockchain Azure est à la portée de tout développeur, du passionné à l’éditeur de logiciels indépendant (ISV) en passant par les entreprises.

Les solutions sont écrites à l’aide de concepteurs de workflow visuels en ligne ainsi que de Visual Studio Code, disponible en téléchargement gratuit, qui fournit un environnement de développement intégré sous Windows, Mac et Linux.

Les applications ainsi produites s’exécutent sur un réseau offrant des performances cloud supérieures à celles d’autres fournisseurs à grande échelle, et permettent la fédération d’identités entre les participants à l’aide d’Azure Active Directory. Azure permet de déployer ces applications dans plus de régions que tout autre fournisseur de cloud, et de bénéficier de davantage de certifications.

Nous sommes impatients de voir ce que vous allez créer, et nous continuerons à vous écouter ainsi qu’à chercher des moyens de contribuer à la construction d’un avenir décentralisé.

Pour en savoir plus sur l’utilisation de ces exemples pour créer et étendre des applications de blockchain, vous pouvez consulter un grand nombre de vidéos de notre émission Channel 9 show Block Talk.

Vous pouvez également rester informé des dernières mises à jour de la blockchain Azure en suivant @MSFTBlockchain sur Twitter.