live slides @ tinyurl.com/py9dev
behave-django
codeship-yaml
sentrylogs
django-apptemplates
djangocms-maps
Jez Humble?
... a set of practices and principles ... building, testing, and releasing software, faster and more frequently
... put release schedule in the hands of the business - not IT
.
Automation, pipelines & DevOps.
push code
open PR/MR
approve
build
review
feature
production
system
branch
server
system
Tests are fundamental for build pipeline.
TDD good practice
BDD helpful for acceptance
Selenium / performance
!! risk !!
Containers make process easier.
Optional, but makes it easier
Container images built by pipeline
Push complete system
Satisfy the customer!
Concept Patterns | Techniques |
---|---|
Pipeline | CI, automatic feedback, continuous deployment, feature toggles |
Empower sponsor | review apps, self-service deployment, zero-downtime, canary + b/g releases |
Prove feature completeness | BDD, TDD, automatic tests (regression, performance, penetration) |
Error prevention | environment parity, locked-down envs, transient envs, automatic provisioning |
Visibility | version control, dashboards, monitoring |
Speed | fast tests, resilient / self-healing envs |
Big picture
Fix things we first neglect
We're neglecting dev infra
CD Pattern | Anti-Pattern |
---|---|
Automate environment config | Manual setup, "work of art" |
Scripted setup | Notes, documentation of setup |
Single command builds | Comprehensive instructions |
Fix broken environments first | Ignore errors, postpone fixes |
TDD, automate tests | Manual verification + fixes |
Fully version controlled | Parts not version controlled |
Visibility, dashboards, sharing | Geeky "secret configurations" |
Automate your setup
Automate your infrastructure
Less pain, more fun.