Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Git Flow: un processus de développement Agile

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Présentation Git & GitHub
Présentation Git & GitHub
Chargement dans…3
×

Consultez-les par la suite

1 sur 35 Publicité

Git Flow: un processus de développement Agile

Télécharger pour lire hors ligne

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.

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.

Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Les utilisateurs ont également aimé (16)

Publicité

Plus récents (20)

Publicité

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 partage de revenu publicitaire généré par l’audience. La nouvelle version est sortie en Juin 2012 avec un très bon retour des blogueurs. 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 produit Une forte orientation vers les réseaux sociaux Une équipe de 10 personnes Utilisation de nouvelles technologies Nouvelle architecture Un projet orienté service 7 mois de développement 1 année d’évolution Sortie 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 Overblog Semaine 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 Planning Semaine 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 Agile Coder sans mettre en péril le projet Travailler à deux ou plus sur des features Tester chaque fonctionnalité avant mise en production Intégration continue pour certaines fonctionnalités Release pour les grosses fonctionnalités Gestion 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 continue Overblog 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 for Release 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.0 production http://nvie.com/posts/a-successful-git-branching-model/
  14. 14. Git flow feature-* develop Feature for Release 0 next release Feature branches
  15. 15. Git flow feature-* develop release-* master Release 0 Tag 1.0 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production Release branches
  16. 16. Git flow feature-* develop release-* master Release 0 Tag 1.0 Feature for future release Start of Feature release Freeze branch for 2.0 Mise en Tag 2.0 production Long feature branches
  17. 17. Git flow develop hotfix-* master Release 0 Tag 1.0 Bugfixes Production Tag 1.1 Hotfix branches
  18. 18. Nos besoins de développement Agile Coder sans mettre en péril le projet Travailler à deux ou plus sur des features Tester chaque fonctionnalité avant mise en production Intégration continue pour certaines fonctionnalités Release pour les grosses fonctionnalités Gestion 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 for Release 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.0 production 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 Agile Coder sans mettre en péril le projet Travailler à deux ou plus sur des features Tester chaque fonctionnalité avant mise en production Intégration continue pour certaines fonctionnalités Release pour les grosses fonctionnalités Gestion des urgences Être accepté par l’équipe Scrum Plus de release
  22. 22. Overblog Flow feature-* develop master release-* hotfix-* master stable Feature for Release 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.0 production
  23. 23. Overblog 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 continue Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production
  24. 24. Git Flow: un processus de développement Agile Les 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 jenkins namespace 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 VLC var 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 @ie Scenario: 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 don't see errors When I add a comment with: | name | text | | Anonym comment | This article is top | Then I don't 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

×