keep calm and architect on: an architect's role in devops · 2017-05-04 · keep calm and...
TRANSCRIPT
SATURN 2017
1Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Keep CALM and Architect On: An Architect’s Role in DevOpsTerri Potts (@terri_potts) and Eric OrtRaytheon IIS
Unrestricted ContentUnrestricted Content
SATURN 2017
2Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
What is Raytheon?
Unrestricted Content
SATURN 2017
3Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Helping a DevOps team stay CALMCulture• Continual learning & experimentation• High-trust & scientific approach
Automation• Automate deployment pipeline• Move fast left-to-right
Photo of Graham Fitter surfing on the Colorado River, © 2017 Brian Doss
Lean• Kata• Value stream mapping• Provide fast feedback right-to-left
Measurement• Provide visibility
Unrestricted Content
SATURN 2017
4Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Architects & Culture
Unrestricted Content
Embrace change!
Define capabilities & features
Become part of the team
Lead and guide experimentation
Change impact analysis for legacy software baselines
Test architecture
Photo: https://pixabay.com/en/cat-feline-kitty-angry-cat-20688/
SATURN 2017
5Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Architects Role in Automation
Application modernizationDeployment pipeline architectureInfrastructure architecture
Unrestricted Content
Photo: httpwebrequest-readwritetimeout-set-to-5-minutes
SATURN 2017
6Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Infrastructure as Code and Versioned EnvironmentsQuality Attributes: Maintainability / Deployability / Self-ServiceTactics: IaC and versioned environmentsResult: Eliminates environment snowflakes
Environment 1.2.3
SecurityPolicy Files
COTS / FOSSContainers
Incremental DB Schema
Configuration
OS Kickstart Images
Automation Scripts
Dev Environment
@ v1.2.3
IntegrationEnvironment
@ v1.2.3
System TestEnvironment
@ v1.2.3
OpsEnvironment
@ v1.2.3
Instantiate
Instantiate
Instantiate
Instantiate
Unrestricted Content
SATURN 2017
7Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Feature Flags for Dark LaunchQuality Attributes: Deployability, TestabilityTactics: Feature flags and dark launchingResults:• Quick / easy rollback of features• Dark launching• Avoids “branching hell”• Less risk to production
If (configParams.feature){
<new feature code>}
Unrestricted Content
SATURN 2017
8Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Node
Semantic Versioning PatternQuality Attribute: Deployability and AvailabilityTactics: Semantic versioning, versioned interfacesResults:
• Live deploys• Live switch to semantically compatible version
NodeRHEL VM
MicroserviceV1.0.1
RHEL VMMicroservice
V1.0.3Consumer
ConsumerX
Unrestricted Content
SATURN 2017
9Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Incremental Database UpgradesQuality Attributes: Maintainability, Modifiability, UpgradabilityTactics: Incremental database upgradesResults: Fully automated upgrade of an existing database to match a new software version
SW Change DB Change
SW Change DB Change
Total SW Changes
Total DB Changes
DatabaseV1.2.3
SW v.1.2.3 Upgrade SW v.1.3.5
Apply DB Changes
DatabaseV1.3.5
Unrestricted Content
SATURN 2017
10Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Forward / Backward CompatibilityQuality Attributes: Deployability, UpgradabilityTactics: Forward/backward DB compatibilityResults: Painless rollback / fallback and no-risk upgrades
DatabaseV1
DatabaseV2
DatabaseV3
Add First Name & Last Name columns
Microservicev1
Microservicev2
Microservicev3
Lines indicate compatibilityRemove Full Name
column
Full Name
Eric Ort
Terri Potts
Full Name First Name Last Name
Eric Ort Eric Ort
Terri Potts Terri Potts
First Name Last Name
Eric Ort
Terri Potts
Unrestricted Content
SATURN 2017
11Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Patterns that support Test AutomationQuality Attributes: TestabilityTactics: Mocking, seams, service isolation, separation of business logicResults: Defect localization for lower MTTR, easier to automate tests, automated test suite performance
SaleTerminal….
void notifyServer()
SaleTerminalSubclass (at seam)
….void notifyServer()
WebService
SoapUIMock
Consumer
production
test
SaleTerminalvoid notifyServer()
Jmockit no-op version of notifyServer()
Test Code
BusinessLogic
DiskAccess
Layer / Code
DiskGUI
Unrestricted Content
SATURN 2017
12Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Dynamic Infrastructure Patterns for AutomationQuality Attributes: Performance, Elasticity, ResiliencyTactics: Immutable microservices, containers, container management / scaling software, SW that is ready to live, die and multiplyResults: Consumer
OpenShift / Kubernetes Cluster
Consumer
Consumer
OpenShift / Kubernetes Router
NodeRHEL VM
PODContainer
APPContainer
APP
PODContainer
APPContainer
APP
NodeRHEL VM
PODContainer
APPContainer
APP
PODContainer
APPContainer
APP
NodeRHEL VM
PODContainer
APPContainer
APP
PODContainer
APPContainer
APP
• Seamless user experience and results with just the right amount of resource usage
Unrestricted Content
SATURN 2017
13Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Architects Helping the Organization Get Lean
Representative schedulesValue stream mapping Reduce work in progressFeature driven developmentKata
Unrestricted Content
Photo courtesy of Pixaby.com
SATURN 2017
14Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
THE FOUR STEPS OF THE IMPROVEMENT KATA MODEL
Understandthe Directionor Challenge
Grasp theCurrent
Condition
Establish theNext TargetCondition
CC
TC
1 2 3 4Iterate
Toward the Target Condition
PlanningPhase
ExecutingPhase
A systematic, scientific pattern of working
The Improvement Kata model comes from six yearsof research into how Toyota manages people,
which is summarized in the book “Toyota Kata”By Mike Rother
Unrestricted Content
SATURN 2017
15Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
TERMINOLOGY
Obstacles
Experiments
CurrentCondition
Threshold of Knowledge
NextTarget
Condition(dated)
By Mike Rother
Unrestricted Content
SATURN 2017
16Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
WHAT IT REALLY LOOKS LIKE
ExperimentsAt the CurrentKnowledge Threshold
Challenge
Threshold of Knowledge
CurrentCondition
NextTarget
Condition(date)
By Mike Rother
Unrestricted Content
SATURN 2017
17Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Measurement that Support MeasurementMicroservice built-in metric support at the endpoints• Health checks and metrics
- Application of circuit breaker pattern- SW based resiliency
• Proactively determine if software, VMs or HW are “getting sick” and automatically respond
$ curl http://www.some_example.com:8081/healthcheck * deadlocks: OK * database: OK
Unrestricted Content
http://crochetincolor.blogspot.com/2012/06/trying-to-customize-hat-sizes.html
SATURN 2017
18Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
Measurement (Cont)that Support MeasurementMonitoring and Response at scale• Intelligent analysis of metrics• Intelligent correlation of metrics• Intelligent collation and routing of alerts • Automated response orchestration
Unrestricted Content
SATURN 2017
19Keep Calm and Architect On: An Architect’s Role in DevOps©2017 Raytheon
ConclusionArchitects must still understand the whole system up frontArchitects have a different, but ongoing roleStay current on the latest patterns that support automation, cloud, etc.New architectural roles are needed for Infrastructure and Test
Unrestricted Content
Photo courtesy of Pixaby.com