35
cocktail d’expérience informatiques Genève 3 & 4 octobre 2011 Seconde édition Track Auteur Session Incubateur D. WILLIAMS & F. NOURISSON Un zeste d’Erlang dans le shaker!

soft-shake.ch - Un zeste d’Erlang dans le shaker!

Embed Size (px)

DESCRIPTION

Dominic Williams & Fabrice NourissonLes technologies logicielles se multiplient. Il faut savoir combiner les forces de plusieurs langages et outils. Erlang est la seule technologie conçue spécifiquement pour tirer parti très simplement des architectures multi-coeur et en cluster. Cette présentation vous invite à ajouter cet ingrédient à votre cocktail.Sommaire:- Aperçu du langage.- Démo de code, en TDD et en binôme, avec du refactoring et de la mise à jour de code à chaud.- Points forts, points faibles, domaines et contextes adaptés.- Ecosystème (références, produits).- Cas d’étude: chat online de Facebook.http://soft-shake.ch/2011/conference/sessions/incubator/2011/09/13/un-zeste-d-erlang-dans-le-shaker.html

Citation preview

Page 1: soft-shake.ch - Un zeste d’Erlang dans le shaker!

cocktail d’expérience informatiques

Genève 3 & 4 octobre 2011

Seconde édition

Track

Auteur

Session

Incubateur

D. WILLIAMS & F. NOURISSON

Un zeste d’Erlang dans le shaker!

Page 2: soft-shake.ch - Un zeste d’Erlang dans le shaker!
Page 3: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Un zeste d’Erlang dans le shaker!Soft-Shake 2011

Dominic Williams Fabrice Nourisson

4 octobre 2011

c©Extreme Forge. All rights reserved.

1/32

Page 4: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Sommaire

Faisons connaissance

Introduction à Erlang

Le langage plus en détail

Démo

L’écosystème Erlang

Erlang comme ingrédient du cocktail

2/32

Page 5: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Sommaire

Faisons connaissance

Introduction à Erlang

Le langage plus en détail

Démo

L’écosystème Erlang

Erlang comme ingrédient du cocktail

3/32

Page 6: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Les présentateursErlang, eXtreme Programming, trains, USSD, Internet

Fabrice Nourisson@duckmole

I Python, jQueryI 118000.frI Ornithorynque, ski, rugby

Dominic Williams@domiwilliams

I C, LispI Océanographie, corporama.comI Zen, jazz, voile

4/32

Page 7: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Extreme Forge

http ://extremeforge.com@extremeforge

5/32

Page 8: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Le public ?

6/32

Page 9: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Sommaire

Faisons connaissance

Introduction à Erlang

Le langage plus en détail

Démo

L’écosystème Erlang

Erlang comme ingrédient du cocktail

7/32

Page 10: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Les avantages d’Erlang

I Du code concis (peu de lignes de code)I Un langage haut niveauI Des systèmes plus robustesI Des systèmes faciles à distribuerI Des architectures scalables

8/32

Page 11: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Histoire

I Alonzo Church, λ-calcul, 1930I Erlang naît dans les labos d’Ericsson en 1986

I Dérivé de Prolog (logique)I Inspiré de ML (fonctionnel)I Plusieurs tentatives de VM

I Distribué en open source depuis 1998I Perce dans le monde Internet en 2007

9/32

Page 12: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Utilisé pour l’informatique critique

Ericsson, Goldman Sachs, Mobile Interactive Group, Myriad Group,British Telecom, Klarna, Teba Bank, Ansaldo Signal, Twitter, Facebook,GitHub, Amazon, . . .

10/32

Page 13: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Sommaire

Faisons connaissance

Introduction à Erlang

Le langage plus en détail

Démo

L’écosystème Erlang

Erlang comme ingrédient du cocktail

11/32

Page 14: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Simplicité et robustesse

I Gestion de mémoire automatique (ramasse-miettes)I Typage impliciteI Types haut niveau : listes, tuples, symbolesI Un modèle de concurrence simple et puissantI langage fonctionnelI Affectation unique (équivalence)I Style déclaratif : pattern matching (filtrage)

f a c (0 ) −> 1 ;f a c (N) −> N ∗ f a c (N−1).

12/32

Page 15: soft-shake.ch - Un zeste d’Erlang dans le shaker!

A quoi sert la concurrence ?

I Systèmes réactifs, multi-tâchesI Parallélisation de certains algorithmesI Tirer parti des processeurs modernes multi-coeursI Modélisation du domaine

13/32

Page 16: soft-shake.ch - Un zeste d’Erlang dans le shaker!

La concurrence Erlang

I Basée sur une algèbre (CSP, Tony Hoare, 1978)I Processus légers isolés (sans mémoire partagée)I Communicants par messages asynchronesI Parfaitement déterministeI Simple et compréhensibleI Automatiquement multi-coeur

14/32

Page 17: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Un langage distribué et communiquant

La distribution Erlang :I les noeuds (VM) Erlang se

connectent automatiquement(cluster)

I il y a un système de nommagedistribué

I les process s’échangent desmessages localement ou viaréseau de façon transparente

I la supervision de noeuds et deprocess est aussi distribuée

Encodages binaires :I syntaxe puissante

(pattern matching,construction)

I protocoles réseau(paquets standard oupropriétaires)

I fichiers binaires

15/32

Page 18: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Supervision de process

I Le langage permet de surveiller l’existence d’autres processI spawn_link (. . . )I spawn_monitor (. . . )

I La notification est automatique et se fait aussi par messagesI Séparation en process métier et process de supervision

(worker, supervisor)

16/32

