Keep the build green

Keep the build green

Talk from T3EE16 on how to keep the build green

09677128abcb12c688ed29f2d8359fae?s=128

Peter Foerger

November 11, 2016
Tweet

Transcript

  1. keep the build green TYPO3 East Europe 2016 dkd Internet

    Service GmbH
 CLUJ-NAPOCA, ROMANIA 10-12 NOV 2016 1
  2. who`s that guy? 2

  3. peter foerger DevOps Engineer dkd Internet Service GmbH @bauschan 3

  4. None
  5. None
  6. None
  7. None
  8. why build? 8

  9. real world vs. software builds 9

  10. 10

  11. 11

  12. 12

  13. software development process 13

  14. 14

  15. 15

  16. 16

  17. –Andre Gide »Everything has been said before, but since nobody

    listens we have to keep going back and beginning all over again« 17
  18. value of the build process 18

  19. individual developer 19

  20. 20

  21. project and/or team 21

  22. 22

  23. organisation as a whole 23

  24. regulatory compliance and governance globalization and outsourcing time to market

    quality 24 organizational business drivers
  25. traceability and completeness 25

  26. repeatability and reliability 26

  27. agility and speed 27

  28. 28

  29. how to build? 29

  30. ~ https://en.wikipedia.org/wiki/Software_build »Building software is an 
 end-to-end process that

    involves many distinct functions« 30
  31. Reusable Accessible Documented Integrated Complete Automated Lean 31 build RADICAL

  32. why green? 32

  33. 33

  34. 34

  35. 35

  36. why does Jenkins have blue balls? 36

  37. green traffic lights are often blue in Japan 37

  38. everybody can see what is happening 38

  39. 39

  40. how to keep it green? 40

  41. 41

  42. IDE 42 local development

  43. IDE linters 43 local development

  44. 44

  45. IDE linters code reviews 45 local development

  46. 46

  47. IDE linters code reviews bring the pain forward 47 local

    development
  48. trivial changes 48

  49. »There are no trivial changes« 49

  50. 50

  51. build is green, now what? 51

  52. continuous integration Grady Booch (first draft 1991) adopted by XP

    52
  53. –Martin Fowler, Chief Scientist, ThoughtWorks »Continuous Integration doesn’t get rid

    of bugs, but it does make them dramatically easier to find and remove.« 53
  54. keep everything in version control automate almost everything build, deploy,

    test, release manual testing, approvals humans for the high value stuff if it hurts, do it more often and bring the pain forward 54 continuous integration
  55. continuos integration Feedback to Client via Jenkins via Agency via

    Client Developer Acceptance Process Developer Developer Developer Developer Development (Integration) Acceptance (Test) Live (Production) Source Code Management (SCM) Jenkins Feedback to Agency Projectmanager Developer
  56. CI/CD anybody? 56

  57. FTP/SFTP Git + SSH Git + Capistrano Deployer GitLab CI

    Surf custom no idea 57 how do you deliver software?
  58. Continuous Delivery
 Continuous Deployment 58 differences that matter

  59. 59 differences that matter

  60. 60 value in CI/CD

  61. Source: Continuous Delivery and DevOps – A Quickstart Guide

  62. Source: Continuous Delivery and DevOps – A Quickstart Guide

  63. Source: Continuous Delivery and DevOps – A Quickstart Guide

  64. Source: Continuous Delivery and DevOps – A Quickstart Guide

  65. reduce manual human errors anyone can deploy reproducibility audibility 65

    value in CI/CD
  66. build binaries/artifacts once deploy the same way to every environment

    smoke test your deployments keep your environments similar if anything fails, stop the line use semantic versioning external environment configuration short lived feature branches feature toggles blue/green deployments 66 best practises
  67. deployment tools @dkd 67

  68. None
  69. TYPO3 CMS specific tasks for TYPO3 CMS Deployment
 DB compare

    run TYPO3 CLI tasks activate/deactivate maintenance page generate encryption key add admin user clear TYPO3 caches upload DB settings add default structure & content clear OPcache cleanup shared assets enable/disable Install Tool fetch extensions to local workspace 69
  70. why? simple deploys all kind of web applications no server-side

    installation runs over SSH seamlessly integration in CI/CD extendable 70
  71. 71

  72. dkdeploy - wins 72

  73. one step only cap $STAGE deploy 73

  74. less errors less steps are missed out due to human

    interaction 74
  75. non-geeks no manual SSH into server 75

  76. extendable doing more for each deploy just add to deploy

    script 76
  77. rollbacks rollback to previous release
 „cap deploy:rollback“ 77

  78. dkdeploy - get support 78

  79. Github dkdeploy-core - https://github.com/dkdeploy/dkdeploy-core dkdeploy-php - https://github.com/dkdeploy/dkdeploy-php WIP dkdeploy-typo3-cms -

    https://github.com/dkdeploy/dkdeploy-typo3-cms Documentation https://dkdeploy.github.io/ 79 where to get the Code?
  80. support trainings 4 - 6 person 3 Support-Level
 support@dkd.de 80

  81. https://github.com/platformsh/platformsh-example-typo3

  82. 82

  83. None
  84. 84 ?

  85. „thank you“ peter foerger @bauschan dkd Internet Service GmbH 85

  86. list of sources https://scontent.ftxl1-1.fna.fbcdn.net/t31.0-8/14889815_1129004700530512_6266750676705112887_o.jpg https://farm1.staticflickr.com/180/370973576_9c1c871c39_b_d.jpg https://farm2.staticflickr.com/1041/537804368_ce625cf161_o_d.jpg https://farm2.staticflickr.com/1106/1338732247_5c26f8fa57_o_d.jpg https://farm6.staticflickr.com/5241/5231611325_138450f3ff_o_d.jpg https://farm8.staticflickr.com/7105/7170622773_d1cfe6775a_o_d.jpg https://farm4.staticflickr.com/3736/9223862700_bacad3fc3e_k_d.jpg

    https://farm8.staticflickr.com/7305/9669670896_af5478a7a9_k_d.jpg https://farm8.staticflickr.com/7315/10726335934_a017978f36_k_d.jpg https://farm8.staticflickr.com/7338/12662045524_3e4775fb0f_h_d.jpg https://farm8.staticflickr.com/7400/27386350314_e03d3360a1_k_d.jpg https://upload.wikimedia.org/wikipedia/commons/3/39/Grady_Booch%2C_CHM_2011_2_cropped.jpg http://67.media.tumblr.com/e896aca144598743477d7ce6e973b29c/tumblr_inline_na769iImuW1qm2u6j.png 86