SlideShare a Scribd company logo
1 of 34
Refactoring Monolithic
Oracle Database
Applications
M I C R O S E R V I C E S A R C H I T E C T U R E
M A R K S I M P S O N – U K O U G B R E A K T H R O U G H 2 0 2 3
Introduction
👋 Hi! I’m Mark Simpson
👉 Tech Director with Griffiths Waite in Birmingham
📅 > 25 Years Enterprise Software Experience
👨💻 Responsible for Tech Innovation & Adoption at GW
📖 Oracle ACE Director 2012-2022
https://www.linkedin.com/in/marksimpsongw/
mark.simpson@griffiths-waite.co.uk
• Founded in 1994
• Over quarter of a century of award-winning innovation
• Situated in the heart of Birmingham, right next to New Street Station
• Enterprise JavaScript Specialists – TypeScript across the stack
• Focus on Custom Software Products - Digital Portals, API Platforms, Data Analytics
• Heritage in Oracle Forms, Oracle SOA, Oracle DB, ADF, API and Oracle JET
• Microsoft Azure Cloud focus
Who are GW?
Monolith
Architecture
A software design pattern where an application
is built as a single, self-contained unit, making it
difficult to scale, modify, and maintain.
We commonly see this with Enterprise Database
systems, with intertwined PL/SQL making it
difficult to isolate services without disruption
Hidden
Complexities
Tight coupling between the PL/SQL and
database schema is natural.
However, the cascading nature of modular
database code, with encapsulation of
business logic makes dissecting and
extracting logic a challenge
Ongoing
Code Growth
Enterprise Databases constantly grow
as the business changes and features
evolve.
Often seen as a legacy nightmare,
exponentially more complex than when
first designed, but they still model and
run the business.
Re-architect for the Cloud
Microservices
A microservices architecture is an approach
to software development where applications
are built as a collection of small, independent
services that can be deployed and scaled
separately, allowing for flexibility, faster
development, and easier maintenance.
Often linked to Domain Driven Design, it is a
architectural style rather than a prescriptive
framework.
Case Study
All actors in this story are fictional within an
organisation called RetroTech - however the
scenarios are based on experiences I have
observed in many organisations
Digital Transformation
in a large organisation
with a 30-year-old
enterprise relational
Oracle DB
Digital
Transformation
• Meet Eric from RetroTech
• Strong history with the Oracle DB
• Looking to modernise the applications
• Challenges with current DB
• Wants to leverage innovation and cloud advances
• Looking for “continuous improvement and product thinking”
T H E C U S T O M E R
Digital
Transformation
• Meet James
• Works for a large global consultancy
• Expert in Technology & Architecture
• Read all the theory books !
• Committed to modernising RetroTech systems
• After “A true business transformation”
T H E E X P E R T
In a alternate reality…
Digital
Transformation
• Meet Sarah
• Works for an Enterprise Software House
• Experience of many product developments
• Likes to apply innovation to customer use cases
• Committed to building a partnership with RetroTech
• She thinks “Digital Products will bring new business value”
T H E PA R T N E R
Top-Down
Design
James recognises that the DB is complex, a
mere glance at the source code shows
thousands of lines of code for what he expects
should be simple.
He concludes that the DB model and code is now
not fit for purpose for the digitally transformed
organisation and produces a fresh API model
based on a pure Domain Driven Design,
Common Data Services and local data stores.
Layered
Architecture
As digital requirements increase the database
naturally becomes a layer in the architecture, but
one that requires specific coding skills and
people who understand the data model,
business logic and code syntax.
A gap will often appear in the layer with
separation wider due to the choices of
technology for API and UI development.
Role of Data
Data comes in many guises and the use cases
for the consumption of data varies in enterprise
solutions.
Solutions are required for:
- Transactional
- Entity Reads
- Large Lists
- Bulk Uploads
- Large Data Set streaming
- Analytics …Etc.
Understanding
the Legacy DB
Recognising there is a lot of hidden complexity in
the Enterprise DB that has grown over the last 30
years.
Sarah spends time with the DB team, especially
Eric, understanding the data model and the
inherent domain structure of the code.
She uses a parser to write typescript modules to
interrogate the database, ensuring tests written
for the new system consider existing structure
and logic where appropriate.
PL/SQL
Archaeology
It is imperative that the Service developers
understand the existing systems, extract the key
logic and respect the data model that has served
the business for so long.
Rather than separate the DB and Service
developers, GW wrote a Typescript parser for
PL/SQL to allow types to be generated and for
developers to write Typescript or JavaScript code
to interrogate logic, models and dependencies
from the DB.
https://bit.ly/gw-plsql-ast
AST Viewer
Produces Abstract
Syntax that we can
view but also
interrogate by code.
This makes the logic
visible to a wider
group of developers
https://bit.ly/gw-ts-plsql-parser
TS Generator
Typescript can be
used to parse and
write scripts to
interrogate the
PL/SQL.
Allowing features like
generating TS types
from the procedure
definitions.
Transformation
MVP
James is looking for ways to “transform” the
business to fit in with the new system now that the
MVP stories are delivered. The direction is set
and now he is waiting on other teams, has got a
large delivery factory scaled up now. He is
engaged with his Change Management team.
He has delivered the mapping stories to the Data
Migration team to keep the enterprise DB and the
new domain DBs in step.
He has setup a Co-existence team to synchronise
data in the Enterprise DB to support the products
and domains not yet migrated in the MVP.
Product
MVP
Sarah has agreed an MVP with the business
stakeholders to solve some current market
challenges.
New services have been written leveraging the
current DB model where appropriate and splitting
out certain services to scale to the new usage,
leveraging some cloud services.
Some PL/SQL has been decommissioned and
logic has been moved to the services layer with
good automated test coverage and good DevOps
practices have been put in place.
Domain
Separation
Domain Driven Design is a key strategy in designing a
Microservices Architecture. Splitting the database code into logical
domains can help manage the complexities.
These should be isolated for change impact, deployment, scalability
and resilience but can leverage shared platform capabilities as long
as these shared services do not compromise the above principles.
Other considerations in splitting the services..
- Performance
- Volatility
- Data Sharing
- Response times
Local
Shared
Microservices
Responsibility
In our experience the Microservice does not need to
be self-contained from a technology perspective.
It can expose data via APIs, Data Connections,
Events, UI.
The implementation should use the right technology
for the need.
Platform Engineering disciplines will help standardise
the user of the technology, Kubernetes, Enterprise
DB, Data Platforms etc.
Service
API
Data
UI
Event
Platform
AKS
Data
Bricks
ORCL
DB
Success!
(Big Bang Hell)
With the co-existence and data migration streams struggling
to fill the gaps created by the new design, a big bang launch
is planned.
The core data model has reverted to the original design but
now running on a cloud database that has been migrated by
the Cloud Competency team, with the team on hand to
support the many teething issues.
The services wrap the existing pl/sql code and the
improvements are focussed on building the UI in JavaScript.
James reminds the team that RetroTech are not Netflix !!!
Project pronounced a success, James can move to his next
client, with the lesson that he should scale the team earlier.
Success!
(Product Team)
The product is now in production, monitoring shows good
improvement in metrics.
The Product team are in place for continuous
improvements with Business, DevOps, Platform
Engineering and IT Delivery working together.
There are tech debt objectives in place where complex
legacy code remains and the library of new microservices
with the appropriate data sources is in place. The public
API solution has gained traction, and the conversation UI
is accurate and fast. Cloud is making a significant
different to performance and reliability in busy periods.
Retro Tech have signed a partnership deal with Sarah for
a joint collaborative team to deliver more business value.
Leveraging
the Cloud
The redesign of the application and data architecture has
readied Retro Tech for their move to a scalable and
resilient Cloud Architecture.
They are confident of supporting the business change
needed to modernise, with operational readiness baked
into the development process.
They are exploring new channels, partnering with
platforms and are starting to look at how they might
monetise their core capability – their DATA!
Patterns
#1
ACL Layer
An integration pattern to protect services
from dependant data or service changes can
be used within the microservice.
Allows for evolution of the data model and
supports switching of data implementations.
Mocking and Contract based testing of the
data layer within the service is now possible.
#2
API Routing
As you break down the PL/SQL monolith into
clearly separated services, you can start to
split the architecture for scalability benefits.
E.g. consumers with large requests could be
diverted to a cloud copy of the data service.
This coupled with the other patterns leads to a
smoother transition to a cloud data
architecture.
#3
Large Datasets & Analytics
Move data to a specific, scalable big data and analytics platform for the retrieval of large data sets and analytical views.
#4
Logical
Microservice
Microservices should be self contained,
independent and have clear ownership.
In Enterprise ecosystems they will naturally
be layered and leverage dependant services
and platforms.
Have logical bounded context and use
Platform Engineering disciplines to allow the
service owner to deploy, scale and monitor
the service independently.
• Automate the analysis of legacy DB – Model generation, Archaeology scripts
• Traditional layered service architecture becomes bloated for a lot of digital use cases
• Be pragmatic as you apply the theory, solution focused
• Get the logical design of your Microservices right, then leverage Platform and Services
• Coexistence and phased change is essential
• Use the right tools for the right data scenarios – you will work with copies
• Be like Sarah, less like James !
Summary
Mark
Simpson
mark_simpson@griffiths-waite.co.uk
@mark_gw
www.wearegw.com

