A la croisée des révolutions numériques

Generic selectors
Exact matches only
Search in title
Search in content
Generic selectors
Exact matches only
Search in title
Search in content
Home 5 Évènement 5 “Un langage qui va révolutionner l’IoT et les architectures many-core : le langage Go, retours d’expérience”

UN LANGAGE QUI RÉVOLUTIONNE L’IOT ET LES ARCHITECTURES MANY-CORE : LE LANGAGE GO : RETOURS D’EXPÉRIENCES

Le séminaire sera consacré au langage Go et son impact dans l’industrie.

Ce nouveau langage de programmation permet d’exploiter les architectures many-cores – avec un effet d’échelle qui lui permet de déployer le même code optimisé, aussi bien sur de l’IoT que sur un supercomputer.

Introduction

L’architecture many-core est devenue le paradigme dominant en informatique. Sa maitrise repose sur l’expressivité du langage de programmation. l’Internet des objets (IoT) apporte des nouvelles contraintes de puissance, de consommation et de grande variabilité des architectures. A nouveau, le langage de programmation sera le déterminant de la maitrise des architectures.

Le langage Go apparu en 2007 sous l’impulsion de Google, apporte des réponses élégantes qui permettent de penser que ce langage est le nouveau langage C adapté aux architectures modernes.

COORDINATION SCIENTIFIQUE

Jean-Michel Batto (INRA Micalis)

DATE & LIEU

Jeudi 30 juin 2016

8h45 - 16h00

École Polytechnique,

Amphithéâtre Gay-Lussac
91120 Palaiseau

SITUATION

Organisateurs et partenaires

PROGRAMME

08h45 – 09h20

Accueil & café

9h20 – 9h30

Présentation de la journée

Jean-Michel Batto
INRA Micalis
09h30 – 10h15
Un nouveau langage. Pourquoi faire ?
Thierry Goubier
CEA List
10h15 – 10h45
Golang dans un produit de cybersécurité des réseaux industriels
Rémy Mathieu
Sentryo
10h45 – 11h15
Pause café
10h15 – 10h45

Go en Physique des Particules & Cosmologie : traitement de données, alertes et programmation parallèle

Sébastien Binet
CNRS/IN2P3
11h15 – 11h45
Go, LoRa, Go, ou comment Go accompagne la révolution IoT chez Bouygues Telecom
Jean-François Bustarret
Objenious by Bouygues Telecom
12h15 – 13h00
Eléments de serveurs web
Valentin Deleplace
FREMN Corp
13h00 – 14h15
Déjeuner buffet au salont d’honneur
14h15 – 14h40
Analyse de données de microcontrôleurs
Henri Lepic
Digikong
14h40 – 15h10
Les apports de l’écosystème Go pour les challenges de l’ingénierie d’architectures cloud microservices
Frédéric Menez
Scalera.io

15h10 – 15h25

Le langage Go dans le calcul HPC Big Data
Louiza Hanis
INRA Micalis
15h25 – 15h35
Conclusions avec la salle
15h35 – 16h00
Café & networking
Résumé de la présentation

  Introduction par Jean-Michel Batto, INRA Micalis

THIERRY GOUBIER - CEA | UN NOUVEAU LANGAGE, POURQUOI FAIRE ?

Le langage de programmation Go fait partie d’un mouvement de refondation de la programmation, qui a vu apparaître avec lui, des langages comme Rust et Swift. Pour comprendre cette refondation et l’importance de Go, il nous faut le situer dans le paysage des langages de programmation, noter les évolutions significatives qui se sont produites au cours des dernières décennies, et la réponse qu’apporte Go.

Nous regarderons aussi l’importance de l’interaction qui existe entre le programmeur et le langage.

Cette présentation tentera de vous donner cette vue d’ensemble, et un regard plus appuyé sur l’intérêt et le potentiel qu’apportent les spécificités de Go.

Thierry Goubier, CEA

RÉMY MATHIEU – SENTRYO | GOLANG DANS UN PRODUIT DE CYBERSÉCURITÉ DES RÉSEAUX INDUSTRIELS

Golang est un langage qui s’installe très rapidement dans l’écosystème des solutions aussi bien amatrices que professionnelles. Langage compilé multi-plateformes dont la syntaxe se rapproche pour certains du C, Golang est accompagné d’une bibliothèque standard le permettant de remplir très rapidement et très efficacement de nombreux use-cases.

Aujourd’hui, la liste des projets importants dans lequel on peut le retrouver est déjà longue malgré le jeune âge du langage : des webservices au messaging (nsq de Bitly), en passant par les containers et le déploiement (Docker), les bases de données distribuées (Etcd) ou encore par exemple le “service discovery” (Consul).

Mais quel pourrait être sa place dans un projet de Cybersécurité ? Sentryo, startup fondée en Juin 2014, protège des réseaux industriels sensibles avec la solution ICS CyberVision dans laquelle de nombreuses parties sont réalisées en Go. Nous verrons au long de la présentation sous forme de retour d’expérience les gains et facilités apportés par Golang.

 Rémy Mathieu, Sentryo

SÉBASTIEN BINET – CNRS/IN2P3 | GO EN PHYSIQUE DES PARTICULES & COSMOLOGIE: TRAITEMENT DE DONNÉES, ALERTES ET PROGRAMMATION PARALLÈLE

Go est un langage de programmation relativement récent, créé pour la programmation concurrente.

Dans cette présentation, nous verrons comment ce langage, écrit à l’origine pour les serveurs de Google, est bien adapté aux applications scientifiques.

Dans un premier temps, le contexte des applications scientifiques telles que déployées au CERN sera rapidement exposé.

