Développer et déployer dans le cloud

22
Développer & déployer dans le cloud Julien Dubois Directeur de l’innovation Ippon Technologies @juliendubois

Transcript of Développer et déployer dans le cloud

Page 1: Développer et déployer dans le cloud

Développer & déployer dans le cloud

Julien DuboisDirecteur de l’innovationIppon Technologies

@juliendubois

Page 2: Développer et déployer dans le cloud

Les promesses du cloud

un time-to-market réduit

une expérience utilisateur exceptionnelle

des ressources rationalisées

des applications hautement disponibles

Page 3: Développer et déployer dans le cloud

Comment y arriver?

Etre prêt pour le cloud

Automatiser et rationaliser

Rester ouvert

Page 4: Développer et déployer dans le cloud

Notre outillage: JHipsterGé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/

Page 5: Développer et déployer dans le cloud

Comment y arriver?

Etre prêt pour le cloud

Automatiser et rationaliser

Rester ouvert

Page 6: Développer et déployer dans le cloud

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

Page 7: Développer et déployer dans le cloud

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

Page 8: Développer et déployer dans le cloud

Elasticité et résilienceVotre 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

Page 9: Développer et déployer dans le cloud

MonitoringLe 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

Page 10: Développer et déployer dans le cloud

Comment y arriver?

Etre prêt pour le cloud

Automatiser et rationaliser

Rester ouvert

Page 11: Développer et déployer dans le cloud

Tout automatiser3 buts

Garantir la qualité

Augmenter la célérité

Faciliter les tâches répétitives

Page 12: Développer et déployer dans le cloud

L’automatisation avec JHipsterDe 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

Page 13: Développer et déployer dans le cloud

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)

Page 14: Développer et déployer dans le cloud

Tests multi-devicesL’utilisation de BrowserSync permet de développer en temps réel

Hot reload du code « front »

Tests multi-device

Page 15: Développer et déployer dans le cloud

Versioning de la base de donnéesLiquibase 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

Page 16: Développer et déployer dans le cloud

Comment y arriver?

Etre prêt pour le cloud

Automatiser et rationaliser

Rester ouvert

Page 17: Développer et déployer dans le cloud

Etre ouvert

Plusieurs bases de données

Plusieurs clouds

Page 18: Développer et déployer dans le cloud

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

Page 19: Développer et déployer dans le cloud

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

Page 20: Développer et déployer dans le cloud

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é

Page 21: Développer et déployer dans le cloud

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

Page 22: Développer et déployer dans le cloud

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!