SlideShare a Scribd company logo
DevOps and Safety
Critical Systems
LEN BASS
Overview
 DevOps: What and why
 Architecting for Continuous Deployment
 Basis for Partial Continuous Deployment
 Partial Continuous Deployment
copyright 2015 Len Bass
Is DevOps for you?
 DevOps is a set of practices intended to reduce
the time to market for new features.
 Question: How much are you willing to pay to
reduce the time to market for your systems?
 Installing DevOps practices takes time and
people.
copyright 2015 Len Bass
Partial Continuous Deployment
 I will propose something I am calling “partial
continuous deployment”. It involves
 Rearchitecting an existing system
 Utilizing formal methods to verify the isolation
of safety critical portions.
 Convincing yourself and regulators the system
is as safe as existing systems.
copyright 2015 Len Bass
Traditional development
Board or
marketing
has idea
Developers
implement
Operators place
in production
Time
 As Software Engineers our view is that there are the
following activities in software development
 Requirements
 Design
 Implementation
 Test
 Code Complete
 Different methodologies will organize these activities in
different ways.
 Agile focuses on getting to Code Complete faster than
with other methods.
Where Does the Time Go?
6
Developers
implement
copyright 2015 Len Bass
What is wrong?
 Code Complete Code in Production
 Between the completion of the code and the
placing of the code into production is a step
called: Deployment
 Deploying completed code can be very time
consuming because of concern about errors
that could occur.
7
copyright 2015 Len Bass
Deployment pipeline - build
 Developer creates and tests code on local machine.
 Checks code into a version control system
 Continuous integration server (CI) builds the system and
runs a series of integration tests.
copyright 2016 Len Bass
Pre-commit
tests
X
Build Image
and Perform
Integration
tests
UAT / staging /
performance
tests
Deploy to
production
Commit
...
Pre-commit
tests
Commit
Developers
promote
to normal
production
Deployment pipeline – staging
and production
 After passing the tests, the system is promoted
to a staging environment where it undergoes
more tests including performance, security,
and user acceptance tests.
 After passing staging tests, the system is
promoted to provisional production where it
undergoes even more tests.
 The system is finally promoted to normal
production but the tests do not necessarily
stop.
© Len Bass
2015
Errors can be discovered at any stage
in the pipeline
 Every error must either be corrected or prevented.
 Preventing errors can be done through some combination
of
 Process
 Architecture
 Tooling
 Coordination among teams.
 Coordination takes time.
 Correcting errors takes time
copyright 2015 Len Bass
Goal of DevOps
 The goal of DevOps is to reduce the time to
market without compromising quality by
 Reducing the number of errors that occur
during the placing of your code into
production
 Reducing the time for correcting errors that
occur
 Minimizing the necessity for coordination
among teams
copyright 2015 Len Bass
DevOps is 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.*
 DevOps practices involve developers and operators’
processes, architectures, and tools.
 DevOps is also a movement – like agile
*DevOps: A Software Architect’s Perspective
What is DevOps?
12TEAR DOWN THAT
WALL!!
Categories of DevOps Practices
1. Make Dev more responsible for incident handling
2. Enforce deployment practices uniformly across both dev
and ops
3. Use continuous deployment
4. Develop infrastructure code using same processes as
application code
13
copyright 2015 Len Bass
Overview
 DevOps: What and why
 Architecting for Continuous Deployment
 Basis for Partial Continuous Deployment
 Partial Continuous Deployment
copyright 2015 Len Bass
Goal of Continuous Deployment
 Allow developers to deploy to production
without the necessity for coordination. I.e. an
individual commit can go into production
regardless of the state of other development
activities.
 All tests are automated and system is promoted
from one stage to another in the deployment
pipeline when it passes test.
copyright 2015 Len Bass
Application to safety critical systems
 Automated testing is inadequate for safety
critical systems.
 Proposal: Only manually test the safety critical
