SlideShare une entreprise Scribd logo
1  sur  15
NICTA Copyright 2012 From imagination to impact
Architecture
Patterns for
Continuous
Deployment
Len Bass
NICTA Copyright 2012 From imagination to impact
Motivating Scenario
• You are an architect and your organization has
decided to adopt continuous deployment.
• What changes do you need to make to your
system to support this decision?
– Overall structure
– Packaging
– Maintaining backward compatibility
– Version awareness
2
NICTA Copyright 2012 From imagination to impact
Overall Structure
• Conway’s Law (1968)
– The structure of a system reflects the structure of the
organization that constructed the system.
• Continuous Deployment 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
3
NICTA Copyright 2012 From imagination to impact
Packaging
• Two dimensions
– Flat vs deep service hierarchy
– One service per virtual machine vs many services per
virtual machine
4
NICTA Copyright 2012 From imagination to impact
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.
5
NICTA Copyright 2012 From imagination to impact
Services per VM Image
6
Service
1
Service
2
VM image
Develop
Develop
Embed
Embed
One service per VM
Service VM image
Develop Embed
Multiple services per VM
NICTA Copyright 2012 From imagination to impact
One Possible Race Condition with Multiple
Services per VM
7
TIME
Initial State: VM image with Version N of Service 1 and Version N of Service 2
Developer 1
Build new image with VN+1|VN
Begin provisioning
process with new image
Developer 2
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
Another Possible Race Condition with Multiple
Services per VM
8
TIME
Initial State: VM image with Version N of Service 1 and Version N of Service 2
Developer 1
Build new image with VN+1|VN
Begin provisioning
process with new image
overwrites image
created by developer 2
Developer 2
Build new image with VN+1|VN+1
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
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
9
NICTA Copyright 2012 From imagination to impact
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.
10
NICTA Copyright 2012 From imagination to impact
Achieving Backwards Compatibility
• APIs and DB schemas can be extended but
must always be backward compatible.
• Leads to a translation layer
External APIs (unchanging but with ability to extend
or add new ones)
Translation to internal APIs
Client Client
Internal APIs (changes require changes to
translation layer but do not propagate further)
NICTA Copyright 2012 From imagination to impact
Upgrading a Service Within the Service Hierarchy
Service
level N
Service
level N+1
(A)
Service
level N+2
Service
level N+2
Service
level N+1
(B)
Service
level N+2
Service
level N+1
(B)
Service
level N+2
12
Suppose we are doing a rolling upgrade at Service
level N+1
Version B assumes new features from Service level
N+2
NICTA Copyright 2012 From imagination to impact
Version Awareness
• Version B at Service level N+1 cannot utilize
new features until appropriate services at
Service level N+2 have been activated.
• If services are version aware, they can decide
whether to use new features depending on
current state of the next service level.
– Distinction between upgrading and activating.
Upgrades can occur at any time as long as they are
not activated.
13
NICTA Copyright 2012 From imagination to impact
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.
• Upgrades could also be switched off in the event
of a rollback
14
NICTA Copyright 2012 From imagination to impact
Summary
• Continuous Deployment has implications on
system structure
• These implications come from
– Team size
– Packaging decisions
– Maintaining backward compatibility
– Necessity for version awareness
• Food for Thought – “architecture patterns” is not
quite the right title since we are discussing
situations involving process, tools, and
architecture.
15

Contenu connexe

Similaire à Architecture patterns for continuous deployment

Architectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale SystemsArchitectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale SystemsLen Bass
 
Deployability
DeployabilityDeployability
DeployabilityLen Bass
 
Devops - Microservice and Kubernetes
Devops - Microservice and KubernetesDevops - Microservice and Kubernetes
Devops - Microservice and KubernetesNodeXperts
 
Delivering Microservices in a Hybrid Environment
Delivering Microservices in a Hybrid EnvironmentDelivering Microservices in a Hybrid Environment
Delivering Microservices in a Hybrid EnvironmentXebiaLabs
 
The Future of Serverless
The Future of ServerlessThe Future of Serverless
The Future of ServerlessWSO2
 
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
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupMatt Ray
 
Synergy 2015 Session Slides: SYN320 Never Let Me Down Again - The Future of X...
Synergy 2015 Session Slides: SYN320 Never Let Me Down Again - The Future of X...Synergy 2015 Session Slides: SYN320 Never Let Me Down Again - The Future of X...
Synergy 2015 Session Slides: SYN320 Never Let Me Down Again - The Future of X...Citrix
 