More Related Content

What's hot

Digital Transformation And Solution Architecture
Digital Transformation And Solution ArchitectureDigital Transformation And Solution Architecture
Digital Transformation And Solution Architecture
Alan McSweeney
 
The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...
The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...
The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...
DATAVERSITY
 
Data Architecture for Solutions.pdf
Data Architecture for Solutions.pdfData Architecture for Solutions.pdf
Data Architecture for Solutions.pdf
Alan McSweeney
 

What's hot (20)

NERC CIP Compliance 101 Workshop - Smart Grid Security East 2011
NERC CIP Compliance 101 Workshop - Smart Grid Security East 2011NERC CIP Compliance 101 Workshop - Smart Grid Security East 2011
NERC CIP Compliance 101 Workshop - Smart Grid Security East 2011
 
Togaf 9 template transition architecture
Togaf 9 template   transition architectureTogaf 9 template   transition architecture
Togaf 9 template transition architecture
 
Snowflake Data Science and AI/ML at Scale
Snowflake Data Science and AI/ML at ScaleSnowflake Data Science and AI/ML at Scale
Snowflake Data Science and AI/ML at Scale
 
Data Mesh
Data MeshData Mesh
Data Mesh
 
Digital Transformation And Solution Architecture
Digital Transformation And Solution ArchitectureDigital Transformation And Solution Architecture
Digital Transformation And Solution Architecture
 
