SlideShare une entreprise Scribd logo
1  sur  30
Architectural Refactoring
Dave Adsit
Chief Application Architect
@davidadsit
codeobsession.blogspot.com
A mostly true story of architectural evolution
What is Software Architecture?
Architecture is the stuff
that’s hard to change.
Martin Fowler
What is Refactoring?
Refactoring is a changing
the structure of code
without changing its behavior.
What is Architectural Refactoring?
Intentionally changing the
structure of a system
without altering its features.
Why would anyone do that?
The technology fails to meet the
needs of users
The team fails to deliver on the
needs of the organization
Patterns of change
A generally reusable solution
to a commonly occurring problem
within a given context
Build a monolith
Fast and easy
Can be done with a small team
Allows for quick changes
No need for QA handoff
No need for Ops handoff
Leverage a distributed web cache (CDN)
Offload traffic from a web server
Improve response time for users far away
Cluster the servers
Distribute load
Improve reliability
Move from physical to virtual machines
Eliminate session state
No more sessions pinned to servers
Replace session data with user data
Replace feature branches with feature toggles
Integrate continuously
Decouple deploy from release
Ability to disable features that don’t work out
Separate data and static assets
Reduce server-side rendering load
Leverage client processing power
Improve quantity and granularity of caching
<html>...</html>
{ … }
Shard the database
Partitioning data to distribute load
Introduce a polyglot datastore
Document database for fast reads
SQL database for ad hoc reporting and research
Miscellaneous special purpose databases
Replace database queue(s) with real queue(s)
Don’t implement a queue in a database
Guaranteed at least once delivery
Hire more developers
Split the team
Organizations which design systems are constrained to produce designs
which are copies of the communication structures of these organizations.
Melvin Conway
Embrace stack diversity
.NET
NodeJS
Python
PHP
Ruby
Hadoop
West
Redundant datacenters
Increase reliability
Simplify disaster recovery
Reduce response time
East
Extract bounded context
Microservices
Microsites
Shared datastore
Anti-corruption layer
Strangle the monolith
Repeat extract context
until no more than
a single context remains behind
Distributed system of record
One bounded context is the system of record
Others have local caches of relevant information used to make local decisions
Implement async communication pattern
Publish/Subscribe
Leverage the queue for reliable delivery
Implement blocking communication pattern
Request/Response
RESTful APIs
Circuit breaker
Orchestration and choreography
Conductors direct orchestras
Dancers in a ballet act independently
Trade total complexity for local simplicity
How long will it take?
Questions?
Dave Adsit
Chief Application Architect
@davidadsit
codeobsession.blogspot.com

Contenu connexe

Tendances

Server virtualization
Server virtualization Server virtualization
Server virtualization
Akankshaji
 
Cloud Computing Overview
Cloud Computing OverviewCloud Computing Overview
Cloud Computing Overview
Manju Srinivas
 
Cs seminar 20061207
Cs seminar 20061207Cs seminar 20061207
Cs seminar 20061207
Todd Deshane
 
Hyper-converged infrastructure
Hyper-converged infrastructureHyper-converged infrastructure
Hyper-converged infrastructure
Igor Malts
 
Server Virtualization
Server VirtualizationServer Virtualization
Server Virtualization
Spiceworks
 

Tendances (20)

Data in Azure
Data in AzureData in Azure
Data in Azure
 
Nutanix Technology Bootcamp
Nutanix Technology BootcampNutanix Technology Bootcamp
Nutanix Technology Bootcamp
 
The Path to Streamlining and Automating Data Center Operations
The Path to Streamlining and Automating Data Center OperationsThe Path to Streamlining and Automating Data Center Operations
The Path to Streamlining and Automating Data Center Operations
 
Hyperconvergence FAQ's
Hyperconvergence FAQ'sHyperconvergence FAQ's
Hyperconvergence FAQ's
 
ParaScale At The Gartner It Expo
ParaScale At The Gartner It ExpoParaScale At The Gartner It Expo
ParaScale At The Gartner It Expo
 
Federator
FederatorFederator
Federator
 
