SlideShare a Scribd company logo
1 of 42
Download to read offline
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

What's hot

Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...
Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...
Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...Synopsys Software Integrity Group
 
How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks Ulf Mattsson
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD OverviewAn Nguyen
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOpsEklove Mohan
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICDKnoldus Inc.
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...Sauce Labs
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesDeborah Schalm
 
Dev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops toolsDev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops toolsJanBask Training
 
Innovation in Action - #MFSummit2017
Innovation in Action - #MFSummit2017Innovation in Action - #MFSummit2017
Innovation in Action - #MFSummit2017Micro Focus
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryVirendra Bhalothia
 
Building a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containersBuilding a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containersAmazon Web Services
 
Database continuous integration, unit test and functional test
Database continuous integration, unit test and functional testDatabase continuous integration, unit test and functional test
Database continuous integration, unit test and functional testHarry Zheng
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryBetter Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryGene Gotimer
 
Enterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using JenkinsEnterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using JenkinsCollabNet
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentChristopher Read
 

What's hot (20)

Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...
Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...
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
How to go from waterfall app dev to secure agile development in 2 weeks How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks
 
Devops
DevopsDevops
Devops
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
How to Build a DevOps Toolchain
How to Build a DevOps ToolchainHow to Build a DevOps Toolchain
How to Build a DevOps Toolchain
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBees
 
Dev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops toolsDev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops tools
 
Innovation in Action - #MFSummit2017
Innovation in Action - #MFSummit2017Innovation in Action - #MFSummit2017
Innovation in Action - #MFSummit2017
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous Delivery
 
Building a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containersBuilding a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containers
 
Database continuous integration, unit test and functional test
Database continuous integration, unit test and functional testDatabase continuous integration, unit test and functional test
Database continuous integration, unit test and functional test
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryBetter Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery
 
Enterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using JenkinsEnterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using Jenkins
 
CI/CD
CI/CDCI/CD
CI/CD
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 

Viewers also liked

Refactoring for Software Architecture Smells - International Workshop on Refa...
Refactoring for Software Architecture Smells - International Workshop on Refa...Refactoring for Software Architecture Smells - International Workshop on Refa...
Refactoring for Software Architecture Smells - International Workshop on Refa...Ganesh Samarthyam
 
Architecture for the cloud deployment case study future
Architecture for the cloud deployment case study futureArchitecture for the cloud deployment case study future
Architecture for the cloud deployment case study futureLen Bass
 
Cloud Security At Netflix, October 2013
Cloud Security At Netflix, October 2013Cloud Security At Netflix, October 2013
Cloud Security At Netflix, October 2013Jay Zarfoss
 
From Code to the Monkeys: Continuous Delivery at Netflix
From Code to the Monkeys: Continuous Delivery at NetflixFrom Code to the Monkeys: Continuous Delivery at Netflix
From Code to the Monkeys: Continuous Delivery at NetflixDianne Marsh
 
Practical Security Automation
Practical Security AutomationPractical Security Automation
Practical Security AutomationJason Chan
 
Release the Monkeys ! Testing in the Wild at Netflix
Release the Monkeys !  Testing in the Wild at NetflixRelease the Monkeys !  Testing in the Wild at Netflix
Release the Monkeys ! Testing in the Wild at NetflixGareth Bowles
 
Netflix: A State of Xen - Chaos Monkey & Cassandra
Netflix: A State of Xen - Chaos Monkey & CassandraNetflix: A State of Xen - Chaos Monkey & Cassandra
Netflix: A State of Xen - Chaos Monkey & CassandraDataStax Academy
 
Intro to Netflix's Chaos Monkey
Intro to Netflix's Chaos MonkeyIntro to Netflix's Chaos Monkey
Intro to Netflix's Chaos MonkeyMichael Whitehead
 
Netflix security monkey overview
Netflix security monkey overviewNetflix security monkey overview
Netflix security monkey overviewRyan Hodgin
 
Devops at Netflix (re:Invent)
Devops at Netflix (re:Invent)Devops at Netflix (re:Invent)
Devops at Netflix (re:Invent)Jeremy Edberg
 
Antifragile, Microservices and DevOps - A Study
Antifragile, Microservices and DevOps - A StudyAntifragile, Microservices and DevOps - A Study
Antifragile, Microservices and DevOps - A StudyWilliam Yang
 
ARC301 Intro to Chaos Monkey & the Simian Army - AWS re: Invent 2012
ARC301 Intro to Chaos Monkey & the Simian Army - AWS re: Invent 2012ARC301 Intro to Chaos Monkey & the Simian Army - AWS re: Invent 2012
ARC301 Intro to Chaos Monkey & the Simian Army - AWS re: Invent 2012Amazon Web Services
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture designLen Bass
 
