SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus de 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
 

Dernier

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
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
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
 
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
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
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
 
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
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 

Dernier (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
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.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
 
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
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
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
 
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
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 

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