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

Continuous Stupidities - did DevOps fail?

ElmarDott
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/
--------------------------------------------------------------------------------------------------

ElmarDott

October 03, 2020
Tweet

More Decks by ElmarDott

Other Decks in Programming

Transcript

  1. Continuous Stupidities -
    Did DevOps fail?
    (c) 2020 M. Schulz
    JConf Mexico 2020
    3 rd October 2020

    View Slide

  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: [email protected]
    JConf Mexico 2020 M. Schulz

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  7. From Release to Delivery
    CC BY-ND
    Release : package Deploy : storage Deliver : install
    JConf Mexico 2020 M. Schulz

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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: }

    View Slide

  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

    View Slide

  13. Secrets of merge conflicts
    CC BY-ND
    JConf Mexico 2020 M. Schulz

    View Slide

  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

    View Slide

  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'
    }
    )
    }
    }

    View Slide

  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

    View Slide

  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.

    View Slide

  18. Thank you / Danke / Gracias
    CC BY-ND
    JConf Mexico 2020 M. Schulz

    View Slide