Page 1
Michael Hüttermann
Agile, SCM/ALM, DevOps, Continuous Delivery
http://huettermann.nethttp://twitter.com/huettermann
CON1174 - Database DevOps with MySQL 5.6 GA, Flyway, and Hudson
Page 2
Agenda
What's DevOpsRecipes and pitfallsExamplesDemos
http://huettermann.net
Page 3
DevOps ?
http://huettermann.net
Page 4
What DevOps is for recruiters ...
http://huettermann.net
Page 5
What DevOps is for tool vendors ...
http://huettermann.net
Page 6
What DevOps is for project office ...
http://huettermann.net
Page 7
What DevOps is for operations ...
developer
I wantroot
access!
http://huettermann.net
Page 8
What DevOps is for developers ...
operations
magic
http://huettermann.net
Page 9
What DevOps is for researchers ...
http://huettermann.net
Page 10
What DevOps is for farmers …… and the original root situation in IT beforehttp://huettermann.net
Page 12
Improve and accelerate delivery: the batch size
http://huettermann.net
Page 13
Improve and accelerate delivery: change size vs. change frequency
http://huettermann.net
Page 14
Improve and accelerate delivery: the cycle time
http://huettermann.net
Page 15
The problem
(the why)
http://huettermann.net
Page 16
http://huettermann.net
Page 17
http://huettermann.net
Page 18
http://huettermann.net
Page 19
The solution
(the how)
http://huettermann.net
Page 20
Featureinception
Featuredefinition
Featureplanning
Featuredevelopment
Featureacceptance
Featurerelease
Lead timevalue-adding
Idle timewaste
3 days 1 week 10 days 7 weeks 1 week 2 hours
5 days 2 days3 days10 days
Development and transition
1 week
value stream mapping
http://huettermann.net
Page 21
http://huettermann.net
Page 22
http://huettermann.net
Agile meets IT service management
Page 23
http://huettermann.net
Infinite loop of release and feedback
Page 24
http://huettermann.net
Page 25
http://huettermann.net
DevOps without own operations?
Page 26
http://huettermann.net
DevOps without own operations?
Oracle Cloud
Page 27
http://huettermann.net
Share knowledge and experience
Page 28
DevOps in a nutshell
http://huettermann.net
Page 29
The area matrix
http://huettermann.net
Page 30
http://huettermann.net
Page 31
http://huettermann.net
DB DevOps: put conversion scripts to VCS and use tools such as Flyway
Page 32
http://huettermann.net
Page 33
http://huettermann.net
DB DevOps: provide visibility of life traffic incl. Locked rows, blocking queries, resource contention
Page 34
http://huettermann.net
Page 35
http://huettermann.net
DB DevOps: end user experience as a shared goal;Make performance a functional requirement
Page 36
http://huettermann.net
Page 37
http://huettermann.net
DB DevOps: enhance collaboration by providing access to information without DBA; prevent the DBA being a
gatekeeper
Page 38
Pitfalls
http://huettermann.net
Page 39
Development
Operations
http://huettermann.net
Page 40
Pitfall: responsibilities mismatch
Page 41
Pitfall: wrong focus
It's about people and (project|company) culture,
and processes
Page 42
Pitfall: conceptual deficits
http://huettermann.net
Page 43
Recipes
http://huettermann.net
Page 44
Recipe: automate to ensure repeatability and foster collaboration
http://huettermann.net
Page 45
Recipe: consider Kanban
http://huettermann.net
Page 46
Recipe: consider thorough change and config management
http://huettermann.net
Page 47
Recipe: track to ensure traceability
http://huettermann.net
Page 48
Recipe: monitor to support accountability
http://huettermann.net
Page 49
Recipe: dashboard what you're doing
Page 50
Recipe: use version control to ensure reproducibility
http://huettermann.net
Page 51
Recipe: consider pipelines
http://huettermann.net
Page 52
Recipe: create (executable) documentation to, well, document
http://huettermann.net
Page 53
Batch size
Cycle time
Recipe: align goals and incentives of devs and ops
http://huettermann.net
Page 54
Recipe: F1
http://huettermann.net
Page 55
Recipe: respect your colleagues
Page 56
http://huettermann.net
How?Examples?
?
Page 57
http://huettermann.net
http://jenkins-ci.org/
Swiss army knife aka “Web 2.0 version of crontab“
Page 58
http://huettermann.net
For the complete software lifecycle
All roles and project phases
Dealing with - Requirements- Code- Releasing- Quality (e.g. metrics)- Testing- Delivery- …
Page 59
http://huettermann.net
Delivery and task-based development
https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin
Page 60
http://huettermann.net
Building software
https://wiki.jenkins-ci.org/display/JENKINS/Gradle+Plugin
Page 61
http://huettermann.net
Delivery pipelines
https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin
Page 62
http://huettermann.net
Functional releasing
Page 63
http://huettermann.net
Release-Container
Producing RPMs, and deploy to Artifactory
Page 64
http://huettermann.net
Provisioning with Vagrant and/Puppet
https://wiki.jenkins-ci.org/display/JENKINS/Vagrant+Plugin… via shell call
Page 65
http://huettermann.net
https://wiki.jenkins-ci.org/display/JENKINS/Thucydides+Plugin
https://wiki.jenkins-ci.org/display/JENKINS/testng-plugin
Specification by exampleAcceptance test driven development
Page 66
http://huettermann.net
http://docs.codehaus.org/pages/viewpage.action?pageId=116359341
Sonar
Page 67
Recipe: inject quality gates
http://www.sonarsource.org
Page 68
http://huettermann.net
LiquibaseFlywaySelf-made
Database managementIntegrate with Maven, and then Jenkins
Page 70
http://huettermann.nethttp://twitter.com/huettermann