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

A Guide to Modern Software Development 2018

0de2b4614a6e1bde25d1b1c7ac040104?s=47 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.

0de2b4614a6e1bde25d1b1c7ac040104?s=128

Peter Bittner

November 21, 2018
Tweet

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 7 7 1. Automated Tests

  8. VSHN - The DevOps Company 8 8 2. CI/CD, Automation

  9. VSHN - The DevOps Company 9 9 3. DevOps Culture

    No more silos!
  10. VSHN - The DevOps Company 10 10 4. Cloud Native

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

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

    setup & target environments • Pipeline 12 12 How do I implement it? Maximize your freedom.
  13. 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
  14. 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
  15. 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!
  16. 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
  17. Come visit us for a coffee! VSHN AG - Neugasse

    10 - CH-8005 Zürich - +41 44 545 53 00 - https://vshn.ch/ - info@vshn.ch vshn.ch/contact Follow us on Twitter! @vshn_ch 17
  18. 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/ - info@vshn.ch 18