SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
DevOps for
Software Architects

Len Bass

NICTA Copyright 2012

From imagination to impact
Outline
• What is DevOps?
• What are the implications of DevOps practices
on system structure?
– Team practices.
– Deployment practices.

NICTA Copyright 2012

From imagination to impact

2
What is DevOps?
• “DevOps is a software development method that stresses
communication, collaboration, and integration between software
developers and IT professionals” – Wikipedia
• “DevOps is a new term describing what has also been called “agile
system administration” or “agile operations” joined together with the
values of agile collaboration between development and operations
staff.
Effectively, you can define DevOps as system administrators
participating in an agile development process alongside developers
and using a many of the same agile techniques for their systems
work. “ - http://theagileadmin.com/what-is-devops/

NICTA Copyright 2012

From imagination to impact

3
What is DevOps - 2
• DevOps is accompanied by a certain amount of
mysticism.
– “Be Self-Aware
– Be aware of a project’s maturity
– Be aware of others”
http://architects.dzone.com/articles/zen-and-art-collaborative

• Similar to the early days of agile.

NICTA Copyright 2012

From imagination to impact

4
What problem is DevOps trying to solve?
• Poor communication between developers and
operations personnel
• Slow release schedule
• Limited capacity of operations staff
• Limited organizational insight into operations

NICTA Copyright 2012

From imagination to impact

5
My Take on DevOps
• DevOps is a set of practices intended to
–
–
–
–
–

Reduce management overhead
Speed up deployment
Move some (formerly) IT responsibilities to developers
Increase communication between developers and operations
Reduce operations costs

• These practices have implications on
– Team size, communication, and responsibilities.
– Deployment

• In turn, there are implications for
– System structure

NICTA Copyright 2012

From imagination to impact

6
Outline
• What is DevOps?
• What are the implications of DevOps practices
on system structure?
– Team practices.
– Deployment practices.

NICTA Copyright 2012

From imagination to impact

7
Teams
•
•
•
•

Size/coordination
Responsibilities
Processes/tooling
Structural implications

NICTA Copyright 2012

From imagination to impact

8
Team Size
• Teams are small. Amazon has a “two pizza”
rule.
• It is easy for small teams to have good internal
coordination.
• Small teams mean
–
–
–
–

A lot of teams
Small scope for each team
Short delivery times
Coordination among teams
becomes an issue

NICTA Copyright 2012

From imagination to impact

9
Coordination among teams
• Asynchronous rather than synchronous
– Allows team members to respond when it is
convenient for them
– Avoids time zone coordination

• Persistent and visible
– E-mail is not generally visible to all of the team
– Chat boards, Wikis, issue trackers, comments in code
are all persistent and visible
– Connect a message to something – issue, feature,
person.

NICTA Copyright 2012

From imagination to impact

10
Team Responsibilities with respect to Services
• Requirements are sliced thinly both horizontally (breadth
of requirement) and vertically (decomposition of service
into utilities)
• Each service has an owner (a developer)
• Service owner decides when to deploy service to
production. Deployment done with tooling.
• Deployment may involve use of canaries (discussed with
deployment)
• When a service is deployed, service owner examines
monitoring data and decides when/if to roll back.
• Service owner is called if there is a problem.

NICTA Copyright 2012

From imagination to impact

11
Structural Implications of Team Practices
• Conway’s Law (1968)
– The structure of a system reflects the structure of the
organization that constructed the system.

• DevOps advocates
– Small teams
– Mostly independent teams

• Conway’s Law & many small, mostly
independent teams => Service Oriented
Architecture with
– Many services with small scope of each service
– Loose coupling between services
NICTA Copyright 2012

From imagination to impact

12
Outline
• What is DevOps?
• What are the implications of DevOps practices
on system structure?
– Team practices.
– Deployment practices.

NICTA Copyright 2012

From imagination to impact

13
Deployment Practices
• Deployment can be either an initial deployment
or an upgrade of an existing system.
• We will discuss
– Upgrade
– Continuous deployment
– Roll back

