Cloud et PaaS: les développeurs reprennent le POUVOIR!
@SachaLabourey
2
Abstract
• Le monde de l’informatique va vivre sa révolution industrielle.
• Développeurs de tous les pays, soyez prêts!
@SachaLabourey
JBoss
• Clustering lead – 2001
• GM Europe - 2003
• CTO - 2005
• Acquisition de JBoss en juin 2006
• co-GM de la division middleware
• Départ en avril 2009
• (Pas intéressé du tout par le Cloud)
CloudBees
• Créé en avril 2010
• Environ 30 abeilles dans 6 pays
• (Très intéressé par le
Cloud)
Reprendre le POUVOIR?
4
Reprendre le POUVOIR!
Pouvoir … FAIRE
Pouvoir … INNOVER
Pouvoir … CRÉER DE LA VALEUR
(as in “GO GO GO!”)
Friction, friction, friction
6
Configure OS Secure OS Setup JVM
Install AS on OS Configure AS Secure AS
èprovision nodes Install load-balancer
(LB) Configure LB
Secure LB Setup BC for cluster QA cluster
Configure DNS
Provision node:
Provision cluster:
è Provision node Install DB Configure DB
Secure DB Setup BC for DB
Provision DB:
è Provision cluster Provision DB Deploy schema Deploy App to each
node Deploy App:
(not a transparent update process)
Analyse sec.
bulletins Analyse QA bulletins Analyse AS/OS logs
maintain OS maintain JVM maintain AS
maintain DB
Manage environment (recurring)
maintain FW Validate/QA stack Measure App
performance Acquire Hardware Provision node
Update Cluster Update LB
Metering/Scaling (recurring)
Update Security
Friction, friction, friction
Configure OS Secure OS Setup JVM
Install AS on OS Configure AS Secure AS
èprovision nodes Install load-balancer
(LB) Configure LB
Secure LB Setup BC for cluster QA cluster
Configure DNS
Provision node:
Provision cluster:
è Provision node Install DB Configure DB
Secure DB Setup BC for DB
Provision DB:
è Provision cluster Provision DB Deploy schema Deploy App to each
node Deploy App:
(not a transparent update process)
Analyse sec.
bulletins Analyse QA bulletins Analyse AS/OS logs
maintain OS maintain JVM maintain AS
maintain DB
Manage environment (recurring)
maintain FW Validate/QA stack
è provision
nodes Install load-
balancer (LB) Configure LB Secure LB Setup BC for
cluster QA cluster
Configure DNS Provision cluster:
è Provision
cluster Provision DB Deploy schema
Deploy App to each node Deploy App:
(not a transparent update process)
Vous reprendrez bien
un peu de sable avec ça?
8
Développeurs vs. Sys Admins
M. Développeur
Intérêts & hobbies:
• Etudier le dernier framework à la mode
• Mettre dans l’application de production le dernier truc sympa vu à DEVOXX
• Participer au débat Scala vs. Ceylon, langage statique vs. dynamique, etc.
• Rêve de rencontrer James Gosling
M. Sys Admin/ops
Intérêts & hobbies:
• Ne pas se faire beeper à 2h00 du matin
• Ne pas se faire beeper à 4h00 du matin
• Participer au débat Debian vs. Fedora vs.
Ubuntu
• Rêve de rencontrer Linus Torvald
10
Bref, le grand amour
Bref, le grand amour
12
(et oui…)
Au fait, ça sert à quoi l’informatique?
A faire du chouette code en Scala?
A installer Windows 2008?
A configurer grub.conf sur Linux?
L’IT sert au BUSINESS!
14
Besoin Business Specification Implémenta-tion Déploiement
L’IT sert au BUSINESS! Bien sûr…
Augmenter le CA!
Implémenter application commandes en-
ligne
JVM? Ruby? PHP? Java? Scala?
Play? Groovy? Lift? Jruby? CFML?
Grails? Spring? EE6?
JBoss? Tomcat? Glassfish? Jetty?
MySQL? MongoDB? CouchDB?
Cassandra? JMS? AMQP? Memcache?
Ehcache? Quartz? Lucene? Solr?
Jquery? GWT? iPhone? Android?
JIRA? Redmine? SVN? Git? Maven?
Ant/Ivy? Jenkins? Artifactory/Nexus?
etc.
AMD/Intel? HP? DELL? SPARC? UX?
AWS? Linux? Windows? Solaris? RHEL?
Ubuntu? Debian? Arch? EXT2/3? NFS/
CIFS? Backup? Chef? Puppet?
Continuous Deployment? Apache HTTPD? Mod_jk? Mod_proxy? Nginx?
Haproxy? Firewall? SSL? Server provisioing? Load-balancing? Failover?
Monitoring? Management? Alerting?
Escalation procedure? etc.
15 secondes
‚ ! 2 semaines
” ! 18 mois
……… !
……… !
!
16
On lui avait pas
simplement demandé de faire un site d’e-
commerce?
Et demain?
Des changements importants!
Mobile Social
Local Big Data
Consumerization of IT
HTML5
Component reuse Open Source
Agile SCRUM
A l’aube de l’ère post-PC…
20
Source: Mary Meeker , 2011, www.kpcb.com/internettrends2011
Internet Mobile - 10x plus grand!
Thanks to Mary Meeker and Matt Murphy, From David Skok presentation @ MassTLC
Comment faire?
Comment faire?
24
10x plus
d’applications
!
10x plus de développeurs?
10x moins de salaire?
10x plus
productifs?
Solution!
1. Valoriser l’échec
2. Augmenter la productivité
Solutions
26
Environ un quart des projets échouent Et l’échec, c’est mal, c’est bien connu…
Alors on force le succès!
On augmente les budget, on étend les délais,
on réduit les fonctionnalités, on réduit les attentes…
Valoriser l’échec?!?
Puisque nous devons développer 10x plus d’applications …
…100% des idées sont-elles de bonnes idées? NON!
…Est-ce toujours possible de le savoir à l’avance? NON!
Si une idée est mauvaise ou pas intéressante, autant le savoir rapidement! è FAIL-FASTER!!!
1. Il faut AUGMENTER l’échec
28
A lire absolument: http://speakerdeck.com/u/searls/p/the-mythical-team-month
1. Fail-Faster - Fail-Smaller
Idée 1 Idée 2 Idée 3 Idée 4 Idée 5 Idée 6 Idée 7 Idée 8
DEV+IT p 1 p 2 p 3 p 4
Idée 5 Idée 6 Idée 7 Idée 8 Idée 1 Idée 2 Idée 3 Idée 4
DEV TEAM
Dev 1 Dev 2 Dev 3 Dev 4
App 1 App 2 App 3 App 4
App 7
App 8
1. Échouer VITE avec PEU de RESSOURCES
C’est BIEN!
“Repeat after me”
30
Faire de petits projets, rapidement, OK, mais…
la FRICTION reste constante! è pas de scalabilité!
è Il faut supprimer la friction entre développement et IT!
2. Augmenter la productivité
Supprimez l’IT!
32
Configure OS Secure OS Setup JVM
Install AS on OS Configure AS Secure AS
èprovision nodes Install load-balancer
(LB) Configure LB
Secure LB Setup BC for cluster QA cluster
Configure DNS
Provision node:
Provision cluster:
è Provision node Install DB Configure DB
Secure DB Setup BC for DB
Provision DB:
è Provision cluster Provision DB Deploy schema Deploy App to each
node Deploy App:
(not a transparent update process)
Analyse sec.
bulletins Analyse QA bulletins Analyse AS/OS logs
maintain OS maintain JVM maintain AS
maintain DB
Manage environment (recurring)
maintain FW Validate/QA stack Measure App
performance Acquire Hardware Provision node
Update Cluster Update LB
Metering/Scaling (recurring)
Update Security