xebiconfr 15 - développer dans le cloud
TRANSCRIPT
Développer dans le Cloud #Multiplateforme #Cloud #Agilité #Devops #Traçabilité #Disponibilité
#Accessibilité #OpenSource #Déploiement #Monitoring
• D’où l’on vient • Les défis des usines logicielles modernes • Et c’est pas fini… vous avez dit DevOps ?
Agenda
• Le Cloud est une alternative pour héberger vos développements
• Le Cloud est une alternative pour héberger vos applications
• Une usine pour toutes les écrire
Objectifs de cette présentation
C’est-à-dire…
Je reçois les specs
Je récupère le code que
je peux
Je code J’archive en croisant les
doigts
On file le binaire à
l’infra
On part en week end \o/
• Chacun est dans son coin • On ne sait pas ce qu’on livre et à quoi cela va
servir • Beaucoup de tâches qui pourrait être
automatisées (mais ne le faisait pas ou alors chacun dans son coin)
Qu’est ce que l’on remarque
On a créé des « usines logicielles » ! • Très rudimentaires : on sait tracer le source
et construire des binaires • Les devs ont maintenant leurs outils (eux) • Initiatives individuelles des équipes • Aux ops de s’adapter
Ce qu’on a fait :
Avantages & inconvénients
• On installe, ça marche • On sait tracer le code dans les
binaires • Les devs sont contents
• On y touche pas de peur que cela ne marche plus
• On ne trace pas ou peu le besoin
• Le métier, les DBA et les OPS ne veulent pas en entendre parler
• Chaque équipe choisit la sienne • Cela devient petit à petit une
contrainte • Pas toujours lié à l’infra
• Le métier s’en mêle,
• Les Kanbans apparaissent un peu partout,
• La qualité logicielle n’est plus un sujet de discussion, il
faut maintenant mesurer pour s’améliorer,
• On doit livrer plus vite (c’est ce que les consultants nous
ont vendu),
Hey les gars, on est agile maintenant !
• Gestion agile,
• Traçabilité (un besoin à un code à un binaire),
• Intégration des tests dans le cycle de développement,
• On isole par fonctionnalité et par métier (les fameuses
« feature teams »)
Donc on a intégré le métier dans le développement
Nos processus (= « les gens ne savent pas encore travailler ensemble ») • On est dans l’urgence (on verra plus tard) • C’est pas comme ça que l’on fait à la Cogip • Le manifeste agile : c’est bien pour mettre au mur
Mais qu’est-ce qui nous freine finalement ? 1/…
Nos outils !
• On n’a pas deux fois les mêmes,
• On ne sait pas la faire évoluer,
• Ça coute cher et on a personne pour gérer,
• A chaque équipe ses outils, ses mesures.
Mais qu’est-ce qui nous freine finalement ? 2/…
Nous !
• On n’est pas prêt
• Le coût d’entrée est trop cher si cela ne convient pas
• Il faut former les équipes
• On ne sait pas comment commencer
Mais qu’est-ce qui nous freine finalement ? 3/…
• Ceux qui s’en sortent se sont organisés
• Outils propices à la collaboration § GitHub
§ Uservoice
§ Trello
§ Plusieurs outils mais des outils qui se combinent
En Open source, ils y arrivent bien
• Java, .Net, Node, C++,… • Dénominateur commun : Git • Moteur de build multiplateforme (.Net ou
Node.js) § Windows § Linux (même sous Raspberry PI) § iOS
Agnostiques
• Éviter les produits en fin de vie
• Les éditeurs qui proposent une version Cloud sont ceux
qui feront évoluer le plus vite leurs outils
(GitHub,MS,Atlassian, etc.)
• Passer facilement d’une équipe à plusieurs
Évolutives
• On ne doit pas avoir peur d’installer une nouvelle
version,
• Passer la barrière psychologique de la mise à jour,
• Avoir les bonnes personnes,
• Ne pas sous-estimer l’évolution (ou la non-évolution) des
postes de travail.
Maintenance
• On est pas l’hébergeur,
• On a pas à gérer la QOS ou le SLA,
• On a pas à gérer le stockage,
• Accessible de partout,
• Mise à jour au fil de l’eau.
Avantage d’avoir son usine dans le Cloud
La version Cloud de Team Foundation Server
• Pure SaaS,
• Mise à jour toutes les 3 semaines,
• Toujours en avance sur la version On Premises (TFS).
Visual Studio Online (vs TFS)
On ne sait pas efficacement répondre à ces questions :
• Que s’est-il passé sur ce fichier, cette méthode ?
• Où est-elle utilisée ?
• Est-ce que les tests relatifs à ma méthode passent ?
Et les dev dans tout ça ?
• Infrastructure à la demande/élastiques,
• Multi OS,
• Pilotage,
• « Infra as Code ».
Avantages du cloud
• Nos applications : utilisées « world wide »,
• Nos serveurs : rarement à plusieurs endroits,
• Infra pas adapté à un trafic dense,
• Fabriquer ses outils de monitoring : généralement une
fausse bonne idée.
Monitoring
• Regarder ce que vous avez déjà
• Trouver une équipe pilote
• Commencer par les environnements de dev
• Accumuler des données pour estimer les coûts
• Former vos équipes
Comment choisir / comment avancer ?