Les applications de physique des particules sont généralement des programmes de calcul intensif, écrits en C++/Python de plusieurs millions de lignes et centaines de bibliothèques partagées (.so/dlls).

Nous verrons comment le compilateur, l’écosystème de Go ainsi que son “tooling”, bien qu’encore relativement jeunes, permettent de résoudre rapidement et efficacement la plupart des problématiques relatives aux cycles de développement lents et pénibles, aux installations et déploiements – problèmes récurrents avec des programmes C++ de cette taille

Dans un deuxième temps, nous verrons comment Go peut être efficacement utilisé dans le cadre d’équipes plus petites n’ayant pas autant de ressources (tant matérielles qu’humaines) qu’une collaboration de physique des particules telles qu’elles peuvent exister au CERN.

Cela sera réalise au travers de l’étude de trois applications: – une simulation de physique (évolution de la composition d’une supernovae), remplaçant une analyse basée sur Excel, – une application contrôlant un jeu d’actuateurs via le protocole Modbus et présentant a l’utilisateur une interface web permettant d’afficher températures, positions, RPMs et – autres graphiques; cette application a remplace un framework Java, – une application réalisant l’acquisition (et le “monitoring”) de données d’un détecteur a application médicale.

Ce programme Go remplace un exécutable écrit avec pthread&C++03. 

Sébastien Binet, CNRS

JEAN-FRANÇOIS BUSTARRET – GO, LORA, GO, OU COMMENT GO ACCOMPAGNE LA RÉVOLUTION IOT CHEZ BOUYGUES TELECOM

Monter une plateforme dans un domaine aussi nouveau que l’internet des objets nécessite de savoir concilier un certain nombre de contraintes : le besoin d’adaptabilité lié à des besoins utilisateurs et des modèles économiques encore mal définis et donc changeants, des contraintes économiques fortes et en parallèle, la nécessité de disposer de plateformes fiables et capables de traiter le trafic généré par des millions d’objets.

Cette présentation nous donnera l’occasion de voir pourquoi Go est un choix intéressant pour répondre à ces problématiques.

 Jean-François Bustarret, Objenious

VALENTIN DELEPLACE – FREMN CORP | ÉLÉMENTS DE SERVEURS WEB
  • Exécutable sans dépendances, ce qui simplifie les déploiements
  • Exemple de Fork/Join pour exécuter plusieurs tâches en parallèle
  • Exemple d’utilisation d’une Closure
  • Exemple d’entrée/sortie de JSON
  • Exemple de middleware de type func(http.ResponseWriter, *http.Request)
  • Pourquoi certains design patterns OOP ne sont pas très courants en Go
  • Exemple d’utilisation du Race Detector dans un serveur (mais pas AppEngine)
  • Exemple d’utilisation de l’outil Pprof pour trouver les goulots d’étranglement CPU
  • L’outil Go-fuzz pour éprouver la robustesse du programme
  • Quelques chiffres sur la consommation mémoire d’un serveur simple, comparaison avec Java
  • Considérations sur les struct, l’embedding et les interfaces. Que faut-il préférer ?
  • Peut-on survivre sans les Génériques ?
  • Avantages et inconvénients du package html/template

 Valentin Deleplace, FREMN

     

HENRI LEPIC - DIGIKONG | ANALYSE DE DONNÉES DE MICROCONTRÔLEURS

Au vue de l’évolution du marché sur l’IoT, nous sommes face à de nouvelles problématiques tel que la récupération d’un grand volume de données généré par une myriade d’objets connectés, des moyens de communication hétérogènes, la gestion des mises à jours des objets. Face à ces problématiques certains langages offrent de très bon temps de réponse d’autres permettent une bonne versatilité quand à l’ajout de nouvelles fonctionnalités; Go est un langage offrant sous plusieurs aspects des bons équilibres entre performances et évolutions. Je vous ferais un retour d’expérience entre les phases de maquettage et de pré-industrialisation sur un projet dans le secteur de la santé et de la sécurité.

 Henri Lepic, Digikong

FRÉDÉRIC MENEZ - SCALERA.IO | LES APPORTS DE L'ÉCOSYSTÈME GO POUR LES CHALLENGES DE L'INGÉNIERIE D'ARCHITECTURES CLOUD MICROSERVICES

Le développement logiciel monolithique a encore de beaux jours devant lui dans certaines industries comme l’embarqué ou le jeu vidéo. Cependant, en matière d’applications internet et logiciels cloud, les qualités de ceux-ci, telles que la résilience et l’échelonnabilité, sont fournies par des propriétés et fonctionnalités spécifiques, atypiques des architectures monolithiques, à savoir : des composants distribués fonctionnant en grappe, des communications asynchrones, des données accessibles en réseau, des traitements concurrents, des logiques de cohérence différée, du déploiement, de la configuration et de la mobilisation de ressources automatiques.

La conception et la maintenance de ces prérequis fonctionnels peut-être complexe et nécessite un outillage cohérent, fluide, et flexible. Nous passerons en revue les composants et systèmes open source Go (bibliothèques, monitoring, télémétrie) qui ont été initiés ces dernières années en vue de faciliter la conception d’applications cloud microservices.

 Frédéric Menez, Scalera

LOUIZA HANIS – INRA MICALIS | LE LANGAGE GO DANS LE CALCUL HPC BIG DATA

Après une présentation rapide de la métagénomique quantitative et des problèmes liés au développement de codes spécifiques HPC, nous verrons qu’un projet de développement spécifique écrit en Go présente l’avantage d’une maintenabilité et d’un développement rapide. L’outil développé est destiné à traiter des données de type Big Data et propose une visualisation avec Cayley.

 Louiza Hanis, INRA Micalis