Michael Hüttermann Agile, SCM/ALM, DevOps, Continuous Delivery CON Database DevOps with MySQL 5.6 GA, Flyway, and Hudson
Agenda What's DevOps Recipes and pitfalls Examples Demos
DevOps ?
What DevOps is for recruiters...
What DevOps is for tool vendors...
What DevOps is for project office...
What DevOps is for operations... developer I want root access!
What DevOps is for developers... operations magic
What DevOps is for researchers...
What DevOps is for farmers … … and the original root situation in IT before
The goal
Improve and accelerate delivery: the batch size
Improve and accelerate delivery: change size vs. change frequency
Improve and accelerate delivery: the cycle time
The problem (the why)
The solution (the how)
Feature inception Feature definition Feature planning Feature development Feature acceptance Feature release Lead time value-adding Idle time waste 3 days1 week10 days 7 weeks 1 week 2 hours 5 days2 days 3 days10 days Development and transition 1 week value stream mapping
Agile meets IT service management
Infinite loop of release and feedback
DevOps without own operations?
DevOps without own operations? Oracle Cloud
Share knowledge and experience
DevOps in a nutshell
The area matrix
DB DevOps: put conversion scripts to VCS and use tools such as Flyway
DB DevOps: provide visibility of life traffic incl. Locked rows, blocking queries, resource contention
DB DevOps: end user experience as a shared goal; Make performance a functional requirement
DB DevOps: enhance collaboration by providing access to information without DBA; prevent the DBA being a gatekeeper
Pitfalls
Development Operations
Pitfall: responsibilities mismatch
Pitfall: wrong focus It's about people and (project|company) culture, and processes
Pitfall: conceptual deficits
Recipes
Recipe: automate to ensure repeatability and foster collaboration
Recipe: consider Kanban
Recipe: consider thorough change and config management
Recipe: track to ensure traceability
Recipe: monitor to support accountability
Recipe: dashboard what you're doing
Recipe: use version control to ensure reproducibility
Recipe: consider pipelines
Recipe: create (executable) documentation to, well, document
Batch size Cycle time Recipe: align goals and incentives of devs and ops
Recipe: F1
Recipe: respect your colleagues
How? Examples? ?
Swiss army knife aka “Web 2.0 version of crontab“
For the complete software lifecycle All roles and project phases Dealing with - Requirements - Code - Releasing - Quality (e.g. metrics) - Testing - Delivery - …
Delivery and task-based development
Building software
Delivery pipelines
Functional releasing
Release-Container Producing RPMs, and deploy to Artifactory
Provisioning with Vagrant and/Puppet … via shell call
Specification by example Acceptance test driven development
Sonar
Recipe: inject quality gates
Liquibase Flyway Self-made Database management Integrate with Maven, and then Jenkins
Demo