DevOps Tooling event Amazic

15
Control adapt for change with Enterprise Jenkins Donald Lubbers Bas van Oudenaarde

Transcript of DevOps Tooling event Amazic

ControladaptforchangewithEnterpriseJenkins

DonaldLubbers

BasvanOudenaarde

MainframetoμServices

• 166yearsofbrickandmortarwantstododirectsales• 20+yearsonmainframetechnology,Javaontop,notfutureproof• Businessneedsabilitytoexperimentandchangefast• Manyattemptsstartedtocomplex.Greenfieldreboot:• Agile• μServices• FlexibleInfrastructure

DevOpsTriangleofsuccess

DevOps:Cultureparty

MicroServices SoftwareDefineX/InfraasCode

Agile/Lean

Getthestuffdeployed!

• 2yearsofDev-effort,sofaronlylocaldemo’s• DevandInfrateamsbusyignoringeachother• TimetorunMVPreleaseonrealsystems• Tminus6m:Startfromscratch,hirehelp!• Scaleoutprincipleswithgrowingnumberofμ-Services• Butwait,dowehaveproperreleasesofoursoftware?

Anyway,Pleasedeploy!

ContinuousIntegration(CI)decoupledfocusonCD…

ALM SCM Build Analyze Reposit.Test

Unittesten

Promote(nextHop,)Deploy() test()Check

Promote()

Quality-GateKeeper

• CIsetupwasmoreorlesssetup

• Hardlyanyreleaseinartifactory(80comp,maybe4components releases)

• StillSVN,makeplanstomigratetoGIT

• TODO:re-structureSVN/Artifactoryandmakeitreleasable

• Configurebuild-tooling inrightway,setupEnterpriseJenkins

Moving in

EnterpriseJenkins->CIJobTemplate• FirstmadenewCI-buildtemplate;improvecurrentCIsteps

• RestructureSVN,onesimpleupdateinCI-buildtemplate• 80jenkinsjobseasyupdated

• RestructureArtifactory(movingfromoldArtitonewArti)+restructureandsplittingartifactstypes• 80jenkinsjobseasyupdated

• Restructuredeploymentflow• 80jenkinsjobseasyupdated

BUTINeedArtifacts,pleaseRELEASE!!!

Andsomemorerequirements…

• FocusonCD.“Immer gerade aus!”Failquicklyandfailsmall.

• Qualitygatesmustblockdeploymentofartifactswhenqualityisinsufficient.

• DeploytoProdonlywhenauthorizedbybusiness.

• Compliance:Logeveryactionanddecisioninthepipelinesforauditingpurposes.

LazyDev,wherearethereleaseofthemicro-services?

• JokingJ butitisaneffortaround80components!Andstillcounting…• Doweneedreleases?Continuous...• Fixingauto-release

SingleStreamPipelines

A

C D

B

A:10,11,12,13,14,15,…

B:3,4,5,6…

C:1,2…

D:300,301,302,…

15 6

2 302

A

C D

B

relatiesomgeving

μService:

1stsetupofcontrol:μ-Servicesswarm…

UPK-10:

{app:[{"name":“portaal","version": “2345","jbgroup": "D03-G01", "flags":"1"{"name":“wijzigen","version": “1234","jbgroup": "D03-G01", "flags":"1“},{"name":"afrekenenleven", "version":“1230","jbgroup": "D03-G01", "flags":"1“}]},…comps:[{"name":“account","version":"20563", "jbgroup": "D03-G01", "flags":"1“},{"name":“polis","version": "20563", "jbgroup": "D03-G01","flags": "1“},{"name":"afrekenenleven", "version":"20563", "jbgroup": "D03-G01", "flags":"1“}]}.…workers:[{"name":“afrekenen","version": "20563","jbgroup": "D03-G01","flags": "1“},…

Declarativeswarmofμ-Services,

Immutableserverconcept,JenkinsascentralHub(ochestrator)

μ-service

Platform

Nuts

μ-service

Platform

Nuts

μ-service μ-

service

Platform

NutsNuts

LabelUPK1VM,Satellite,Puppet

Test,Test,Test,...

μ-service

μ-service

μ-service

μ-service

A

C D

B15 5

7 49

A

C D

B15 6

2 302

Label:upk10+delta

Label:upk10+delta OAomgeving

Testingok?

OBomgeving

Testingok?

A

C D

B15 6

7 302

Label:upk10+delta

Iomgeving

RegressionTestpassed

RegressionTestfailed

UitrolmogelijkT,A,P

AutomatischLabelsindienOk

Continuous DeliverynaarOx,indienoknaarI

Label:upk11

Tryagain

JenkinsasOrchestrator(Pipelineplugin)

Pitfalls

• Not“BuildingthingsRIGHT”– Timepressureà technicaldebtM• Devops?Opsbusysavingtheday,Devsittingbackenjoyingtheride…atfirst• BuildtheRIGHTthing,preventscopecreep• Planning(way)aheadoncapacityofvirtualIT-infrastructure• Nobrainer:4monthsisveryshortperiodoftimetochangeculture,buildplatform,CD-processetc.

NextSteps

• Movingtomorecontainerizationprinciples• Reorg:BringOpsintotheDev-teams• Steppinguponquality,Jenkinsasqualitygate• ScaleoutEnterpriseJenkinstorestoforganization.ControlwithJenkinsOperationCenter• FirstlookovertheshoulderandfeelingproudJ