SlideShare a Scribd company logo
1 of 33
“The Evolution of
Architecture”
May 17, 2018
NVISIA - Confidential and Proprietary
Dan Christopherson
Technical Fellow
danch@nvisia.com
1997
Introduced OO with
UI and business
domain separation
2000
Mainframe to Java
and distributed
architecture
2004
Architected Portal
solution with JSR-168
and Struts
2006
Architect of
enterprise
integration tier
2007
Introduced web service
architecture for
integration with third
party products
2013
Architect for
enrollment & member
access systems
2018
Introducing
microservices with API
Management platform
2010
Architect of
web-based
payroll system
NVISIA - Confidential and Proprietary
Let’s transport ourselves back to the ‘90s….
NVISIA - Confidential and Proprietary
Early Intranet
Browser
(Form posts, no JavaScript,
not dynamic)
Java App
(non-mission-critical,
support, workflow, etc.)
Supplemental
Data
Core Application
(Mainframe ‘green screen’, client-server, etc.)
Core Data
NVISIA - Confidential and Proprietary
Early 2000’s
NVISIA - Confidential and Proprietary
Mainstream Web
Browser
Supplemental
App
Supplemental
Data
Core Application
(Mainframe ‘green screen’,
client-server, etc.)
Core
Data
Message
Oriented
Middleware
Supply Chain
Data
Supply Chain
System
NVISIA - Confidential and Proprietary
Late 2000’s
NVISIA - Confidential and Proprietary
Service Integration
Browser
Supplemental
App
Supplemental
Data
Legacy
System
Legacy
Data
Message
Oriented
Middleware
Purchaing
Data
Supply Chain
System
ManufacturingManufact
uring
Data
Product
EngineeringMaster
BoM
NVISIA - Confidential and Proprietary
Circa 2010
NVISIA - Confidential and Proprietary
JavaScript and AJAX
Browser
Supplemental
App
Supplemental
Data
Legacy
System
Legacy
Data
Message
Oriented
Middleware
Purchaing
Data
Supply Chain
System
ManufacturingManufact
uring
Data
Product
EngineeringMaster
BoM
JavaScript
Enabled
Browser Apps
NVISIA - Confidential and Proprietary
2015
NVISIA - Confidential and Proprietary
Single Page Applications
Browser
Supplemental
App
Supplemental
Data
Legacy
System
Legacy
Data
Message
Oriented
Middleware
Purchaing
Data
Supply Chain
System
ManufacturingManufact
uring
Data
Product
EngineeringMaster
BoM
Single Page
Applications
NVISIA - Confidential and Proprietary
Today
NVISIA - Confidential and Proprietary
Microservices
Browser
Supplemental
App
Supplemental
Data
Legacy
System
Legacy
Data
Message
Oriented
Middleware
Purchaing
Data
Supply Chain
System
ManufacturingManufact
uring
Data
Product
EngineeringMaster
BoM
Single Page
Applications
NVISIA - Confidential and Proprietary
So now what?
NVISIA - Confidential and Proprietary
• Front-end browser/javascript ‘Single Page Application’
• Enables a reasonable user experience, with minimal management overhead
• Back-end (data access, business logic, integration) exposed via ReSTful services
• Monolithic – multiple services/resources per deployment unit, probably cross-coupled,
whether intentionally or accidentally
• Microservice – single cohesive service/resource per deployment unit
• Multiple datastores, sometimes multiple paradigms
• Multiple integration paradigms – synch, asynch, batched. All with multiple
transports/toolsets
• Multiple vendor systems – on and off prem
• Multiple ‘strata’ of legacy
• Inconsistent user experience
Current State
NVISIA - Confidential and Proprietary
• Environments and infrastructure management
• Proliferation of point-to-point integration
• ReSTful APIs used by SPAs
• Service Versioning
• Multiple failure points – fragile and inconsistent
• Security is inconsistent and difficult to federate
• It can be difficult to support the agility that 21st century business requires
• Coupling ossifies systems
• Deployments require extensive coordination
• User dissatisfaction/inefficiency
Challenges
NVISIA - Confidential and Proprietary
• Enterprise Integration Brokers -> Enterprise Service Bus -> API Management
• Test Driven Development -> Continuous Integration -> DevOps
• Virtualization -> Containers -> Cloud
• Waterfall -> Iterative -> Agile
Meanwhile – technological developments
NVISIA - Confidential and Proprietary
• Service discovery/location independence – reduce configuration of service
endpoints
• Security in depth
• Robustness – fail over, failure tolerance, 0-down-time rollouts
• Automated testing, Continuous integration, Automated deployment
• Self-contained deployment
• Monitoring and management
• Efficient use of physical infrastructure
• Automated infrastructure management
• API consumer provisioning/API catalog
• Endpoint management – rate limiting, enhanced routing, etc.
Capabilities Matter
NVISIA - Confidential and Proprietary
• Microservices – smaller deployment units simplify development and deployment
• Containerization – enables microservices by automating infrastructure
• DevOps – automated testing and deployment
Forward – the big picture
NVISIA - Confidential and Proprietary
One way to skin the mule
Gateway
Browser SPA
JavaScript-
enabled Apps
Native
Mobile
Container Infrastructure
Supply
Chain
System
Product
Engineering
Message Oriented Middleware
Legacy
System
Legacy
Data
Supple-
mental
App
Supple-
mental
Data
Purchaing
Data
Manufact
uring
Data
Master
BoM
NVISIA - Confidential and Proprietary
• Containers, gateways, DevOps practices are broadly applicable regardless of
application or solution architecture. Microservices are one option in those
architectures.
• The idea of moving wholly to a microservice architecture is generally
impractical – organizations have no control over vendor systems and
rearchitecture of legacy systems is often daunting.
• Decisions must be made as to where new architectures will be worthwhile, and
where they will not (as with every preceding architectural development);
where the heavy refactoring required will provide an advantage.
Pragmatics
NVISIA - Confidential and Proprietary
• An application that’s been around for a number of years tends to have developed
cross-coupling between subjects that you’d like to separate.
• Transactions are often used to provide atomicity to units of work that spread
across separable subjects. Transaction propagation across microservice
boundaries is generally not supported, technically or philosophically.
• Naïve refactorings often run into performance issues, or broaden service
interfaces to the point that we’ve not actually reduced coupling at all.
• Older applications often lack test coverage, making it difficult to verify
refactorings.
What makes that refactoring difficult?
NVISIA - Confidential and Proprietary
Eating the Elephant
NVISIA - Confidential and Proprietary
NVISIA - Confidential and Proprietary
NVISIA - Confidential and Proprietary
NVISIA - Confidential and Proprietary
NVISIA - Confidential and Proprietary
NVISIA - Confidential and Proprietary
NVISIA - Confidential and Proprietary
Repeat while Beneficial
NVISIA - Confidential and Proprietary
• One bite at a time!
• Improve unit and integration test coverage, either over time or as a defined effort
• Identify a domain area as the next candidate – start near the ‘bottom’ of any dependency trees.
• You may need to refactor internally before this is possible (if there are too many cyclic dependencies)
• Determine an appropriate domain boundary for a candidate service to be extracted.
• If the service has already been exposed, beware of assuming that what has been exposed is appropriate
• Shift internal references to use the new interface.
• This may require significant changes if it’s determined that existing logic is inappropriate in the service being
extracted.
• Shift external references to use the new interface.
• Again, this may require more significant changes, and these changes may have to be fit into the client’s release
stream.
• If there are many external references, both old and new interfaces may have to be supported for some time. This
can be approached in a number of ways.
• Extract the new service into its own deployment unit. This may happen before all external references
are moved – see versioning comment above.
• Repeat while beneficial
How to eat the elephant?
NVISIA - Confidential and Proprietary
Thank you!
What questions do you have?

