Git Flow: un processus de développement Agile

Xavier Hausherr
Xavier HausherrOverblog's CTO à Ebuzzing
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 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
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é
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
   - Evolution très rapide des besoins produits




                       Scrum
Equipe Scrum


• Développeurs
• Scrum Master
• Product Owner


• Business Owner
• Stackholders
• Quality Manager
Scrum
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
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
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
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/
Git flow
            feature-*          develop
                 Feature for
Release 0       next release




                   Feature branches
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
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
Git flow
               develop                     hotfix-*   master

Release 0                                                     Tag 1.0


                               Bugfixes
                              Production




                                                              Tag 1.1




            Hotfix branches
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 ?
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
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
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
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
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
Git Flow: un processus de développement Agile




Les Tests unitaires et fonctionnels
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
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
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
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
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
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
        );
    }
}
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);
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"
Tests fonctionnels
Résultats des tests
Merci pour votre attention




                    Questions?

   Prenez le temps de créer votre blog sur
            www.over-blog.com
1 sur 35

Recommandé

Quick tour of PHP from inside par
Quick tour of PHP from insideQuick tour of PHP from inside
Quick tour of PHP from insidejulien pauli
11.3K vues67 diapositives
SDL2の紹介 par
SDL2の紹介SDL2の紹介
SDL2の紹介nyaocat
16K vues44 diapositives
PHP AST 徹底解説 par
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説do_aki
26.4K vues77 diapositives
PHP と SAPI と ZendEngine3 と par
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とdo_aki
16.1K vues95 diapositives
C++のビルド高速化について par
C++のビルド高速化についてC++のビルド高速化について
C++のビルド高速化についてAimingStudy
6.7K vues15 diapositives
Undertow RequestBufferingHandler 소개 par
Undertow RequestBufferingHandler 소개Undertow RequestBufferingHandler 소개
Undertow RequestBufferingHandler 소개Ted Won
1.2K vues21 diapositives

Contenu connexe

Tendances

코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked Changes par
코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked Changes코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked Changes
코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked ChangesJiyeon Seo
1.6K vues69 diapositives
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty par
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyJJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyShinya Mochida
5K vues127 diapositives
C/C++プログラマのための開発ツール par
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールMITSUNARI Shigeo
13.8K vues30 diapositives
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning par
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning 클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning Ji-Woong Choi
5.6K vues42 diapositives
무정지&무점검 서버 개발과 운영 사례 par
무정지&무점검 서버 개발과 운영 사례무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례Taehyun Kim
2.6K vues93 diapositives
Modern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and Grafana par
Modern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and GrafanaModern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and Grafana
Modern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and GrafanaInfluxData
886 vues26 diapositives

Tendances(20)

코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked Changes par Jiyeon Seo
코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked Changes코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked Changes
코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked Changes
Jiyeon Seo1.6K vues
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty par Shinya Mochida
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyJJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
Shinya Mochida5K vues
C/C++プログラマのための開発ツール par MITSUNARI Shigeo
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo13.8K vues
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning par Ji-Woong Choi
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning 클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
Ji-Woong Choi5.6K vues
무정지&무점검 서버 개발과 운영 사례 par Taehyun Kim
무정지&무점검 서버 개발과 운영 사례무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례
Taehyun Kim2.6K vues
Modern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and Grafana par InfluxData
Modern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and GrafanaModern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and Grafana
Modern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and Grafana
InfluxData886 vues
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기 par Sangik Bae
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
Sangik Bae8K vues
anyenv + phpenv + php-build が便利すぎる件 par y-uti
anyenv + phpenv + php-build が便利すぎる件anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
y-uti11.8K vues
Polyphony: Python ではじめる FPGA par ryos36
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
ryos365.2K vues
Goの時刻に関するテスト par Kentaro Kawano
Goの時刻に関するテストGoの時刻に関するテスト
Goの時刻に関するテスト
Kentaro Kawano3.2K vues
開発チーム管理で役立ったVSCode拡張機能 par Masaki Suzuki
開発チーム管理で役立ったVSCode拡張機能開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能
Masaki Suzuki2.3K vues
반복적인 코드 작업 자동화, Codebone으로 손쉽게 par Sungju Jin
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
Sungju Jin12.7K vues
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운 par 다운 정
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
다운 정10.3K vues
高位合成でDeep learning par Mori Labo.
高位合成でDeep learning高位合成でDeep learning
高位合成でDeep learning
Mori Labo.3K vues
HTTP/2와 웹 성능 최적화 방안 par Brandon Kang
HTTP/2와 웹 성능 최적화 방안HTTP/2와 웹 성능 최적화 방안
HTTP/2와 웹 성능 최적화 방안
Brandon Kang3.9K vues
Osc2015北海道 札幌my sql勉強会_波多野_r3 par Nobuhiro Hatano
Osc2015北海道 札幌my sql勉強会_波多野_r3Osc2015北海道 札幌my sql勉強会_波多野_r3
Osc2015北海道 札幌my sql勉強会_波多野_r3
Nobuhiro Hatano10.1K vues
golang.tokyo #6 (in Japanese) par Yuichi Murata
golang.tokyo #6 (in Japanese)golang.tokyo #6 (in Japanese)
golang.tokyo #6 (in Japanese)
Yuichi Murata8.3K vues
php-src の歩き方 par do_aki
php-src の歩き方php-src の歩き方
php-src の歩き方
do_aki2.4K vues

