Slide 1

Slide 1 text

VSHN - The DevOps Company A Guide to Modern Software Development Move fast, don’t break things. © 2018 VSHN AG

Slide 2

Slide 2 text

VSHN - The DevOps Company 2 2 Simply Call Us. V-SH-N. ˈvɪʒn, “vision”

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

VSHN - The DevOps Company 7 7 1. Automated Tests

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

VSHN - The DevOps Company 9 9 3. DevOps Culture No more silos!

Slide 10

Slide 10 text

VSHN - The DevOps Company 10 10 4. Cloud Native “Applications that scale & are resilient.”

Slide 11

Slide 11 text

VSHN - The DevOps Company 11 11 5. Vendor Lock-In Conventions matter! I shall apply best practices Separation of concerns

Slide 12

Slide 12 text

VSHN - The DevOps Company ● Repository structure ● Application setup & target environments ● Pipeline 12 12 How do I implement it? Maximize your freedom.

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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!

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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