43
Jenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Embed Size (px)

Citation preview

Page 1: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Jenkins at Splunk> - Bill Houston

Splunking> Jenkins - Ali Raza

Page 2: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

•  1minuteintroduc3ontoSplunk

•  DevelopmentprocessandbuildpipelinesatSplunkusingJenkins

•  HowReleaseEng.usesSplunktoimprovedeveloperproduc3vityandexperience

•  QualityEngineeringatSplunkusingJenkins

•  HowQTIusesSplunktoimproveQEproduc3vityandexperience

•  MakingsenseofalltheJenkins,development,andtes3ngdatausingSplunk

Agenda

Page 3: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

•  WhatisSplunk–  SplunkEnterprisemakesitsimpletocollect,analyze,andactuponuntappedvalueofthebigdatagenerated

byyourtechnologyinfrastructure,securitysystems,andbusinessapplica3ons(likeJenkins).Splunkgivesyoutheinsightstodriveopera3onalperformanceandbusinessresults

–  CommercialEnterpriseSoOware

–  Freedownload(500MB/day)

–  BillandIdon’tworkinsalessoyoucanrelaxJ

SplunkIntroduc3on

Page 4: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

•  Mul3pleJenkinsclustersatSplunkperformingavarietyofdifferentfunc3ons–  EngineeringDevCIsystemtotesteachpullrequestandcommittoBitBucket–  QECIsystemforautomatedtes3ngofmul3plebuildsadayacrossmul3plebranches–  SplunkClouddeployment–  Applica3ontes3nginShanghai–  Othermisc.housekeepingandtes3ngtasks

•  OurtalkwillfocusontheuseofJenkinsandSplunkinourDevandQECIsystems

•  WewilldoalivedemousingournewSplunkpluginforJenkinsalongwithaJenkinsAppforSplunk.BothofthesearegearedtowardtheoverallJenkinscommunity.

JenkinsatSplunk

Page 5: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

DevelopmentPipeline

JenkinsatSplunk

Page 6: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Tes3ngofEveryCommittoCertainBranches

Testsrunforalimitednumberofbranches

Page 7: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

DevelopercommitsachangetoBitbucket

Tes3ngofEveryCommittoCertainBranches

Page 8: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

AnHTTPRequestPostreceivehooksendsatrigger

Tes3ngofEveryCommittoCertainBranches

Page 9: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Whyhaveatriggerforwarder/queuesystem?

•  Providesalayerofsecurity

•  Asingleswitchisusedtoinhibittriggerforwarding

•  Mul3pleTriggerscanbeforwarded

•  Verifiesthatthetriggerwasproperlyreceived

•  ImplementedwithJenkins

Tes3ngofEveryCommittoCertainBranches

Page 10: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Forwardersendsthetriggeron

Tes3ngofEveryCommittoCertainBranches

Page 11: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Jenkinsmasterstartstherequiredtests

Tes3ngofEveryCommittoCertainBranches

Page 12: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

ResultsarepostedtoBitbucket,thedeveloperandSplunk

Tes3ngofEveryCommittoCertainBranches

Page 13: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Tes3ngofEveryCommittoCertainBranchesAbouttheHipchatNo3fica3ons•  Send3melytestupdateswithout“Spamming”the

team•  Senttotargetedindividuals•  SentwithGroovyscriptusingtheHipchatRESTapijson_message="{\"message\":\"Triggerfortes3ngofPullRequest:${pr_ID}hasbeenreceived\",\"no3fy\":true}”cmd=["bash”,"-c","curl-k-v-XPOST-H'Authoriza3on:Bearer${hipChat_token}'-H'Content-Type:applica3on/json'-d'${json_message}'hnps://hipchat.splunk.com/v2/user/${emailAddress}/message"]try{HipChat_Process=newProcessBuilder(cmd)process=cmd.execute()process.waitFor()println"curlGETexitvalue:${process.exitValue()}"}catch(e){println"failedtosendtheHipchatmessage"}

Page 14: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Basicallysimilartocommittests