More Related Content

What's hot

Eight Miles High: Build Cloud-native and Cloud-aware Systems
Eight Miles High: Build Cloud-native and Cloud-aware SystemsEight Miles High: Build Cloud-native and Cloud-aware Systems
Eight Miles High: Build Cloud-native and Cloud-aware SystemsChris Haddad
 
The 7 Essentials of AIS CloudOne
The 7 Essentials of AIS CloudOneThe 7 Essentials of AIS CloudOne
The 7 Essentials of AIS CloudOneAISDC
 
The 7 Essential Features of AIS vCloudOne
The 7 Essential Features of AIS vCloudOneThe 7 Essential Features of AIS vCloudOne
The 7 Essential Features of AIS vCloudOneAISDC
 
Microdeployments for microservices dev ops nashville
Microdeployments for microservices   dev ops nashvilleMicrodeployments for microservices   dev ops nashville
Microdeployments for microservices dev ops nashvilleNathaniel (Ned) Bauerle
 
Making sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessMaking sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessChristian Posta
 
Merging microservices architecture with SOA practices
Merging microservices architecture with SOA practicesMerging microservices architecture with SOA practices
Merging microservices architecture with SOA practicesChris Haddad
 
Cloud + Soa: Enterprise Service Platform
Cloud + Soa: Enterprise Service PlatformCloud + Soa: Enterprise Service Platform
Cloud + Soa: Enterprise Service Platformvictorlbrown
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureAbdelghani Azri
 