En vedette

En quoi git serait plus agile que svn ? par
En quoi git serait plus agile que svn ?En quoi git serait plus agile que svn ?
En quoi git serait plus agile que svn ?Guillaume Collic
6.8K vues120 diapositives
Tutoriel GIT par
Tutoriel GITTutoriel GIT
Tutoriel GITFrancois ANDRE
3.3K vues83 diapositives
Git pour les (pas si) nuls par
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nulsMalk Zameth
7.5K vues160 diapositives
Git vs SVN par
Git vs SVNGit vs SVN
Git vs SVNneuros
23.8K vues16 diapositives
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé par
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséECAM Brussels Engineering School
4.4K vues71 diapositives
Versioning avec Git par
Versioning avec GitVersioning avec Git
Versioning avec GitJean-Baptiste Vigneron
6.1K vues37 diapositives

En vedette(20)

En quoi git serait plus agile que svn ? par Guillaume Collic
En quoi git serait plus agile que svn ?En quoi git serait plus agile que svn ?
En quoi git serait plus agile que svn ?
Guillaume Collic6.8K vues
Git pour les (pas si) nuls par Malk Zameth
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
Malk Zameth7.5K vues
Git vs SVN par neuros
Git vs SVNGit vs SVN
Git vs SVN
neuros23.8K vues
GitHub - Présentation par David RIEHL
GitHub - PrésentationGitHub - Présentation
GitHub - Présentation
David RIEHL2.7K vues
Formation GIT gratuite par ippon 2014 par Ippon
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
Ippon12.9K vues
Atelier Git + GitHub par spamaert
Atelier Git + GitHubAtelier Git + GitHub
Atelier Git + GitHub
spamaert1.1K vues
How Kris Writes Symfony Apps par Kris Wallsmith
How Kris Writes Symfony AppsHow Kris Writes Symfony Apps
How Kris Writes Symfony Apps
Kris Wallsmith13.5K vues
C'est si simple git ! (devoxx france 2012) par Ulrich VACHON
C'est si simple git ! (devoxx france 2012)C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)
Ulrich VACHON2.2K vues
Comparison of SVN and Git par Daniel Wieth
Comparison of SVN and GitComparison of SVN and Git
Comparison of SVN and Git
Daniel Wieth1.8K vues
Symfony2, Backbone.js & socket.io - SfLive Paris 2k13 - Wisembly par Guillaume POTIER
Symfony2, Backbone.js & socket.io - SfLive Paris 2k13 - WisemblySymfony2, Backbone.js & socket.io - SfLive Paris 2k13 - Wisembly
Symfony2, Backbone.js & socket.io - SfLive Paris 2k13 - Wisembly
Guillaume POTIER20.2K vues
Paul valery et les Web components par Francois ANDRE
Paul valery et les Web componentsPaul valery et les Web components
Paul valery et les Web components
Francois ANDRE450 vues
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ? par Nicolas Ruffel
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
Nicolas Ruffel493 vues

Similaire à Git Flow: un processus de développement Agile

Chaine de production pipeline par
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipelineNicolas wallerand
805 vues31 diapositives
Git flow par
Git flowGit flow
Git flowNeticoa Sénégal
1.1K vues25 diapositives
SVN to GitHUb par
SVN to GitHUbSVN to GitHUb
SVN to GitHUbJean-Laurent de Morlhon
805 vues43 diapositives
Mobile DevOps @While_42 par
Mobile DevOps @While_42Mobile DevOps @While_42
Mobile DevOps @While_42Adrien Siffermann
383 vues13 diapositives
Retour d'experience GIT, Integration continue par
Retour d'experience GIT, Integration continueRetour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continueMoïse Fiscal
415 vues22 diapositives
Industrialisation bar camp2010 par
Industrialisation bar camp2010Industrialisation bar camp2010
Industrialisation bar camp2010Lushkah911
591 vues23 diapositives

Similaire à Git Flow: un processus de développement Agile(7)

Git Flow: un processus de développement Agile

  • 1. Git Flow: un processus de développement Agile Xavier HAUSHERR
  • 2. A propos Xavier HAUSHERR CTO Twitter: @xkobal Blog: xavier.over-blog.com
  • 3. Git Flow: un processus de développement Agile Le projet Overblog
  • 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. 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. Git Flow: un processus de développement Agile Du cycle en V à l’agilité
  • 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. Equipe Scrum • Développeurs • Scrum Master • Product Owner • Business Owner • Stackholders • Quality Manager
  • 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. 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. 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. 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. Git flow feature-* develop Feature for Release 0 next release Feature branches
  • 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. 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. Git flow develop hotfix-* master Release 0 Tag 1.0 Bugfixes Production Tag 1.1 Hotfix branches
  • 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. 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. 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. 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. 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. 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. Git Flow: un processus de développement Agile Les Tests unitaires et fonctionnels
  • 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. 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. 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. 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. 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. 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. 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. 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"
  • 35. Merci pour votre attention Questions? Prenez le temps de créer votre blog sur www.over-blog.com