portions of the system. Other portions can have
automated testing. Safety critical portions are a
small percentage of total system
copyright 2015 Len Bass
Wait just a minute!!
 Question: How can you be sure that non safety
critical portions do not have an impact on the
safety critical portions?
 Answer: I will get to that.
copyright 2015 Len Bass
Architecting for continuous
deployment
 Base your system on “microservice architecture” style.
 A microservice architecture is
 A collection of independently deployable processes
 Packaged as services
 Communicating only via messages
 It is a stripped down version of Service Oriented
Architecture (SOA)
copyright 2015 Len Bass
~2002 Amazon instituted the
following design rules - 1
 All teams will henceforth expose their data
and functionality through service interfaces.
 Teams must communicate with each other
through these interfaces.
 There will be no other form of inter-process
communication allowed: no direct linking, no
direct reads of another team’s data store, no
shared-memory model, no back-doors
whatsoever. The only communication
allowed is via service interface calls over the
network.
19
Amazon design rules - 2
 It doesn’t matter what technology they[services] use.
 All service interfaces, without exception, must be
designed from the ground up to be externalizable.
 Amazon is providing the specifications for the
“Microservice Architecture”.
20
In Addition
 Amazon has a “two pizza” rule.
 No team should be larger than can be fed with two pizzas (~7
members).
 Each (micro) service is the responsibility
of one team
 This means that microservices are
small and intra team bandwidth
is high
 Large systems are made up of many microservices.
 There may be as many as 140 in a typical Amazon page.21
Micro service architecture
22
Service
 Each user request is satisfied by some
sequence of services.
 Most services are not externally
available.
 Each service communicates with
other services through service
interfaces.
 Service depth may
– Shallow (large fan out)
– Deep (small fan out, more
dependent services)
How does Microservice Architecture
reduce requirements for coordination?
 Coordination decisions can be made
 incrementally as system evolves or
 be built into the architecture.
 Microservice architecture builds most coordination
decisions into architecture
 Consequently they only need to be made once for a
system, not once per release.
copyright 2015 Len Bass
Is Microservice Architecture sufficient
for continuous deployment?
 No. There are other architectural techniques that should
be used.
 See http://www.slideshare.net/lenbass/deployability for
more information
copyright 2015 Len Bass
Overview
 DevOps: What and why
 Architecting for Continuous Deployment
 Basis for Partial Continuous Deployment
 Partial Continuous Deployment
copyright 2015 Len Bass
Partial Continuous Deployment
 Identify and isolate safety critical portions of an
architecture
 Use continuous deployment for non safety
critical portions
 Use traditional testing methods for safety critical
portions
copyright 2015 Len Bass
Based on two past efforts
 Smart Grid security controls
 Hardening the deployment pipeline
copyright 2015 Len Bass
Smart Grid Security Controls
 ASAP SG was a public private effort to accelerate the
adoption of security for smart grid technologies.
 50% government – SEI, Oak Ridge National Lab
 50% private – American Electric Power, Consumers
Energy, Florida Power & Light, Southern California
Edison
 Operated under the auspices of UCA International Users
Group
copyright 2015 Len Bass
ASAP SG output
 ASAP produced “security profiles” for various portions of the
Smart Grid.
 The process was
 Produce a logical architecture through identifying
 Roles within the system
 Use cases
 Communication topology
 Use this logical architecture to identify controls to mitigate
vulnerabilities
 Process documented in
http://osgug.ucaiug.org/utilisec/Shared%20Documents/Secu
rity%20Profile%20Blueprint/Security_Profile_Blueprint_-_v1_0_-
_20101006.pdf
copyright 2015 Len Bass
Wide Area Management and Control
Communications Topology
copyright 2015 Len Bass
Application to partial continuous
deployment
 Observe that in the communications topology
there is no discussion of electric functions, billing
function, or most of the functions of the system.
 The focus is on places where security might be
compromised.
 In partial continuous deployment, there is a a
