DevOps non è solo container e 100 deployment al giorno. DevOps non è solo Docker e Kubernetes. DevOps non è solo cloud e serverless. Questo case study mostra come una azienda di stampo manifatturiero sta trasformando la sua cultura applicando i tanti principi che sono l'anima vera del DevOps.
4. #DOAW20
A set of practices intended to reduce the time between committing
a change to a system and the change being placed into normal
production, while ensuring high quality
(wikipedia.en)
WHAT’SDEVOPS?
5. #DOAW20
DevOps and its resulting technical, architectural, and cultural
practices represent a convergence of many philosophical and
management movements
DevOps is the outcome of applying the most trusted principles
from the domain of physical manufacturing and leadership to the IT
value stream.
[…. ]many also view DevOps as the logical continuation of the Agile
software journey that began in 2001
(The DevOps Handbook)
DEVOPS IS…
6. #DOAW20
DevOps is the result of applying Lean principles to the technology
value stream
(The DevOps Handbook)
DEVOPS IS…
10. #DOAW20
THEFIRSTWAY
Delivering value to the
customers at steady pace
Make your work Visible
Limit Work in progress
Reduce batch sizes
Reduce the number of handoffs
Continually identify and elevate
your constraints
Eliminate hardships and waste in
the value stream
11. #DOAW20
THESECONDWAY
Course correction and
learnings based on feedback
See problems as they occur
Swarm and solve problems to build
new knowledge
Keep pushing quality closer to the
source
Enable optimizing for downstream
work centers
12. #DOAW20
THETHIRDWAY
Learn, Grow and Improve
over time
Enabling organizational learning and
a safety culture
Institutionalize the improvement of
daily work
Transform local discoveries into
global improvements
Inject resilience patterns into our
daily work
Leaders reinforce a learning culture
13. #DOAW20
THETHREEWAYS–SKILLCHART
Make your work Visible
Limit Work in progress
Reduce batch sizes
Reduce the number of handoffs
Continually identify and elevate your constraints
Eliminate hardships and waste in the value stream
Working safely within complex systems
See problems as they occur
Swarm and solve problems to build new knowledge
Keep pushing quality closer to the source
Enable optimizing for downstream work centers
Enabling organizational learning and a safety culture
Instituzionalize the improvement of daily work
Transform local discoveries into global improvements
Inject resilience patterns into our daily work
Leaders reinforce a learning culture
Fake Company
23. #DOAW20
THEFIRSTWAY
Eliminate hardships and waste in the value
stream
Continually identify and elevate your constraints
Reduce the number of handoffs
Reduce batch sizes
Limit Work in progress
Make your work Visible
Principles of Flow
24. #DOAW20
THESECONDWAY
Enable optimizing for downstream work centers
Keep pushing quality closer to the source
Swarm and solve problems to build new
knowledge
See problems as they occur
Principles of Feedback
25. #DOAW20
THETHIRDWAY
Leaders reinforce a learning culture
Inject resilience patterns into our daily work
Transform local discoveries into global
improvements
Instituzionalize the improvement of daily work
Enabling organizational learning and a safety
culture
Principles of Learning and Experimentation
27. #DOAW20
CODELIFECYCLE
Source Control Management One of the biggest roadblocks
Modern technology Needed
Technologies analyzed SVN
Git
TFS
Decided for Git Better integration
More flexibility
29. #DOAW20
CODELIFECYCLE
Where to Host Code Custom Central Repo
BitBucket
Azure DevOps Services
Selection criteria Easy of use
Integration with other Tools
Future development
32. #DOAW20
TESTS
The problem with Tests Always left for later
CI inefficient without tests
Pilot project Unit Tests
UI Tests
Adopting UI Tests across
the board
More Visual
Easier to “sell”
Easier on brownfield
33. #DOAW20
TESTS
Where to start? Start! Don’t Ask
Gherkin (Specflow, Cucumber)
Slowly Automate
Sell the concept with patience
Given I am logged in as an 'Administrator'
When I have clicked on the User Management tab
Then A table listing the current users is displayed
34. #DOAW20
SECURITY
The problem with Security Always left for later
• Started collaborating with Sec
Team
Dev team Simple security checks with
Static Code Analysis
Dependency Vulnerability checks
OWASP ZAP
Sec Team More in depth pen test
35. #DOAW20
SECURITY
Where to start? OWASP Top Ten
OWASP Developer Guide
OWASP Zed Attack Proxy
OWASP Wealth of Information and
tools
Dependecy Checker and RetireJS
Static Code Analysis
39. #DOAW20
THEFIRSTWAY
Eliminate hardships and waste in the value
stream
Continually identify and elevate your constraints
Reduce the number of handoffs
Reduce batch sizes
Limit Work in progress
Make your work Visible
Principles of Flow
40. #DOAW20
THESECONDWAY
Enable optimizing for downstream work centers
Keep pushing quality closer to the source
Swarm and solve problems to build new
knowledge
See problems as they occur
Working safely within complex systems
Principles of Feedback
41. #DOAW20
THETHIRDWAY
Leaders reinforce a learning culture
Inject resilience patterns into our daily work
Transform local discoveries into global
improvements
Instituzionalize the improvement of daily work
Enabling organizational learning and a safety
culture
Principles of Continuous Learning
Prima di cominciare dovuto rigraziamento agli sponsor senza I quali questo evento non sarebbe stato possibile
Produttori di Scambiatori di Calore
7000+ Lavoratori
30+ Fabbriche/Uffici
Cresciuta acquisendo altre aziende
Molta frammentazione
Quando sono arrivato io un anno e mezzo fa le azioni di miglioramento erano già iniziate e visto il terreno fertile è stato possibile attuare molte novità e migliorie in questo periodo. Ma, come eravamo messi un anno e mezzo fa?
(someone else code is always ugly)
Lot’s of old code
Heavy refactoring needed but not justified
Good quality code by internal team
Good abstractions
Good composiblity
Good reuse
Low quality code by external contractor
Lot’s of duplicate code
Custom UI frameworks
Poor abstractions
Refactoring needed
No Tests
no test automation
no test specifications
no regression test
all tests done by hand
(someone else code is always ugly)
Lot’s of old code
Heavy refactoring needed but not justified
Good quality code by internal team
Good abstractions
Good composiblity
Good reuse
Low quality code by external contractor
Lot’s of duplicate code
Custom UI frameworks
Poor abstractions
Refactoring needed
No Tests
no test automation
no test specifications
no regression test
all tests done by hand
Quando sono arrivato io un anno e mezzo fa le azioni di miglioramento erano già iniziate e visto il terreno fertile è stato possibile attuare molte novità e migliorie in questo periodo. Ma, come eravamo messi un anno e mezzo fa?
The First Way: si tratta di una serie di principi per massimizzare il flusso di valore dal nascita della necessita da parte del cliente alla soddisfazione della stessa attraverso nuove funzionalità. Principalemente abbiamo:
Make your work Visible
Limit Work in progress
Reduce batch sizes
Reduce the number of handoffs
Continually identify and elevate your constraints
Eliminate hardships and waste in the value stream
The second way: un gruppo di principi atti a migliorare il feedback
Working safely within complex systems
See problems as they occur
Swarm and solve problems to build new knowledge
Keep pushing quality closer to the source
Enable optimizing for downstream work centers
The third way: questi invece sono un gruppo di principi che trattano l'apprendimento continuo e la sperimentazione
Enabling organizational learning and a safety culture
Instituzionalize the improvement of daily work
Transform local discoveries into global improvements
Inject resilience patterns into our daily work
Leaders reinforce a learning culture
Quando sono arrivato io un anno e mezzo fa le azioni di miglioramento erano già iniziate e visto il terreno fertile è stato possibile attuare molte novità e migliorie in questo periodo. Ma, come eravamo messi un anno e mezzo fa?
(someone else code is always ugly)
Lot’s of old code
Heavy refactoring needed but not justified
Good quality code by internal team
Good abstractions
Good composiblity
Good reuse
Low quality code by external contractor
Lot’s of duplicate code
Custom UI frameworks
Poor abstractions
Refactoring needed
No Tests
no test automation
no test specifications
no regression test
all tests done by hand
https://www.youtube.com/watch?v=ULvb6kdrYHE
https://www.youtube.com/watch?v=ULvb6kdrYHE
(someone else code is always ugly)
Lot’s of old code
Heavy refactoring needed but not justified
Good quality code by internal team
Good abstractions
Good composiblity
Good reuse
Low quality code by external contractor
Lot’s of duplicate code
Custom UI frameworks
Poor abstractions
Refactoring needed
No Tests
no test automation
no test specifications
no regression test
all tests done by hand
(someone else code is always ugly)
Lot’s of old code
Heavy refactoring needed but not justified
Good quality code by internal team
Good abstractions
Good composiblity
Good reuse
Low quality code by external contractor
Lot’s of duplicate code
Custom UI frameworks
Poor abstractions
Refactoring needed
No Tests
no test automation
no test specifications
no regression test
all tests done by hand
(someone else code is always ugly)
Lot’s of old code
Heavy refactoring needed but not justified
Good quality code by internal team
Good abstractions
Good composiblity
Good reuse
Low quality code by external contractor
Lot’s of duplicate code
Custom UI frameworks
Poor abstractions
Refactoring needed
No Tests
no test automation
no test specifications
no regression test
all tests done by hand
(someone else code is always ugly)
Lot’s of old code
Heavy refactoring needed but not justified
Good quality code by internal team
Good abstractions
Good composiblity
Good reuse
Low quality code by external contractor
Lot’s of duplicate code
Custom UI frameworks
Poor abstractions
Refactoring needed
No Tests
no test automation
no test specifications
no regression test
all tests done by hand
(someone else code is always ugly)
Lot’s of old code
Heavy refactoring needed but not justified
Good quality code by internal team
Good abstractions
Good composiblity
Good reuse
Low quality code by external contractor
Lot’s of duplicate code
Custom UI frameworks
Poor abstractions
Refactoring needed
No Tests
no test automation
no test specifications
no regression test
all tests done by hand
(someone else code is always ugly)
Lot’s of old code
Heavy refactoring needed but not justified
Good quality code by internal team
Good abstractions
Good composiblity
Good reuse
Low quality code by external contractor
Lot’s of duplicate code
Custom UI frameworks
Poor abstractions
Refactoring needed
No Tests
no test automation
no test specifications
no regression test
all tests done by hand
(someone else code is always ugly)
Lot’s of old code
Heavy refactoring needed but not justified
Good quality code by internal team
Good abstractions
Good composiblity
Good reuse
Low quality code by external contractor
Lot’s of duplicate code
Custom UI frameworks
Poor abstractions
Refactoring needed
No Tests
no test automation
no test specifications
no regression test
all tests done by hand
(someone else code is always ugly)
Lot’s of old code
Heavy refactoring needed but not justified
Good quality code by internal team
Good abstractions
Good composiblity
Good reuse
Low quality code by external contractor
Lot’s of duplicate code
Custom UI frameworks
Poor abstractions
Refactoring needed
No Tests
no test automation
no test specifications
no regression test
all tests done by hand
Quando sono arrivato io un anno e mezzo fa le azioni di miglioramento erano già iniziate e visto il terreno fertile è stato possibile attuare molte novità e migliorie in questo periodo. Ma, come eravamo messi un anno e mezzo fa?
The First Way: si tratta di una serie di principi per massimizzare il flusso di valore dal nascita della necessita da parte del cliente alla soddisfazione della stessa attraverso nuove funzionalità. Principalemente abbiamo:
Make your work Visible
Limit Work in progress
Reduce batch sizes
Reduce the number of handoffs
Continually identify and elevate your constraints
Eliminate hardships and waste in the value stream
The second way: un gruppo di principi atti a migliorare il feedback
Working safely within complex systems
See problems as they occur
Swarm and solve problems to build new knowledge
Keep pushing quality closer to the source
Enable optimizing for downstream work centers
The third way: questi invece sono un gruppo di principi che trattano l'apprendimento continuo e la sperimentazione
Enabling organizational learning and a safety culture
Instituzionalize the improvement of daily work
Transform local discoveries into global improvements
Inject resilience patterns into our daily work
Leaders reinforce a learning culture
The third way: questi invece sono un gruppo di principi che trattano l'apprendimento continuo e la sperimentazione
Enabling organizational learning and a safety culture
Instituzionalize the improvement of daily work
Transform local discoveries into global improvements
Inject resilience patterns into our daily work
Leaders reinforce a learning culture