Igor Popov: Mutation Testing at I T.A.K.E. Unconference 2015
Igor Popov: Mutation Testing at I T.A.K.E. Unconference 2015Igor Popov: Mutation Testing at I T.A.K.E. Unconference 2015
Igor Popov: Mutation Testing at I T.A.K.E. Unconference 2015Mozaic Works
 

Viewers also liked (18)

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

Similar to Dev ops and safety critical systems

Leveraging DevOps for Faster and Scalable Deployments - Keynote.pdf
Leveraging DevOps for Faster and Scalable Deployments -  Keynote.pdfLeveraging DevOps for Faster and Scalable Deployments -  Keynote.pdf
Leveraging DevOps for Faster and Scalable Deployments - Keynote.pdfPaschalOruche1
 
DevOps Automation: Boosting Efficiency and Productivity
DevOps Automation: Boosting Efficiency and ProductivityDevOps Automation: Boosting Efficiency and Productivity
DevOps Automation: Boosting Efficiency and ProductivityFredReynolds2
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous EverythingAndrea Tino
 
Introduction to DevOps in Cloud Computing.pptx
Introduction to DevOps in Cloud Computing.pptxIntroduction to DevOps in Cloud Computing.pptx
Introduction to DevOps in Cloud Computing.pptxLAKSHMIS553566
 
Devops Explained & Best Practices
Devops Explained & Best PracticesDevops Explained & Best Practices
Devops Explained & Best PracticesShikhaKonda
 
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)Hui (Henry) Chen
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build AutomationHeiswayi Nrird
 
SCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPSSCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPSG R VISHAL
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOpsMoataz Mahmoud
 
DevOps Overview
DevOps OverviewDevOps Overview
DevOps OverviewSagar Mody
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesDeborah Schalm
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesDevOps.com
 
Top 3 Useful Tools for DevOps Automation -
Top 3 Useful Tools for DevOps Automation -Top 3 Useful Tools for DevOps Automation -
Top 3 Useful Tools for DevOps Automation -Urolime Technologies
 
2.What is a DevOps Environment and How Does it Function_.pdf
2.What is a DevOps Environment and How Does it Function_.pdf2.What is a DevOps Environment and How Does it Function_.pdf
2.What is a DevOps Environment and How Does it Function_.pdfBelayet Hossain
 
Mainframe Automation: A Panel Discussion
Mainframe Automation: A Panel DiscussionMainframe Automation: A Panel Discussion
Mainframe Automation: A Panel DiscussionDevOps.com
 
Continuous delivery best practices and essential tools
Continuous delivery best practices and essential toolsContinuous delivery best practices and essential tools
Continuous delivery best practices and essential toolsDBmaestro - Database DevOps
 
How To Implement Continuous Integration And Delivery In Software Development.pdf
How To Implement Continuous Integration And Delivery In Software Development.pdfHow To Implement Continuous Integration And Delivery In Software Development.pdf
How To Implement Continuous Integration And Delivery In Software Development.pdfIntegrated IT Solutions
 

Similar to Dev ops and safety critical systems (20)

Leveraging DevOps for Faster and Scalable Deployments - Keynote.pdf
Leveraging DevOps for Faster and Scalable Deployments -  Keynote.pdfLeveraging DevOps for Faster and Scalable Deployments -  Keynote.pdf
Leveraging DevOps for Faster and Scalable Deployments - Keynote.pdf
 
DevOps Automation: Boosting Efficiency and Productivity
DevOps Automation: Boosting Efficiency and ProductivityDevOps Automation: Boosting Efficiency and Productivity
DevOps Automation: Boosting Efficiency and Productivity
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
DevOps
DevOps DevOps
DevOps
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Introduction to DevOps in Cloud Computing.pptx
Introduction to DevOps in Cloud Computing.pptxIntroduction to DevOps in Cloud Computing.pptx
Introduction to DevOps in Cloud Computing.pptx
 
Devops Explained & Best Practices
Devops Explained & Best PracticesDevops Explained & Best Practices
Devops Explained & Best Practices
 
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
SCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPSSCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPS
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOps
 
DevOps Overview
DevOps OverviewDevOps Overview
DevOps Overview
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBees
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBees
 
Top 3 Useful Tools for DevOps Automation -
Top 3 Useful Tools for DevOps Automation -Top 3 Useful Tools for DevOps Automation -
Top 3 Useful Tools for DevOps Automation -
 
2.What is a DevOps Environment and How Does it Function_.pdf
2.What is a DevOps Environment and How Does it Function_.pdf2.What is a DevOps Environment and How Does it Function_.pdf
2.What is a DevOps Environment and How Does it Function_.pdf
 
