Pourquoi Rails est génial? D’un point de vue non technique! 9 juillet 2010
Qui parle? • Camille Roux • 25 ans, Sophia Antipolis • +1 an de dev Ruby on Rails • +3 ans de dev web (WebObjects, Flex, PHP…) • https://camilleroux.com • camilleroux
Qu’est-ce qu’un bon framework web?
Coût
Productivité Agile Hébergement Innovant Déploiement Performance Moderne Licence Evolution Recrutement Actif Confort Rapide Coût Bibliothèques Utilisé IDE Bonnes pratiques Communauté Outils Référencement Plugins Open Source Architecture Sécurité
Ruby Quoi : langage de programmation interprété, orienté objet et multi-paradigme Licence : Libre – Licence Ruby et GPL OS : Multiplate-forme Apparu en : 1995 Créateur :Yukihiro Matsumoto (aka « Matz »)
Multiples implémentations • Ruby • JRuby • MacRuby • Rubinius • …
+14 000 gems sur Rubygems
+185 000 projets Ruby sur Github
10eme Position au classement TIOBE (juin 2009)
Ruby on Rails Quoi : framework d’application web reposant sur le langage Ruby Autres noms : RoR, Rails Licence : Libre – MIT Apparu en : 2004 Créateur : David Heinemeier Hansson (aka “DHH”) et quelques autres (Rails Core Team)
Philosophie
Convention over Configuration
DRY (D’ont Repeat Yourself)
Awesome When you thought it couldn’t get any awesomer.
Structure
Migrations
Active Record
Scaffold
Environnements
Sécurité
Javascript
Cache
Tests
RAILS 3 • Rails 3 = Rails 2 + Merb • Modularité • Bundler • Performance • HTML 5 • …
Ruby est lent non? • Comme Python et PHP • JRuby, Ruby 1.9/2.0… • La vitesse d’exécution, vraiment important ? • Vitesse de développement • Fiabilité • Maintenabilité
Un plugin/une gem pour tout…
Tâches de fond Upload de fichiers Hiérarchies Paiement en ligne Authentification NoSQL Indexation Un plugin/une gem BDD pour tout… Pagination Geolocalisation Cache Twitter Parsing Optimisation Facebook
IDE
IDE
RubyMine 2.0 • Debugger • Refactoring automatisé • Analyse du code à la volée + inférence du type • Code completion • Intégration de multiples VCS (Git, SVN…)
Qui utilise Ruby on Rails?
Scribd 39 700 000 Twitter 30 000 000 Hulu 24 900 000 WhitePages Justin.tv 21 800 000 19 300 000 Visiteurs uniques / mois
High Profile Organisations using Rails – WorkingWithRails.com
Des outils extraordinaires
Github
New Relic
Avantages • Installation en quelques minutes • Ruby, JRuby, Java • Prix
Hébergement
Les classiques
Mutualisé VPS Les classiques Dédié Cloud Serveurs persos
Engine Yard • Repose sur Amazon EC2 et S3 • Ajout/suppression de machines à chaud • Déploiement automatique à partir du code source (Git) • Clonage d’application • Monitoring et alerte • Backup
Heroku 1 Je fais mon application Rails en utilisant Git 2 2 lignes de commandes 00:01:00 3
Add-ons
Amazon RDS Websolr SSL Zerigo DNS Sendgrid Apigee for Twitter Panda Stream Bundles New Relic Cloudant Add-ons MongoHQ Cron Moonshado SMS Exceptional Custom domains Memcache Deploy hooks LogWorm
+70 000 applications déployées
Les « switchers »
Backupify was originally a photo backup side project, and Zend had a good Flickr library, so we started in Zend. Rob May, founder
Iterating quickly was!difficult.When Matt joined Backupify, he gave me a Ruby on Rails!crash- course[…]. Seriously, although I’ve read!the blogs, and seen the screencasts, I wasn’t truly impressed!impressed with Rails until I started working with it. Ruby is easy to!understand and Rails provides a clear level of organization/ convention!that’s easy to maintain. Ben Thomas,VP of Product Development
• Architecture système automatisée • Intégration continue • « Rubyists are amazingly prolific » • « Lot of innovation in the Ruby space »
YP.com en quelques chiffres • 23 millions visiteurs uniques/mois • 2 millions recherches/jours • +48 millions requêtes/jours • +1500 requêtes/s • 30 Mbit/s (200 Mbit/s d’Akamai)
AVANT
• Java/EJB3 • Problèmes de design de la plateforme • Design fortement basé sur les sessions pas « horizontally scalable » • 125 000 lignes de code • Aucun test • Difficulté à ajouter de nouvelles fonctionnalités • Manque de contrôle sur la structure des URL
APRES
• Performance et stabilité acceptable • Nombre de serveurs identique • – de 20 000 lignes de code (avec les tests!) • Pas de sessions (stateless)
• Migration faite en 2006-2007 • Conception => mise en production : 1 an • Développement : 3 mois • Terminé dans les temps • Jamais plus de 5 développeurs
Ca bouge!
Ruby usage has grown 40% among North American developers from 2008 to 2009 Evans Data
+ 400 % en 5 ans développeurs Ruby (2008 – 2013) Gartner Group, mars 2008
Levées de fond • $10M – Heroku – Mai 2010 • $19M – Engine Yard – Octobre 2009 • $6M – New Relic – Novembre 2008 • $15M – Engine Yard – Juillet 2008 • $3M – Heroku – Mai 2008
Alors pourquoi Rails ? • Un langage • Un framework • Une communauté • Des outils • …
Cadeau ?
30 jours RPM Gold Sophia2010 (sensible à la casse)
? www.camilleroux.com [email protected]
Crédits photos • http://www.flickr.com/photos/kandyjaxx/2012468692/ • http://www.flickr.com/photos/kh-67/3564168600/ • http://www.flickr.com/photos/ecstaticist/2589723846/