Partner spotlight: Cambridge Imaging Systems
Partner spotlight: Cambridge Imaging SystemsPartner spotlight: Cambridge Imaging Systems
Partner spotlight: Cambridge Imaging SystemsFileCatalyst
 
Status Quo on the automation support in SOA Suite OGhTech17
Status Quo on the automation support in SOA Suite OGhTech17Status Quo on the automation support in SOA Suite OGhTech17
Status Quo on the automation support in SOA Suite OGhTech17Jon Petter Hjulstad
 
Hoe is 80% van uw datacenter beheer te automatiseren?
Hoe is 80% van uw datacenter beheer te automatiseren?Hoe is 80% van uw datacenter beheer te automatiseren?
Hoe is 80% van uw datacenter beheer te automatiseren?Proact Netherlands B.V.
 
Microsoft on AWS
Microsoft on AWS  Microsoft on AWS
Microsoft on AWS CloudHesive
 
Zaptz Legacy App to Cloud
Zaptz Legacy App to CloudZaptz Legacy App to Cloud
Zaptz Legacy App to CloudStephen Burke
 
WSO2 Governance Registry – Customizing Governance for Your Needs
WSO2 Governance Registry – Customizing Governance for Your NeedsWSO2 Governance Registry – Customizing Governance for Your Needs
WSO2 Governance Registry – Customizing Governance for Your NeedsWSO2
 
High Productivity Platform
High Productivity PlatformHigh Productivity Platform
High Productivity PlatformChris Haddad
 
Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres
Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres
Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres Martin Lipka
 

What's hot (20)

Microservices
MicroservicesMicroservices
Microservices
 
Eight Miles High: Build Cloud-native and Cloud-aware Systems
Eight Miles High: Build Cloud-native and Cloud-aware SystemsEight Miles High: Build Cloud-native and Cloud-aware Systems
Eight Miles High: Build Cloud-native and Cloud-aware Systems
 
The 7 Essentials of AIS CloudOne
The 7 Essentials of AIS CloudOneThe 7 Essentials of AIS CloudOne
The 7 Essentials of AIS CloudOne
 
The 7 Essential Features of AIS vCloudOne
The 7 Essential Features of AIS vCloudOneThe 7 Essential Features of AIS vCloudOne
The 7 Essential Features of AIS vCloudOne
 
Microdeployments for microservices dev ops nashville
Microdeployments for microservices   dev ops nashvilleMicrodeployments for microservices   dev ops nashville
Microdeployments for microservices dev ops nashville
 
Making sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessMaking sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverless
 
Merging microservices architecture with SOA practices
Merging microservices architecture with SOA practicesMerging microservices architecture with SOA practices
Merging microservices architecture with SOA practices
 
Cloud + Soa: Enterprise Service Platform
Cloud + Soa: Enterprise Service PlatformCloud + Soa: Enterprise Service Platform
Cloud + Soa: Enterprise Service Platform
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Partner spotlight: Cambridge Imaging Systems
Partner spotlight: Cambridge Imaging SystemsPartner spotlight: Cambridge Imaging Systems
Partner spotlight: Cambridge Imaging Systems
 
Kartheek nw
Kartheek nw Kartheek nw
Kartheek nw
 
Status Quo on the automation support in SOA Suite OGhTech17
Status Quo on the automation support in SOA Suite OGhTech17Status Quo on the automation support in SOA Suite OGhTech17
Status Quo on the automation support in SOA Suite OGhTech17
 
Hoe is 80% van uw datacenter beheer te automatiseren?
Hoe is 80% van uw datacenter beheer te automatiseren?Hoe is 80% van uw datacenter beheer te automatiseren?
Hoe is 80% van uw datacenter beheer te automatiseren?
 
Microsoft on AWS
Microsoft on AWS  Microsoft on AWS
Microsoft on AWS
 
Zaptz Legacy App to Cloud
Zaptz Legacy App to CloudZaptz Legacy App to Cloud
Zaptz Legacy App to Cloud
 
WSO2 Governance Registry – Customizing Governance for Your Needs
WSO2 Governance Registry – Customizing Governance for Your NeedsWSO2 Governance Registry – Customizing Governance for Your Needs
WSO2 Governance Registry – Customizing Governance for Your Needs
 
