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

Next Generation Software Developers - Productiv...

KDK
November 13, 2018

Next Generation Software Developers - Productivity boosted by DevOps

Slides from a presentation held at Next Generation Software Developers 1st Meetup:
https://www.meetup.com/Next-Generation-Software-Developers/events/255664735/

Topic: DevOps pipeline optimization while developing a serious game
* DevOps: Why - How - Benefits
* Intro into Game
* Sample of a Continuous Pipeline
* Lessons Learned

KDK

November 13, 2018
Tweet

Other Decks in Programming

Transcript

  1. PRODUCTIVITY BOOSTED BY DEVOPS BUILD CHAIN OPTIMIZATION IN A SERIOUS

    GAME KAI-DOMINIK KUHN Saarbrücken · 13.11.2018
  2. DevOps: Why – How – Benefits Context: Intro to the

    Game Continuous Pipeline Lessons Learned AGENDA
  3. WHY – WHAT WILL IT HELP US WITH We want

    to … • understand what users really need / love • build something that brings value to the end users • get early feedback on what we do • deliver qualitative good code • deliver stable and bug free software • do the right things right • AND we want do all of this fast and efficient
  4. HOW – WILL WE ACHIEVE THAT • Version control system

    git • Checking code quality linting • Testing unit tests, integration tests • Code reviews branching -> merge requests • Automate GitLab Runner, Jenkins, CircleCI, … • Continuously deploy CD • Deploy microservices Docker, Kubernetes
  5. WHAT – ARE OUR BENEFITS • Bring continuity to software

    development • Bring continuity even into the user-centered processes – from user research till user feedback • Get qualitative good code and reliable solutions • Enabling developers to deploy to the customer with a simple merge • Benefit from faster cycles as well as early and valuable user feedback. https://cdn-images-1.medium.com/max/1600/1*AwvDJDfErlD34ox2QpwGoA.png
  6. PIPELINE FOR IMPLEMENTING A FEATURE Review / Comment Branching Implement

    Push Lint Test Build Merge Request Adjust Lint Test Build
  7. PIPELINE FOR IMPLEMENTING A FEATURE Review / Comment Branching Implement

    Push Lint Test Build Merge Request Adjust Lint Test Build Merge in develop Lint Test Build Deploy
  8. PIPELINE FOR IMPLEMENTING A FEATURE Review / Comment Branching Implement

    Push Lint Test Build Merge Request Adjust Lint Test Build Merge in develop Lint Test Build Deploy User Testing Merge in Master Lint Test Build Deploy Accept
  9. HOW DID IT HELP • Continuous Pipeline • get early

    feedback on what we do • do the right things right • build something that brings value to the end users • understand what users really need / love • Continuous review, run tests & linting • deliver qualitative good code • deliver stable and bug free software • do the right things right • GitLab + GitLab Runner (not Walker) • do all of this fast and efficient
  10. LESSONS LEARNED • Get early access to the testing /

    staging / productive environment for every participating colleague • Test regularly in the customer’s environment • Negotiate the environment at the kick off meeting and make clear that later changes to that decision might be expensive • Throughout the project, choose a standard process for the internationalization that the customer must adhere to when delivering the languages • Standard Angular i18n approach, means one build per language (ngx-translate) • AzureAD for WebApps is not a solution, it is a pain! (Bad cookie management) • Enterprise SSO together with AzureAD for WebApps can / will lead to difficulties • Build Unity application in a docker is difficult and slow