step to identify a logical architecture that has
roles with safety critical functions.
copyright 2015 Len Bass
Hardening Deployment Pipeline
 PhD research of Paul Rimba who received his PhD
(Building High Assurance Secure Applications using
Security Patterns for Capability-based Platforms) from Univ
New South Wales in 2016
 He examined the Jenkins build server from the perspective
of security
 This work reported in
https://www.computer.org/csdl/proceedings/releng/2015
/7070/00/7070a004-abs.html
copyright 2015 Len Bass
Process for hardening Jenkins
1. Identify security requirements
2. Create logical architecture
3. Use model checking to identify which components must
be trustworthy from a security perspective
4. Can these components really be trusted
1. Yes. – Done
2. No. – refactor these components into smaller pieces.
5. Repeat from step 3.
copyright 2015 Len Bass
Output of process
 Set of components that deserve to be trusted
 Verification that with these trusted components, the
architecture is, in fact, secure.
 Hardened Jenkins architecture
copyright 2015 Len Bass
AWS OpsWorks
Pull application
source code from
repository
Deploy image to
Testing/
Production
environment on
AWS OpsWorks
Pull image from
Image storage,
verify image
checksum
a) Testing
Environment:
Run application
testsBuild application
artifacts
Build Image
containing
application and
its dependencies
Verify image
creation,
compute image
checksum
Push image to
Image storage
Application
code
repository
(GitHub)
Image
storage
(Amazon S3)
Artifact Builder
Image Builder Image Verifier Image Archiver
Run Chef recipe
to deploy image
to OpsWorks VM
instances
b) Production
Environment:
App start
serving requests
All tests
passed?
Application
code
committed
to repository
New app version
deployed
to production
Deploy
to?
Infrastructure-as-Code repository
(GitHub)
Image
specifications
Opscode Chef
Recipes
Run unit tests on
source code
Trigger each step
of build sequence
Code RetrieverOrchestrator Unit Tester
Deployer
Trustedenvironment
Untrustedenvironment
Operator
notified
about
test
failure No
Yes
Application to partial continuous
deployment
 Explicit identification of security requirements
 Use of model checking to identify trustworthy
components
 Determination of whether trustworthy
components should be trusted.
copyright 2015 Len Bass
Overview
 DevOps: What and why
 Architecting for Continuous Deployment
 Basis for Partial Continuous Deployment
 Partial Continuous Deployment
copyright 2015 Len Bass
Partial Continuous Deployment
Process
1. Explicitly state safety requirements. E.g. through FMEA
2. Create logical architecture for target system
3. Use model checking of architecture to identify
components that must be safe for system to be safe.
4. Refactor architecture until safe components are
“sufficiently small”
5. Use continuous deployment for components that may
be unsafe
6. Test safe components in normal fashion.
copyright 2015 Len Bass
Caveat
 Partial continuous deployment is a proposal.
 It has never been tested or implemented
copyright 2015 Len Bass
Gates to implementation (technical)
1. Choose existing system to replicate
2. Make explicit safety requirements
3. Create logical architecture for existing system
4. Model check logical architecture to determine components that are
required to be safe
5. Refine these components until they are as small as possible.
6. Refactor small number of remaining components into microservice
architecture
7. Create test cases for components that are not required to be safe
8. Set up deployment pipeline
9. Implement modified components
10. Manually test components that are required to be safe
copyright 2015 Len Bass
Gates to implementation (non-
technical)
 Convince regulators that dividing architecture
into one portion required to be safe and
another portion not required to be safe is viable
strategy
 Run test system in parallel with actual system in
order to track problems and compare behavior.
copyright 2015 Len Bass
Summary
 DevOps is a set of practices intended to reduce
time to market
 Continuous deployment is one such practice
 Partial continuous deployment is a proposal to
adapt continuous deployment to safety critical
systems
 The path to production of partial continuous
deployment requires convincing regulators of
safety of resulting system.
copyright 2015 Len Bass
More Information
Contact lenbass@cmu.edu
DevOps: A Software Architect’s
Perspective is available from your
favorite bookseller
42