High Productivity Platform
High Productivity PlatformHigh Productivity Platform
High Productivity Platform
 
Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres
Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres
Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Kevin_Helvestine (Texas)
Kevin_Helvestine (Texas)Kevin_Helvestine (Texas)
Kevin_Helvestine (Texas)
 

Similar to The Evolution of Architecture

Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application DevelopmentWaveMaker, Inc.
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumRick Hightower
 
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld
 
AWS 101 and the benefits of Migrating to the Cloud
AWS 101 and the benefits of Migrating to the CloudAWS 101 and the benefits of Migrating to the Cloud
AWS 101 and the benefits of Migrating to the CloudCloudHesive
 
A DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleA DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleSanjeev Sharma
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisVMware Tanzu
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithMarkus Eisele
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS
 
Microservices: Why Should Businesses Care?
Microservices: Why Should Businesses Care?Microservices: Why Should Businesses Care?
Microservices: Why Should Businesses Care?Akana
 
Out With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS MigrationOut With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS MigrationAcquia
 
AWS Summit 2013 | Singapore - Service Orchestration – Managing the Cloud Disr...
AWS Summit 2013 | Singapore - Service Orchestration – Managing the Cloud Disr...AWS Summit 2013 | Singapore - Service Orchestration – Managing the Cloud Disr...
AWS Summit 2013 | Singapore - Service Orchestration – Managing the Cloud Disr...Amazon Web Services
 
Making NFV Easy
Making NFV EasyMaking NFV Easy
Making NFV EasyADVA
 
Eat Your Microservices Elephant One Bite at a Time
Eat Your Microservices Elephant One Bite at a TimeEat Your Microservices Elephant One Bite at a Time
Eat Your Microservices Elephant One Bite at a TimeAkana
 
Soa 22 software as a service and soa
Soa 22 software as a service and soaSoa 22 software as a service and soa
Soa 22 software as a service and soaVaibhav Khanna
 
Radu crahmaliuc 23feb2012
Radu crahmaliuc 23feb2012Radu crahmaliuc 23feb2012
Radu crahmaliuc 23feb2012Agora Group
 
DEVNET-1184 Microservices Patterns
DEVNET-1184	Microservices PatternsDEVNET-1184	Microservices Patterns
DEVNET-1184 Microservices PatternsCisco DevNet
 
AWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWS
AWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWSAWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWS
AWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWSAmazon Web Services
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 

Similar to The Evolution of Architecture (20)

Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
 
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
 
AWS 101 and the benefits of Migrating to the Cloud
AWS 101 and the benefits of Migrating to the CloudAWS 101 and the benefits of Migrating to the Cloud
AWS 101 and the benefits of Migrating to the Cloud
 
A DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleA DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scale
 
Cloud-native Data
Cloud-native DataCloud-native Data
Cloud-native Data
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia Davis
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
 
Microservices: Why Should Businesses Care?
Microservices: Why Should Businesses Care?Microservices: Why Should Businesses Care?
Microservices: Why Should Businesses Care?
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Out With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS MigrationOut With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS Migration
 
AWS Summit 2013 | Singapore - Service Orchestration – Managing the Cloud Disr...
AWS Summit 2013 | Singapore - Service Orchestration – Managing the Cloud Disr...AWS Summit 2013 | Singapore - Service Orchestration – Managing the Cloud Disr...
AWS Summit 2013 | Singapore - Service Orchestration – Managing the Cloud Disr...
 
Making NFV Easy
Making NFV EasyMaking NFV Easy
Making NFV Easy
 
Eat Your Microservices Elephant One Bite at a Time
Eat Your Microservices Elephant One Bite at a TimeEat Your Microservices Elephant One Bite at a Time
Eat Your Microservices Elephant One Bite at a Time
 
Soa 22 software as a service and soa
Soa 22 software as a service and soaSoa 22 software as a service and soa
Soa 22 software as a service and soa
 
Radu crahmaliuc 23feb2012
Radu crahmaliuc 23feb2012Radu crahmaliuc 23feb2012
Radu crahmaliuc 23feb2012
 
DEVNET-1184 Microservices Patterns
DEVNET-1184	Microservices PatternsDEVNET-1184	Microservices Patterns
DEVNET-1184 Microservices Patterns
 
AWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWS
AWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWSAWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWS
AWS Summit Stockholm 2014 – B3 – Integrating on-premises workloads with AWS
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 

More from NVISIA