Tes3ngofEveryPullRequest

Page 15: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Atestisautoma3callytriggeredwhenapullrequestisopened

Tes3ngofEveryPullRequest

Page 16: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

FurthertestsaremanuallytriggeredwithabunonintheUI

Tes3ngofEveryPullRequest

Page 17: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Tes3ngofEveryPullRequest

Page 18: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

TestprogressandresultsarepostedtotheBitbucketPRUIinacomment.Teststartno3fica3onandresultsarepostedtothedeveloperviaHipchatandtoSplunkviatheSplunkplugin.TestresultsarepostedtothepullrequestreviewersviaHipchat.

Tes3ngofEveryPullRequest

Page 19: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Real-TimeNo3fica3onsinBitbucketComments

Goal:providemeaningfulinputtoreviewers,don’t“spam”thepullrequestUI.Acommentiscreatedforeachtriggerthenupdatedasthetestprogresses.

Page 20: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Real-TimeNo3fica3onsinBitbucketComments

Page 21: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Real-TimeNo3fica3onsinHipChat

Hipchatno3fica3onshavelinksbacktotheBitbucketpullrequestUIwheretheresultsarepostedincommentsAlinkinthepullrequestUIsendsDevelopersdirectlytothetestresultspageintheJenkinsUIMostdeveloperinterac3oncantakeplaceinBitbucketorinSplunk

Page 22: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

•  Theprojectsareasgenericaspossible.

•  AllscriptsandpropertyfilesarestoredinBitbucket.

•  TheJenkinsmasterpullsafreshcopyofthefilesonacommit.

•  Eachslavenodepullsafreshcopyofthefilesatthestartofajob

•  AJenkinsStagingsystemisusedfornewdevelopmentandbugfixtes3ng

Keeping the System Maintainable/Extensible

Page 23: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

•  Somenodesarerestartedregularly

•  Ascriptanalyzestheresultsattheendofeachtest

•  Testrunsthatfailduetoaninfrastructureissueareretriggeredonadifferentnode.

•  TheJenkinshomedirectoryisstoredonanNFSmount

•  TheSplunkpluginmonitorstheJenkinsmasterandallnodes

•  AlertsaresetupinSplunktowarnofpendingandac3vefailures

Keeping the System Reliable

Page 24: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

•  MaintainaBitbucketreferencerepositoryoneachnode

•  Deferlowerprioritytests/tasksduringhighloadperiods

•  DataforeachjobissenttoSplunk

•  SplunkingourJenkinssystemshasallowedustobemoreefficient,andresponsive

•  Diagnosingbuildandtestfailuresattheendofeachtest

Be Responsive to Developers Needs

Page 25: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

•  Commonissuessuchassourcecodemergeconflicts,compileorlinkerrorsareiden3fied

•  Eachfailureofabuildortestiscomparedwiththeresultsofprevioustests

Be Responsive to Developers Needs

Page 26: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

QualityEngineeringPipeline

JenkinsatSplunk

Page 27: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

QualityEngineeringatSplunk

•  EnterpriseSoOwareTes3ngisComplex:

•  Distributednatureofapplica3ons•  Variouscomplexdeploymenttopologies•  Destruc3vetes3ng–>preventssharingoftestenvironments

•  Variousplauorms

Page 28: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

QualityEngineeringatSplunk

Ini3alJenkinsrolloutstrategyforQA

•  Let’sempowereveryonetodowhatevertheywantinJenkins•  AslongwemonitorJenkins,everythingshouldbefine

Page 29: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Jenkins–Doasyouplease

Page 30: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Jenkins–Doasyoupleaseresults

•  JenkinsInfrastructurebecametheWildWildWest•  ConstantJenkinsinfrastructureandscalabilityissues•  Nocontrolandinsightintowhoisdoingwhatandwhy•  Lackofownership•  Ridiculousamountofdatatoprocess

•  Jenkinsconsolelogs•  TestResults•  Ar3facts(crashlogs,testlogs,etc)

