From ci to cd - LavaJug 2012

47
FROM CI TO CD&D LAVAJUG NOVEMBER 8, 2012 *

Transcript of From ci to cd - LavaJug 2012

Page 2: From ci to cd  - LavaJug 2012

TOCSOFTWARE CHALLENGES

CONTINUOUS INTEGRATIONCONTINUOUS DEPLOYMENT

NATIVE PACKAGING

Page 3: From ci to cd  - LavaJug 2012

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

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

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

THEN CAME AGILE

Page 7: From ci to cd  - LavaJug 2012

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

AGILE IDEAL CYCLE :-)

Page 9: From ci to cd  - LavaJug 2012

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

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

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

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

WORKFLOW

Page 14: From ci to cd  - LavaJug 2012
Page 15: From ci to cd  - LavaJug 2012

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

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

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

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

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

PERFORMANCE TESTINGFIX QUICKLY PERFORMANCE REGRESSIONS

PREPARE FOR CAPACITY PLANNING

PROTECT YOURSELF FROM IN-PRODDISCOVERY

Page 21: From ci to cd  - LavaJug 2012

CONTINUOUS DEPLOYMENT

CONTINUOUS DEPLOYMENT IS CONTINUOUS INTEGRATION ONSTEROIDS

Page 22: From ci to cd  - LavaJug 2012

BIG PICTURE

WELCOME TO OPS LAND

Page 23: From ci to cd  - LavaJug 2012

CONTINUOUS DEPLOYMENTFOR ?YOUR DEVS YOUR QAS

YOUR SUPPORTYOUR SALES

AND OF COURSE YOUR CUSTOMERS

Page 24: From ci to cd  - LavaJug 2012

ANY MAGIC RECIPES ?

KEEP IT SIMPLETHINK COMPONENT

ASSEMBLE THEM ALL !

Page 25: From ci to cd  - LavaJug 2012

LEGO MODEMANDATE COMPONENT APPROACH

ASSEMBLE ARTIFACTSCOMPONENTS ASSEMBLY GUIDELINES

TAKE SPECIAL CARE ON COMPONENTS CONFIGURATIONS

Page 26: From ci to cd  - LavaJug 2012

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

HEY, DON'T FORGETCONTINUOUS DELIVERY !

THERE IS CONTINUOUS DEPLOYMENTBUT DON'T FORGET CONTINUOUS DELIVERY

Page 28: From ci to cd  - LavaJug 2012

DELIVERYPROVIDE PRODUCT TO END USER

USER COULD THEN INSTALL OR UPDATE IT ON HIS OWNSYSTEMS

Page 29: From ci to cd  - LavaJug 2012

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

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

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

SOFTWARE FACTORY

FROM SCM TO ARTIFACTS

BUILDUNIT TESTS

INTEGRATION TESTSCODE QA REPORTS (SONAR)

DEPLOY ARTIFACTS

Page 33: From ci to cd  - LavaJug 2012

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

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

INTERACTIONS BETWEENFACTORIES

Page 36: From ci to cd  - LavaJug 2012
Page 37: From ci to cd  - LavaJug 2012

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

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

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

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

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

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

POWERFULL LIFE-CYCLESUPPORTEASY INSTALLATION

EASY UPDATEEASY REMOVAL

INTERACT WITH OTHER COMPONENTS LIFE-CYCLE

Page 44: From ci to cd  - LavaJug 2012

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

SMART CD WITH JENKINS &RPM

1. BUILD (MAVEN)2. PACKAGE (RPMBUILD) 3. UPDATE REPO4. DEPLOY !

Page 46: From ci to cd  - LavaJug 2012

DEPLOYMENT STEPS INPIPELINE VIEW

DEMONSTRATION AT VIMEO

Page 47: From ci to cd  - LavaJug 2012

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