1. Développer & déployer
dans le cloud
Julien Dubois
Directeur de l’innovation
Ippon Technologies
@juliendubois
2. Les promesses du cloud
un time-to-market réduit
une expérience utilisateur exceptionnelle
des ressources rationalisées
des applications hautement disponibles
4. Notre outillage: JHipster
Générateur d’applications Spring + AngularJS
Projet Open Source
Leader dans son domaine
Nombreux articles dans la presse, nombreuses conférences
Très populaire sur Github
15 000 téléchargements/mois,
220 000 pages/vues par mois
Utilisé chez Ippon pour nos projets clients
http://jhipster.github.io/
6. Penser « cloud » dès la conception
Une application « cloud » ne s’improvise pas
L’application « 12 Factor »
http://12factor.net/
Méthodologie documentant 12 pratiques qui permettent de
créer un logiciel « as a service »
Couvre le développement, le déploiement, la gestion de la
production
7. Scalabilité
Stateless vs stateful n’est plus une question dans le cloud
La scalabilité est essentielle: vous devez être stateless
Votre application doit s’arrêter et démarrer rapidement
8. Elasticité et résilience
Votre architecture doit pouvoir
Utiliser des services externes
Résister aux pannes
Exemple de Cassandra
Survit à la perte d’un noeud, d’un
rack, ou même d’un Data Center
Les mises à jour se font sans arrêt de service
L’ajout d’un noeud dans le cluster est une opération normale
9. Monitoring
Le monitoring et les logs sont
essentiels dans le cloud
Feedback rapide sur l’état des
applications et du cloud
Suivi des métriques
JVM, requêtes HTTP, pool de
connexion, cache
Statistiques avancées sur les objets
Java et les Beans Spring
Santé des ressources externes
Base de données, serveur de mail
12. L’automatisation avec JHipster
De nombreux workflows sont fournis par JHipster
Création de nouveaux écrans
Mise à jour de la base de données
Tests multi-devices
Concaténation et minification du code JavaScript/CSS
Déploiement dans le cloud
Ces workflows fonctionnent tous les uns avec les autres,
de manière unifiée
13. Mise en place d’un projet
En quelques minutes, JHipster permet de générer un
projet complet
Respectant les meilleures pratiques des communautés Spring et
AngularJS
Avec une configuration automatique des outils de
build (Maven, Grunt)
gestion de source (Git)
déploiement (CloudFoundry)
15. Versioning de la base de données
Liquibase permet de versionner le schéma de base de données
Facilite grandement le travail en équipe
Facilite les tests et l’intégration continue
Automatise les mises en production
18. SQL ou NoSQL?
Utiliser la meilleure base pour chaque cas d’utilisation
particulier
SQL quand on veut de la sécurité et une API puissante
Cassandra pour des performances extrêmes en écriture
MongoDB pour stocker des documents
« Polyglot persistence » — Martin Fowler
JHipster permet de gérer des applications avec chacune de
ces technologies
19. Déployer sur plusieurs clouds
Utiliser des APIs propriétaires revient à s’enfermer sur un
cloud
Migrations complexes
Coûts élevés
Il faut aussi être polyglotte dans le cloud
JHipster propose des déploiements automatisés sur les
grands PaaS du marché
Dont CloudFoundry
20. Utiliser CloudFoundry en public et en privé
La particularité de CloudFoundry est qu’il peut être utilisé
en public comme en privé
C’est l’une des grandes forces de la solution
C’est pour cela que nous conseillons CloudFoundry
Une application JHipster se déploie en une seule
commande sur
Le cloud public de Pivotal
Le cloud privé d’Ippon
Et tout autre cloud CloudFoundry public ou privé
21. Bilan
Le cloud permet d’avoir l’agilité, la célérité
et la maîtrise des coûts
Il impose néanmoins des méthodologies, un outillage et
une expertise importantes
Ippon Technologies démontre ces compétences via
JHipster, notre socle de développement et de déploiement
rapide
Ippon Hosting, notre instance privée CloudFoundry et notre
service broker Cassandra
22. Présentation technique de JHipster
Nous proposons des sessions de type
« Brown Bag Lunch »
Présentation technique de 1 à 2 heures
Le midi
Où nous pouvons coder ensemble une
application de A à Z
En finissant par un déploiement sur
CloudFoundry!