Page 19: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Très hautes disponibilités

I Génération d’environnements cibleI VersionnementI Système d’upgrade/downgradeI Upgrade de code à chaud (sans arrêt logiciel)

17/32

Page 20: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Sommaire

Faisons connaissance

Introduction à Erlang

Le langage plus en détail

Démo

L’écosystème Erlang

Erlang comme ingrédient du cocktail

18/32

Page 21: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Démo

Un nuage de mots temps-réelI Un peu de code fonctionnel (en TDD)I Intégration dans une appli Web avec YawsI Changement de code à chaud

19/32

Page 22: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Sommaire

Faisons connaissance

Introduction à Erlang

Le langage plus en détail

Démo

L’écosystème Erlang

Erlang comme ingrédient du cocktail

20/32

Page 23: soft-shake.ch - Un zeste d’Erlang dans le shaker!

L’environnement de développement

I DebuggerI Wrangler

I DialyzerI harnais de testsI QuickCheck

I ModulesI Make ou rebarI Hot upgradeI Jenkins . . .

21/32

Page 24: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Outils de supervision

Interne :I EtopI os_monI AppmonI traces

Externe (SNMP) :I NagiosI HP Network

ManagerI IBM Tivoli

NetView

22/32

Page 25: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Bases de données

I Base temps-réeldistribuée mnesia

I Drivers ODBC, MySQL,PostgreSQL, Oracle

I Plusieurs bases NoSQLen Erlang

I Bonne intégration avecautres bases NoSQL

ETS Mnesia Tokyo CouchDB Riak MongoDB MySQLRAM X XDisque X X X X X XGros volumes X X X X XLatence X X X X X XRéplication X X X X X XRépartition X X X XCluster dynamique XTransactions X X XRequêtes ad hoc X X X X

23/32

Page 26: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Support

Ericsson :I Développement actif du

langage, des librairies,documentation

I Code sur GitHubI Mailing list

Communauté :I Trapexit.orgI BlogsI Livres

Formation et support :I Extreme ForgeI Erlang Solutions

Outils avec supportcommercial :

I QuickCheckI RabbitMQI RiakI CouchDBI Process-One (ejabberd)

24/32

Page 27: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Etude de cas : serveur intéractif USSD

I Cellicium/Myriad GroupI Selfcare téléphonie mobile (suivi conso, rechargement,

call-me-back. . . )I Interface core network, SI opérateur et fournisseurs contenu

I 2 personnes, 9 moisI 99,99% dispoI 20 millions d’utilisateursI 5000 MPSI Leader marché (>30

opérateurs)

25/32

Page 28: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Sommaire

Faisons connaissance

Introduction à Erlang

Le langage plus en détail

Démo

L’écosystème Erlang

Erlang comme ingrédient du cocktail

26/32

Page 29: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Produits

I Nombreux produits écrits en Erlang pour du non-ErlangI Open source et/ou commerciaux

Nom Description SociétéQuickCheck Vérfication de propriétés QuviQCouchDB Base de données Fondation ApacheRiak Base de données BashoRabbitMQ Middleware AMQP (orienté messages) VMwareejabberd Chat, messaging XMPP Process OneU.C.Engine Framework Web temps-réel collaboratif AF83Zotonic CMS WhatWebWhatDisco Map Reduce Nokia Research

27/32

Page 30: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Intégration et communication externe

I Sockets TCP/IPI Serveurs et clients HTTPI SSHI CORBAI ASN.1I Megaco (H.248)I SIPI Ports et drivers CI Jinterface (Java)

28/32

Page 31: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Etude de cas : Chat Facebook

I Appli de chat en ligneI 4 personnes, 7 moisI Ajax/PHP/C++/Erlang

I +800 millions messages/jourI 7 millions de canaux actifsI 100 machines

29/32

Page 32: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Etude de cas : routage et répartition de charge

I Utiliser la distribution et la supervision d’ErlangI Rendre robuste, parallèle et scalable votre code existant

30/32

Page 33: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Conclusion

I Langage simple, concis, sûr et puissantI Fait pour le multi-coeur et la scalabilitéI Facile à intégrer à un existant

Questions ?

31/32

Page 34: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Références

Société Domaine CA/Me UtilisationGoldman Sachs Banque 27000 TradingAmazon E-commerce 24000 Base de données cloudBT Télécoms 24000Ericsson Télécoms 22000 Switches, gateways. . .T-Mobile Télécoms 21000Motorola Télécoms 15000Activision Jeux vidéos 3100 Middleware jeux réseauElectronic Arts Jeux vidéos 2600 ChatFacebook Réseau social 1400 ChatAnsaldo Signal Ferroviaire 1300 Contrôle-commande signalisationNortel Télécoms 438 E-mail, accélérateur SSLMeetic Site de rencontres 186Myriad Group Télécoms 71 Portail USSDTeba Bank Banque 2 Transactions37signals Gestion de projet ChatBeebole Gestion de projet AppliWebBlue Group E-commerce Paiement en-ligneCorrelatus Télécoms SS7Engine Yard Hébergement Hébergement RubyGemini technologies Télécoms Base de donnéesGitHub HébergementHeroku Hébergement Load balancingKlarna Paiement en-ligne ToutSmarkets Pari Site de paris en-ligne

32/32

Page 35: soft-shake.ch - Un zeste d’Erlang dans le shaker!

Etude de cas : Switch AXD301

I Switch ATM EricssonI 40 personnes, 4 ansI 1500 KLOC, 2000

modules ErlangI 99,9999999% dispo

(31ms/an)I 10 à 160 Gbit/sI Leader marché (11%)

33/32