Mainframe Automation: A Panel Discussion
Mainframe Automation: A Panel DiscussionMainframe Automation: A Panel Discussion
Mainframe Automation: A Panel Discussion
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Continuous delivery best practices and essential tools
Continuous delivery best practices and essential toolsContinuous delivery best practices and essential tools
Continuous delivery best practices and essential tools
 
How To Implement Continuous Integration And Delivery In Software Development.pdf
How To Implement Continuous Integration And Delivery In Software Development.pdfHow To Implement Continuous Integration And Delivery In Software Development.pdf
How To Implement Continuous Integration And Delivery In Software Development.pdf
 

More from Len Bass

11 secure development
11  secure development 11  secure development
11 secure development Len Bass
 
10 disaster recovery
10 disaster recovery  10 disaster recovery
10 disaster recovery Len Bass
 
9 postproduction
9 postproduction 9 postproduction
9 postproduction Len Bass
 
8 pipeline
8 pipeline 8 pipeline
8 pipeline Len Bass
 
7 configuration management
7 configuration management 7 configuration management
7 configuration management Len Bass
 
6 microservice architecture
6 microservice architecture6 microservice architecture
6 microservice architectureLen Bass
 
5 infrastructure security
5 infrastructure security5 infrastructure security
5 infrastructure securityLen Bass
 
4 container management
4  container management4  container management
4 container managementLen Bass
 
3 the cloud
3 the cloud 3 the cloud
3 the cloud Len Bass
 
1 virtual machines
1 virtual machines1 virtual machines
1 virtual machinesLen Bass
 
2 networking
2 networking2 networking
2 networkingLen Bass
 
Quantum talk
Quantum talkQuantum talk
Quantum talkLen Bass
 
Icsa2018 blockchain tutorial
Icsa2018 blockchain tutorialIcsa2018 blockchain tutorial
Icsa2018 blockchain tutorialLen Bass
 
Understanding blockchains
Understanding blockchainsUnderstanding blockchains
Understanding blockchainsLen Bass
 
What is a blockchain
What is a blockchainWhat is a blockchain
What is a blockchainLen Bass
 
Architecting for the cloud cloud providers
Architecting for the cloud cloud providersArchitecting for the cloud cloud providers
Architecting for the cloud cloud providersLen Bass
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build testLen Bass
 
Architecting for the cloud map reduce creating
Architecting for the cloud   map reduce creatingArchitecting for the cloud   map reduce creating
Architecting for the cloud map reduce creatingLen Bass
 
Architecting for the cloud storage misc topics
Architecting for the cloud storage misc topicsArchitecting for the cloud storage misc topics
Architecting for the cloud storage misc topicsLen Bass
 
Architecting for the cloud elasticity security
Architecting for the cloud elasticity securityArchitecting for the cloud elasticity security
Architecting for the cloud elasticity securityLen Bass
 

More from Len Bass (20)

11 secure development
11  secure development 11  secure development
11 secure development
 
10 disaster recovery
10 disaster recovery  10 disaster recovery
10 disaster recovery
 
9 postproduction
9 postproduction 9 postproduction
9 postproduction
 
8 pipeline
8 pipeline 8 pipeline
8 pipeline
 
7 configuration management
7 configuration management 7 configuration management
7 configuration management
 
6 microservice architecture
6 microservice architecture6 microservice architecture
6 microservice architecture
 
5 infrastructure security
5 infrastructure security5 infrastructure security
5 infrastructure security
 
4 container management
4  container management4  container management
4 container management
 
3 the cloud
3 the cloud 3 the cloud
3 the cloud
 
1 virtual machines
1 virtual machines1 virtual machines
1 virtual machines
 
2 networking
2 networking2 networking
2 networking
 
Quantum talk
Quantum talkQuantum talk
Quantum talk
 
Icsa2018 blockchain tutorial
Icsa2018 blockchain tutorialIcsa2018 blockchain tutorial
Icsa2018 blockchain tutorial
 
Understanding blockchains
Understanding blockchainsUnderstanding blockchains
Understanding blockchains
 
What is a blockchain
What is a blockchainWhat is a blockchain
What is a blockchain
 
Architecting for the cloud cloud providers
Architecting for the cloud cloud providersArchitecting for the cloud cloud providers
Architecting for the cloud cloud providers
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build test
 
Architecting for the cloud map reduce creating
Architecting for the cloud   map reduce creatingArchitecting for the cloud   map reduce creating
Architecting for the cloud map reduce creating
 
Architecting for the cloud storage misc topics
Architecting for the cloud storage misc topicsArchitecting for the cloud storage misc topics
Architecting for the cloud storage misc topics
 
Architecting for the cloud elasticity security
Architecting for the cloud elasticity securityArchitecting for the cloud elasticity security
Architecting for the cloud elasticity security
 

Recently uploaded

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 

Recently uploaded (20)

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 

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