Introduction to GoLang
Introduction to GoLangIntroduction to GoLang
Introduction to GoLangNVISIA
 
Expected Result - A UX Story
Expected Result - A UX StoryExpected Result - A UX Story
Expected Result - A UX StoryNVISIA
 
Antifragile Teams
Antifragile TeamsAntifragile Teams
Antifragile TeamsNVISIA
 
Digital Operations Service Design
Digital Operations Service DesignDigital Operations Service Design
Digital Operations Service DesignNVISIA
 
Executive Briefing: The Why, What, and Where of Containers
Executive Briefing: The Why, What, and Where of ContainersExecutive Briefing: The Why, What, and Where of Containers
Executive Briefing: The Why, What, and Where of ContainersNVISIA
 
Strengthening Business/IT Relationships
Strengthening Business/IT RelationshipsStrengthening Business/IT Relationships
Strengthening Business/IT RelationshipsNVISIA
 
Achieving Business Alignment
Achieving Business AlignmentAchieving Business Alignment
Achieving Business AlignmentNVISIA
 
Intro to AWS Machine Learning
Intro to AWS Machine LearningIntro to AWS Machine Learning
Intro to AWS Machine LearningNVISIA
 
2015 DevOps Breakfast - DevOps in Action
2015 DevOps Breakfast - DevOps in Action2015 DevOps Breakfast - DevOps in Action
2015 DevOps Breakfast - DevOps in ActionNVISIA
 
DAMA Chicago - Ensuring your data lake doesn’t become a data swamp
DAMA Chicago - Ensuring your data lake doesn’t become a data swampDAMA Chicago - Ensuring your data lake doesn’t become a data swamp
DAMA Chicago - Ensuring your data lake doesn’t become a data swampNVISIA
 
Scaling the Lean Startup in the Enterprise
Scaling the Lean Startup in the EnterpriseScaling the Lean Startup in the Enterprise
Scaling the Lean Startup in the EnterpriseNVISIA
 
INNOVATION BLUEPRINTS FOR BIMODAL IT
INNOVATION BLUEPRINTS FOR BIMODAL ITINNOVATION BLUEPRINTS FOR BIMODAL IT
INNOVATION BLUEPRINTS FOR BIMODAL ITNVISIA
 
Building a Data Talent Pipeline in Southeaster Wisconsin
Building a Data Talent Pipeline in Southeaster WisconsinBuilding a Data Talent Pipeline in Southeaster Wisconsin
Building a Data Talent Pipeline in Southeaster WisconsinNVISIA
 
12/2/2014 Milwaukee Agile Presentation: Persuading Your Oganization to be Agile
12/2/2014 Milwaukee Agile Presentation: Persuading Your Oganization to be Agile12/2/2014 Milwaukee Agile Presentation: Persuading Your Oganization to be Agile
12/2/2014 Milwaukee Agile Presentation: Persuading Your Oganization to be AgileNVISIA
 
Big Data 2.0 - Milwaukee Big Data User Group Presentation
Big Data 2.0 - Milwaukee Big Data User Group Presentation Big Data 2.0 - Milwaukee Big Data User Group Presentation
Big Data 2.0 - Milwaukee Big Data User Group Presentation NVISIA
 
NVISIA Mobile Trends Presentation
NVISIA Mobile Trends PresentationNVISIA Mobile Trends Presentation
NVISIA Mobile Trends PresentationNVISIA
 

More from NVISIA (16)

Introduction to GoLang
Introduction to GoLangIntroduction to GoLang
Introduction to GoLang
 
Expected Result - A UX Story
Expected Result - A UX StoryExpected Result - A UX Story
Expected Result - A UX Story
 
Antifragile Teams
Antifragile TeamsAntifragile Teams
Antifragile Teams
 
Digital Operations Service Design
Digital Operations Service DesignDigital Operations Service Design
Digital Operations Service Design
 
Executive Briefing: The Why, What, and Where of Containers
Executive Briefing: The Why, What, and Where of ContainersExecutive Briefing: The Why, What, and Where of Containers
Executive Briefing: The Why, What, and Where of Containers
 
Strengthening Business/IT Relationships
Strengthening Business/IT RelationshipsStrengthening Business/IT Relationships
Strengthening Business/IT Relationships
 
Achieving Business Alignment
Achieving Business AlignmentAchieving Business Alignment
Achieving Business Alignment
 
Intro to AWS Machine Learning
Intro to AWS Machine LearningIntro to AWS Machine Learning
Intro to AWS Machine Learning
 