More Related Content

PDF
Deployability
PDF
Packaging tool options
PDF
Introduction to dev ops
PDF
My first deployment pipeline
PDF
Securing deployment pipeline
PDF
Experience in teaching devops
PDF
Devops syllabus
PDF
DevOps Syllabus summer 2020
Deployability
Packaging tool options
Introduction to dev ops
My first deployment pipeline
Securing deployment pipeline
Experience in teaching devops
Devops syllabus
DevOps Syllabus summer 2020

What's hot (20)

PDF
Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...
PPTX
How to go from waterfall app dev to secure agile development in 2 weeks
PPTX
Devops
PPTX
CI/CD Overview
PDF
Preparing for DevOps
PDF
Introduction to CICD
PDF
Getting to Walk with DevOps
PPT
How to Build a DevOps Toolchain
PPTX
Devops architecture
PDF
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
PPTX
Scaling Enterprise DevOps with CloudBees
PDF
Dev ops tutorial for beginners what is devops & devops tools
PDF
Innovation in Action - #MFSummit2017
PPTX
Jenkins - From Continuous Integration to Continuous Delivery
PPT
Database continuous integration, unit test and functional test
PDF
Better Security Testing: Using the Cloud and Continuous Delivery
PDF
Enterprise CI as-a-Service using Jenkins
PPTX
CI/CD
ZIP
Continuous Integration, Build Pipelines and Continuous Deployment
PDF
Top DevOps tools
Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...
How to go from waterfall app dev to secure agile development in 2 weeks
Devops
CI/CD Overview
Preparing for DevOps
Introduction to CICD
Getting to Walk with DevOps
How to Build a DevOps Toolchain
Devops architecture
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Scaling Enterprise DevOps with CloudBees
Dev ops tutorial for beginners what is devops & devops tools
Innovation in Action - #MFSummit2017
Jenkins - From Continuous Integration to Continuous Delivery
Database continuous integration, unit test and functional test
Better Security Testing: Using the Cloud and Continuous Delivery
Enterprise CI as-a-Service using Jenkins
CI/CD
Continuous Integration, Build Pipelines and Continuous Deployment
Top DevOps tools
Ad

Viewers also liked (17)

PDF
Refactoring for Software Architecture Smells - International Workshop on Refa...
PDF
Architecture for the cloud deployment case study future
PDF
presentation-chaos-monkey
PPTX
Cloud Security At Netflix, October 2013
PPTX
From Code to the Monkeys: Continuous Delivery at Netflix
PDF
Practical Security Automation
PPTX
Release the Monkeys ! Testing in the Wild at Netflix
PDF
Netflix: A State of Xen - Chaos Monkey & Cassandra
PPTX
Intro to Netflix's Chaos Monkey
PDF
Netflix security monkey overview
PDF
Mini-Training: Netflix Simian Army
PPT
Devops at Netflix (re:Invent)
PPTX
Antifragile, Microservices and DevOps - A Study
PDF
Principles of software architecture design
PDF
Igor Popov: Mutation Testing at I T.A.K.E. Unconference 2015
PPTX
Mutation testing
PPTX
Cloud security ppt
Refactoring for Software Architecture Smells - International Workshop on Refa...
Architecture for the cloud deployment case study future
presentation-chaos-monkey
Cloud Security At Netflix, October 2013
From Code to the Monkeys: Continuous Delivery at Netflix
Practical Security Automation
Release the Monkeys ! Testing in the Wild at Netflix
Netflix: A State of Xen - Chaos Monkey & Cassandra
Intro to Netflix's Chaos Monkey
Netflix security monkey overview
Mini-Training: Netflix Simian Army
Devops at Netflix (re:Invent)
Antifragile, Microservices and DevOps - A Study
Principles of software architecture design
Igor Popov: Mutation Testing at I T.A.K.E. Unconference 2015
Mutation testing
Cloud security ppt
Ad

