Upload
devopsdays-tel-aviv
View
72
Download
3
Embed Size (px)
Citation preview
Design Patterns for Efficient DevOps Processes
Tweet
Blogger
Co-Host
Github
I have a job!
Author
@ rebeccafitzhugh
@ technicloud.com
@ vbrownbag.com
@ rfitzhugh
@ Rubrik.com
vSphere Virtual Machine Management
Learning VMware vSphere
Rebecca Fitzhugh
Pattern vs Anti-Pattern
Pattern
“best practice”
Anti-Pattern
”please don’t do this”
Value Stream Mapping
What is Value Stream Mapping?
Planning tool to optimize results of eliminating waste
More Efficient VSMs
• Always collect current-state information while walking the actual pathways of material and information flows yourself
• Begin with a quick walk along the entire door-to-door value stream
• Begin at the shipping end and work upstream
• Do not rely on standard times or information that you do not personally obtain
Release Engineering
Accelerate the path from dev to ops
Release Process Steps
More realistic…
OK...fine…the real process
Cynefin Framework
Every release engineering strategy must:
• Be complexity-informed
• Account for the entirety of the system (systems thinking)
• Address human factors
Complexity is the enemy of reliability.
Whatever you do,
Whatever you buy,
Simplify your architecture.
Design Pattern for Release Engineering
• If your team is not involved in some sort of continuous improvement, be worried.
• If your team is not working on a continuous delivery pipeline, be worried.
Canary
• Practice of using domestic canaries to detect carbon monoxide in coal mines.
• Or---rolling out a release to a small number of users
• Problems may only show up in a prod environment
• Canarying can allow early detection
More Efficient Release Engineering
• Don’t make release engineering an afterthought
• Ensure release engineers understand the intention of how the code should be built and deployed. Don’t build and “throw” the results over.
• Dev, SREs, and release engineering should work together
• Automate error-prone steps.
• Use source control (duh).
• Be patient, this discipline is still evolving.
Test Automation
How does it all work together?
• Understand architecture – system and components
• Test each part thoroughly• Unit
• Test ways of working together• Component integration
• Test how it all comes together• Functional
This is how parts become a camera.
What else?
• Test the non-functional• NFRs
• Test 3rd party interactions• Integrations
• Test early• Build-in quality
Flight SearchSearch Results
Flight DetailsPassenger
InfoPayment Confirmation
Application Server
Database
Test PyramidUI
Web Service
View
Integration
Component
Unit
Business
facing tests
Technolog
y facing
tests
Manual/
Explorator
y
UI
Web Service
View
Integration
Component
Unit
Security
Accessibility
Performance
Recoverability
Availability
Manual/
Explorator
y
Sample Test Framework
Browser/
Device
Support
Parallel
execution
Scalable
Reports
&
Metrics
Maintainable
Run
locally &
remotely
Easy to
use
OS &
DB
support
Language /
tool
restrictions
Different
Environment
s
Support
features
of product
under test
Tool
support
Test Automation Framework Design Criteria
More Efficient Test Automation
• Centralize coordination of test scheduling, execution, and reporting
• Have test case platform that allow testing to be customized at runtime (“develop once, use everywhere”)
• Uniform reporting (results can be quickly and accurately analyzed)
Change Management
DevOps Difference
Change and release management become federated and integrated processes.
Check out code
and buildUnit testing Quality control
Deploy to test
environment
Fetch latest
builds
Integration
testing
Package and
archiving
Fetch release
ready builds
Deploy to pre-
prod
Acceptance
testing
Deploy to
production
Change Advisory Board (CAB)
Pipeline with CAB Feedback Loop
More Efficient Change Management
Make Change
Management a
priority
Establish
different modes
of change to
balance speed,
quality, and risk
Integrate change
into DevOps
pipeline
Automate capture of
change records with
artifacts
Improve
collaboration and
build auditable
history
Streamline process
ITIL, DevOps,
business, etc.
Speed change
processing and
increase adoption
Single source of truth
for ALL changes
Increase visibility
for risk and
compliance
management
Thank you.Rebecca Fitzhugh | @rebeccafitzhugh