NICTA Copyright 2012

From imagination to impact

14
Deployment tools
• Have “recipes” for standard configurations
• Moving outside standard configurations may
introduce errors
• Recipes managed by DevOps group
• Configuration specification is version controlled
• Leads to “scripts are code too” mentality
– Development
– Staging
– Deployment

• Goal is to support developer’s ability to
automatically deploy
NICTA Copyright 2012

From imagination to impact

15
Upgrade
• How many at once?
– One at a time (rolling upgrade)
– Groups at a time (staged upgrade, e.g. canaries)
– All at once (big flip)

• Big flip requires double the number of resources.
Infeasible in environment that uses large
numbers of resources.
• Standard practice is rolling upgrade, possibly
with canaries.

NICTA Copyright 2012

From imagination to impact

16
Rolling Upgrade Process
• Suppose there are 100s or 1000s of
instances of an application running in the
cloud.
• Then it is too expensive to make a copy
of a new version while leaving the old
version running with all of its instances.
• The solution is to install the new version
on one server at a time – called a rolling
upgrade
• Figure on the right is an example of a
process for a rolling upgrade.
• This process is implemented by a
deployment tool.

Update Auto Scaling
Group
Sort Instances
Confirm Upgrade Spec

Remove & Deregister
Old Instance from ELB

Terminate Old
Instance

Wait for ASG to Start
New Instance

Register New Instance
with ELB

NICTA Copyright 2012

From imagination to impact

17
Upgrading a service within the service hierarchy
Suppose we are doing a rolling upgrade at Service
level N+1
Version B assumes new features from Service level
N+2
Service
level N

Service
level N+1
(A)

Service
level N+2

NICTA Copyright 2012

Service
level N+2

From imagination to impact

Service
level N+1
(B)

Service
level N+1
(B)

Service
level N+2

Service
level N+2

18
Staging Upgrades
• Service level N+2 must be activated before
activating service level N+1.
• Distinction between upgrading and activating.
Upgrades can occur at any time as long as they
are not activated.
• Structural implication
– Upgrades can be activated through software
switches. Could use Zookeeper for coordinating
active versions.
– Activates all of the instances at (essentially) same
time.

NICTA Copyright 2012

From imagination to impact

19
Upgrades can fail
• Functionally incorrect
• Incompatibility with other portions of the
application or infrastructure
• Resource limitations
• Configuration inconsistency

NICTA Copyright 2012

From imagination to impact

20
After failure is detected
• Turn off new features in level N+1 and its clients
(level N).
• May need to propagate to top of hierarchy.

• Structural implications
• Features are software switchable
• Require all versions to be backward compatible with previous
versions. If new version on level N+1 is switched off, do not need
to worry about level N+2.

NICTA Copyright 2012

From imagination to impact

21
Canaries
• Canaries are a small number of new versions in order to
perform live testing in a production environment.
• A/B testing is similar to canaries in that A/B testing
compares two proposed new interfaces. Different in that
canaries test new functionality.

NICTA Copyright 2012

From imagination to impact

22
Canary Issues
• Canaries are a form of live testing. Put a new
version into limited production to test its
correctness.
• Issues
– How long are new versions tested
to determine correctness?
• Period based – for some period of time
• Load based – under some utilization assumptions
• Result based – until some criteria is met

– How are clients of new version chosen and how is
this choice enforced?

NICTA Copyright 2012

From imagination to impact

23
Continuous Deployment
• Puts deployment decisions into developers hands.
• May mean simultaneous deployment from independent
teams. Some organizations report dozens of
deployments a day.
• Deployment tool must set configuration information e.g.,
in Zookeeper, so that services know what features are
currently active.

NICTA Copyright 2012

From imagination to impact

24
Structural Implications of Continuous
Deployment
• Packaging
• Maintaining Backward Compatibility

NICTA Copyright 2012

From imagination to impact

