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

Microsoft Build 2023 Updates – Copilot Stack and Azure OpenAI Service (Machin...
Microsoft Build 2023 Updates – Copilot Stack and Azure OpenAI Service (Machin...Microsoft Build 2023 Updates – Copilot Stack and Azure OpenAI Service (Machin...
Microsoft Build 2023 Updates – Copilot Stack and Azure OpenAI Service (Machin...Naoki (Neo) SATO
 
Agile enterprise architecture
Agile enterprise architectureAgile enterprise architecture
Agile enterprise architectureScott W. Ambler
 
Making Confluence an Enterprise Standard for Knowledge Management - Atlassian...
Making Confluence an Enterprise Standard for Knowledge Management - Atlassian...Making Confluence an Enterprise Standard for Knowledge Management - Atlassian...
Making Confluence an Enterprise Standard for Knowledge Management - Atlassian...Atlassian
 
Infrastructure And Application Consolidation Analysis And Design
Infrastructure And Application Consolidation Analysis And DesignInfrastructure And Application Consolidation Analysis And Design
Infrastructure And Application Consolidation Analysis And DesignAlan McSweeney
 
Introduction to UiPath licensing model
Introduction to UiPath licensing modelIntroduction to UiPath licensing model
Introduction to UiPath licensing modelVibhor Shrivastava
 
Service oriented architecture
Service oriented  architectureService oriented  architecture
Service oriented architecturePratik Patil
 
Resume corebanking-flexcube-3.5yrs
Resume  corebanking-flexcube-3.5yrsResume  corebanking-flexcube-3.5yrs
Resume corebanking-flexcube-3.5yrsAssignment Help
 
Dbms ii mca-ch7-sql-2013
Dbms ii mca-ch7-sql-2013Dbms ii mca-ch7-sql-2013
Dbms ii mca-ch7-sql-2013Prosanta Ghosh
 
Composable data for the composable enterprise
Composable data for the composable enterpriseComposable data for the composable enterprise
Composable data for the composable enterpriseMatt McLarty
 
Cloud-migration-essentials.pdf
Cloud-migration-essentials.pdfCloud-migration-essentials.pdf
Cloud-migration-essentials.pdfALI ANWAR, OCP®
 
Target Architecture And Landscape
Target Architecture And LandscapeTarget Architecture And Landscape
Target Architecture And LandscapeAjay Kumar Uppal
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFMichael Sukachev
 
Synthetic Monitoring Deep Dive - AppSphere16
Synthetic Monitoring Deep Dive - AppSphere16Synthetic Monitoring Deep Dive - AppSphere16
Synthetic Monitoring Deep Dive - AppSphere16AppDynamics
 
Overview of Google’s BeyondCorp Approach to Security
 Overview of Google’s BeyondCorp Approach to Security Overview of Google’s BeyondCorp Approach to Security
Overview of Google’s BeyondCorp Approach to SecurityPriyanka Aash
 
Introduction to Infrastructure as a Service (IaaS)
Introduction to Infrastructure as a Service (IaaS)Introduction to Infrastructure as a Service (IaaS)
Introduction to Infrastructure as a Service (IaaS)rgtechnologies
 
Get On Top of Azure Resource Security Using Secure DevOps Kit for Azure
Get On Top of Azure Resource Security Using Secure DevOps Kit for AzureGet On Top of Azure Resource Security Using Secure DevOps Kit for Azure
Get On Top of Azure Resource Security Using Secure DevOps Kit for AzureKasun Kodagoda
 
Azure SQL Database Managed Instance - technical overview
Azure SQL Database Managed Instance - technical overviewAzure SQL Database Managed Instance - technical overview
Azure SQL Database Managed Instance - technical overviewGeorge Walters
 

What's hot (20)

AWS vs. Azure
AWS vs. AzureAWS vs. Azure
AWS vs. Azure
 
Microsoft Build 2023 Updates – Copilot Stack and Azure OpenAI Service (Machin...
Microsoft Build 2023 Updates – Copilot Stack and Azure OpenAI Service (Machin...Microsoft Build 2023 Updates – Copilot Stack and Azure OpenAI Service (Machin...
Microsoft Build 2023 Updates – Copilot Stack and Azure OpenAI Service (Machin...
 
Agile enterprise architecture
Agile enterprise architectureAgile enterprise architecture
Agile enterprise architecture
 
Making Confluence an Enterprise Standard for Knowledge Management - Atlassian...
Making Confluence an Enterprise Standard for Knowledge Management - Atlassian...Making Confluence an Enterprise Standard for Knowledge Management - Atlassian...
Making Confluence an Enterprise Standard for Knowledge Management - Atlassian...
 
Infrastructure And Application Consolidation Analysis And Design
Infrastructure And Application Consolidation Analysis And DesignInfrastructure And Application Consolidation Analysis And Design
Infrastructure And Application Consolidation Analysis And Design
 
Introduction to UiPath licensing model
Introduction to UiPath licensing modelIntroduction to UiPath licensing model
Introduction to UiPath licensing model
 
Service oriented architecture
Service oriented  architectureService oriented  architecture
Service oriented architecture
 
Resume corebanking-flexcube-3.5yrs
Resume  corebanking-flexcube-3.5yrsResume  corebanking-flexcube-3.5yrs
Resume corebanking-flexcube-3.5yrs
 
Dbms ii mca-ch7-sql-2013
Dbms ii mca-ch7-sql-2013Dbms ii mca-ch7-sql-2013
Dbms ii mca-ch7-sql-2013
 
Composable data for the composable enterprise
Composable data for the composable enterpriseComposable data for the composable enterprise
Composable data for the composable enterprise
 
Cloud-migration-essentials.pdf
Cloud-migration-essentials.pdfCloud-migration-essentials.pdf
Cloud-migration-essentials.pdf
 
Introduction to SOA
Introduction to SOAIntroduction to SOA
Introduction to SOA
 
Target Architecture And Landscape
Target Architecture And LandscapeTarget Architecture And Landscape
Target Architecture And Landscape
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
 
Cloud Analytics
Cloud AnalyticsCloud Analytics
Cloud Analytics
 
Synthetic Monitoring Deep Dive - AppSphere16
Synthetic Monitoring Deep Dive - AppSphere16Synthetic Monitoring Deep Dive - AppSphere16
Synthetic Monitoring Deep Dive - AppSphere16
 
Overview of Google’s BeyondCorp Approach to Security
 Overview of Google’s BeyondCorp Approach to Security Overview of Google’s BeyondCorp Approach to Security
Overview of Google’s BeyondCorp Approach to Security
 
Introduction to Infrastructure as a Service (IaaS)
Introduction to Infrastructure as a Service (IaaS)Introduction to Infrastructure as a Service (IaaS)
Introduction to Infrastructure as a Service (IaaS)
 
Get On Top of Azure Resource Security Using Secure DevOps Kit for Azure
Get On Top of Azure Resource Security Using Secure DevOps Kit for AzureGet On Top of Azure Resource Security Using Secure DevOps Kit for Azure
Get On Top of Azure Resource Security Using Secure DevOps Kit for Azure
 
Azure SQL Database Managed Instance - technical overview
Azure SQL Database Managed Instance - technical overviewAzure SQL Database Managed Instance - technical overview
Azure SQL Database Managed Instance - technical overview
 

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

Digital Reinvention by NRB
Digital Reinvention by NRBDigital Reinvention by NRB
Digital Reinvention by NRBWilliam Poos
 
locotalk-whitepaper-2016
locotalk-whitepaper-2016locotalk-whitepaper-2016
locotalk-whitepaper-2016Anthony Wijnen
 
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 modelKrishna-Kumar
 
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...Igor De Souza
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGateJeffrey T. Pollock
 
Sakthi Shenbagam - Data warehousing Consultant
Sakthi Shenbagam - Data warehousing ConsultantSakthi Shenbagam - Data warehousing Consultant
Sakthi Shenbagam - Data warehousing ConsultantSakthi Shenbagam
 
Cloud Application Development Lifecycle
Cloud Application Development LifecycleCloud Application Development Lifecycle
Cloud Application Development LifecycleSuhas Kelkar
 
Success Story: Microsoft Deploys ER/Studio
Success Story: Microsoft Deploys ER/StudioSuccess Story: Microsoft Deploys ER/Studio
Success Story: Microsoft Deploys ER/StudioEmbarcadero Technologies
 
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?US-Analytics
 
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?Tammy Bednar
 
Technology Overview
Technology OverviewTechnology Overview
Technology OverviewLiran Zelkha
 
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 walCapgemini
 
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 AzureChristian Buckley
 
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 ...DATAVERSITY
 
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 StrategyMongoDB
 
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èsIBMInfoSphereUGFR
 
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 Cloudredmondpulver
 

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

KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
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.
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 

Recently uploaded (20)

KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
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
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 

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