Using AWS IoT for Industrial Applications - AWS Online Tech Talks
Using AWS IoT for Industrial Applications - AWS Online Tech TalksUsing AWS IoT for Industrial Applications - AWS Online Tech Talks
Using AWS IoT for Industrial Applications - AWS Online Tech Talks
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
 
Service Virtualization
Service VirtualizationService Virtualization
Service Virtualization
 
Cloud Migration: Moving Data and Infrastructure to the Cloud
Cloud Migration: Moving Data and Infrastructure to the CloudCloud Migration: Moving Data and Infrastructure to the Cloud
Cloud Migration: Moving Data and Infrastructure to the Cloud
 
Complexity and Solution Architecture
Complexity and Solution ArchitectureComplexity and Solution Architecture
Complexity and Solution Architecture
 
The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...
The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...
The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...
 
Tech Talk: CA Workload Automation Agent Monitor, Agents and Advanced Integrat...
Tech Talk: CA Workload Automation Agent Monitor, Agents and Advanced Integrat...Tech Talk: CA Workload Automation Agent Monitor, Agents and Advanced Integrat...
Tech Talk: CA Workload Automation Agent Monitor, Agents and Advanced Integrat...
 
Service Oriented Architecture & Beyond
Service Oriented Architecture & BeyondService Oriented Architecture & Beyond
Service Oriented Architecture & Beyond
 
Time to Talk about Data Mesh
Time to Talk about Data MeshTime to Talk about Data Mesh
Time to Talk about Data Mesh
 
Integrating It Frameworks, Methodologies And Best Practices Into It Delivery ...
Integrating It Frameworks, Methodologies And Best Practices Into It Delivery ...Integrating It Frameworks, Methodologies And Best Practices Into It Delivery ...
Integrating It Frameworks, Methodologies And Best Practices Into It Delivery ...
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 
Mainframe Possible: Migrating a Mainframe to AWS
Mainframe Possible: Migrating a Mainframe to AWSMainframe Possible: Migrating a Mainframe to AWS
Mainframe Possible: Migrating a Mainframe to AWS
 
Data Architecture for Solutions.pdf
Data Architecture for Solutions.pdfData Architecture for Solutions.pdf
Data Architecture for Solutions.pdf
 
Mainframe Modernization with AWS: Patterns and Best Practices (GPSTEC305) - A...
Mainframe Modernization with AWS: Patterns and Best Practices (GPSTEC305) - A...Mainframe Modernization with AWS: Patterns and Best Practices (GPSTEC305) - A...
Mainframe Modernization with AWS: Patterns and Best Practices (GPSTEC305) - A...
 
