Continuous Integration System with Jenkins - HỆ THỐNG TÍCH HỢP LIÊN TỤC VỚI JENKINS

download Continuous Integration System with Jenkins - HỆ THỐNG TÍCH HỢP LIÊN TỤC VỚI JENKINS

of 24

Transcript of Continuous Integration System with Jenkins - HỆ THỐNG TÍCH HỢP LIÊN TỤC VỚI JENKINS

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    1/24

    (CONTINUOUS INTEGRATION SYSTEMWITH JENKINS)

    Trnh by: Lm Minh Tr

    Email:[email protected]

    Cn Th: 06/2012

    1

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    2/24

    NI DUNG TRNH BY

    2

    I. GII THIU H THNG TCH HP LIN TC

    II. GII THIU JENKINS

    III. VAI TR CA JENKINS TRONG CI

    IV. LI CH JENKINS MANG LI

    V. NH HNG PHT TRIN (CI, AGILE)

    VI. KH KHN KHI P DNG CI

    VII. THO LUN

    VIII. DEMO

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    3/24

    I.GII THIU H THNG TCH HP LIN TC

    3

    I.1 So snh m hnh pht trin phn mm truyn thng v hin ti

    Incremental

    Spiral

    Cocomo

    Cocomo II

    RAD

    RUP

    Requirements

    Analysis

    Design

    Coding

    Testing

    Maintenance

    Waterfall and Similar Methodology Others Agile and Similar Methodology

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    4/24

    I.GII THIU H THNG TCH HP LIN TC (TT)

    4

    I.1 So snh m hnh pht trin phn mm truyn thng v hin ti (TT)

    Waterfall and SimilarMethodology

    Agile and Similar Methodology

    Hngkhoch (plandriven)

    Ch ph hp khi yu cu khch hngkhng thay i .

    To raphnmmnhngchabitc gi trsdng (khng ng yucu).

    Mtnhiuthi gian v chi ph chovic quay lichnhsacc giai

    ontrc.Thngtrtin do khochkhng st vi yu cu v khi yu cuthay i.

    Ri ro cao.

    Hng gi tr (valuedriven).

    Chpnhn thay i v cho php x l thay inhnhng v nhanh chng.

    Chia nhx l v xc nhcktqu qua tng ltct. Qu trnh chia nhx l clpli cho n khi sn

    phm hon tt.

    To raphnmm c gi tr v ctrin khai chokhch hng sdngmt cch smnht.

    Thng xuyn giao tip v nhnphnhit pha khchhng.

    Lin tccitin cho cc giai on (lt ct) sau.

    Gimthiuri ro.

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    5/24

    I.GII THIU H THNG TCH HP LIN TC (TT)

    5

    I.1 So snh m hnh pht trin phn mm truyn thng v hin ti (TT).

    (Hin ti) (Truyn thng)

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    6/24

    I.GII THIU H THNG TCH HP LIN TC (TT)

    6

    I.2 Chi tit workflow ca Agile methodology thng qua Scrum methodology.

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    7/24

    I.GII THIU H THNG TCH HP LIN TC (TT)

    7

    I.2 Chi tit workflow ca Agile methodology thng qua eXtremePrograming (XP) methodology.

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    8/24

    I.GII THIU H THNG TCH HP LIN TC (TT)

    8

    I.3 nh ngha h thng tch hp lin tc (Continuous Integration ).

    Phn mm pht trin theo m hnh Agile cn c gi l phn mmtch hp lin tc (Continuous Integration ).

    H thng tch hp lin tc l thnh phn sng cn ca mt Agile team.

    Trch dn nh ngha ca Martin Fowler Continuous Integration is asoftware development practice where members of a team integrate their

    work frequently, usually each person integrates at least daily - leading to

    multiple integrations per day. Each integration is verified by an automated

    build (including test) to detect integration errors as quickly as possible.

    Many teams find that this approach leads to significantly reducedntegration problems and allows a team to develop cohesive software more

    rapidly.

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    9/24

    I.GII THIU H THNG TCH HP LIN TC (TT)

    9

    I.4 Minh ha h thng tch hp lin tc

    Trung tm cahthng tchhp lin tc

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    10/24

    I.GII THIU H THNG TCH HP LIN TC (TT)

    10

    I.5 Thc tin ca h thng tch hp lin tc (Practices of ContinuousIntegration)

    Qun l phin bn (source control and version control ).

    T ng build bao gm test.

    i ng pht trin thng xuyn chuyn (commit) source vni lu tr chnh (mainline).

    Mi khi code c thay i s build li (mainline) thng qua buildserver.

    Bo li cho ngi lp trnh gy li v qun l d n.

    Pht hnh phin bn hon chnh cho khch hng khi khngcn li.

    T ng phn phi phin bn mi n khch hng.

    Mi ngi c th nhn thy nhng g xy ra (thay i, li) xem xt v gii quyt.

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    11/24

    I.GII THIU H THNG TCH HP LIN TC (TT)

    11

    I.6 Thun li v kh khi p dng h thng tch hp lin tc

    Kh khn:

    Cn thi gian thit lp h thng ban u.

    i hi qun l d n, ngi lp trnh, ngi kim nh phi am

    hiu m hnh pht trin phn mm Agile, h thng tch hp CI, cchs dng cc cng c h tr cho Agile v CI.

    Chi ph thit b phn cng (cc server cho CI).

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    12/24

    I.GII THIU H THNG TCH HP LIN TC (TT)

    12

    I.7 Ti sao cn h thng tch hp lin tc?

    Gim thiu ri ro do li c pht hin sm.

    Gim thiu s lp li cho cc qu trnh

    To phn mm c gi tr s dng sm nht c th v sn sng trin

    khai mi lc mi ni. Cung cp ci nhn xuyn sut tng quan v c th cho tng giai on.

    Nng cao k nng ca i ng nhn vin pht trin phn mm.

    Ci thin cht lng phn mm.

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    13/24

    I.GII THIU H THNG TCH HP LIN TC (TT)

    13

    I.8 Nhng cng c c s dng trong h thng tch hp lin tc Code Repositories

    SVN, Mercurial, Git, Visual Source Safe

    Continuous Build Systems Jenkins, Bamboo, Cruise,Hudson,

    Test Unit Frameworks JUnit,Cucumber , CppUnit

    Test report website Mantis, TestLink, Redmine

    Artifact Repositories Nexus, Artifactory, Archiva

    And others

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    14/24

    II. GII THIU JENKINS

    14

    II.1 Gii thiu

    L mt ng dng web application m ngun m (c cng ng pht trin theo giyphp MIT) ng vai tr my ch build & test ca h thng tch hp lin tc.

    Jenkins c vit bng Java nn Jenkins c th kt hp c vi hu ht cc cng ckhc ca h thng tch hp lin tc vi nhiu nn tng khc nhau v c bit l tngmobi application (android).

    Tin thn l Hudson c vit bi Kosuke Kawaguchi ti Sun, k t khi Sun c muali bi Oracle vo nm 2010, mt b phn pht trin Hudson tch ra pht trin ringv c t tn l Jenkins.

    c s dng rng ri v c pht trin ci tin lin tc bi cng ng m ngun m

    t nhiu gii thng :InfoWorld Bossies Award, 2011 O'Reilly Open-Source Award, 2011ALM&SCM, SDTimes 100, 2010, 2011 ,GlassFish Community Innovation Award 2008, Duke's

    Choice Award 2008

    c cc t chc ln tin dng: Ebay,Apache, NASA,Boeing,Mozilla, Linked in,

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    15/24

    II. GII THIU JENKINS (TT)

    15

    II.2 c im ca Jenkins

    D dng ci t v s dng.

    a nn tng.

    H tr cho nhiu cng ngh pht trin phn mm.

    c s dng rng ri. D m rng.

    D dng lin kt vi cc cng c khc ca h thng tch hp lin tc thng qua ccplug in.

    Min ph.

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    16/24

    III. VAI TR CA JENSKIN TRONG CI

    16

    III.1 L tri tim ca CIL CI server (build & test server) gi v tr trung tm tri tim cho

    mi hot ng ca h thng.

    Khch hng, Kim nh,

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    17/24

    III. VAI TR CA JENSKIN TRONG CI (TT)

    17

    III.2 Khp kn quy trnh pht trin phn mm mtcch t ng.

    Nh vo vic h tr a nn tng, cng nghJenkins gip khp kn quy trnh pht trin phnmm mt cch t ng theo m hnh Agile nichung v h thng tch hp lin tc ni ring.

    Vi hn 400 plugin v c pht trin thm khngngng Jenkins tr thnh tr th c lc cho h

    thng CI.

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    18/24

    III. VAI TR CA JENSKIN TRONG CI (TT)

    18

    III.2 Khp kn quy trnh pht trin phn mm mtcch t ng (TT).

    Source controlTool

    SVN, VSS,

    CSV, GIT,

    Team Foundation

    Server

    Test Tool

    TestLink,

    Junit.Nunit,MSTest

    Build Tool

    Ant, Maven,

    MSBuild,

    Cmake

    Notification

    Code

    Coverage

    Virtual

    Machines

    Static

    Analysis

    Deploy

    Server

    Jenkins

    Customer

    Developer

    And others

    team

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    19/24

    IV. LI CH JENKINS MANG LI

    19

    Tt c vi Jenkins hu nh l t ng.

    Gim thi gian v chi ph.

    Nng cao nng lc nhn vin?

    C th tm gn li ch Jenkins mang li l FESS.

    Faster.

    Easier.

    Safer.

    Smarter.

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    20/24

    V. NH HNG PHT TRIN AGILE & CI?

    20

    p dng mt phn ca Jenkins Build server

    Version control

    p dng test unit

    Qun l d n theo m hnh Agile p dng tt c nhng h tr ca Jenkins trong CI

    1

    2

    3

    4

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    21/24

    VI. KH KHN KHI P DNG AGILE & CI?

    21

    Thay i quan nim c v qun l d n?

    Thit lp quy trnh ban u ph hp?

    Thit lp h thng ?

    K nng ca qun l d n, lp trnh vin, kimnh vin?

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    22/24

    VII. THO LUN

    22

    ?

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    23/24

    VIII. DEMO

    23

  • 7/31/2019 Continuous Integration System with Jenkins - H THNG TCH HP LIN TC VI JENKINS

    24/24

    Ti liu tham kho & chng trnh ci t Jenkins My: 172.16.160.208

    Ti khon: user/user

    Th mc: Jenkins

    24