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
Agenda
What's DevOpsRecipes and pitfallsExamplesDemos
http://huettermann.net
DevOps ?
http://huettermann.net
What DevOps is for recruiters ...
http://huettermann.net
What DevOps is for tool vendors ...
http://huettermann.net
What DevOps is for project office ...
http://huettermann.net
What DevOps is for operations ...
developer
I wantroot
access!
http://huettermann.net
What DevOps is for developers ...
operations
magic
http://huettermann.net
What DevOps is for researchers ...
http://huettermann.net
What DevOps is for farmers …… and the original root situation in IT beforehttp://huettermann.net
Improve and accelerate delivery: the batch size
http://huettermann.net
Improve and accelerate delivery: change size vs. change frequency
http://huettermann.net
Improve and accelerate delivery: the cycle time
http://huettermann.net
The problem
(the why)
http://huettermann.net
http://huettermann.net
http://huettermann.net
http://huettermann.net
The solution
(the how)
http://huettermann.net
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
http://huettermann.net
http://huettermann.net
Agile meets IT service management
http://huettermann.net
Infinite loop of release and feedback
http://huettermann.net
http://huettermann.net
DevOps without own operations?
http://huettermann.net
DevOps without own operations?
Oracle Cloud
http://huettermann.net
Share knowledge and experience
DevOps in a nutshell
http://huettermann.net
The area matrix
http://huettermann.net
http://huettermann.net
http://huettermann.net
DB DevOps: put conversion scripts to VCS and use tools such as Flyway
http://huettermann.net
http://huettermann.net
DB DevOps: provide visibility of life traffic incl. Locked rows, blocking queries, resource contention
http://huettermann.net
http://huettermann.net
DB DevOps: end user experience as a shared goal;Make performance a functional requirement
http://huettermann.net
http://huettermann.net
DB DevOps: enhance collaboration by providing access to information without DBA; prevent the DBA being a
gatekeeper
Pitfalls
http://huettermann.net
Development
Operations
http://huettermann.net
Pitfall: responsibilities mismatch
Pitfall: wrong focus
It's about people and (project|company) culture,
and processes
Pitfall: conceptual deficits
http://huettermann.net
Recipes
http://huettermann.net
Recipe: automate to ensure repeatability and foster collaboration
http://huettermann.net
Recipe: consider Kanban
http://huettermann.net
Recipe: consider thorough change and config management
http://huettermann.net
Recipe: track to ensure traceability
http://huettermann.net
Recipe: monitor to support accountability
http://huettermann.net
Recipe: dashboard what you're doing
Recipe: use version control to ensure reproducibility
http://huettermann.net
Recipe: consider pipelines
http://huettermann.net
Recipe: create (executable) documentation to, well, document
http://huettermann.net
Batch size
Cycle time
Recipe: align goals and incentives of devs and ops
http://huettermann.net
Recipe: F1
http://huettermann.net
Recipe: respect your colleagues
http://huettermann.net
How?Examples?
?
http://huettermann.net
http://jenkins-ci.org/
Swiss army knife aka “Web 2.0 version of crontab“
http://huettermann.net
For the complete software lifecycle
All roles and project phases
Dealing with - Requirements- Code- Releasing- Quality (e.g. metrics)- Testing- Delivery- …
http://huettermann.net
Delivery and task-based development
https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin
http://huettermann.net
Building software
https://wiki.jenkins-ci.org/display/JENKINS/Gradle+Plugin
http://huettermann.net
Delivery pipelines
https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin
http://huettermann.net
Functional releasing
http://huettermann.net
Release-Container
Producing RPMs, and deploy to Artifactory
http://huettermann.net
Provisioning with Vagrant and/Puppet
https://wiki.jenkins-ci.org/display/JENKINS/Vagrant+Plugin… via shell call
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
http://huettermann.net
http://docs.codehaus.org/pages/viewpage.action?pageId=116359341
Sonar
Recipe: inject quality gates
http://www.sonarsource.org
http://huettermann.net
LiquibaseFlywaySelf-made
Database managementIntegrate with Maven, and then Jenkins
http://huettermann.nethttp://twitter.com/huettermann