Git Flow: un processus de  développement Agile        Xavier HAUSHERR
A propos            Xavier HAUSHERR                     CTO           Twitter: @xkobal           Blog: xavier.over-blog.com
Git Flow: un processus de développement Agile          Le projet Overblog
Qui sommes nous ?Né en 2004, Overblog est la plateforme de blogs Européenne n°1.Nous sommes la première plateforme a avoir...
Nom de code «Kiwi»Refonte complète du produitUne forte orientation vers les réseaux sociauxUne équipe de 10 personnesUtili...
Git Flow: un processus de développement Agile      Du cycle en V à l’agilité
Evolution du process   - Planning en V   - Gantt   - Flou au démarrage   - Manque de spécifications fonctionnelles   - Evol...
Equipe Scrum• Développeurs• Scrum Master• Product Owner• Business Owner• Stackholders• Quality Manager
Scrum
Détail d’un sprint Scrum chez OverblogSemaine 1       Lundi             Mardi          Mercredi           Jeudi          V...
Nos besoins de développement AgileCoder sans mettre en péril le projetTravailler à deux ou plus sur des featuresTester cha...
Git Flow: un processus de développement Agile                                                            feature-*        ...
Git flow                              feature-*          develop            release-*             hotfix-*   master        ...
Git flow            feature-*          develop                 Feature forRelease 0       next release                   F...
Git flow             feature-*   develop   release-*                masterRelease 0                                       ...
Git flow                              feature-*   develop   release-*                masterRelease 0                      ...
Git flow               develop                     hotfix-*   masterRelease 0                                              ...
Nos besoins de développement AgileCoder sans mettre en péril le projetTravailler à deux ou plus sur des featuresTester cha...
Github Flow                              feature-*          master                                                 develop...
Github Flow              feature-*         master         release-*            hotfix-*    stable                          ...
Nos besoins de développement AgileCoder sans mettre en péril le projetTravailler à deux ou plus sur des featuresTester cha...
Overblog Flow                              feature-*          develop                                                 mast...
Overblog Flow                              feature-*          master   release-*          hotfix-*   stable                ...
Git Flow: un processus de développement AgileLes Tests unitaires et fonctionnels
Un processus de déploiement Agile                                                                    Prod Server          ...
Un processus de déploiement Agile                                                                    Prod Server          ...
Un processus de déploiement Agile                                                                    Prod Server          ...
Un processus de déploiement Agile                                                                    Prod Server          ...
Un processus de déploiement Agile                                                                    Prod Server          ...
Tests unitaires PHP    PHPUnit    Environnement de test Symfony 2    Lancés par jenkinsnamespace OverblogBlogBlogBundleTes...
Tests unitaires Javascript      YUI Test      Lancés par jenkins      Navigateur Chromium dans un environnement VLCvar sui...
Tests fonctionnels    Cucumber    Lancés par jenkins    Navigateurs controlés par Watir@comment @ieScenario: I can add a c...
Tests fonctionnels
Résultats des tests
Merci pour votre attention                    Questions?   Prenez le temps de créer votre blog sur            www.over-blo...
Prochain SlideShare
Chargement dans…5
×

Git Flow: un processus de développement Agile

9 538 vues

Publié le

Xavier HAUSHERR, CTO chez Overblog, présentera le processus complet de développement du projet Overblog qui est basé sur les méthodologies suivantes: Scrum, Git Flow, Github, Jenkins, PhpUnit/Symfony pour les tests unitaires, Watir/Cucumber pour les tests fonctionnels. La présentation détaillera la façon dont nous avons adapté Git Flow à Scrum, nos processus de déploiement, de tests ainsi que notre flux de mise en production.