Nutanix Fundamentals The Enterprise Cloud Company
Nutanix Fundamentals The Enterprise Cloud CompanyNutanix Fundamentals The Enterprise Cloud Company
Nutanix Fundamentals The Enterprise Cloud Company
 
Why Nutanix for Enterprise Workloads
Why Nutanix for Enterprise WorkloadsWhy Nutanix for Enterprise Workloads
Why Nutanix for Enterprise Workloads
 
Comparison of Open Source Virtualization Technology
Comparison of Open Source Virtualization TechnologyComparison of Open Source Virtualization Technology
Comparison of Open Source Virtualization Technology
 
Server virtualization
Server virtualization Server virtualization
Server virtualization
 
Cloud Computing Overview
Cloud Computing OverviewCloud Computing Overview
Cloud Computing Overview
 
Cs seminar 20061207
Cs seminar 20061207Cs seminar 20061207
Cs seminar 20061207
 
Cloud Computing and Virtualization Overview by Amr Ali
Cloud Computing and Virtualization Overview by Amr AliCloud Computing and Virtualization Overview by Amr Ali
Cloud Computing and Virtualization Overview by Amr Ali
 
An Easy Path to Kubernetes on Nutanix
An Easy Path to Kubernetes on Nutanix An Easy Path to Kubernetes on Nutanix
An Easy Path to Kubernetes on Nutanix
 
cloud virtualization technology
 cloud virtualization technology  cloud virtualization technology
cloud virtualization technology
 
Hyper-converged infrastructure
Hyper-converged infrastructureHyper-converged infrastructure
Hyper-converged infrastructure
 
Scaling distributed data systems: A LinkedIn Case study
Scaling distributed data systems: A LinkedIn Case studyScaling distributed data systems: A LinkedIn Case study
Scaling distributed data systems: A LinkedIn Case study
 
Server Virtualization
Server VirtualizationServer Virtualization
Server Virtualization
 
Oms
OmsOms
Oms
 
Scalability and fault tolerance
Scalability and fault toleranceScalability and fault tolerance
Scalability and fault tolerance
 

Similaire à Architectural Refactoring

Building Scalable .NET Web Applications
Building Scalable .NET Web ApplicationsBuilding Scalable .NET Web Applications
Building Scalable .NET Web Applications
Buu Nguyen
 
Windowsazureplatform Overviewlatest
Windowsazureplatform OverviewlatestWindowsazureplatform Overviewlatest
Windowsazureplatform Overviewlatest
rajramab
 
Microsoft SQL Server - Reduce Your Cost and Improve your Agility Presentation
Microsoft SQL Server - Reduce Your Cost and Improve your Agility PresentationMicrosoft SQL Server - Reduce Your Cost and Improve your Agility Presentation
Microsoft SQL Server - Reduce Your Cost and Improve your Agility Presentation
Microsoft Private Cloud
 
Cio Breakfast Roundtable 05142009 Final Virtualization
Cio Breakfast Roundtable 05142009 Final VirtualizationCio Breakfast Roundtable 05142009 Final Virtualization
Cio Breakfast Roundtable 05142009 Final Virtualization
guestc900809
 

Similaire à Architectural Refactoring (20)

Stephane Lapointe & Alexandre Brisebois: Développer des microservices avec Se...
Stephane Lapointe & Alexandre Brisebois: Développer des microservices avec Se...Stephane Lapointe & Alexandre Brisebois: Développer des microservices avec Se...
Stephane Lapointe & Alexandre Brisebois: Développer des microservices avec Se...
 
Datavail Accelerates AWS Adoption for Sony DADC New Media Solutions PPT
 Datavail Accelerates AWS Adoption for Sony DADC New Media Solutions PPT Datavail Accelerates AWS Adoption for Sony DADC New Media Solutions PPT
Datavail Accelerates AWS Adoption for Sony DADC New Media Solutions PPT
 
Microsoft Azure Cloud Basics Tutorial
Microsoft Azure Cloud Basics TutorialMicrosoft Azure Cloud Basics Tutorial
Microsoft Azure Cloud Basics Tutorial
 
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
 
GWAB 2015 - Data Plaraform
GWAB 2015 - Data PlaraformGWAB 2015 - Data Plaraform
GWAB 2015 - Data Plaraform
 
