Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
FROM CI TO  CD&D     LAVAJUG *  NOVEMBER 8, 2012
TOC SOFTWARE CHALLENGESCONTINUOUS INTEGRATIONCONTINUOUS DEPLOYMENT   NATIVE PACKAGING
ABOUT ME - @HGOMEZ           TODAY - CI ARCHITECT @ AXWAY *        OPS HAT - FORMER SENIOR OPS DIRECTOR   DEV HAT - FORMER...
TODAY SOFTWARE      CHALLENGESSOFTWARE PROJECTS ARE LARGER AND COMPLEXMORE AND MORE COMPONENT INTEROPERABILITY   MANY TEAM...
EARLY AGES (PREHISTORIC)    BUILD / RELEASE ON A “PER REQUEST” BASIS -> GO        PROJECT IN PROPER STATE -> YES IT BUILDW...
THEN CAME AGILE
TOOLING NEEDED FOR AGILE      STANDARDIZE BUILD, TEST AND DEPLOYMENT PROVIDE CONTINUOUS BUILDS, TEST AND DEPLOYMENTENSURES...
AGILE IDEAL CYCLE :-)
CONTINUOUS INTEGRATION"CONTINUOUS INTEGRATION IS THE PRACTICE OF INTEGRATING    EARLY AND OFTEN, SO AS TO AVOID THE PITFAL...
GOALTHE ULTIMATE GOAL IS TO REDUCE TIMELY REWORK AND THUS                REDUCE COST AND TIME.  WHEN DONE WELL, CONTINUOUS...
WORKLOAD - HUMANTEAM MEMBERS WORK ON CODE           CODE AND UNIT TESTS  PUSH ON SCM AFTER LOCAL TESTS PASSED
WORKLOAD - MACHINE   POLLS SCM AND CHECK OUT IF CHANGES             BUILD ALL CODE           RUN ALL UNIT TESTSDEPLOY SNAP...
WORKFLOW
CONTINUOUS INTEGRATION        STEPS         FETCH FROM SCM            BUILD CODE          RUN UNIT TESTS      RUN INTEGRAT...
NOTES ABOUT TESTSTESTS SHOULD COVERS A WIDE SCOPE FROM DEV UP TO                   RUNTIME                 UNIT TESTING   ...
UNIT TESTING                HERE WE TEST CODE ENSURES THE CODE IS DOING WHAT WE INTEND IT TO DO      MANY EXTREMELY QUICK ...
INTEGRATION TESTING USED TO VALIDATE CONTRACTS BETWEEN PARTICIPANTS  SHOULD BE PORTABLE (NOT PLATFORM DEPENDANTS)"EXTERNAL...
ACCEPTANCE TESTING                KEEP THEM SIMPLE     REAL TARGET COMPONENTS SHOULD BE USED PREFER PRE-REQUISITE (DONT EM...
PERFORMANCE TESTING   FIX QUICKLY PERFORMANCE REGRESSIONS      PREPARE FOR CAPACITY PLANNINGPROTECT YOURSELF FROM IN-PROD ...
CONTINUOUS DEPLOYMENTCONTINUOUS DEPLOYMENT IS CONTINUOUS INTEGRATION ON                    STEROIDS
BIG PICTUREWELCOME TO OPS LAND
CONTINUOUS DEPLOYMENT        FOR ?             YOUR DEVS              YOUR QAS            YOUR SUPPORT             YOUR SA...
ANY MAGIC RECIPES ?     KEEP IT SIMPLE   THINK COMPONENT  ASSEMBLE THEM ALL !
LEGO MODE         MANDATE COMPONENT APPROACH               ASSEMBLE ARTIFACTS        COMPONENTS ASSEMBLY GUIDELINESTAKE SP...
ASSEMBLE THEM ALL          DEPLOY USABLE ARTIFACTSREADY TO USE BY UPSTREAM TEAMS LIKE QA-OPS SHOULD BE CONFIGURABLE FROM T...
HEY, DONT FORGETCONTINUOUS DELIVERY !    THERE IS CONTINUOUS DEPLOYMENT  BUT DONT FORGET CONTINUOUS DELIVERY
DELIVERY         PROVIDE PRODUCT TO END USERUSER COULD THEN INSTALL OR UPDATE IT ON HIS OWN                   SYSTEMS
DEPLOYMENT       PROVIDE OPERATIONAL SOLUTION TO END USERUSER COULD DIRECTLY USE IT ON HIS OWN OR LEASED SYSTEMS
EXTERNAL APPROACH   MANY GOOD PROVIDERS, CLOUD             BASED                    CLOUD BEES *                      HERO...
IN-HOUSE APPROACH        MATERIALIZE 3 CHAINS                SOFTWARE FACTORY                 QUALITY FACTORY          DEL...
SOFTWARE FACTORYFROM SCM TO ARTIFACTS            BUILD          UNIT TESTS      INTEGRATION TESTS   CODE QA REPORTS (SONAR...
QUALITY FACTORYFROM ARTIFACTS TO RUNTIME         REPORTSCONSUME ARTIFACTS FROM SOFTWARE FACTORY         RUN ACCEPTANCE TES...
DELIVERY&DEPLOYMENT        FACTORY  FROM ARTIFACTS TO RUNNABLE              BUILD NATIVE PACKAGES        BUILD IMAGES (VMD...
INTERACTIONS BETWEEN      FACTORIES
INTERACTIONS    SWF PRODUCES SOFTWARE MATERIALS        QAF CONSUME SWF MATERIALS    QAF GIVE GO FOR PRODUCTION IN D&DF  D&...
TOOLING       SCM : SUBVERSION, GIT, MERCURIAL (CVS SIC)        ORCHESTRATION : JENKINS * (WHAT ELSE ?)CONTENT REPOSITORIE...
NATIVE PACKAGING             WIDELY USED IN UNIX WORLD           OS COMPONENTISATION APPROACH            RUNTIME DEPENDENC...
WIDELY USED IN UNIX        WORLD            YOUR OPS KNOWS THEM       YOUR CUSTOMER OPS KNOWS THEMAVOID "NOT INVENTED HERE...
OS COMPONENTISATION         APPROACHYOUR APP SHOULD BE A COMPONENT LIKE THOSE BUNDLED BY                          OS      ...
RUNTIME DEPENDENCIES          AWARE      PROVIDES OR DEPENDS ON OTHERS OS PACKAGESHELP SPLIT COMPLEX SOLUTIONS IN SET OF S...
POWERFULL LIFE-CYCLE     SUPPORT            EASY INSTALLATION               EASY UPDATE              EASY REMOVALINTERACT ...
MODERN DELIVERY  YUM, ZYPPER, APT ARE USING WEB BASED PACKAGES                   REPOSITORIESBUILD / PROVIDE YOUR OWN COMP...
SMART CD WITH JENKINS &         RPM      1.   BUILD (MAVEN)      2.   PACKAGE (RPMBUILD)      3.   UPDATE REPO      4.   D...
DEPLOYMENT STEPS IN   PIPELINE VIEW    DEMONSTRATION AT VIMEO
IN A NUTSHELL       CONTINUOUS INTEGRATION MOTORIZE AGILITY   THEN CAME CONTINUOUS DELIVERY AND DEPLOYMENT        CONTINUO...
From ci to cd  - LavaJug 2012
From ci to cd  - LavaJug 2012
Upcoming SlideShare
Loading in …5
×

From ci to cd - LavaJug 2012

881 views

Published on

Published in: Technology
  • Be the first to comment

From ci to cd - LavaJug 2012

  1. 1. FROM CI TO CD&D LAVAJUG * NOVEMBER 8, 2012
  2. 2. TOC SOFTWARE CHALLENGESCONTINUOUS INTEGRATIONCONTINUOUS DEPLOYMENT NATIVE PACKAGING
  3. 3. ABOUT ME - @HGOMEZ TODAY - CI ARCHITECT @ AXWAY * OPS HAT - FORMER SENIOR OPS DIRECTOR DEV HAT - FORMER DEV, TEAM LEADER AND ARCHITECT QA HAT - FORMER QA TECH LEADER JPACKAGE * , OBUILDFACTORY * AND DEVOPS INCUBATOR * PROJECT FOUNDERPROUD MEMBER OF ASF (TOMCAT * & XML-RPC* ) & OSSGTP *
  4. 4. TODAY SOFTWARE CHALLENGESSOFTWARE PROJECTS ARE LARGER AND COMPLEXMORE AND MORE COMPONENT INTEROPERABILITY MANY TEAMS AND OFTEN REMOTE TEAMS TIGHT SCHEDULESFREQUENT NEEDS AND REQUIREMENTS CHANGES
  5. 5. EARLY AGES (PREHISTORIC) BUILD / RELEASE ON A “PER REQUEST” BASIS -> GO PROJECT IN PROPER STATE -> YES IT BUILDWELL DOCUMENTED PER STANDARDS -> DOC IS NOT AN OPTION PROPERLY REVIEWED -> SOMEONE TESTED PRODUCT BUT IT FAILED TOO OFTEN ;(
  6. 6. THEN CAME AGILE
  7. 7. TOOLING NEEDED FOR AGILE STANDARDIZE BUILD, TEST AND DEPLOYMENT PROVIDE CONTINUOUS BUILDS, TEST AND DEPLOYMENTENSURES SOLID, REPRODUCIBLE AND ANALYZABLE STEPS VISIBLE TO ALL ACTORS (DEV, QA, PRODUCT OWNER)
  8. 8. AGILE IDEAL CYCLE :-)
  9. 9. CONTINUOUS INTEGRATION"CONTINUOUS INTEGRATION IS THE PRACTICE OF INTEGRATING EARLY AND OFTEN, SO AS TO AVOID THE PITFALLS OF INTEGRATION HELL".
  10. 10. GOALTHE ULTIMATE GOAL IS TO REDUCE TIMELY REWORK AND THUS REDUCE COST AND TIME. WHEN DONE WELL, CONTINUOUS INTEGRATION HAS BEEN SHOWN TO ACHIEVE THESE GOALS.
  11. 11. WORKLOAD - HUMANTEAM MEMBERS WORK ON CODE CODE AND UNIT TESTS PUSH ON SCM AFTER LOCAL TESTS PASSED
  12. 12. WORKLOAD - MACHINE POLLS SCM AND CHECK OUT IF CHANGES BUILD ALL CODE RUN ALL UNIT TESTSDEPLOY SNAPSHOTS TO ARTIFACTS REPOSITORY
  13. 13. WORKFLOW
  14. 14. CONTINUOUS INTEGRATION STEPS FETCH FROM SCM BUILD CODE RUN UNIT TESTS RUN INTEGRATION TESTS DEPLOY ARTIFACTS RUN ACCEPTANCE TESTS PRODUCE REPORTS
  15. 15. NOTES ABOUT TESTSTESTS SHOULD COVERS A WIDE SCOPE FROM DEV UP TO RUNTIME UNIT TESTING INTEGRATION TESTING ACCEPTANCE TESTING PERFORMANCES TESTING
  16. 16. UNIT TESTING HERE WE TEST CODE ENSURES THE CODE IS DOING WHAT WE INTEND IT TO DO MANY EXTREMELY QUICK AND SMALL TESTSUT ENSURE WE MAKE THE SOFTWARE RIGHT
  17. 17. INTEGRATION TESTING USED TO VALIDATE CONTRACTS BETWEEN PARTICIPANTS SHOULD BE PORTABLE (NOT PLATFORM DEPENDANTS)"EXTERNAL COMPONENTS" SHOULD BE EMBEDDEDABLE OR MOCKED IT ENSURE WE MAKE THE RIGHT SOFTWARE
  18. 18. ACCEPTANCE TESTING KEEP THEM SIMPLE REAL TARGET COMPONENTS SHOULD BE USED PREFER PRE-REQUISITE (DONT EMBED SQL DB ENGINES) DATASETS IN USE SHOULD BE MODERATEPREPARE FOR PRODUCTION - ENROLL YOUR OPS
  19. 19. PERFORMANCE TESTING FIX QUICKLY PERFORMANCE REGRESSIONS PREPARE FOR CAPACITY PLANNINGPROTECT YOURSELF FROM IN-PROD DISCOVERY
  20. 20. CONTINUOUS DEPLOYMENTCONTINUOUS DEPLOYMENT IS CONTINUOUS INTEGRATION ON STEROIDS
  21. 21. BIG PICTUREWELCOME TO OPS LAND
  22. 22. CONTINUOUS DEPLOYMENT FOR ? YOUR DEVS YOUR QAS YOUR SUPPORT YOUR SALES AND OF COURSE YOUR CUSTOMERS
  23. 23. ANY MAGIC RECIPES ? KEEP IT SIMPLE THINK COMPONENT ASSEMBLE THEM ALL !
  24. 24. LEGO MODE MANDATE COMPONENT APPROACH ASSEMBLE ARTIFACTS COMPONENTS ASSEMBLY GUIDELINESTAKE SPECIAL CARE ON COMPONENTS CONFIGURATIONS
  25. 25. ASSEMBLE THEM ALL DEPLOY USABLE ARTIFACTSREADY TO USE BY UPSTREAM TEAMS LIKE QA-OPS SHOULD BE CONFIGURABLE FROM THE OUTSIDE
  26. 26. HEY, DONT FORGETCONTINUOUS DELIVERY ! THERE IS CONTINUOUS DEPLOYMENT BUT DONT FORGET CONTINUOUS DELIVERY
  27. 27. DELIVERY PROVIDE PRODUCT TO END USERUSER COULD THEN INSTALL OR UPDATE IT ON HIS OWN SYSTEMS
  28. 28. DEPLOYMENT PROVIDE OPERATIONAL SOLUTION TO END USERUSER COULD DIRECTLY USE IT ON HIS OWN OR LEASED SYSTEMS
  29. 29. EXTERNAL APPROACH MANY GOOD PROVIDERS, CLOUD BASED CLOUD BEES * HEROKU * OPENSHIFT *BUT YOU MAY DONT HAVE CHOICES AND HAD DO IT IN-HOUSE
  30. 30. IN-HOUSE APPROACH MATERIALIZE 3 CHAINS SOFTWARE FACTORY QUALITY FACTORY DELIVERY&DEPLOYMENT FACTORYAND DONT FORGET SERIOUS MONITORING FOR ALL OF THEM
  31. 31. SOFTWARE FACTORYFROM SCM TO ARTIFACTS BUILD UNIT TESTS INTEGRATION TESTS CODE QA REPORTS (SONAR) DEPLOY ARTIFACTS
  32. 32. QUALITY FACTORYFROM ARTIFACTS TO RUNTIME REPORTSCONSUME ARTIFACTS FROM SOFTWARE FACTORY RUN ACCEPTANCE TESTS PERFORM PERFORMANCE TESTS PROVISION CAPACITY PLANNING REPORTS GENERATION
  33. 33. DELIVERY&DEPLOYMENT FACTORY FROM ARTIFACTS TO RUNNABLE BUILD NATIVE PACKAGES BUILD IMAGES (VMDK, AMI, DVD ISO) PROVIDE RUN INFRASTRUCTURE (INSITE)INTERFACE TO RUN INFRASTRUCTURE (OFF-SITE/PUBLIC) CATALOG & PROVISION RUNTIMES
  34. 34. INTERACTIONS BETWEEN FACTORIES
  35. 35. INTERACTIONS SWF PRODUCES SOFTWARE MATERIALS QAF CONSUME SWF MATERIALS QAF GIVE GO FOR PRODUCTION IN D&DF D&DF PROVIDES QAF RUN INFRASTRUCTURED&DF COULD PROVIDES DEV RUN INFRASTRUCTURE
  36. 36. TOOLING SCM : SUBVERSION, GIT, MERCURIAL (CVS SIC) ORCHESTRATION : JENKINS * (WHAT ELSE ?)CONTENT REPOSITORIES : ARCHIVA * , ARTIFACTORY * , NEXUS * , HTTPD * QUALITY : SONAR * RUN FORCE : JENKINS AGENTS RUN MIDDLEWARE : ESXI * , VIRTUALBOX * , VAGRANT * , OPENSTACK * /CLOUDSTACK *MONITORING : ZABBIX * , GRAPHITE * , COLLECTD * , JMXTRANS *
  37. 37. NATIVE PACKAGING WIDELY USED IN UNIX WORLD OS COMPONENTISATION APPROACH RUNTIME DEPENDENCIES AWARE POWERFUL LIFE-CYCLE SUPPORTWEB BASED PACKAGES REPOSITORIES FOR MODERN DELIVERY
  38. 38. WIDELY USED IN UNIX WORLD YOUR OPS KNOWS THEM YOUR CUSTOMER OPS KNOWS THEMAVOID "NOT INVENTED HERE SYNDROM", BRING MORE CONFIDENCE
  39. 39. OS COMPONENTISATION APPROACHYOUR APP SHOULD BE A COMPONENT LIKE THOSE BUNDLED BY OS EASY TO MANAGE AS SYSTEM SERVICE TAKE CARE OF SYSTEM HABBIT (USER BY SERVICE)
  40. 40. RUNTIME DEPENDENCIES AWARE 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
  41. 41. POWERFULL LIFE-CYCLE SUPPORT EASY INSTALLATION EASY UPDATE EASY REMOVALINTERACT WITH OTHER COMPONENTS LIFE-CYCLE
  42. 42. MODERN DELIVERY YUM, ZYPPER, APT ARE USING WEB BASED PACKAGES REPOSITORIESBUILD / PROVIDE YOUR OWN COMPANY WEB REPOSITORIES SAME SOURCE FOR YOUR DEV, QA, SUPPORT, SALES AND CUSTOMERS 100% CLOUD-READY WITHOUT EFFORT
  43. 43. SMART CD WITH JENKINS & RPM 1. BUILD (MAVEN) 2. PACKAGE (RPMBUILD) 3. UPDATE REPO 4. DEPLOY !
  44. 44. DEPLOYMENT STEPS IN PIPELINE VIEW DEMONSTRATION AT VIMEO
  45. 45. IN A NUTSHELL CONTINUOUS INTEGRATION MOTORIZE AGILITY THEN CAME CONTINUOUS DELIVERY AND DEPLOYMENT CONTINUOUS D&D COULD BE DONE IN HOUSECONSIDER NATIVE PACKAGING FOR CONTINUOUS DEPLOYMENT

×