25
Packaging
• Two dimensions
– Flat vs deep service hierarchy
– One service per virtual machine vs many services per
virtual machine

NICTA Copyright 2012

From imagination to impact

26
Flat vs Deep Service Hierarchy
• Trading off independence of teams and
possibilities for reuse.
• Flat Service Hierarchy
– Limited dependence among services & limited
coordination needed among teams
– Difficult to reuse services

• Deep Service Hierarchy
– Provides possibility for reusing services
– Requires coordination among teams to discover
reuse possibilities.

NICTA Copyright 2012

From imagination to impact

27
Services per VM Image
One service per VM
VM image

Service
Develop

Embed

Multiple services per VM
Develop

Service
1

Embed
VM image

Develop

NICTA Copyright 2012

Service
2

From imagination to impact

Embed

28
One Possible Race Condition with Multiple
Services per VM
Initial State: VM image with Version N of Service 1 and Version N of Service 2
Developer 1

Developer 2

TIME

Build new image with VN+1|VN
Begin provisioning
process with new image

Build new image with VN|VN+1

Begin provisioning
process with new image
without new version of
Service 1

Results in Version N+1 of Service 1 not being
updated until next build of VM image
Could be prevented by VM image build tool
NICTA Copyright 2012

From imagination to impact

29
Another Possible Race Condition with Multiple
Services per VM
Initial State: VM image with Version N of Service 1 and Version N of Service 2
Developer 1

Developer 2

TIME
Build new image with VN+1|VN
Build new image with VN+1|VN+1

Begin provisioning
process with new image
overwrites image
created by developer 2

Begin provisioning
process with new image

Results in Version N+1 of Service 2 not being
updated until next build of VM image
Could be prevented by provisioning tool
NICTA Copyright 2012

From imagination to impact

30
Trade offs
• One service per VM
– Message from one service to another must go
through inter VM communication mechanism – adds
latency
– No possibility of race condition

• Multiple Services per VM
– Inter VM communication requirements reduced –
reduces latency
– Adds possibility of race condition caused by
simultaneous deployment

NICTA Copyright 2012

From imagination to impact

31
Motivating Backward Compatibility
• New version of a service may be introduced at
any time
• Existing clients of that service should not have to
be changed
• Require APIs and DB schemas to be backward
compatible.

NICTA Copyright 2012

From imagination to impact

32
Achieving Backwards Compatibility
• APIs and DB schemas can be extended but
must always be backward compatible.
• Leads to a translation layer
Client

Client

External APIs (unchanging but with ability to extend
or add new ones)

Translation to internal APIs
Internal APIs (changes require changes to
translation layer but do not propagate further)

NICTA Copyright 2012

From imagination to impact
Summary
• DevOps is a collection of practices that have
implications on system structure.
– These practices can be categorized into
• Team practices
• Deployment practices

• Some structural implications are
– Loosely coupled systems with deep hierarchy of
services
– Version aware
– Backward compatible
– Packaging services per VM

NICTA Copyright 2012

From imagination to impact

34

Weitere ähnliche Inhalte

Was ist angesagt?

DevOps Operations Challenges
DevOps Operations ChallengesDevOps Operations Challenges
DevOps Operations ChallengesVijaya K
 
DevOps Challenges and Best Practices
DevOps Challenges and Best PracticesDevOps Challenges and Best Practices
DevOps Challenges and Best PracticesBrian Chorba
 
DevOps for Network Engineers
DevOps for Network EngineersDevOps for Network Engineers
DevOps for Network Engineersstefan vallin
 
Implementing DevOps In Practice
Implementing DevOps In PracticeImplementing DevOps In Practice
Implementing DevOps In PracticeZoltán Németh
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous DeliveryNetcetera
 
Common Challenges in DevOps Change Management
Common Challenges in DevOps Change ManagementCommon Challenges in DevOps Change Management
Common Challenges in DevOps Change ManagementMatt Ray
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introductionSridhara T V
 
DevOps in Practice
DevOps in PracticeDevOps in Practice
DevOps in PracticeDerek Chen
 
