Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Stupidities - did DevOps fail?

October 03, 2020

Continuous Stupidities - did DevOps fail?

Heavy motivation to automate everything, even the automation itself, is the common understanding of the most DevOps teams. A strong dominance of administrators in those teams (Operations), transform ideas of increasing the development process to a personal playground. Far away from the necessities of the DEV team, which have to create the application. Often Developers have to fight heavily with the provided infrastructure, because this break productivity massively down. In this talk we resume the lessons learned after more than one decade as configuration manager in different enterprise projects, to discuss nonsense DevOps workflows.

Homepage : https://elmar-dott.com
AnchorFM : https://anchor.fm/elmar-dott
Twitter - https://twitter.com/ElmarDott
GitHub - https://github.com/ElmarDott
Lbry - https://lbry.tv/@elmar.dott:8
BitChute - https://www.bitchute.com/channel/3IyCzKdX8IpO/


October 03, 2020

More Decks by ElmarDott

Other Decks in Programming


  1. Continuous Stupidities - Did DevOps fail? (c) 2020 M. Schulz

    JConf Mexico 2020 3 rd October 2020
  2. The Author + Project Manager + Consultant + Writer +

    Speaker + Trainer + CC BY-ND Marco Schulz ElmarDott studied at HS Merseburg, Germany, computer science and holds an engineers degree in software engineering. The main topics in his field of work are Software Architectures, automatism of the software development process and Software Configuration Management. Since more than 15 years he work in different large Web Application Projects. Currently he work as independent Consultant, Trainer and publish plently articles in several computer magazines. Mail: marco.schulz@outlook.com JConf Mexico 2020 M. Schulz
  3. Agenda • What is DevOps? • Semantic Versioning • Releases,

    Deployments, Delivery • 5 Ways to tear down team productivity • Lesson learned CC BY-ND JConf Mexico 2020 M. Schulz
  4. We do what we can! But, can we what we

    do? CC BY-ND “A fool with a tool, is still a fool” Gardy Booch Process automation reduce the risk of failures, but high complex processes are often hard to automate. JConf Mexico 2020 M. Schulz
  5. DevOps: Tool or Culture? CC BY-ND First time mentioned in

    the book “Continuous Delivery” by Jez Humble in 2011 Academics and practitioners have not developed a unique definition for the term "DevOps" “A set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality” Len Bass, Ingo Weber, and Liming Zhu JConf Mexico 2020 M. Schulz
  6. Semantic Versioning CC BY-ND Given a version number [MAJOR .

    MINOR . PATCH], increment the: 1. MAJOR - when you make incompatible API changes, 2. MINOR - when you add functionality in a backwards- compatible manner, and 3. PATCH - when you make backwards-compatible bug fixes. Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format. Source: http://semver.org JConf Mexico 2020 M. Schulz
  7. From Release to Delivery CC BY-ND Release : package Deploy

    : storage Deliver : install JConf Mexico 2020 M. Schulz
  8. I. Build Logic vs. Architecture CC BY-ND JConf Mexico 2020

    M. Schulz commons Artifact D Artifact B Artifact A Artifact C • 4 SCM Repositories • 5 Artifacts • Artifact B define an API • Artifacts A & B is multi module
  9. How to fix your build? CC BY-ND JConf Mexico 2020

    M. Schulz Build Logic can’t fix architecture gaps • Build Logic is written by developers – not by administrators • Follow the KISS principle • Dependency chains marks monoliths • Orchestrated builds are evil • Don’t do everything at once
  10. II. Single Point of Failure CC BY-ND JConf Mexico 2020

    M. Schulz • Choose the proper tool for your programming platform • Know common problems • Avoid own solutions when standards exist bower
  11. Example: Version Number CC BY-ND JConf Mexico 2020 M. Schulz

    Source: https://github.com/ElmarDott/TP-CORE src/main/resources/org/europa/together/configuration/version.properties 01: version=${project.version} src/main/java/org/europa/together/utils/Constraints.java 029: public static final String MODULE_VERSION = getVersion(); 099: private static String getVersion() { 100: String filePath 101: = "org/europa/together/configuration/version.properties"; 102: PropertyReader propertyReader = new PropertyFileReader(); 103: propertyReader.appendPropertiesFromClasspath(filePath); 104: return propertyReader.getPropertyAsString("version"); 105: }
  12. III. Source Control Management disaters CC BY-ND JConf Mexico 2020

    M. Schulz ”We are a team of four senior developers (by which I mean we’re all over 40 with 20+ years each of development experience) and not one of us has had a positive experience in the past with branching the mainline...The branch is easy - it’s the merge at the end that’s painful.” Shaun Phillips, Jonathan Sillito, Rob Walker, 2011, Branching and merging: an investigation into current version control practices
  13. Secrets of merge conflicts CC BY-ND JConf Mexico 2020 M.

  14. IV. Automation Server myths CC BY-ND JConf Mexico 2020 M.

    Schulz • CI Servers aren't management tools • Don’t exaggerate with containerization • Execution steps should unique • Build logic have to run also on local machines • Workspace clean before execution not after Jenkins pipeline plugin with groovy DSL
  15. Parallel universe CC BY-ND JConf Mexico 2020 M. Schulz stage('PARALLEL')

    { steps { parallel ( "API Doc" : { echo 'API DOC' }, "sonar checks" : { echo 'SONAR' }, "OWASP checks" : { echo 'OWASP' } ) } }
  16. V. the truth about testing CC BY-ND JConf Mexico 2020

    M. Schulz test Unit Tests surefire-plugin ClassTest.java verify Integration Tests failsafe-plugin ClassIT.java MVN build lifecycle Integration Test for team collaboration Jenkins BDD Tests { } application other test aspects: • UI test • End 2 End test • Penetration test
  17. Lessend Learnd CC BY-ND JConf Mexico 2020 M. Schulz •

    A well structured architecture simplify your life • SCM is a collaboration tool – not a quality gate • Pull Request should not a solution for enterprise teams • Don’t create high sophisticated own solutions • Follow common standards • Focus on problems not on tools • Prefer always a decentralized solution instead of centralism • Avoid perfectionism Failures becomes as problems if you can’t detect them fast.
  18. Thank you / Danke / Gracias CC BY-ND JConf Mexico

    2020 M. Schulz