Building Scalable .NET Web Applications
Building Scalable .NET Web ApplicationsBuilding Scalable .NET Web Applications
Building Scalable .NET Web Applications
 
Handling Data in Mega Scale Systems
Handling Data in Mega Scale SystemsHandling Data in Mega Scale Systems
Handling Data in Mega Scale Systems
 
Azure Service Fabric Overview
Azure Service Fabric OverviewAzure Service Fabric Overview
Azure Service Fabric Overview
 
Windowsazureplatform Overviewlatest
Windowsazureplatform OverviewlatestWindowsazureplatform Overviewlatest
Windowsazureplatform Overviewlatest
 
Introduction To .Net Compact Framework and SQL Server CE Development
Introduction To .Net Compact Framework and SQL Server CE DevelopmentIntroduction To .Net Compact Framework and SQL Server CE Development
Introduction To .Net Compact Framework and SQL Server CE Development
 
How leading financial services organisations are winning with tech
How leading financial services organisations are winning with techHow leading financial services organisations are winning with tech
How leading financial services organisations are winning with tech
 
Sql Azure
Sql AzureSql Azure
Sql Azure
 
Microsoft SQL Server - Reduce Your Cost and Improve your Agility Presentation
Microsoft SQL Server - Reduce Your Cost and Improve your Agility PresentationMicrosoft SQL Server - Reduce Your Cost and Improve your Agility Presentation
Microsoft SQL Server - Reduce Your Cost and Improve your Agility Presentation
 
Event Driven Architecture at NDDNUG
Event Driven Architecture at NDDNUGEvent Driven Architecture at NDDNUG
Event Driven Architecture at NDDNUG
 
Exploring Microservices in a Microsoft Landscape
Exploring Microservices in a Microsoft LandscapeExploring Microservices in a Microsoft Landscape
Exploring Microservices in a Microsoft Landscape
 
Cio Breakfast Roundtable 05142009 Final Virtualization
Cio Breakfast Roundtable 05142009 Final VirtualizationCio Breakfast Roundtable 05142009 Final Virtualization
Cio Breakfast Roundtable 05142009 Final Virtualization
 
Caching for Microservices Architectures: Session I
Caching for Microservices Architectures: Session ICaching for Microservices Architectures: Session I
Caching for Microservices Architectures: Session I
 
Cloud designpatterns
Cloud designpatternsCloud designpatterns
Cloud designpatterns
 
Azure and cloud design patterns
Azure and cloud design patternsAzure and cloud design patterns
Azure and cloud design patterns
 
Data Migration and Data-Tier Applications with SQL Azure
Data Migration and Data-Tier Applications with SQL AzureData Migration and Data-Tier Applications with SQL Azure
Data Migration and Data-Tier Applications with SQL Azure
 

Plus de David Adsit

Plus de David Adsit (9)

Professional Craftsmanship (Keynote)
Professional Craftsmanship (Keynote)Professional Craftsmanship (Keynote)
Professional Craftsmanship (Keynote)
 
Code reviews (don't have to suck)
Code reviews (don't have to suck)Code reviews (don't have to suck)
Code reviews (don't have to suck)
 
Code reviews (Don't have to Suck)
Code reviews (Don't have to Suck)Code reviews (Don't have to Suck)
Code reviews (Don't have to Suck)
 
Professional Software Craftsmanship
Professional Software CraftsmanshipProfessional Software Craftsmanship
Professional Software Craftsmanship
 
An Architecture for Autonomy
An Architecture for AutonomyAn Architecture for Autonomy
An Architecture for Autonomy
 
What is Lean?
What is Lean?What is Lean?
What is Lean?
 
What is Lean?
What is Lean?What is Lean?
What is Lean?
 
How To Build an Effective Automated Test Suite
How To Build an Effective Automated Test SuiteHow To Build an Effective Automated Test Suite
How To Build an Effective Automated Test Suite
 
Preparing to write Clean Code
Preparing to write Clean CodePreparing to write Clean Code
Preparing to write Clean Code
 

Dernier

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Dernier (20)

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 

Architectural Refactoring