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

A Guide to Modern Software Development 2018

Peter Bittner
November 21, 2018

A Guide to Modern Software Development 2018

Move fast, don’t break things.

Held at the New Relic {Future}Stack 2018 Zurich event.

Peter Bittner

November 21, 2018
Tweet

More Decks by Peter Bittner

Other Decks in Technology

Transcript

  1. VSHN - The DevOps Company A Guide to Modern Software

    Development Move fast, don’t break things. © 2018 VSHN AG
  2. VSHN - The DevOps Company 2 2 Simply Call Us.

    V-SH-N. ˈvɪʒn, “vision”
  3. VSHN - The DevOps Company • Pain points & maturity

    • Happy devs & customers • Building blocks • Implementation 3 3 Modern Software Development Move fast, don’t break things. Boring
  4. VSHN - The DevOps Company • Cloud tooling is hard

    (so many options) • Dev & Ops – where to draw the line? • Automation engineering • Monitoring unclear (availability, deployments, performance?) • Cost increase (is the cloud expensive?) • The market moves fast! 4 4 Situation Today
  5. VSHN - The DevOps Company • Cloud tooling • Dev

    & Ops • Automation • Monitoring • Cost increase • The market 5 5 Where Do We Need To Go? ⇢ Comfortable with both tools & service platforms ⇢ Runs on my machine (and in the cloud) ⇢ Continuous improvement, project maintenance ⇢ Full transparency & focus on QA (write tests, performance, security) ⇢ Short-lived branches, short time-to-market (features) ⇢ Easily switch between service platforms
  6. VSHN - The DevOps Company 1. Automated tests 2. CI/CD,

    automation 3. DevOps culture 4. Cloud native 5. Avoid vendor lock-in 6 6 Building Blocks
  7. VSHN - The DevOps Company 10 10 4. Cloud Native

    “Applications that scale & are resilient.”
  8. VSHN - The DevOps Company 11 11 5. Vendor Lock-In

    Conventions matter! I shall apply best practices Separation of concerns
  9. VSHN - The DevOps Company • Repository structure • Application

    setup & target environments • Pipeline 12 12 How do I implement it? Maximize your freedom.
  10. VSHN - The DevOps Company ❏ app/ ❏ main.py ❏

    tests/ ❏ test_main.py ❏ deployment/ ❏ app ❏ Dockerfile ❏ uwsgi.ini ❏ webserver ❏ Dockerfile ❏ nginx.conf ❏ template-app.yml ❏ docs/ ❏ .gitlab-ci.yml ❏ README.md ❏ tox.ini 13 13 Repository Structure Separate concerns! CI/CD pipeline only (no project business logic) Conventions of technology in use
  11. VSHN - The DevOps Company Avoid • Lengthy setup instructions

    (README) • Manual configuration steps • Special scripts for setting up project • config-local-dist.php & similar • Disable linting, no tests • A myriad of configuration files (and tools) • Long-lived branches & git-flow • Start monitoring late • Start deploying late Application & Target Environments Favor • Standard procedures for getting started (short paragraph in README) • Everything under version control (what is needed to get started) • Treat your dev machine as a (standard) target environment • Use getenv(‘VALUE’, ‘default’) etc. • Short-lived feature branches • Deploy & monitor from “commit 1” 14 14
  12. VSHN - The DevOps Company Pipeline # template-webserver.yaml apiVersion: v1

    kind: ConfigMap metadata: name: foo-bar-nginx namespace: foo-dev data: Foo: | worker_processes auto; error_log stderr; pid /var/opt/.../run/nginx/nginx.pid; events { worker_connections 1024; } ... ``` # .gitlab-ci.yml variables: OPENSHIFT_PROJECT: foo-dev APP_NAME: bar-baz deploy: - oc -n ${OPENSHIFT_PROJECT} create configmap ${APP_NAME}-nginx --from-file=Foo=config/Foo/nginx.conf --from-file=Bar=config/Bar/nginx.conf --dry-run -o yaml | oc -n ${OPENSHIFT_PROJECT} apply -f - ; 15 15 Avoid! Favor!
  13. Application-side • Apply “shift-left” • Container-driven • Same tools for

    development and deployment 16 16 How we ensure independence Deployment-side • No application-specific details • Standard approaches (CD) • Keep platform-specific differences to a minimum
  14. Come visit us for a coffee! VSHN AG - Neugasse

    10 - CH-8005 Zürich - +41 44 545 53 00 - https://vshn.ch/ - [email protected] vshn.ch/contact Follow us on Twitter! @vshn_ch 17
  15. Join our team! vshn.ch/jobs Zur Erweiterung unseres Teams suchen wir

    immer gute Frauen und Männer, die wir anhand ihrer individuellen Stärken, Erfahrungen und Wünsche in die bestehenden Teams integrieren. Bewirb dich noch heute! Follow us on Twitter! @vshn_ch VSHN AG - Neugasse 10 - CH-8005 Zürich - +41 44 545 53 00 - https://vshn.ch/ - [email protected] 18