Similar to Dev ops and safety critical systems (20)

PDF
Optimize your CI/CD with GitLab and AWS
PPTX
Quality assurance in dev ops and secops world
PPTX
Quality assurance in dev ops and secops world
PDF
DevSecOps: Putting the Sec into the DevOps
PDF
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
PPTX
DevOps to DevSecOps Journey..
PDF
Putting the Sec into DevOps
PDF
Intro to DevOps
PDF
Introduction to DevOps slides.pdf
PPTX
Agility and Control from AWS [FutureStack16]
PPTX
DevOps Overview
PDF
DevOps Pragmatic Overview
PDF
Devops, Secops, Opsec, DevSec *ops *.* ?
PPTX
DevNetOps Overview
PDF
Security's DevOps Transformation
PDF
Scale security for a dollar or less
PPTX
Designing a Reliable Software Factory for the Cloud
PPTX
DevOps and Tools
PDF
You Build It, You Secure It: Higher Velocity and Better Security with DevSecOps
PDF
Strengthen and Scale Security for a dollar or less
Optimize your CI/CD with GitLab and AWS
Quality assurance in dev ops and secops world
Quality assurance in dev ops and secops world
DevSecOps: Putting the Sec into the DevOps
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
DevOps to DevSecOps Journey..
Putting the Sec into DevOps
Intro to DevOps
Introduction to DevOps slides.pdf
Agility and Control from AWS [FutureStack16]
DevOps Overview
DevOps Pragmatic Overview
Devops, Secops, Opsec, DevSec *ops *.* ?
DevNetOps Overview
Security's DevOps Transformation
Scale security for a dollar or less
Designing a Reliable Software Factory for the Cloud
DevOps and Tools
You Build It, You Secure It: Higher Velocity and Better Security with DevSecOps
Strengthen and Scale Security for a dollar or less

More from Len Bass (20)

PDF
11 secure development
PDF
10 disaster recovery
PDF
9 postproduction
PDF
8 pipeline
PDF
7 configuration management
PDF
6 microservice architecture
PDF
5 infrastructure security
PPTX
4 container management
PDF
3 the cloud
PDF
1 virtual machines
PDF
2 networking
PDF
Quantum talk
PDF
Icsa2018 blockchain tutorial
PDF
Understanding blockchains
PDF
What is a blockchain
PDF
Architecting for the cloud cloud providers
PDF
Architecting for the cloud storage build test
PDF
Architecting for the cloud map reduce creating
PDF
Architecting for the cloud storage misc topics
PDF
Architecting for the cloud elasticity security
11 secure development
10 disaster recovery
9 postproduction
8 pipeline
7 configuration management
6 microservice architecture
5 infrastructure security
4 container management
3 the cloud
1 virtual machines
2 networking
Quantum talk
Icsa2018 blockchain tutorial
Understanding blockchains
What is a blockchain
Architecting for the cloud cloud providers
Architecting for the cloud storage build test
Architecting for the cloud map reduce creating
Architecting for the cloud storage misc topics
Architecting for the cloud elasticity security

Recently uploaded (20)

PDF
Digital Strategies for Manufacturing Companies
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Complete React Javascript Course Syllabus.pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
top salesforce developer skills in 2025.pdf
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PPTX
Materi_Pemrograman_Komputer-Looping.pptx
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Understanding Forklifts - TECH EHS Solution
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
Introduction to Artificial Intelligence
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
ai tools demonstartion for schools and inter college
PPTX
Materi-Enum-and-Record-Data-Type (1).pptx
PDF
System and Network Administraation Chapter 3
PPTX
L1 - Introduction to python Backend.pptx
Digital Strategies for Manufacturing Companies
Which alternative to Crystal Reports is best for small or large businesses.pdf
Complete React Javascript Course Syllabus.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
top salesforce developer skills in 2025.pdf
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Materi_Pemrograman_Komputer-Looping.pptx
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Understanding Forklifts - TECH EHS Solution
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Design an Analysis of Algorithms I-SECS-1021-03
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
How Creative Agencies Leverage Project Management Software.pdf
ISO 45001 Occupational Health and Safety Management System
Introduction to Artificial Intelligence
ManageIQ - Sprint 268 Review - Slide Deck
ai tools demonstartion for schools and inter college
Materi-Enum-and-Record-Data-Type (1).pptx
System and Network Administraation Chapter 3
L1 - Introduction to python Backend.pptx