2015 DevOps Breakfast - DevOps in Action
2015 DevOps Breakfast - DevOps in Action2015 DevOps Breakfast - DevOps in Action
2015 DevOps Breakfast - DevOps in Action
 
DAMA Chicago - Ensuring your data lake doesn’t become a data swamp
DAMA Chicago - Ensuring your data lake doesn’t become a data swampDAMA Chicago - Ensuring your data lake doesn’t become a data swamp
DAMA Chicago - Ensuring your data lake doesn’t become a data swamp
 
Scaling the Lean Startup in the Enterprise
Scaling the Lean Startup in the EnterpriseScaling the Lean Startup in the Enterprise
Scaling the Lean Startup in the Enterprise
 
INNOVATION BLUEPRINTS FOR BIMODAL IT
INNOVATION BLUEPRINTS FOR BIMODAL ITINNOVATION BLUEPRINTS FOR BIMODAL IT
INNOVATION BLUEPRINTS FOR BIMODAL IT
 
Building a Data Talent Pipeline in Southeaster Wisconsin
Building a Data Talent Pipeline in Southeaster WisconsinBuilding a Data Talent Pipeline in Southeaster Wisconsin
Building a Data Talent Pipeline in Southeaster Wisconsin
 
12/2/2014 Milwaukee Agile Presentation: Persuading Your Oganization to be Agile
12/2/2014 Milwaukee Agile Presentation: Persuading Your Oganization to be Agile12/2/2014 Milwaukee Agile Presentation: Persuading Your Oganization to be Agile
12/2/2014 Milwaukee Agile Presentation: Persuading Your Oganization to be Agile
 
Big Data 2.0 - Milwaukee Big Data User Group Presentation
Big Data 2.0 - Milwaukee Big Data User Group Presentation Big Data 2.0 - Milwaukee Big Data User Group Presentation
Big Data 2.0 - Milwaukee Big Data User Group Presentation
 
NVISIA Mobile Trends Presentation
NVISIA Mobile Trends PresentationNVISIA Mobile Trends Presentation
NVISIA Mobile Trends Presentation
 

Recently uploaded

Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 

Recently uploaded (20)

Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 

