from ci to cd - lavajug 2012
TRANSCRIPT
![Page 1: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/1.jpg)
FROM CI TOCD&D
LAVAJUG
NOVEMBER 8, 2012
*
![Page 2: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/2.jpg)
TOCSOFTWARE CHALLENGES
CONTINUOUS INTEGRATIONCONTINUOUS DEPLOYMENT
NATIVE PACKAGING
![Page 3: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/3.jpg)
ABOUT ME - @HGOMEZ
TODAY - CI ARCHITECT @ AXWAY
OPS HAT - FORMER SENIOR OPS DIRECTORDEV HAT - FORMER DEV, TEAM LEADER AND ARCHITECT
QA HAT - FORMER QA TECH LEADER
JPACKAGE , OBUILDFACTORY AND DEVOPS INCUBATOR PROJECT FOUNDER
PROUD MEMBER OF ASF (TOMCAT & XML-RPC ) & OSSGTP
*
* * *
* * *
![Page 4: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/4.jpg)
TODAY SOFTWARECHALLENGES
SOFTWARE PROJECTS ARE LARGER AND COMPLEXMORE AND MORE COMPONENT INTEROPERABILITY
MANY TEAMS AND OFTEN REMOTE TEAMSTIGHT SCHEDULES
FREQUENT NEEDS AND REQUIREMENTS CHANGES
![Page 5: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/5.jpg)
EARLY AGES (PREHISTORIC)
BUILD / RELEASE ON A “PER REQUEST” BASIS -> GOPROJECT IN PROPER STATE -> YES IT BUILD
WELL DOCUMENTED PER STANDARDS -> DOC IS NOT AN OPTIONPROPERLY REVIEWED -> SOMEONE TESTED PRODUCT
BUT IT FAILED TOO OFTEN ;(
![Page 6: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/6.jpg)
THEN CAME AGILE
![Page 7: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/7.jpg)
TOOLING NEEDED FOR AGILESTANDARDIZE BUILD, TEST AND DEPLOYMENT
PROVIDE CONTINUOUS BUILDS, TEST AND DEPLOYMENTENSURES SOLID, REPRODUCIBLE AND ANALYZABLE STEPS
VISIBLE TO ALL ACTORS (DEV, QA, PRODUCT OWNER)
![Page 8: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/8.jpg)
AGILE IDEAL CYCLE :-)
![Page 9: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/9.jpg)
CONTINUOUS INTEGRATION"CONTINUOUS INTEGRATION IS THE PRACTICE OF INTEGRATING
EARLY AND OFTEN, SO AS TO AVOID THE PITFALLS OFINTEGRATION HELL".
![Page 10: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/10.jpg)
GOALTHE ULTIMATE GOAL IS TO REDUCE TIMELY REWORK AND THUS
REDUCE COST AND TIME.
WHEN DONE WELL, CONTINUOUS INTEGRATION HAS BEENSHOWN TO ACHIEVE THESE GOALS.
![Page 11: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/11.jpg)
WORKLOAD - HUMAN
TEAM MEMBERS WORK ON CODECODE AND UNIT TESTS
PUSH ON SCM AFTER LOCAL TESTS PASSED
![Page 12: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/12.jpg)
WORKLOAD - MACHINEPOLLS SCM AND CHECK OUT IF CHANGES
BUILD ALL CODE RUN ALL UNIT TESTS
DEPLOY SNAPSHOTS TO ARTIFACTS REPOSITORY
![Page 13: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/13.jpg)
WORKFLOW
![Page 14: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/14.jpg)
![Page 15: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/15.jpg)
CONTINUOUS INTEGRATIONSTEPS
FETCH FROM SCMBUILD CODE
RUN UNIT TESTSRUN INTEGRATION TESTS
DEPLOY ARTIFACTSRUN ACCEPTANCE TESTS
PRODUCE REPORTS
![Page 16: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/16.jpg)
NOTES ABOUT TESTS
TESTS SHOULD COVERS A WIDE SCOPE FROM DEV UP TORUNTIME
UNIT TESTINGINTEGRATION TESTINGACCEPTANCE TESTING
PERFORMANCES TESTING
![Page 17: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/17.jpg)
UNIT TESTINGHERE WE TEST CODE
ENSURES THE CODE IS DOING WHAT WE INTEND IT TO DOMANY EXTREMELY QUICK AND SMALL TESTS
UT ENSURE WE MAKE THE SOFTWARERIGHT
![Page 18: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/18.jpg)
INTEGRATION TESTINGUSED TO VALIDATE CONTRACTS BETWEEN PARTICIPANTSSHOULD BE PORTABLE (NOT PLATFORM DEPENDANTS)
"EXTERNAL COMPONENTS" SHOULD BE EMBEDDEDABLE ORMOCKED
IT ENSURE WE MAKE THE RIGHTSOFTWARE
![Page 19: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/19.jpg)
ACCEPTANCE TESTINGKEEP THEM SIMPLE
REAL TARGET COMPONENTS SHOULD BE USEDPREFER PRE-REQUISITE (DONT EMBED SQL DB ENGINES)
DATASETS IN USE SHOULD BE MODERATE
PREPARE FOR PRODUCTION - ENROLLYOUR OPS
![Page 20: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/20.jpg)
PERFORMANCE TESTINGFIX QUICKLY PERFORMANCE REGRESSIONS
PREPARE FOR CAPACITY PLANNING
PROTECT YOURSELF FROM IN-PRODDISCOVERY
![Page 21: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/21.jpg)
CONTINUOUS DEPLOYMENT
CONTINUOUS DEPLOYMENT IS CONTINUOUS INTEGRATION ONSTEROIDS
![Page 22: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/22.jpg)
BIG PICTURE
WELCOME TO OPS LAND
![Page 23: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/23.jpg)
CONTINUOUS DEPLOYMENTFOR ?YOUR DEVS YOUR QAS
YOUR SUPPORTYOUR SALES
AND OF COURSE YOUR CUSTOMERS
![Page 24: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/24.jpg)
ANY MAGIC RECIPES ?
KEEP IT SIMPLETHINK COMPONENT
ASSEMBLE THEM ALL !
![Page 25: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/25.jpg)
LEGO MODEMANDATE COMPONENT APPROACH
ASSEMBLE ARTIFACTSCOMPONENTS ASSEMBLY GUIDELINES
TAKE SPECIAL CARE ON COMPONENTS CONFIGURATIONS
![Page 26: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/26.jpg)
ASSEMBLE THEM ALLDEPLOY USABLE ARTIFACTS
READY TO USE BY UPSTREAM TEAMS LIKE QA-OPSSHOULD BE CONFIGURABLE FROM THE OUTSIDE
![Page 27: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/27.jpg)
HEY, DON'T FORGETCONTINUOUS DELIVERY !
THERE IS CONTINUOUS DEPLOYMENTBUT DON'T FORGET CONTINUOUS DELIVERY
![Page 28: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/28.jpg)
DELIVERYPROVIDE PRODUCT TO END USER
USER COULD THEN INSTALL OR UPDATE IT ON HIS OWNSYSTEMS
![Page 29: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/29.jpg)
DEPLOYMENTPROVIDE OPERATIONAL SOLUTION TO END USER
USER COULD DIRECTLY USE IT ON HIS OWN OR LEASED SYSTEMS
![Page 30: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/30.jpg)
EXTERNAL APPROACH
MANY GOOD PROVIDERS, CLOUDBASED
CLOUD BEES
HEROKU
OPENSHIFT
BUT YOU MAY DON'T HAVE CHOICES AND HAD DO IT IN-HOUSE
*
*
*
![Page 31: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/31.jpg)
IN-HOUSE APPROACH
MATERIALIZE 3 CHAINS
SOFTWARE FACTORYQUALITY FACTORY
DELIVERY&DEPLOYMENT FACTORY
AND DONT FORGET SERIOUS MONITORING FOR ALL OF THEM
![Page 32: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/32.jpg)
SOFTWARE FACTORY
FROM SCM TO ARTIFACTS
BUILDUNIT TESTS
INTEGRATION TESTSCODE QA REPORTS (SONAR)
DEPLOY ARTIFACTS
![Page 33: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/33.jpg)
QUALITY FACTORY
FROM ARTIFACTS TO RUNTIMEREPORTS
CONSUME ARTIFACTS FROM SOFTWARE FACTORYRUN ACCEPTANCE TESTS
PERFORM PERFORMANCE TESTSPROVISION CAPACITY PLANNING
REPORTS GENERATION
![Page 34: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/34.jpg)
DELIVERY&DEPLOYMENTFACTORY
FROM ARTIFACTS TO RUNNABLE
BUILD NATIVE PACKAGESBUILD IMAGES (VMDK, AMI, DVD ISO)
PROVIDE RUN INFRASTRUCTURE (INSITE)INTERFACE TO RUN INFRASTRUCTURE (OFF-SITE/PUBLIC)
CATALOG & PROVISION RUNTIMES
![Page 35: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/35.jpg)
INTERACTIONS BETWEENFACTORIES
![Page 36: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/36.jpg)
![Page 37: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/37.jpg)
INTERACTIONSSWF PRODUCES SOFTWARE MATERIALS
QAF CONSUME SWF MATERIALSQAF GIVE 'GO FOR PRODUCTION' IN D&DF
D&DF PROVIDES QAF RUN INFRASTRUCTURED&DF COULD PROVIDES DEV RUN INFRASTRUCTURE
![Page 38: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/38.jpg)
TOOLING SCM : SUBVERSION, GIT, MERCURIAL (CVS SIC)ORCHESTRATION : JENKINS (WHAT ELSE ?)
CONTENT REPOSITORIES : ARCHIVA , ARTIFACTORY , NEXUS ,HTTPD
QUALITY : SONAR
RUN FORCE : JENKINS AGENTSRUN MIDDLEWARE : ESXI , VIRTUALBOX , VAGRANT ,
OPENSTACK /CLOUDSTACK
MONITORING : ZABBIX , GRAPHITE , COLLECTD , JMXTRANS
*
* * **
*
* * ** *
* * * *
![Page 39: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/39.jpg)
NATIVE PACKAGINGWIDELY USED IN UNIX WORLD
OS COMPONENTISATION APPROACHRUNTIME DEPENDENCIES AWAREPOWERFUL LIFE-CYCLE SUPPORT
WEB BASED PACKAGES REPOSITORIES FOR MODERN DELIVERY
![Page 40: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/40.jpg)
WIDELY USED IN UNIXWORLD
YOUR OPS KNOWS THEMYOUR CUSTOMER OPS KNOWS THEM
AVOID "NOT INVENTED HERE SYNDROM", BRING MORECONFIDENCE
![Page 41: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/41.jpg)
OS COMPONENTISATIONAPPROACH
YOUR APP SHOULD BE A COMPONENT LIKE THOSE BUNDLED BYOS
EASY TO MANAGE AS SYSTEM SERVICETAKE CARE OF SYSTEM HABBIT (USER BY SERVICE)
![Page 42: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/42.jpg)
RUNTIME DEPENDENCIESAWARE
PROVIDES OR DEPENDS ON OTHERS OS PACKAGESHELP SPLIT COMPLEX SOLUTIONS IN SET OF SIMPLE PACKAGESINJECT SQL ENGINES, FRONT-ENDS CONFIGURATION VIA HOOKS
PUPPET/CHEF MANAGEABLE
![Page 43: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/43.jpg)
POWERFULL LIFE-CYCLESUPPORTEASY INSTALLATION
EASY UPDATEEASY REMOVAL
INTERACT WITH OTHER COMPONENTS LIFE-CYCLE
![Page 44: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/44.jpg)
MODERN DELIVERYYUM, ZYPPER, APT ARE USING WEB BASED PACKAGES
REPOSITORIESBUILD / PROVIDE YOUR OWN COMPANY WEB REPOSITORIES
SAME SOURCE FOR YOUR DEV, QA, SUPPORT, SALES ANDCUSTOMERS
100% CLOUD-READY WITHOUT EFFORT
![Page 45: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/45.jpg)
SMART CD WITH JENKINS &RPM
1. BUILD (MAVEN)2. PACKAGE (RPMBUILD) 3. UPDATE REPO4. DEPLOY !
![Page 47: From ci to cd - LavaJug 2012](https://reader034.vdocuments.mx/reader034/viewer/2022042602/55816df7d8b42ae15f8b4959/html5/thumbnails/47.jpg)
IN A NUTSHELLCONTINUOUS INTEGRATION MOTORIZE AGILITY
THEN CAME CONTINUOUS DELIVERY AND DEPLOYMENTCONTINUOUS D&D COULD BE DONE IN HOUSE
CONSIDER NATIVE PACKAGING FOR CONTINUOUS DEPLOYMENT