DevOps overview 2019-04-13 Nelkinda April Meetup
DevOps overview  2019-04-13 Nelkinda April MeetupDevOps overview  2019-04-13 Nelkinda April Meetup
DevOps overview 2019-04-13 Nelkinda April MeetupShweta Sadawarte
 
Shift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production FailureShift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production FailureIBM UrbanCode Products
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training pptKhalidQureshi31
 
Summit 2013 spring rob hirschfeld migrations v1
Summit 2013 spring rob hirschfeld migrations v1Summit 2013 spring rob hirschfeld migrations v1
Summit 2013 spring rob hirschfeld migrations v1rhirschfeld
 
Managing IT environment complexity in a Multi-Cloud World
Managing IT environment complexity in a Multi-Cloud WorldManaging IT environment complexity in a Multi-Cloud World
Managing IT environment complexity in a Multi-Cloud WorldShashi Kiran
 
Webinar on "DevOps LifeCycle and SCM using common Git commands for version co...
Webinar on "DevOps LifeCycle and SCM using common Git commands for version co...Webinar on "DevOps LifeCycle and SCM using common Git commands for version co...
Webinar on "DevOps LifeCycle and SCM using common Git commands for version co...Agile Testing Alliance
 
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Simplilearn
 
Continuous Database Delivery - 7/12/2018
Continuous Database Delivery - 7/12/2018Continuous Database Delivery - 7/12/2018
Continuous Database Delivery - 7/12/2018David P. Moore
 
A proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversionA proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversionCollabNet
 
DevOps and the Future of IT Operations
DevOps and the Future of IT OperationsDevOps and the Future of IT Operations
DevOps and the Future of IT OperationsCorrelsense
 

Was ist angesagt? (20)

DevOps Operations Challenges
DevOps Operations ChallengesDevOps Operations Challenges
DevOps Operations Challenges
 
DevOps Challenges and Best Practices
DevOps Challenges and Best PracticesDevOps Challenges and Best Practices
DevOps Challenges and Best Practices
 
Continuous Delivery Maturity Model
Continuous Delivery Maturity ModelContinuous Delivery Maturity Model
Continuous Delivery Maturity Model
 
DevOps for Network Engineers
DevOps for Network EngineersDevOps for Network Engineers
DevOps for Network Engineers
 
Implementing DevOps In Practice
Implementing DevOps In PracticeImplementing DevOps In Practice
Implementing DevOps In Practice
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Common Challenges in DevOps Change Management
Common Challenges in DevOps Change ManagementCommon Challenges in DevOps Change Management
Common Challenges in DevOps Change Management
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
DevOps in Practice
DevOps in PracticeDevOps in Practice
DevOps in Practice
 
DevOps overview 2019-04-13 Nelkinda April Meetup
DevOps overview  2019-04-13 Nelkinda April MeetupDevOps overview  2019-04-13 Nelkinda April Meetup
DevOps overview 2019-04-13 Nelkinda April Meetup
 
Shift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production FailureShift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production Failure
 
Microservice's in detailed
Microservice's in detailedMicroservice's in detailed
Microservice's in detailed
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training ppt
 
Summit 2013 spring rob hirschfeld migrations v1
Summit 2013 spring rob hirschfeld migrations v1Summit 2013 spring rob hirschfeld migrations v1
Summit 2013 spring rob hirschfeld migrations v1
 
Managing IT environment complexity in a Multi-Cloud World
Managing IT environment complexity in a Multi-Cloud WorldManaging IT environment complexity in a Multi-Cloud World
Managing IT environment complexity in a Multi-Cloud World
 
Webinar on "DevOps LifeCycle and SCM using common Git commands for version co...
Webinar on "DevOps LifeCycle and SCM using common Git commands for version co...Webinar on "DevOps LifeCycle and SCM using common Git commands for version co...
Webinar on "DevOps LifeCycle and SCM using common Git commands for version co...
 
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
 