Page 31: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Jenkins–Myteam’sdailyjob

Page 32: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Whattodo?

•  EngineeringDilemma:•  Can’tevenfigureoutwhattofixandwheretostart•  Notsureiftouchinganythingwillbreaksomethingelse

•  Let’sskipallthestageofgriefandgostraightto‘Acceptance&Hope’•  Currentsetupanddesignisnotdesignedtoscale•  Throwoutthecurrentsetupandstartfresh•  Learnfromourmistakes

Page 33: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

NewTeamsetup

•  QAToolsandInfrastructureTeam(QTI)•  LaserfocusedonQAproduc3vityandneeds•  InfrastructureandDeploymentservices•  TestArchitectureandTes3ngTools•  Jenkins•  Analy3csusingSplunk

•  QAEngineering•  Focusedontes3ngourproduct-Splunk•  Workssidebysidewithdeveloper,productmanagers,etc.

Page 34: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

JenkinsResurrec3on

•  NewJenkinsarchitectureGoals•  LimitedJenkinsprivilegesformostengineers.Onlybuildaccess•  ProvideatestframeworkabstracterlayerinJenkinsusingBuildFlow•  PerformancetuneandscalethehelloutofJenkins

•  LeverageSplunkfor

•  DiscoveringissuesinJenkinsandTes3nginfrastructure•  Real-Timealerts•  TestAnaly3cs•  Logeverything•  KPIsformanagement

Page 35: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Jenkins–BuildsGalore

Page 36: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

JenkinsResurrec3on–Workflow

Page 37: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

JenkinsData-SomeUseCases

•  Jenkinsopera3onaldataforadministrators•  Monitormul3pleJenkinsclusters•  Jenkinsmastersandslaveshealth(JVM,logs,logins,etc.)•  SecurityandAudi3ngofjobsandpluginconfigura3ons•  Buildqueue3mes,longrunningbuilds,andtrends•  Real-Timeconsolelogs•  KPIsformanagement

•  JenkinsBuildsdatafornormalusers

•  Buildandjobsconsolelogs,ar3facts,results•  Deeptestsanaly3cs,trends,andtriagingcapabili3es•  Preservethisdataforaverylong3me

Page 38: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

WhatcanSplunk>doforyou?

•  Fixingengineeringissuesistheeasypart.Findingoutwhattofixisdifficult.

•  Splunkwon’tfixyourJenkinsinfrastructureBUTitcanbeinstrumentalinexposingissuesinyoursetup.

•  Opera3onalIntelligenceintoyourJenkinsorotherCIapplica3on

infrastructureiscrucialtoincreasingdeveloper/QAproduc3vityandkeepyourorganiza3onmovingatafasterpace

Page 39: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Splunk+Jenkins

•  JenkinspluginforSplunk•  Onceconfigured,itwillsendalotofinforma3onaboutyourJenkins

environmenttoSplunk•  NoneedtoinstallanySplunkForwarder•  Noneedtomodifyanyjobs.Alljobandbuildac3vityisintercepted,

captured,andsenttoSplunkinreal-3me.•  Highlyconfigurable.Sendasmuchoraslinledataasyouneed

•  SplunkAppforJenkins

•  StandardAppinSplunk.Installin2minutes•  Prebuildcollec3onofdashboardsforprovidingdeepvisibilityintoyour

Jenkinsenvironment•  SpecificallydesignedforReleaseEngineers,JenkinsAdministrators,and

QAEngineerusecases

Page 40: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

LiveDemo

Page 41: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

JenkinsPlugin+JenkinsAppRelease

hnps://www.surveymonkey.com/r/splunk-jenkins

Page 42: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World

#JenkinsWorld

Contributors

DanielleJenkins KashyapJotwani

JingShao TedXiao AlanYu

Page 43: Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali ... · PDF fileJenkins World #JenkinsWorld Jenkins at Splunk> - Bill Houston Splunking> Jenkins - Ali Raza

Jenkins World#JenkinsWorld

Jenkins World