And now for something completely different - Erlang



Documents pareils
Un zeste d Erlang dans le shaker!

Panorama des solutions analytiques existantes

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Hébergement MMI SEMESTRE 4

Informatique en nuage Cloud Computing. G. Urvoy-Keller

Technique et architecture de l offre Suite infrastructure cloud. SFR Business Team - Présentation

Intégration de systèmes

CloudBees AnyCloud : Valeur, Architecture et Technologie cloud pour l entreprise

Les technologies du Big Data

Cartographie des solutions BigData

<Insert Picture Here> Maintenir le cap avec Oracle WebLogic Server

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Programmation Web. Madalina Croitoru IUT Montpellier

Construire un réseau social avec Symfony Xavier Lacot Clever Age. Symfony Live 11 et 12 juin 2009 Clever Age Xavier Lacot

Bases de données documentaires et distribuées Cours NFE04

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

ARCHITECTURE ET SYSTÈMES D'EXPLOITATIONS

Nouveautés Ignition v7.7

+ = OpenStack Presentation. Raphaël Ferreira - enovance. Credits : Thanks to the OpenStack Guys 1

Infrastructure Management

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Grid 5000 : Administration d une infrastructure distribuée et développement d outils de déploiement et d isolation réseau

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

Urbanisme du Système d Information et EAI

BIG DATA en Sciences et Industries de l Environnement

MapReduce. Nicolas Dugué M2 MIAGE Systèmes d information répartis

Présentation d'un MOM open-source

Le modèle client-serveur

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Yann BECHET 32 ans 8 ans d expérience yann@bechet.org

Tests de montée en charge & Haute disponibilité

XMPP, Jabber et Jingle

Outil d aide à la vente

Licence Pro ASUR Supervision Mai 2013

NFP111 Systèmes et Applications Réparties

Big Data : utilisation d un cluster Hadoop HDFS Map/Reduce HBase

De la criticité de la haute dispo pour améliorer le service à l'usager : le Cg44 prend la vague de l agilité

Le cloud computing au service des applications cartographiques à haute disponibilité

BIG DATA. Veille technologique. Malek Hamouda Nina Lachia Léo Valette. Commanditaire : Thomas Milon. Encadré: Philippe Vismara

Hébergement de sites Web

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

M F. Consultante Moe / Support. Finance de Marché

Architectures d implémentation de Click&DECiDE NSI

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Étendez les capacités de vos points de vente & sécurisez vos transactions.

Les Content Delivery Network (CDN)

Entrez dans l ère du Numérique Très Haut Débit

Jean-Philippe Paquette

Drupal : Optimisation des performances

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Master d'informatique. Réseaux. Supervision réseaux

EFIDEM easy messaging systems

NEXTDB Implémentation d un SGBD Open Source

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Stratégie Microsoft pour les opérateurs de services. Marc Gardette Directeur Stratégie Cloud Microsoft France

Technologie data distribution Cas d usage.

Stéphane DERACO, DSI CNRS l Argos Devops : de l hyperviseur aux conteneurs l 11/12/2014 DOCKER

Offre formation Big Data Analytics

Proposition d une architecture pour ebay, en mettant l accent sur les notions de scalabilité, de résilience, et de tolérance aux pannes.

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

Architectures haute disponibilité avec MySQL. Olivier Olivier DASINI DASINI - -

Introduction à MapReduce/Hadoop et Spark

Cassandra chez Chronopost pour traiter en temps réel 1,5 milliard d événements par an

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE

1. Introduction à la distribution des traitements et des données

La Latecion protection anti-intrusion Web Web Le concept «Zero effort Security» La protection des applications Extranet

les techniques d'extraction, les formulaires et intégration dans un site WEB

Mercredi 15 Janvier 2014

PERFORMANCE ET DISPONIBILITÉ DES SI

AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

FORMATION CN01a CITRIX NETSCALER

Hypervision et pilotage temps réel des réseaux IP/MPLS

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

[WEB4ALL PRESENTATION ET TARIFS VPS INFOGERES]

Bases de données documentaires et distribuées Cours NFE04

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Lier Erlang avec d autres langages de programmation

Hébergement de site web Damien Nouvel

Transformation vers le Cloud. Premier partenaire Cloud Builder certifié IBM, HP et VMware

Territoires géographiques/numériques

APPEL À COMMUNICATIONS 2010

Prolival Cloud Services

Open-cloud, où en est-on?

Windows Azure. Principales fonctions

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant

Comment optimiser votre. utilisation de POM? 23 avril 2015

PostgreSQL, le cœur d un système critique

L'automatisation open source pour SI complexes

La Virtualisation Windows chez CASINO. Philippe CROUZY Responsable Infrastructure Equipes Systèmes -Stockage

Breizhcamp - Cloud - Ruby

IBM Tivoli Monitoring, version 6.1

Transcription:

1/32 And now for something completely different - Erlang PlugFr Février 2012 Fabrice Nourisson 10 févrirer 2012 c Extreme Forge. All rights reserved.

2/32 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 Sommaire Faisons connaissance Introduction à Erlang Le langage plus en détail Démo L écosystème Erlang Erlang comme ingrédient du cocktail

4/32 Maître de cérémonie Fabrice Nourisson @duckmole extreme Programming Erlang (for fun 2004, professionnellement 2007) Python, javascript trains, USSD (#123#), Internet (118000.fr) ornithorynque, ski, cut-out animation

5/32 Extreme Forge http ://extremeforge.com @extremeforge

6/32 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 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 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 Utilisé pour l informatique critique Ericsson, Goldman Sachs, Mobile Interactive Group, Myriad Group, British Telecom, Klarna, Teba Bank, Ansaldo Signal, Facebook, GitHub, Amazon,...

10/32 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 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 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 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 Un langage distribué et communiquant La distribution Erlang : les noeuds (VM) Erlang se connectent automatiquement (cluster) il y a un système de nommage distribué les process s échangent des messages localement ou via réseau de façon transparente la supervision de noeuds et de process est aussi distribuée Encodages binaires : syntaxe puissante (pattern matching, construction) protocoles réseau (paquets standard ou propriétaires) fichiers binaires

15/32 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 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) Framework OTP (Open Telecom Platform) inclus dans le langage

17/32 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 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 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 L environnement de développement Debugger Wrangler Dialyzer harnais de tests QuickCheck Modules Make ou rebar Hot upgrade Jenkins...

21/32 Outils de supervision Interne : Etop os_mon Appmon traces Externe (SNMP) : Nagios HP Network Manager IBM Tivoli NetView

22/32 Bases de données Base temps-réel distribuée mnesia Drivers ODBC, MySQL, PostgreSQL, Oracle Plusieurs bases NoSQL en Erlang Bonne intégration avec 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 Support Ericsson : Développement actif du langage, des librairies, documentation Code sur GitHub Mailing list Communauté : Trapexit.org Blogs Livres Formation et support : Extreme Forge Erlang Solutions Outils avec support commercial : QuickCheck RabbitMQ Riak CouchDB Process-One (ejabberd)

24/32 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 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 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 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 Etude de cas : Chat Facebook Appli de chat en ligne 4 personnes, 7 mois Ajax/PHP/C++/Erlang +800 millions messages/jour 7 millions de canaux actifs 100 machines

29/32 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 Conclusion Langage simple, concis, sûr et puissant Fait pour le multi-coeur et la scalabilité Facile à intégrer à un existant Questions?

31/32 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 Rackspace Hébergement 600 Backup les datacenters 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 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%)