Continuous Database Delivery - 7/12/2018
Continuous Database Delivery - 7/12/2018Continuous Database Delivery - 7/12/2018
Continuous Database Delivery - 7/12/2018
 
A proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversionA proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversion
 
DevOps and the Future of IT Operations
DevOps and the Future of IT OperationsDevOps and the Future of IT Operations
DevOps and the Future of IT Operations
 

Ähnlich wie Dev ops for software architects

Deployability
DeployabilityDeployability
DeployabilityLen Bass
 
Introduction to dev ops
Introduction to dev opsIntroduction to dev ops
Introduction to dev opsLen Bass
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
The Hiscox DevOps journey @ IBM InterConnect, Las Vegas
The Hiscox DevOps journey @ IBM InterConnect, Las VegasThe Hiscox DevOps journey @ IBM InterConnect, Las Vegas
The Hiscox DevOps journey @ IBM InterConnect, Las VegasJonathan Fletcher
 
DevOps Culture transformation in Modern Software Delivery
DevOps Culture transformation in Modern Software DeliveryDevOps Culture transformation in Modern Software Delivery
DevOps Culture transformation in Modern Software DeliveryNajib Radzuan
 
Are your DevOps and Security teams friends or foes?
Are your DevOps and Security teams friends or foes?Are your DevOps and Security teams friends or foes?
Are your DevOps and Security teams friends or foes?Reuven Harrison
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineDevOps.com
 
Build 12-Factor apps with Docker
Build 12-Factor apps with DockerBuild 12-Factor apps with Docker
Build 12-Factor apps with DockerJohn Zaccone
 
Introduction to DevOps slides-converted (1).pptx
Introduction to DevOps slides-converted (1).pptxIntroduction to DevOps slides-converted (1).pptx
Introduction to DevOps slides-converted (1).pptxaasssss1
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.PLovababu
 
Rising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOpsRising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOpsIBM UrbanCode Products
 
DevOps and Microservice
DevOps and MicroserviceDevOps and Microservice
DevOps and MicroserviceInho Kang
 
Architectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale SystemsArchitectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale SystemsLen Bass
 
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_custdennisn129
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1Rupesh Vaishnav
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1G R VISHAL
 
Federating Subversion and Git
Federating Subversion and GitFederating Subversion and Git
Federating Subversion and GitCollabNet
 
Diving Into Docker
Diving Into Docker Diving Into Docker
Diving Into Docker XebiaLabs
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices M A Hossain Tonu
 

Ähnlich wie Dev ops for software architects (20)

Deployability
DeployabilityDeployability
Deployability
 
Introduction to dev ops
Introduction to dev opsIntroduction to dev ops
Introduction to dev ops
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
The Hiscox DevOps journey @ IBM InterConnect, Las Vegas
The Hiscox DevOps journey @ IBM InterConnect, Las VegasThe Hiscox DevOps journey @ IBM InterConnect, Las Vegas
The Hiscox DevOps journey @ IBM InterConnect, Las Vegas
 
DevOps Culture transformation in Modern Software Delivery
DevOps Culture transformation in Modern Software DeliveryDevOps Culture transformation in Modern Software Delivery
DevOps Culture transformation in Modern Software Delivery
 
Are your DevOps and Security teams friends or foes?
Are your DevOps and Security teams friends or foes?Are your DevOps and Security teams friends or foes?
Are your DevOps and Security teams friends or foes?
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
 
Build 12-Factor apps with Docker
Build 12-Factor apps with DockerBuild 12-Factor apps with Docker
Build 12-Factor apps with Docker
 
Introduction to DevOps slides-converted (1).pptx
Introduction to DevOps slides-converted (1).pptxIntroduction to DevOps slides-converted (1).pptx
Introduction to DevOps slides-converted (1).pptx
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
Rising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOpsRising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOps
 
DevOps and Microservice
DevOps and MicroserviceDevOps and Microservice
DevOps and Microservice
 
Architectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale SystemsArchitectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale Systems
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1
 
Federating Subversion and Git
Federating Subversion and GitFederating Subversion and Git
Federating Subversion and Git
 
Diving Into Docker
Diving Into Docker Diving Into Docker
Diving Into Docker
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 

Mehr von Len Bass

Devops syllabus
Devops syllabusDevops syllabus
Devops syllabusLen Bass
 
DevOps Syllabus summer 2020
DevOps Syllabus summer 2020DevOps Syllabus summer 2020
DevOps Syllabus summer 2020Len 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
 
Experience in teaching devops
Experience in teaching devopsExperience in teaching devops
Experience in teaching devopsLen 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
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systemsLen Bass
 
My first deployment pipeline
My first deployment pipelineMy first deployment pipeline
My first deployment pipelineLen Bass
 

Mehr von Len Bass (20)

Devops syllabus
Devops syllabusDevops syllabus
Devops syllabus
 
DevOps Syllabus summer 2020
DevOps Syllabus summer 2020DevOps Syllabus summer 2020
DevOps Syllabus summer 2020
 
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
 
Experience in teaching devops
Experience in teaching devopsExperience in teaching devops
Experience in teaching devops
 
Understanding blockchains
Understanding blockchainsUnderstanding blockchains
Understanding blockchains
 
What is a blockchain
What is a blockchainWhat is a blockchain
What is a blockchain
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systems
 
My first deployment pipeline
My first deployment pipelineMy first deployment pipeline
My first deployment pipeline
 

Kürzlich hochgeladen

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 

Kürzlich hochgeladen (20)

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 