Deep dive session - sap and aws - extend and innovate
Deep dive session - sap and aws - extend and innovateDeep dive session - sap and aws - extend and innovate
Deep dive session - sap and aws - extend and innovate
 

Similar to Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications to Microservices

locotalk-whitepaper-2016
locotalk-whitepaper-2016locotalk-whitepaper-2016
locotalk-whitepaper-2016
Anthony Wijnen
 
Sakthi Shenbagam - Data warehousing Consultant
Sakthi Shenbagam - Data warehousing ConsultantSakthi Shenbagam - Data warehousing Consultant
Sakthi Shenbagam - Data warehousing Consultant
Sakthi Shenbagam
 
Data and Application Modernization in the Age of the Cloud
Data and Application Modernization in the Age of the CloudData and Application Modernization in the Age of the Cloud
Data and Application Modernization in the Age of the Cloud
redmondpulver
 

Similar to Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications to Microservices (20)

Deep architectural competency for deploying azure solutions
Deep architectural competency for deploying azure solutionsDeep architectural competency for deploying azure solutions
Deep architectural competency for deploying azure solutions
 
Digital Reinvention by NRB
Digital Reinvention by NRBDigital Reinvention by NRB
Digital Reinvention by NRB
 
locotalk-whitepaper-2016
locotalk-whitepaper-2016locotalk-whitepaper-2016
locotalk-whitepaper-2016
 
Adopting the open group cloud eco system reference model
Adopting the open group cloud eco system reference modelAdopting the open group cloud eco system reference model
Adopting the open group cloud eco system reference model
 
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGate
 
Sakthi Shenbagam - Data warehousing Consultant
Sakthi Shenbagam - Data warehousing ConsultantSakthi Shenbagam - Data warehousing Consultant
Sakthi Shenbagam - Data warehousing Consultant
 
Cloud Application Development Lifecycle
Cloud Application Development LifecycleCloud Application Development Lifecycle
Cloud Application Development Lifecycle
 
Success Story: Microsoft Deploys ER/Studio
Success Story: Microsoft Deploys ER/StudioSuccess Story: Microsoft Deploys ER/Studio
Success Story: Microsoft Deploys ER/Studio
 
DRM Webinar Series, PART 3: Will DRM Integrate With Our Applications?
DRM Webinar Series, PART 3: Will DRM Integrate With Our Applications?DRM Webinar Series, PART 3: Will DRM Integrate With Our Applications?
DRM Webinar Series, PART 3: Will DRM Integrate With Our Applications?
 
Resume - RK
Resume - RKResume - RK
Resume - RK
 
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
 
CWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der wal
 
A Business Perspective on Building SharePoint 2013 Solutions on Windows Azure
A Business Perspective on Building SharePoint 2013 Solutions on Windows AzureA Business Perspective on Building SharePoint 2013 Solutions on Windows Azure
A Business Perspective on Building SharePoint 2013 Solutions on Windows Azure
 
Data Architecture, Solution Architecture, Platform Architecture — What’s the ...
Data Architecture, Solution Architecture, Platform Architecture — What’s the ...Data Architecture, Solution Architecture, Platform Architecture — What’s the ...
Data Architecture, Solution Architecture, Platform Architecture — What’s the ...
 
Resume
ResumeResume
Resume
 
Accelerating a Path to Digital with a Cloud Data Strategy
Accelerating a Path to Digital with a Cloud Data StrategyAccelerating a Path to Digital with a Cloud Data Strategy
Accelerating a Path to Digital with a Cloud Data Strategy
 
IBM InfoSphere Data Architect 9.1 - Francis Arnaudiès
IBM InfoSphere Data Architect 9.1 - Francis ArnaudièsIBM InfoSphere Data Architect 9.1 - Francis Arnaudiès
IBM InfoSphere Data Architect 9.1 - Francis Arnaudiès
 
Data and Application Modernization in the Age of the Cloud
Data and Application Modernization in the Age of the CloudData and Application Modernization in the Age of the Cloud
Data and Application Modernization in the Age of the Cloud
 

Recently uploaded

Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
drm1699
 

Recently uploaded (20)

Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
 
Rapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and InsightsRapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and Insights
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
 
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
 
Test Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfTest Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdf
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaUNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
 