The Evolution of Architecture

  • 2. NVISIA - Confidential and Proprietary Dan Christopherson Technical Fellow danch@nvisia.com 1997 Introduced OO with UI and business domain separation 2000 Mainframe to Java and distributed architecture 2004 Architected Portal solution with JSR-168 and Struts 2006 Architect of enterprise integration tier 2007 Introduced web service architecture for integration with third party products 2013 Architect for enrollment & member access systems 2018 Introducing microservices with API Management platform 2010 Architect of web-based payroll system
  • 3. NVISIA - Confidential and Proprietary Let’s transport ourselves back to the ‘90s….
  • 4. NVISIA - Confidential and Proprietary Early Intranet Browser (Form posts, no JavaScript, not dynamic) Java App (non-mission-critical, support, workflow, etc.) Supplemental Data Core Application (Mainframe ‘green screen’, client-server, etc.) Core Data
  • 5. NVISIA - Confidential and Proprietary Early 2000’s
  • 6. NVISIA - Confidential and Proprietary Mainstream Web Browser Supplemental App Supplemental Data Core Application (Mainframe ‘green screen’, client-server, etc.) Core Data Message Oriented Middleware Supply Chain Data Supply Chain System
  • 7. NVISIA - Confidential and Proprietary Late 2000’s
  • 8. NVISIA - Confidential and Proprietary Service Integration Browser Supplemental App Supplemental Data Legacy System Legacy Data Message Oriented Middleware Purchaing Data Supply Chain System ManufacturingManufact uring Data Product EngineeringMaster BoM
  • 9. NVISIA - Confidential and Proprietary Circa 2010
  • 10. NVISIA - Confidential and Proprietary JavaScript and AJAX Browser Supplemental App Supplemental Data Legacy System Legacy Data Message Oriented Middleware Purchaing Data Supply Chain System ManufacturingManufact uring Data Product EngineeringMaster BoM JavaScript Enabled Browser Apps
  • 11. NVISIA - Confidential and Proprietary 2015
  • 12. NVISIA - Confidential and Proprietary Single Page Applications Browser Supplemental App Supplemental Data Legacy System Legacy Data Message Oriented Middleware Purchaing Data Supply Chain System ManufacturingManufact uring Data Product EngineeringMaster BoM Single Page Applications
  • 13. NVISIA - Confidential and Proprietary Today
  • 14. NVISIA - Confidential and Proprietary Microservices Browser Supplemental App Supplemental Data Legacy System Legacy Data Message Oriented Middleware Purchaing Data Supply Chain System ManufacturingManufact uring Data Product EngineeringMaster BoM Single Page Applications
  • 15. NVISIA - Confidential and Proprietary So now what?
  • 16. NVISIA - Confidential and Proprietary • Front-end browser/javascript ‘Single Page Application’ • Enables a reasonable user experience, with minimal management overhead • Back-end (data access, business logic, integration) exposed via ReSTful services • Monolithic – multiple services/resources per deployment unit, probably cross-coupled, whether intentionally or accidentally • Microservice – single cohesive service/resource per deployment unit • Multiple datastores, sometimes multiple paradigms • Multiple integration paradigms – synch, asynch, batched. All with multiple transports/toolsets • Multiple vendor systems – on and off prem • Multiple ‘strata’ of legacy • Inconsistent user experience Current State
  • 17. NVISIA - Confidential and Proprietary • Environments and infrastructure management • Proliferation of point-to-point integration • ReSTful APIs used by SPAs • Service Versioning • Multiple failure points – fragile and inconsistent • Security is inconsistent and difficult to federate • It can be difficult to support the agility that 21st century business requires • Coupling ossifies systems • Deployments require extensive coordination • User dissatisfaction/inefficiency Challenges
  • 18. NVISIA - Confidential and Proprietary • Enterprise Integration Brokers -> Enterprise Service Bus -> API Management • Test Driven Development -> Continuous Integration -> DevOps • Virtualization -> Containers -> Cloud • Waterfall -> Iterative -> Agile Meanwhile – technological developments
  • 19. NVISIA - Confidential and Proprietary • Service discovery/location independence – reduce configuration of service endpoints • Security in depth • Robustness – fail over, failure tolerance, 0-down-time rollouts • Automated testing, Continuous integration, Automated deployment • Self-contained deployment • Monitoring and management • Efficient use of physical infrastructure • Automated infrastructure management • API consumer provisioning/API catalog • Endpoint management – rate limiting, enhanced routing, etc. Capabilities Matter
  • 20. NVISIA - Confidential and Proprietary • Microservices – smaller deployment units simplify development and deployment • Containerization – enables microservices by automating infrastructure • DevOps – automated testing and deployment Forward – the big picture
  • 21. NVISIA - Confidential and Proprietary One way to skin the mule Gateway Browser SPA JavaScript- enabled Apps Native Mobile Container Infrastructure Supply Chain System Product Engineering Message Oriented Middleware Legacy System Legacy Data Supple- mental App Supple- mental Data Purchaing Data Manufact uring Data Master BoM
  • 22. NVISIA - Confidential and Proprietary • Containers, gateways, DevOps practices are broadly applicable regardless of application or solution architecture. Microservices are one option in those architectures. • The idea of moving wholly to a microservice architecture is generally impractical – organizations have no control over vendor systems and rearchitecture of legacy systems is often daunting. • Decisions must be made as to where new architectures will be worthwhile, and where they will not (as with every preceding architectural development); where the heavy refactoring required will provide an advantage. Pragmatics
  • 23. NVISIA - Confidential and Proprietary • An application that’s been around for a number of years tends to have developed cross-coupling between subjects that you’d like to separate. • Transactions are often used to provide atomicity to units of work that spread across separable subjects. Transaction propagation across microservice boundaries is generally not supported, technically or philosophically. • Naïve refactorings often run into performance issues, or broaden service interfaces to the point that we’ve not actually reduced coupling at all. • Older applications often lack test coverage, making it difficult to verify refactorings. What makes that refactoring difficult?
  • 24. NVISIA - Confidential and Proprietary Eating the Elephant
  • 25. NVISIA - Confidential and Proprietary
  • 26. NVISIA - Confidential and Proprietary
  • 27. NVISIA - Confidential and Proprietary
  • 28. NVISIA - Confidential and Proprietary
  • 29. NVISIA - Confidential and Proprietary
  • 30. NVISIA - Confidential and Proprietary
  • 31. NVISIA - Confidential and Proprietary Repeat while Beneficial
  • 32. NVISIA - Confidential and Proprietary • One bite at a time! • Improve unit and integration test coverage, either over time or as a defined effort • Identify a domain area as the next candidate – start near the ‘bottom’ of any dependency trees. • You may need to refactor internally before this is possible (if there are too many cyclic dependencies) • Determine an appropriate domain boundary for a candidate service to be extracted. • If the service has already been exposed, beware of assuming that what has been exposed is appropriate • Shift internal references to use the new interface. • This may require significant changes if it’s determined that existing logic is inappropriate in the service being extracted. • Shift external references to use the new interface. • Again, this may require more significant changes, and these changes may have to be fit into the client’s release stream. • If there are many external references, both old and new interfaces may have to be supported for some time. This can be approached in a number of ways. • Extract the new service into its own deployment unit. This may happen before all external references are moved – see versioning comment above. • Repeat while beneficial How to eat the elephant?
  • 33. NVISIA - Confidential and Proprietary Thank you! What questions do you have?