Dev ops and safety critical systems

  • 1. DevOps and Safety Critical Systems LEN BASS
  • 2. Overview  DevOps: What and why  Architecting for Continuous Deployment  Basis for Partial Continuous Deployment  Partial Continuous Deployment copyright 2015 Len Bass
  • 3. Is DevOps for you?  DevOps is a set of practices intended to reduce the time to market for new features.  Question: How much are you willing to pay to reduce the time to market for your systems?  Installing DevOps practices takes time and people. copyright 2015 Len Bass
  • 4. Partial Continuous Deployment  I will propose something I am calling “partial continuous deployment”. It involves  Rearchitecting an existing system  Utilizing formal methods to verify the isolation of safety critical portions.  Convincing yourself and regulators the system is as safe as existing systems. copyright 2015 Len Bass
  • 5. Traditional development Board or marketing has idea Developers implement Operators place in production Time
  • 6.  As Software Engineers our view is that there are the following activities in software development  Requirements  Design  Implementation  Test  Code Complete  Different methodologies will organize these activities in different ways.  Agile focuses on getting to Code Complete faster than with other methods. Where Does the Time Go? 6 Developers implement copyright 2015 Len Bass
  • 7. What is wrong?  Code Complete Code in Production  Between the completion of the code and the placing of the code into production is a step called: Deployment  Deploying completed code can be very time consuming because of concern about errors that could occur. 7 copyright 2015 Len Bass
  • 8. Deployment pipeline - build  Developer creates and tests code on local machine.  Checks code into a version control system  Continuous integration server (CI) builds the system and runs a series of integration tests. copyright 2016 Len Bass Pre-commit tests X Build Image and Perform Integration tests UAT / staging / performance tests Deploy to production Commit ... Pre-commit tests Commit Developers promote to normal production
  • 9. Deployment pipeline – staging and production  After passing the tests, the system is promoted to a staging environment where it undergoes more tests including performance, security, and user acceptance tests.  After passing staging tests, the system is promoted to provisional production where it undergoes even more tests.  The system is finally promoted to normal production but the tests do not necessarily stop. © Len Bass 2015
  • 10. Errors can be discovered at any stage in the pipeline  Every error must either be corrected or prevented.  Preventing errors can be done through some combination of  Process  Architecture  Tooling  Coordination among teams.  Coordination takes time.  Correcting errors takes time copyright 2015 Len Bass
  • 11. Goal of DevOps  The goal of DevOps is to reduce the time to market without compromising quality by  Reducing the number of errors that occur during the placing of your code into production  Reducing the time for correcting errors that occur  Minimizing the necessity for coordination among teams copyright 2015 Len Bass
  • 12. DevOps is 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.*  DevOps practices involve developers and operators’ processes, architectures, and tools.  DevOps is also a movement – like agile *DevOps: A Software Architect’s Perspective What is DevOps? 12TEAR DOWN THAT WALL!!
  • 13. Categories of DevOps Practices 1. Make Dev more responsible for incident handling 2. Enforce deployment practices uniformly across both dev and ops 3. Use continuous deployment 4. Develop infrastructure code using same processes as application code 13 copyright 2015 Len Bass
  • 14. Overview  DevOps: What and why  Architecting for Continuous Deployment  Basis for Partial Continuous Deployment  Partial Continuous Deployment copyright 2015 Len Bass
  • 15. Goal of Continuous Deployment  Allow developers to deploy to production without the necessity for coordination. I.e. an individual commit can go into production regardless of the state of other development activities.  All tests are automated and system is promoted from one stage to another in the deployment pipeline when it passes test. copyright 2015 Len Bass
  • 16. Application to safety critical systems  Automated testing is inadequate for safety critical systems.  Proposal: Only manually test the safety critical portions of the system. Other portions can have automated testing. Safety critical portions are a small percentage of total system copyright 2015 Len Bass
  • 17. Wait just a minute!!  Question: How can you be sure that non safety critical portions do not have an impact on the safety critical portions?  Answer: I will get to that. copyright 2015 Len Bass
  • 18. Architecting for continuous deployment  Base your system on “microservice architecture” style.  A microservice architecture is  A collection of independently deployable processes  Packaged as services  Communicating only via messages  It is a stripped down version of Service Oriented Architecture (SOA) copyright 2015 Len Bass
  • 19. ~2002 Amazon instituted the following design rules - 1  All teams will henceforth expose their data and functionality through service interfaces.  Teams must communicate with each other through these interfaces.  There will be no other form of inter-process communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network. 19
  • 20. Amazon design rules - 2  It doesn’t matter what technology they[services] use.  All service interfaces, without exception, must be designed from the ground up to be externalizable.  Amazon is providing the specifications for the “Microservice Architecture”. 20
  • 21. In Addition  Amazon has a “two pizza” rule.  No team should be larger than can be fed with two pizzas (~7 members).  Each (micro) service is the responsibility of one team  This means that microservices are small and intra team bandwidth is high  Large systems are made up of many microservices.  There may be as many as 140 in a typical Amazon page.21
  • 22. Micro service architecture 22 Service  Each user request is satisfied by some sequence of services.  Most services are not externally available.  Each service communicates with other services through service interfaces.  Service depth may – Shallow (large fan out) – Deep (small fan out, more dependent services)
  • 23. How does Microservice Architecture reduce requirements for coordination?  Coordination decisions can be made  incrementally as system evolves or  be built into the architecture.  Microservice architecture builds most coordination decisions into architecture  Consequently they only need to be made once for a system, not once per release. copyright 2015 Len Bass
  • 24. Is Microservice Architecture sufficient for continuous deployment?  No. There are other architectural techniques that should be used.  See http://www.slideshare.net/lenbass/deployability for more information copyright 2015 Len Bass
  • 25. Overview  DevOps: What and why  Architecting for Continuous Deployment  Basis for Partial Continuous Deployment  Partial Continuous Deployment copyright 2015 Len Bass
  • 26. Partial Continuous Deployment  Identify and isolate safety critical portions of an architecture  Use continuous deployment for non safety critical portions  Use traditional testing methods for safety critical portions copyright 2015 Len Bass
  • 27. Based on two past efforts  Smart Grid security controls  Hardening the deployment pipeline copyright 2015 Len Bass
  • 28. Smart Grid Security Controls  ASAP SG was a public private effort to accelerate the adoption of security for smart grid technologies.  50% government – SEI, Oak Ridge National Lab  50% private – American Electric Power, Consumers Energy, Florida Power & Light, Southern California Edison  Operated under the auspices of UCA International Users Group copyright 2015 Len Bass
  • 29. ASAP SG output  ASAP produced “security profiles” for various portions of the Smart Grid.  The process was  Produce a logical architecture through identifying  Roles within the system  Use cases  Communication topology  Use this logical architecture to identify controls to mitigate vulnerabilities  Process documented in http://osgug.ucaiug.org/utilisec/Shared%20Documents/Secu rity%20Profile%20Blueprint/Security_Profile_Blueprint_-_v1_0_- _20101006.pdf copyright 2015 Len Bass
  • 30. Wide Area Management and Control Communications Topology copyright 2015 Len Bass
  • 31. Application to partial continuous deployment  Observe that in the communications topology there is no discussion of electric functions, billing function, or most of the functions of the system.  The focus is on places where security might be compromised.  In partial continuous deployment, there is a a step to identify a logical architecture that has roles with safety critical functions. copyright 2015 Len Bass
  • 32. Hardening Deployment Pipeline  PhD research of Paul Rimba who received his PhD (Building High Assurance Secure Applications using Security Patterns for Capability-based Platforms) from Univ New South Wales in 2016  He examined the Jenkins build server from the perspective of security  This work reported in https://www.computer.org/csdl/proceedings/releng/2015 /7070/00/7070a004-abs.html copyright 2015 Len Bass
  • 33. Process for hardening Jenkins 1. Identify security requirements 2. Create logical architecture 3. Use model checking to identify which components must be trustworthy from a security perspective 4. Can these components really be trusted 1. Yes. – Done 2. No. – refactor these components into smaller pieces. 5. Repeat from step 3. copyright 2015 Len Bass
  • 34. Output of process  Set of components that deserve to be trusted  Verification that with these trusted components, the architecture is, in fact, secure.  Hardened Jenkins architecture copyright 2015 Len Bass AWS OpsWorks Pull application source code from repository Deploy image to Testing/ Production environment on AWS OpsWorks Pull image from Image storage, verify image checksum a) Testing Environment: Run application testsBuild application artifacts Build Image containing application and its dependencies Verify image creation, compute image checksum Push image to Image storage Application code repository (GitHub) Image storage (Amazon S3) Artifact Builder Image Builder Image Verifier Image Archiver Run Chef recipe to deploy image to OpsWorks VM instances b) Production Environment: App start serving requests All tests passed? Application code committed to repository New app version deployed to production Deploy to? Infrastructure-as-Code repository (GitHub) Image specifications Opscode Chef Recipes Run unit tests on source code Trigger each step of build sequence Code RetrieverOrchestrator Unit Tester Deployer Trustedenvironment Untrustedenvironment Operator notified about test failure No Yes
  • 35. Application to partial continuous deployment  Explicit identification of security requirements  Use of model checking to identify trustworthy components  Determination of whether trustworthy components should be trusted. copyright 2015 Len Bass
  • 36. Overview  DevOps: What and why  Architecting for Continuous Deployment  Basis for Partial Continuous Deployment  Partial Continuous Deployment copyright 2015 Len Bass
  • 37. Partial Continuous Deployment Process 1. Explicitly state safety requirements. E.g. through FMEA 2. Create logical architecture for target system 3. Use model checking of architecture to identify components that must be safe for system to be safe. 4. Refactor architecture until safe components are “sufficiently small” 5. Use continuous deployment for components that may be unsafe 6. Test safe components in normal fashion. copyright 2015 Len Bass
  • 38. Caveat  Partial continuous deployment is a proposal.  It has never been tested or implemented copyright 2015 Len Bass
  • 39. Gates to implementation (technical) 1. Choose existing system to replicate 2. Make explicit safety requirements 3. Create logical architecture for existing system 4. Model check logical architecture to determine components that are required to be safe 5. Refine these components until they are as small as possible. 6. Refactor small number of remaining components into microservice architecture 7. Create test cases for components that are not required to be safe 8. Set up deployment pipeline 9. Implement modified components 10. Manually test components that are required to be safe copyright 2015 Len Bass
  • 40. Gates to implementation (non- technical)  Convince regulators that dividing architecture into one portion required to be safe and another portion not required to be safe is viable strategy  Run test system in parallel with actual system in order to track problems and compare behavior. copyright 2015 Len Bass
  • 41. Summary  DevOps is a set of practices intended to reduce time to market  Continuous deployment is one such practice  Partial continuous deployment is a proposal to adapt continuous deployment to safety critical systems  The path to production of partial continuous deployment requires convincing regulators of safety of resulting system. copyright 2015 Len Bass
  • 42. More Information Contact lenbass@cmu.edu DevOps: A Software Architect’s Perspective is available from your favorite bookseller 42