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

  • 755 views
Uploaded on

Dominic Williams & Fabrice Nourisson …

Dominic Williams & Fabrice Nourisson

Les 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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
755
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. cocktail d’expérience informatiques Genève 3 & 4 octobre 2011 Seconde éditionAuteur D. WILLIAMS & F. NOURISSON Track IncubateurSession Un zeste d’Erlang dans le shaker!
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. Les présentateurs Erlang, eXtreme Programming, trains, USSD, Internet Python, jQuery 118000.fr Ornithorynque, ski, rugby Fabrice Nourisson @duckmole C, Lisp Océanographie, corporama.com Zen, jazz, voile Dominic Williams @domiwilliams 4/32
  • 6. Extreme Forge http ://extremeforge.com @extremeforge 5/32
  • 7. Le public ? 6/32
  • 8. 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
  • 9. Les avantages d’Erlang Du code concis (peu de lignes de code) Un langage haut niveau Des systèmes plus robustes Des systèmes faciles à distribuer Des architectures scalables 8/32
  • 10. Histoire Alonzo Church, λ-calcul, 1930 Erlang naît dans les labos d’Ericsson en 1986 Dérivé de Prolog (logique) Inspiré de ML (fonctionnel) Plusieurs tentatives de VM Distribué en open source depuis 1998 Perce dans le monde Internet en 2007 9/32
  • 11. 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
  • 12. 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
  • 13. Simplicité et robustesse Gestion de mémoire automatique (ramasse-miettes) Typage implicite Types haut niveau : listes, tuples, symboles Un modèle de concurrence simple et puissant langage fonctionnel Affectation unique (équivalence) Style déclaratif : pattern matching (filtrage) f a c ( 0 ) −> 1 ; f a c (N) −> N ∗ f a c (N−1). 12/32
  • 14. A quoi sert la concurrence ? Systèmes réactifs, multi-tâches Parallélisation de certains algorithmes Tirer parti des processeurs modernes multi-coeurs Modélisation du domaine 13/32
  • 15. La concurrence Erlang Basée sur une algèbre (CSP, Tony Hoare, 1978) Processus légers isolés (sans mémoire partagée) Communicants par messages asynchrones Parfaitement déterministe Simple et compréhensible Automatiquement multi-coeur 14/32
  • 16. Un langage distribué et communiquant La distribution Erlang : Encodages binaires : les noeuds (VM) Erlang se syntaxe puissante connectent automatiquement (pattern matching, (cluster) construction) il y a un système de nommage protocoles réseau distribué (paquets standard ou les process s’échangent des propriétaires) messages localement ou via fichiers binaires réseau de façon transparente la supervision de noeuds et de process est aussi distribuée 15/32
  • 17. Supervision de process Le langage permet de surveiller l’existence d’autres process spawn_link (. . . ) spawn_monitor (. . . ) La notification est automatique et se fait aussi par messages Séparation en process métier et process de supervision (worker, supervisor) 16/32
  • 18. Très hautes disponibilités Génération d’environnements cible Versionnement Système d’upgrade/downgrade Upgrade de code à chaud (sans arrêt logiciel) 17/32
  • 19. 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
  • 20. Démo Un nuage de mots temps-réel Un peu de code fonctionnel (en TDD) Intégration dans une appli Web avec Yaws Changement de code à chaud 19/32
  • 21. 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
  • 22. L’environnement de développement Modules Dialyzer Make ou rebar harnais de tests Debugger Hot upgrade QuickCheck Wrangler Jenkins . . . 21/32
  • 23. Outils de supervision Interne : Etop os_mon Appmon traces Externe (SNMP) : Nagios HP Network Manager IBM Tivoli NetView 22/32
  • 24. Bases de données Base temps-réel Plusieurs bases NoSQL distribuée mnesia en Erlang Drivers ODBC, MySQL, Bonne intégration avec PostgreSQL, Oracle autres bases NoSQL ETS Mnesia Tokyo CouchDB Riak MongoDB MySQL RAM Disque Gros volumes Latence Réplication Répartition Cluster dynamique Transactions Requêtes ad hoc 23/32
  • 25. Support Ericsson : Formation et support : Développement actif du Extreme Forge langage, des librairies, Erlang Solutions documentation Code sur GitHub Outils avec support Mailing list commercial : QuickCheck Communauté : RabbitMQ Trapexit.org Riak Blogs CouchDB Livres Process-One (ejabberd) 24/32
  • 26. Etude de cas : serveur intéractif USSD Cellicium/Myriad Group Selfcare téléphonie mobile (suivi conso, rechargement, call-me-back. . . ) Interface core network, SI opérateur et fournisseurs contenu 2 personnes, 9 mois 99,99% dispo 20 millions d’utilisateurs 5000 MPS Leader marché (>30 opérateurs) 25/32
  • 27. 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
  • 28. Produits Nombreux produits écrits en Erlang pour du non-Erlang Open source et/ou commerciaux Nom Description Société QuickCheck Vérfication de propriétés QuviQ CouchDB Base de données Fondation Apache Riak Base de données Basho RabbitMQ Middleware AMQP (orienté messages) VMware ejabberd Chat, messaging XMPP Process One U.C.Engine Framework Web temps-réel collaboratif AF83 Zotonic CMS WhatWebWhat Disco Map Reduce Nokia Research 27/32
  • 29. Intégration et communication externe Sockets TCP/IP Serveurs et clients HTTP SSH CORBA ASN.1 Megaco (H.248) SIP Ports et drivers C Jinterface (Java) 28/32
  • 30. Etude de cas : Chat Facebook Appli de chat en ligne +800 millions messages/jour 4 personnes, 7 mois 7 millions de canaux actifs Ajax/PHP/C++/Erlang 100 machines 29/32
  • 31. Etude de cas : routage et répartition de charge Utiliser la distribution et la supervision d’Erlang Rendre robuste, parallèle et scalable votre code existant 30/32
  • 32. Conclusion Langage simple, concis, sûr et puissant Fait pour le multi-coeur et la scalabilité Facile à intégrer à un existant Questions ? 31/32
  • 33. Références Société Domaine CA/Me Utilisation Goldman Sachs Banque 27000 Trading Amazon E-commerce 24000 Base de données cloud BT Télécoms 24000 Ericsson Télécoms 22000 Switches, gateways. . . T-Mobile Télécoms 21000 Motorola Télécoms 15000 Activision Jeux vidéos 3100 Middleware jeux réseau Electronic Arts Jeux vidéos 2600 Chat Facebook Réseau social 1400 Chat Ansaldo Signal Ferroviaire 1300 Contrôle-commande signalisation Nortel Télécoms 438 E-mail, accélérateur SSL Meetic Site de rencontres 186 Myriad Group Télécoms 71 Portail USSD Teba Bank Banque 2 Transactions 37signals Gestion de projet Chat Beebole Gestion de projet AppliWeb Blue Group E-commerce Paiement en-ligne Correlatus Télécoms SS7 Engine Yard Hébergement Hébergement Ruby Gemini technologies Télécoms Base de données GitHub Hébergement Heroku Hébergement Load balancing Klarna Paiement en-ligne Tout Smarkets Pari Site de paris en-ligne 32/32
  • 34. Etude de cas : Switch AXD301 Switch ATM Ericsson 40 personnes, 4 ans 1500 KLOC, 2000 modules Erlang 99,9999999% dispo (31ms/an) 10 à 160 Gbit/s Leader marché (11%) 33/32