Publié dans : Technologie
0 commentaire
12 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
9 538
Sur SlideShare
0
Issues des intégrations
0
Intégrations
448
Actions
Partages
0
Téléchargements
132
Commentaires
0
J’aime
12
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Git Flow: un processus de développement Agile

  1. 1. Git Flow: un processus de développement Agile Xavier HAUSHERR
  2. 2. A propos Xavier HAUSHERR CTO Twitter: @xkobal Blog: xavier.over-blog.com
  3. 3. Git Flow: un processus de développement Agile Le projet Overblog
  4. 4. Qui sommes nous ?Né en 2004, Overblog est la plateforme de blogs Européenne n°1.Nous sommes la première plateforme a avoir mis en place le partagede revenu publicitaire généré par l’audience.La nouvelle version est sortie en Juin 2012 avec un très bon retour desblogueurs. Elle ne cesse depuis d’évoluer fonctionnellement.C’est aussi: 3 millions de blogs dans 5 langues 38 millions de visiteurs uniques par mois 275 millions pages vues par mois 16ème audience française Plus de 80 serveurs pour servir les blogs
  5. 5. Nom de code «Kiwi»Refonte complète du produitUne forte orientation vers les réseaux sociauxUne équipe de 10 personnesUtilisation de nouvelles technologiesNouvelle architectureUn projet orienté service7 mois de développement1 année d’évolutionSortie de nouvelles fonctionalités avant l’été
  6. 6. Git Flow: un processus de développement Agile Du cycle en V à l’agilité
  7. 7. Evolution du process - Planning en V - Gantt - Flou au démarrage - Manque de spécifications fonctionnelles - Evolution très rapide des besoins produits Scrum
  8. 8. Equipe Scrum• Développeurs• Scrum Master• Product Owner• Business Owner• Stackholders• Quality Manager
  9. 9. Scrum
  10. 10. Détail d’un sprint Scrum chez OverblogSemaine 1 Lundi Mardi Mercredi Jeudi Vendredi Sprint Planning Daily Meeting Daily Meeting Daily Meeting Daily Meeting Mise en Prod Release n-1 Poker Planning Poker PlanningSemaine 2 Lundi Mardi Mercredi Jeudi Vendredi Daily Meeting Daily Meeting Daily Meeting Daily Meeting Daily Meeting Debug / Refacto Debug / Refacto Demo Code Review Poker Planning Feature Freeze Retrospective
  11. 11. Nos besoins de développement AgileCoder sans mettre en péril le projetTravailler à deux ou plus sur des featuresTester chaque fonctionnalité avant mise en productionIntégration continue pour certaines fonctionnalitésRelease pour les grosses fonctionnalitésGestion des urgencesÊtre accepté par l’équipe Scrum
  12. 12. Git Flow: un processus de développement Agile feature-* master release-* hotfix-* stable Tag 1.0 Bugfixes Production Tag 1.1 + Intégration continue Tag 1.2 Intégration continue Tag 1.3 Git Flow Github Flow feature-* master release-* hotfix-* stable Feature for Release 0 next release Tag 1.0 Feature for future release Bugfixes = Production Tag 1.1 Intégration continueOverblog Flow Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production
  13. 13. Git flow feature-* develop release-* hotfix-* master Feature forRelease 0 next release Tag 1.0 Feature for future release Bugfixes Production Tag 1.1 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0production http://nvie.com/posts/a-successful-git-branching-model/
  14. 14. Git flow feature-* develop Feature forRelease 0 next release Feature branches
  15. 15. Git flow feature-* develop release-* masterRelease 0 Tag 1.0 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0production Release branches
  16. 16. Git flow feature-* develop release-* masterRelease 0 Tag 1.0 Feature for future release Start of Feature release Freeze branch for 2.0 Mise en Tag 2.0production Long feature branches
  17. 17. Git flow develop hotfix-* masterRelease 0 Tag 1.0 Bugfixes Production Tag 1.1 Hotfix branches
  18. 18. Nos besoins de développement AgileCoder sans mettre en péril le projetTravailler à deux ou plus sur des featuresTester chaque fonctionnalité avant mise en productionIntégration continue pour certaines fonctionnalitésRelease pour les grosses fonctionnalitésGestion des urgencesÊtre accepté par l’équipe Scrum Connection décentralisée Merge compliqué Qui merge ? Quand tester ?
  19. 19. Github Flow feature-* master develop release-* hotfix-* stable master Feature forRelease 0 next release Tag 1.0 Feature for future release Bugfixes Production Tag 1.1 Intégration continue Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Intégration continue Tag 1.3 2.0production Scott Chacon software developer & Git evangelist @Github http://scottchacon.com/2011/08/31/github-flow.html
  20. 20. Github Flow feature-* master release-* hotfix-* stable Tag 1.0 Bugfixes Production Tag 1.1 Intégration continue Tag 1.2 Intégration continue Tag 1.3 Scott Chacon software developer & Git evangelist @Github http://scottchacon.com/2011/08/31/github-flow.html
  21. 21. Nos besoins de développement AgileCoder sans mettre en péril le projetTravailler à deux ou plus sur des featuresTester chaque fonctionnalité avant mise en productionIntégration continue pour certaines fonctionnalitésRelease pour les grosses fonctionnalitésGestion des urgencesÊtre accepté par l’équipe Scrum Plus de release
  22. 22. Overblog Flow feature-* develop master release-* hotfix-* master stable Feature forRelease 0 next release Tag 1.0 Feature for future release Bugfixes Production Tag 1.1 Intégration continue Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0production
  23. 23. Overblog Flow feature-* master release-* hotfix-* stable Feature forRelease 0 next release Tag 1.0 Feature for future release Bugfixes Production Tag 1.1 Intégration continue Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0production
  24. 24. Git Flow: un processus de développement AgileLes Tests unitaires et fonctionnels
  25. 25. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  26. 26. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  27. 27. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  28. 28. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  29. 29. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  30. 30. Tests unitaires PHP PHPUnit Environnement de test Symfony 2 Lancés par jenkinsnamespace OverblogBlogBlogBundleTestsTwigNodeVisitor;use OverblogBlogBlogBundleTwigNodeVisitorMethodCallOptimizerNodeVisitor;class MethodCallOptimizerNodeVisitorTest extends PHPUnit_Framework_TestCase{ public function testSingle() { $env = $this->getTwig(array(tpl => {{ foo.bar }})); $env->addNodeVisitor(new MethodCallOptimizerNodeVisitor(array( array(foo, getbar) ))); $src = $env->getLoader()->getSource(tpl); $php = $env->compileSource($src, tpl); $this->assertContains( $context["foo"]->getbar(), $php ); }}
  31. 31. Tests unitaires Javascript YUI Test Lancés par jenkins Navigateur Chromium dans un environnement VLCvar suite = new Y.Test.Suite("Timeline : TimelineView");suite.add( new Y.Test.Case({ name: "Test TimelineView", testRender: function () { Y.Assert.areEqual( 4, Y.all(.statuses button).size() ); Y.Assert.areEqual( 2, Y.all(.class button).size() ); Y.Assert.areEqual( 3, Y.all(.advanced select).size() ); },});Y.Test.Runner.add(suite);
  32. 32. Tests fonctionnels Cucumber Lancés par jenkins Navigateurs controlés par Watir@comment @ieScenario: I can add a comment When I connect to my comment account When I initialize a post with title "Test comments" and text "You can comment" When I publish Then I see success message "POST_PUBLISHED" Then I need to sleep a little Given I visit my comment blog When I open article "Test comments" Then I dont see errors When I add a comment with: | name | text | | Anonym comment | This article is top | Then I dont see errors Then I should see "Your comment has been published" Given I visit my comment blog When I open article "Test comments" Then I see comment: | name | text | | Anonym comment | This article is top | When I goto admin When I delete the article with: | title | | Test comments | Then I see success message "POST_DELETED"
  33. 33. Tests fonctionnels
  34. 34. Résultats des tests
  35. 35. Merci pour votre attention Questions? Prenez le temps de créer votre blog sur www.over-blog.com

×