OpenStack at NTT Resonant: Lessons Learned in Web Infrastructure
OpenStack at NTT Resonant: Lessons Learned in Web InfrastructureOpenStack at NTT Resonant: Lessons Learned in Web Infrastructure
OpenStack at NTT Resonant: Lessons Learned in Web InfrastructureTomoya Hashimoto
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
Monitoring Service Levels With System Center Operations Manager 2007 R2
Monitoring Service Levels With System Center Operations Manager 2007 R2Monitoring Service Levels With System Center Operations Manager 2007 R2
Monitoring Service Levels With System Center Operations Manager 2007 R2rsnarayanan
 
Managing multi-version applications in cics
Managing multi-version applications in cicsManaging multi-version applications in cics
Managing multi-version applications in cicsMatthew Webster
 
Nasscom Presentation Microservices Database Architecture By Tudip
Nasscom Presentation  Microservices Database Architecture By TudipNasscom Presentation  Microservices Database Architecture By Tudip
Nasscom Presentation Microservices Database Architecture By TudipArti Kadu
 
EPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architectureEPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architectureKatherine Golovinova
 
Ensemble Launches Major Upgrade to NFV Platform
Ensemble Launches Major Upgrade to NFV PlatformEnsemble Launches Major Upgrade to NFV Platform
Ensemble Launches Major Upgrade to NFV PlatformADVA
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumRick Hightower
 
Migrating to Windows 7 or 8 with Lenovo's Deployment Optimization Solutions
Migrating to Windows 7 or 8 with Lenovo's Deployment Optimization SolutionsMigrating to Windows 7 or 8 with Lenovo's Deployment Optimization Solutions
Migrating to Windows 7 or 8 with Lenovo's Deployment Optimization SolutionsLenovo Business
 
Net-Ace - Vendor-Agnostic Service Orchestration platform
Net-Ace - Vendor-Agnostic Service Orchestration platformNet-Ace - Vendor-Agnostic Service Orchestration platform
Net-Ace - Vendor-Agnostic Service Orchestration platformyurid79
 
The Weather Channel
The Weather ChannelThe Weather Channel
The Weather ChannelSwitchPitch
 

Similaire à Architecture patterns for continuous deployment (20)

Architectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale SystemsArchitectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale Systems
 
Deployability
DeployabilityDeployability
Deployability
 
Devops - Microservice and Kubernetes
Devops - Microservice and KubernetesDevops - Microservice and Kubernetes
Devops - Microservice and Kubernetes
 
Delivering Microservices in a Hybrid Environment
Delivering Microservices in a Hybrid EnvironmentDelivering Microservices in a Hybrid Environment
Delivering Microservices in a Hybrid Environment
 
The Future of Serverless
The Future of ServerlessThe Future of Serverless
The Future of Serverless
 
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
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
 
Synergy 2015 Session Slides: SYN320 Never Let Me Down Again - The Future of X...
Synergy 2015 Session Slides: SYN320 Never Let Me Down Again - The Future of X...Synergy 2015 Session Slides: SYN320 Never Let Me Down Again - The Future of X...
Synergy 2015 Session Slides: SYN320 Never Let Me Down Again - The Future of X...
 
OpenStack at NTT Resonant: Lessons Learned in Web Infrastructure
OpenStack at NTT Resonant: Lessons Learned in Web InfrastructureOpenStack at NTT Resonant: Lessons Learned in Web Infrastructure
OpenStack at NTT Resonant: Lessons Learned in Web Infrastructure
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
Monitoring Service Levels With System Center Operations Manager 2007 R2
Monitoring Service Levels With System Center Operations Manager 2007 R2Monitoring Service Levels With System Center Operations Manager 2007 R2
Monitoring Service Levels With System Center Operations Manager 2007 R2
 
Managing multi-version applications in cics
Managing multi-version applications in cicsManaging multi-version applications in cics
Managing multi-version applications in cics
 
Nasscom Presentation Microservices Database Architecture By Tudip
Nasscom Presentation  Microservices Database Architecture By TudipNasscom Presentation  Microservices Database Architecture By Tudip
Nasscom Presentation Microservices Database Architecture By Tudip
 
Network Virtualization - Benefits and Challenges
Network Virtualization - Benefits and ChallengesNetwork Virtualization - Benefits and Challenges
Network Virtualization - Benefits and Challenges
 
EPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architectureEPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architecture
 
Ensemble Launches Major Upgrade to NFV Platform
Ensemble Launches Major Upgrade to NFV PlatformEnsemble Launches Major Upgrade to NFV Platform
Ensemble Launches Major Upgrade to NFV Platform
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
 
Migrating to Windows 7 or 8 with Lenovo's Deployment Optimization Solutions
Migrating to Windows 7 or 8 with Lenovo's Deployment Optimization SolutionsMigrating to Windows 7 or 8 with Lenovo's Deployment Optimization Solutions
Migrating to Windows 7 or 8 with Lenovo's Deployment Optimization Solutions
 
Net-Ace - Vendor-Agnostic Service Orchestration platform
Net-Ace - Vendor-Agnostic Service Orchestration platformNet-Ace - Vendor-Agnostic Service Orchestration platform
Net-Ace - Vendor-Agnostic Service Orchestration platform
 
The Weather Channel
The Weather ChannelThe Weather Channel
The Weather Channel
 

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

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Dernier (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Architecture patterns for continuous deployment

  • 1. NICTA Copyright 2012 From imagination to impact Architecture Patterns for Continuous Deployment Len Bass
  • 2. NICTA Copyright 2012 From imagination to impact Motivating Scenario • You are an architect and your organization has decided to adopt continuous deployment. • What changes do you need to make to your system to support this decision? – Overall structure – Packaging – Maintaining backward compatibility – Version awareness 2
  • 3. NICTA Copyright 2012 From imagination to impact Overall Structure • Conway’s Law (1968) – The structure of a system reflects the structure of the organization that constructed the system. • Continuous Deployment 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 3
  • 4. NICTA Copyright 2012 From imagination to impact Packaging • Two dimensions – Flat vs deep service hierarchy – One service per virtual machine vs many services per virtual machine 4
  • 5. NICTA Copyright 2012 From imagination to impact 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. 5
  • 6. NICTA Copyright 2012 From imagination to impact Services per VM Image 6 Service 1 Service 2 VM image Develop Develop Embed Embed One service per VM Service VM image Develop Embed Multiple services per VM
  • 7. NICTA Copyright 2012 From imagination to impact One Possible Race Condition with Multiple Services per VM 7 TIME Initial State: VM image with Version N of Service 1 and Version N of Service 2 Developer 1 Build new image with VN+1|VN Begin provisioning process with new image Developer 2 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
  • 8. NICTA Copyright 2012 From imagination to impact Another Possible Race Condition with Multiple Services per VM 8 TIME Initial State: VM image with Version N of Service 1 and Version N of Service 2 Developer 1 Build new image with VN+1|VN Begin provisioning process with new image overwrites image created by developer 2 Developer 2 Build new image with VN+1|VN+1 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
  • 9. NICTA Copyright 2012 From imagination to impact 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 9
  • 10. NICTA Copyright 2012 From imagination to impact 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. 10
  • 11. NICTA Copyright 2012 From imagination to impact Achieving Backwards Compatibility • APIs and DB schemas can be extended but must always be backward compatible. • Leads to a translation layer External APIs (unchanging but with ability to extend or add new ones) Translation to internal APIs Client Client Internal APIs (changes require changes to translation layer but do not propagate further)
  • 12. NICTA Copyright 2012 From imagination to impact Upgrading a Service Within the Service Hierarchy Service level N Service level N+1 (A) Service level N+2 Service level N+2 Service level N+1 (B) Service level N+2 Service level N+1 (B) Service level N+2 12 Suppose we are doing a rolling upgrade at Service level N+1 Version B assumes new features from Service level N+2
  • 13. NICTA Copyright 2012 From imagination to impact Version Awareness • Version B at Service level N+1 cannot utilize new features until appropriate services at Service level N+2 have been activated. • If services are version aware, they can decide whether to use new features depending on current state of the next service level. – Distinction between upgrading and activating. Upgrades can occur at any time as long as they are not activated. 13
  • 14. NICTA Copyright 2012 From imagination to impact 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. • Upgrades could also be switched off in the event of a rollback 14
  • 15. NICTA Copyright 2012 From imagination to impact Summary • Continuous Deployment has implications on system structure • These implications come from – Team size – Packaging decisions – Maintaining backward compatibility – Necessity for version awareness • Food for Thought – “architecture patterns” is not quite the right title since we are discussing situations involving process, tools, and architecture. 15