Ou comment mettre en production votre projet à chaque modifications !

Une suite d’articles ayant pour thème DevOps pour accélérer le développement de votre produit.

Bon en fait, pour le moment c’est surtout un plan ! Si vous avez envie de lire la suite, faites-le moi savoir ça me motivera à continuer ! 😉  

Pourquoi ?

Vous êtes une lean startup,  vous avez besoin d’aller vite et de vous adapter.

Ainsi, vous cherchez à réduire les temps entre les déploiements en production le plus possible, votre objectif : avoir une application facile à faire évoluer et dont les évolutions soient directement visibles par vos utilisateurs.

La méthodologie que je vais décrire va vous permettre tout ça mais également :

Comment ?

Intégration continue, un socle indispensable

L’exécution des tests dans un environnement d’intégration permet de vérifier le bon fonctionnement de l’ensemble de votre produit.

Déploiement automatisé, une nécessité

Une fois les tests passés avec succès, il ne reste qu’à mettre en ligne les changements !

Le plan 

Maintenant nous allons le mettre en plusieurs étapes :

Etape 0 : Agilité et Git-Workflow

Scrum, Github workflow

Etape 1 : Mettre en place votre environnement de développement Objectif : permettre à n’importe quel développeur de travailler sur votre projet en moins d’une heure.

Everyone gets a shiny new virtual machine with a working development version of the site, along with their LDAP credentials, github write access, and laptop.

Environnement de développement sous Linux ou Mac OS, éviter Windows.

Isolé & normalisé entre tous les développeurs : Vagrant ou Docker.

Plus peur d’installer une librairie sans casser votre ordi, facile de revenir en arrière.

Provisionning : faire un template par un Ops expérimenté ou utiliser Puphpet

Etape 2 : Découpez votre projet en plusieurs applications

Par la suite nous utiliserons une application backend utilisant le framework Symfony et une application frontend basée sur Angular.js.

Etape 3 : Testez votre application Symfony avec Behat et PhpSpec (Behavior Driven Development)

Etape 4 : Testez votre application Angular.js avec Protractor et Cucumber.js (Behavior Driven Development)

Etape 5 : Utiliser Travis-CI, la plateforme d’intégration continue

http://chez-syl.fr/2014/04/debuter-avec-travis-ci-la-plateforme-dintegration-continue/

Etape 6 : Déployer votre projet Symfony automatiquement en production

Easy to Deploy on Day One

Quick recovery : ne plus avoir peur de l’erreur humaine

Etape 7 : Et après ? Allez plus loin avec vos applications

NewRelic et AppDynamics permettent la détection des problèmes de performance et des erreurs 500 cachées.

Des backups automatisés : http://www.r1soft.com/ backup

Tests de montés en charge ?