Editor's Notes

  1. Scare quotes are to highlight the ambiguity – are we talking about past evolution or future? Is this a history lesson or a how-to? The answer, of course, is both.
  2. Around 1999, large enterprises began to invest in internal applications using internet technologies (HTML, HTTP). Advantages sought included ease of administration (no desktop installation), improves scalability (especially vs. client-server, and, sometimes, a clean slate for new development Early efforts were often in non-mission critical areas in order to gain experience and prove out the architecture at minimal risk.
  3. As internet technologies proved themselves, organizations began to use them for more mission-critical applications. ISVs began to offer 'web portals' to support secondary functions (for example, employee self-service) Integration began to be more important to these applications, as enterprise workflows tend to cut across system boundaries. Integration often happened at the data level, through file batches, shared databases, and ETL. Some organizations leveraged existing MOM infrastructure, or introduced it for particularly compelling use cases
  4. As process automation became more of a necessity, applications supporting different areas of the business needed to be integrated more than ever, and those integrations had to be "real-time" (in reality, this simply meant that it had to be fast enough that a human probably wouldn't notice the delay). These needs lead to increasing levels of integration, using technologies such as CORBA, Java RMI, DCOM, and finally SOAP
  5. Web applications were initially a step backward in terms of user experience, forcing users to wait for a screen to load before entering data, then submitting and waiting for a response. Often the wait periods were relatively low, but the lack of 'live' lookups often lead to usability issues. Javascript began to be applied to these problems when the 'AJAX' techniques were developed. These techniques required the middle-tier of the applications to expose HTTP service endpoints for the javascript to consume. SOAP was considered too heavyweight and complex for these needs. Nominally, they used XML as a payload in simple HTTP requests, but in some cases javascript or even html fragments were returned to the browser.
  6. The logical extension of the AJAX technique is the single-page application - an entire user interface written in Javascript, running in the web browser. This generally requires a number of service endpoints to be exposed to the browser. As this architecture became popular, this style of service had come to be called 'ReSTful', whether or not they actually represented the Transfer of a Representation of STate. As more service endpoints are added to applications, the web of dependencies becomes more difficult to manage. Changes in one endpoint carry the risk of disruption of other endpoints in the shared application.
  7. In order to mitigate the issues we run into when applications expose multiple endpoints, we adopt microservice architectures. Each microservice is a highly cohesive set of endpoints and is loosely coupled with other microservices.
  8. Microservices – ‘bounded context’
  9. May want to flip to the last diagram…
  10. Here ‘technological’ encompasses process and product None of these transitions are truly linear developments
  11. There’s a lot more that could be said, but I’m keeping this down to three big points, essentially for rhetorical purposes. Key point – moving to microservices (and SPAs) moves complexity from being internal to the back ends to being external, in how those microservices are composed together (and some logic is moved back out to the actual browser based UI). Containerization (and some ‘API Management’ capabilities) helps manage this complexity. Given ‘good’ microservice design (distribution of responsibility), this results in a more even distribution of complexity.
  12. How do you eat an elephant? One bite at a time!
  13. Improve test coverage – either over time or as a defined effort.
  14. Identify a domain area as the next candidate – start near the ‘bottom’ of any dependency trees. You may need to refactor internally before this is possible (if there are too many cyclic dependencies)
  15. Determine an appropriate domain boundary for a candidate service to be extracted. If the service has already been exposed, beware of assuming that what has been exposed is appropriate
  16. Shift internal references to use the new interface. This may require significant changes if it’s determined that existing logic is inappropriate in the service being extracted. Shift external references to use the new interface. Again, this may require more significant changes, and these changes may have to be fit into the client’s release stream. If there are many external references, both old and new interfaces may have to be supported for some time. This can be approached in a number of ways.
  17. Extract the new service into its own deployment unit. This may happen before all external references are moved – see versioning comment above.