michael hüttermann agile, scm/alm, devops, continuous delivery con1174 - database devops with...

70
Michael Hüttermann Agile, SCM/ALM, DevOps, Continuous Delivery http://huettermann.net http://twitter.com/huettermann CON1174 - Database DevOps with MySQL 5.6 GA, Flyway, and Hudson

Upload: maud-lang

Post on 28-Dec-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

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

The goal

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

Demo

http://huettermann.nethttp://twitter.com/huettermann