Dev ops for software architects

  • 1. DevOps for Software Architects Len Bass NICTA Copyright 2012 From imagination to impact
  • 2. Outline • What is DevOps? • What are the implications of DevOps practices on system structure? – Team practices. – Deployment practices. NICTA Copyright 2012 From imagination to impact 2
  • 3. What is DevOps? • “DevOps is a software development method that stresses communication, collaboration, and integration between software developers and IT professionals” – Wikipedia • “DevOps is a new term describing what has also been called “agile system administration” or “agile operations” joined together with the values of agile collaboration between development and operations staff. Effectively, you can define DevOps as system administrators participating in an agile development process alongside developers and using a many of the same agile techniques for their systems work. “ - http://theagileadmin.com/what-is-devops/ NICTA Copyright 2012 From imagination to impact 3
  • 4. What is DevOps - 2 • DevOps is accompanied by a certain amount of mysticism. – “Be Self-Aware – Be aware of a project’s maturity – Be aware of others” http://architects.dzone.com/articles/zen-and-art-collaborative • Similar to the early days of agile. NICTA Copyright 2012 From imagination to impact 4
  • 5. What problem is DevOps trying to solve? • Poor communication between developers and operations personnel • Slow release schedule • Limited capacity of operations staff • Limited organizational insight into operations NICTA Copyright 2012 From imagination to impact 5
  • 6. My Take on DevOps • DevOps is a set of practices intended to – – – – – Reduce management overhead Speed up deployment Move some (formerly) IT responsibilities to developers Increase communication between developers and operations Reduce operations costs • These practices have implications on – Team size, communication, and responsibilities. – Deployment • In turn, there are implications for – System structure NICTA Copyright 2012 From imagination to impact 6
  • 7. Outline • What is DevOps? • What are the implications of DevOps practices on system structure? – Team practices. – Deployment practices. NICTA Copyright 2012 From imagination to impact 7
  • 9. Team Size • Teams are small. Amazon has a “two pizza” rule. • It is easy for small teams to have good internal coordination. • Small teams mean – – – – A lot of teams Small scope for each team Short delivery times Coordination among teams becomes an issue NICTA Copyright 2012 From imagination to impact 9
  • 10. Coordination among teams • Asynchronous rather than synchronous – Allows team members to respond when it is convenient for them – Avoids time zone coordination • Persistent and visible – E-mail is not generally visible to all of the team – Chat boards, Wikis, issue trackers, comments in code are all persistent and visible – Connect a message to something – issue, feature, person. NICTA Copyright 2012 From imagination to impact 10
  • 11. Team Responsibilities with respect to Services • Requirements are sliced thinly both horizontally (breadth of requirement) and vertically (decomposition of service into utilities) • Each service has an owner (a developer) • Service owner decides when to deploy service to production. Deployment done with tooling. • Deployment may involve use of canaries (discussed with deployment) • When a service is deployed, service owner examines monitoring data and decides when/if to roll back. • Service owner is called if there is a problem. NICTA Copyright 2012 From imagination to impact 11
  • 12. Structural Implications of Team Practices • Conway’s Law (1968) – The structure of a system reflects the structure of the organization that constructed the system. • DevOps advocates – Small teams – Mostly independent teams • Conway’s Law & many small, mostly independent teams => Service Oriented Architecture with – Many services with small scope of each service – Loose coupling between services NICTA Copyright 2012 From imagination to impact 12
  • 13. Outline • What is DevOps? • What are the implications of DevOps practices on system structure? – Team practices. – Deployment practices. NICTA Copyright 2012 From imagination to impact 13
  • 14. Deployment Practices • Deployment can be either an initial deployment or an upgrade of an existing system. • We will discuss – Upgrade – Continuous deployment – Roll back NICTA Copyright 2012 From imagination to impact 14
  • 15. Deployment tools • Have “recipes” for standard configurations • Moving outside standard configurations may introduce errors • Recipes managed by DevOps group • Configuration specification is version controlled • Leads to “scripts are code too” mentality – Development – Staging – Deployment • Goal is to support developer’s ability to automatically deploy NICTA Copyright 2012 From imagination to impact 15
  • 16. Upgrade • How many at once? – One at a time (rolling upgrade) – Groups at a time (staged upgrade, e.g. canaries) – All at once (big flip) • Big flip requires double the number of resources. Infeasible in environment that uses large numbers of resources. • Standard practice is rolling upgrade, possibly with canaries. NICTA Copyright 2012 From imagination to impact 16
  • 17. Rolling Upgrade Process • Suppose there are 100s or 1000s of instances of an application running in the cloud. • Then it is too expensive to make a copy of a new version while leaving the old version running with all of its instances. • The solution is to install the new version on one server at a time – called a rolling upgrade • Figure on the right is an example of a process for a rolling upgrade. • This process is implemented by a deployment tool. Update Auto Scaling Group Sort Instances Confirm Upgrade Spec Remove & Deregister Old Instance from ELB Terminate Old Instance Wait for ASG to Start New Instance Register New Instance with ELB NICTA Copyright 2012 From imagination to impact 17
  • 18. Upgrading a service within the service hierarchy Suppose we are doing a rolling upgrade at Service level N+1 Version B assumes new features from Service level N+2 Service level N Service level N+1 (A) Service level N+2 NICTA Copyright 2012 Service level N+2 From imagination to impact Service level N+1 (B) Service level N+1 (B) Service level N+2 Service level N+2 18
  • 19. Staging Upgrades • Service level N+2 must be activated before activating service level N+1. • Distinction between upgrading and activating. Upgrades can occur at any time as long as they are not activated. • Structural implication – Upgrades can be activated through software switches. Could use Zookeeper for coordinating active versions. – Activates all of the instances at (essentially) same time. NICTA Copyright 2012 From imagination to impact 19
  • 20. Upgrades can fail • Functionally incorrect • Incompatibility with other portions of the application or infrastructure • Resource limitations • Configuration inconsistency NICTA Copyright 2012 From imagination to impact 20
  • 21. After failure is detected • Turn off new features in level N+1 and its clients (level N). • May need to propagate to top of hierarchy. • Structural implications • Features are software switchable • Require all versions to be backward compatible with previous versions. If new version on level N+1 is switched off, do not need to worry about level N+2. NICTA Copyright 2012 From imagination to impact 21
  • 22. Canaries • Canaries are a small number of new versions in order to perform live testing in a production environment. • A/B testing is similar to canaries in that A/B testing compares two proposed new interfaces. Different in that canaries test new functionality. NICTA Copyright 2012 From imagination to impact 22
  • 23. Canary Issues • Canaries are a form of live testing. Put a new version into limited production to test its correctness. • Issues – How long are new versions tested to determine correctness? • Period based – for some period of time • Load based – under some utilization assumptions • Result based – until some criteria is met – How are clients of new version chosen and how is this choice enforced? NICTA Copyright 2012 From imagination to impact 23
  • 24. Continuous Deployment • Puts deployment decisions into developers hands. • May mean simultaneous deployment from independent teams. Some organizations report dozens of deployments a day. • Deployment tool must set configuration information e.g., in Zookeeper, so that services know what features are currently active. NICTA Copyright 2012 From imagination to impact 24
  • 25. Structural Implications of Continuous Deployment • Packaging • Maintaining Backward Compatibility NICTA Copyright 2012 From imagination to impact 25
  • 26. Packaging • Two dimensions – Flat vs deep service hierarchy – One service per virtual machine vs many services per virtual machine NICTA Copyright 2012 From imagination to impact 26
  • 27. Flat vs Deep Service Hierarchy • Trading off independence of teams and possibilities for reuse. • Flat Service Hierarchy – Limited dependence among services & limited coordination needed among teams – Difficult to reuse services • Deep Service Hierarchy – Provides possibility for reusing services – Requires coordination among teams to discover reuse possibilities. NICTA Copyright 2012 From imagination to impact 27
  • 28. Services per VM Image One service per VM VM image Service Develop Embed Multiple services per VM Develop Service 1 Embed VM image Develop NICTA Copyright 2012 Service 2 From imagination to impact Embed 28
  • 29. One Possible Race Condition with Multiple Services per VM Initial State: VM image with Version N of Service 1 and Version N of Service 2 Developer 1 Developer 2 TIME Build new image with VN+1|VN Begin provisioning process with new image Build new image with VN|VN+1 Begin provisioning process with new image without new version of Service 1 Results in Version N+1 of Service 1 not being updated until next build of VM image Could be prevented by VM image build tool NICTA Copyright 2012 From imagination to impact 29
  • 30. Another Possible Race Condition with Multiple Services per VM Initial State: VM image with Version N of Service 1 and Version N of Service 2 Developer 1 Developer 2 TIME Build new image with VN+1|VN Build new image with VN+1|VN+1 Begin provisioning process with new image overwrites image created by developer 2 Begin provisioning process with new image Results in Version N+1 of Service 2 not being updated until next build of VM image Could be prevented by provisioning tool NICTA Copyright 2012 From imagination to impact 30
  • 31. Trade offs • One service per VM – Message from one service to another must go through inter VM communication mechanism – adds latency – No possibility of race condition • Multiple Services per VM – Inter VM communication requirements reduced – reduces latency – Adds possibility of race condition caused by simultaneous deployment NICTA Copyright 2012 From imagination to impact 31
  • 32. Motivating Backward Compatibility • New version of a service may be introduced at any time • Existing clients of that service should not have to be changed • Require APIs and DB schemas to be backward compatible. NICTA Copyright 2012 From imagination to impact 32
  • 33. Achieving Backwards Compatibility • APIs and DB schemas can be extended but must always be backward compatible. • Leads to a translation layer Client Client External APIs (unchanging but with ability to extend or add new ones) Translation to internal APIs Internal APIs (changes require changes to translation layer but do not propagate further) NICTA Copyright 2012 From imagination to impact
  • 34. Summary • DevOps is a collection of practices that have implications on system structure. – These practices can be categorized into • Team practices • Deployment practices • Some structural implications are – Loosely coupled systems with deep hierarchy of services – Version aware – Backward compatible – Packaging services per VM NICTA Copyright 2012 From imagination to impact 34