[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
Workshop -  Architecting Innovative Graph Applications- GraphSummit MilanWorkshop -  Architecting Innovative Graph Applications- GraphSummit Milan
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 

Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications to Microservices

  • 1. Refactoring Monolithic Oracle Database Applications M I C R O S E R V I C E S A R C H I T E C T U R E M A R K S I M P S O N – U K O U G B R E A K T H R O U G H 2 0 2 3
  • 2. Introduction 👋 Hi! I’m Mark Simpson 👉 Tech Director with Griffiths Waite in Birmingham 📅 > 25 Years Enterprise Software Experience 👨💻 Responsible for Tech Innovation & Adoption at GW 📖 Oracle ACE Director 2012-2022 https://www.linkedin.com/in/marksimpsongw/ mark.simpson@griffiths-waite.co.uk
  • 3. • Founded in 1994 • Over quarter of a century of award-winning innovation • Situated in the heart of Birmingham, right next to New Street Station • Enterprise JavaScript Specialists – TypeScript across the stack • Focus on Custom Software Products - Digital Portals, API Platforms, Data Analytics • Heritage in Oracle Forms, Oracle SOA, Oracle DB, ADF, API and Oracle JET • Microsoft Azure Cloud focus Who are GW?
  • 4. Monolith Architecture A software design pattern where an application is built as a single, self-contained unit, making it difficult to scale, modify, and maintain. We commonly see this with Enterprise Database systems, with intertwined PL/SQL making it difficult to isolate services without disruption
  • 5. Hidden Complexities Tight coupling between the PL/SQL and database schema is natural. However, the cascading nature of modular database code, with encapsulation of business logic makes dissecting and extracting logic a challenge
  • 6. Ongoing Code Growth Enterprise Databases constantly grow as the business changes and features evolve. Often seen as a legacy nightmare, exponentially more complex than when first designed, but they still model and run the business.
  • 8. Microservices A microservices architecture is an approach to software development where applications are built as a collection of small, independent services that can be deployed and scaled separately, allowing for flexibility, faster development, and easier maintenance. Often linked to Domain Driven Design, it is a architectural style rather than a prescriptive framework.
  • 9. Case Study All actors in this story are fictional within an organisation called RetroTech - however the scenarios are based on experiences I have observed in many organisations Digital Transformation in a large organisation with a 30-year-old enterprise relational Oracle DB
  • 10. Digital Transformation • Meet Eric from RetroTech • Strong history with the Oracle DB • Looking to modernise the applications • Challenges with current DB • Wants to leverage innovation and cloud advances • Looking for “continuous improvement and product thinking” T H E C U S T O M E R
  • 11. Digital Transformation • Meet James • Works for a large global consultancy • Expert in Technology & Architecture • Read all the theory books ! • Committed to modernising RetroTech systems • After “A true business transformation” T H E E X P E R T
  • 12. In a alternate reality…
  • 13. Digital Transformation • Meet Sarah • Works for an Enterprise Software House • Experience of many product developments • Likes to apply innovation to customer use cases • Committed to building a partnership with RetroTech • She thinks “Digital Products will bring new business value” T H E PA R T N E R
  • 14. Top-Down Design James recognises that the DB is complex, a mere glance at the source code shows thousands of lines of code for what he expects should be simple. He concludes that the DB model and code is now not fit for purpose for the digitally transformed organisation and produces a fresh API model based on a pure Domain Driven Design, Common Data Services and local data stores.
  • 15. Layered Architecture As digital requirements increase the database naturally becomes a layer in the architecture, but one that requires specific coding skills and people who understand the data model, business logic and code syntax. A gap will often appear in the layer with separation wider due to the choices of technology for API and UI development.
  • 16. Role of Data Data comes in many guises and the use cases for the consumption of data varies in enterprise solutions. Solutions are required for: - Transactional - Entity Reads - Large Lists - Bulk Uploads - Large Data Set streaming - Analytics …Etc.
  • 17. Understanding the Legacy DB Recognising there is a lot of hidden complexity in the Enterprise DB that has grown over the last 30 years. Sarah spends time with the DB team, especially Eric, understanding the data model and the inherent domain structure of the code. She uses a parser to write typescript modules to interrogate the database, ensuring tests written for the new system consider existing structure and logic where appropriate.
  • 18. PL/SQL Archaeology It is imperative that the Service developers understand the existing systems, extract the key logic and respect the data model that has served the business for so long. Rather than separate the DB and Service developers, GW wrote a Typescript parser for PL/SQL to allow types to be generated and for developers to write Typescript or JavaScript code to interrogate logic, models and dependencies from the DB.
  • 19. https://bit.ly/gw-plsql-ast AST Viewer Produces Abstract Syntax that we can view but also interrogate by code. This makes the logic visible to a wider group of developers
  • 20. https://bit.ly/gw-ts-plsql-parser TS Generator Typescript can be used to parse and write scripts to interrogate the PL/SQL. Allowing features like generating TS types from the procedure definitions.
  • 21. Transformation MVP James is looking for ways to “transform” the business to fit in with the new system now that the MVP stories are delivered. The direction is set and now he is waiting on other teams, has got a large delivery factory scaled up now. He is engaged with his Change Management team. He has delivered the mapping stories to the Data Migration team to keep the enterprise DB and the new domain DBs in step. He has setup a Co-existence team to synchronise data in the Enterprise DB to support the products and domains not yet migrated in the MVP.
  • 22. Product MVP Sarah has agreed an MVP with the business stakeholders to solve some current market challenges. New services have been written leveraging the current DB model where appropriate and splitting out certain services to scale to the new usage, leveraging some cloud services. Some PL/SQL has been decommissioned and logic has been moved to the services layer with good automated test coverage and good DevOps practices have been put in place.
  • 23. Domain Separation Domain Driven Design is a key strategy in designing a Microservices Architecture. Splitting the database code into logical domains can help manage the complexities. These should be isolated for change impact, deployment, scalability and resilience but can leverage shared platform capabilities as long as these shared services do not compromise the above principles. Other considerations in splitting the services.. - Performance - Volatility - Data Sharing - Response times Local Shared
  • 24. Microservices Responsibility In our experience the Microservice does not need to be self-contained from a technology perspective. It can expose data via APIs, Data Connections, Events, UI. The implementation should use the right technology for the need. Platform Engineering disciplines will help standardise the user of the technology, Kubernetes, Enterprise DB, Data Platforms etc. Service API Data UI Event Platform AKS Data Bricks ORCL DB
  • 25. Success! (Big Bang Hell) With the co-existence and data migration streams struggling to fill the gaps created by the new design, a big bang launch is planned. The core data model has reverted to the original design but now running on a cloud database that has been migrated by the Cloud Competency team, with the team on hand to support the many teething issues. The services wrap the existing pl/sql code and the improvements are focussed on building the UI in JavaScript. James reminds the team that RetroTech are not Netflix !!! Project pronounced a success, James can move to his next client, with the lesson that he should scale the team earlier.
  • 26. Success! (Product Team) The product is now in production, monitoring shows good improvement in metrics. The Product team are in place for continuous improvements with Business, DevOps, Platform Engineering and IT Delivery working together. There are tech debt objectives in place where complex legacy code remains and the library of new microservices with the appropriate data sources is in place. The public API solution has gained traction, and the conversation UI is accurate and fast. Cloud is making a significant different to performance and reliability in busy periods. Retro Tech have signed a partnership deal with Sarah for a joint collaborative team to deliver more business value.
  • 27. Leveraging the Cloud The redesign of the application and data architecture has readied Retro Tech for their move to a scalable and resilient Cloud Architecture. They are confident of supporting the business change needed to modernise, with operational readiness baked into the development process. They are exploring new channels, partnering with platforms and are starting to look at how they might monetise their core capability – their DATA!
  • 29. #1 ACL Layer An integration pattern to protect services from dependant data or service changes can be used within the microservice. Allows for evolution of the data model and supports switching of data implementations. Mocking and Contract based testing of the data layer within the service is now possible.
  • 30. #2 API Routing As you break down the PL/SQL monolith into clearly separated services, you can start to split the architecture for scalability benefits. E.g. consumers with large requests could be diverted to a cloud copy of the data service. This coupled with the other patterns leads to a smoother transition to a cloud data architecture.
  • 31. #3 Large Datasets & Analytics Move data to a specific, scalable big data and analytics platform for the retrieval of large data sets and analytical views.
  • 32. #4 Logical Microservice Microservices should be self contained, independent and have clear ownership. In Enterprise ecosystems they will naturally be layered and leverage dependant services and platforms. Have logical bounded context and use Platform Engineering disciplines to allow the service owner to deploy, scale and monitor the service independently.
  • 33. • Automate the analysis of legacy DB – Model generation, Archaeology scripts • Traditional layered service architecture becomes bloated for a lot of digital use cases • Be pragmatic as you apply the theory, solution focused • Get the logical design of your Microservices right, then leverage Platform and Services • Coexistence and phased change is essential • Use the right tools for the right data scenarios – you will work with copies • Be like Sarah, less like James ! Summary