SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

Oracle RAC 19c - the Basis for the Autonomous Database
Oracle RAC 19c - the Basis for the Autonomous DatabaseOracle RAC 19c - the Basis for the Autonomous Database
Oracle RAC 19c - the Basis for the Autonomous DatabaseMarkus Michalewicz
 
Build data quality rules and data cleansing into your data pipelines
Build data quality rules and data cleansing into your data pipelinesBuild data quality rules and data cleansing into your data pipelines
Build data quality rules and data cleansing into your data pipelinesMark Kromer
 
Pipelines and Data Flows: Introduction to Data Integration in Azure Synapse A...
Pipelines and Data Flows: Introduction to Data Integration in Azure Synapse A...Pipelines and Data Flows: Introduction to Data Integration in Azure Synapse A...
Pipelines and Data Flows: Introduction to Data Integration in Azure Synapse A...Cathrine Wilhelmsen
 
Oracle Open World Presentation - Oracle RMAN Best Practices for Cloud Backups
Oracle Open World Presentation - Oracle RMAN Best Practices for Cloud Backups Oracle Open World Presentation - Oracle RMAN Best Practices for Cloud Backups
Oracle Open World Presentation - Oracle RMAN Best Practices for Cloud Backups Niklas Iveslatt
 
Intro to Data Vault 2.0 on Snowflake
Intro to Data Vault 2.0 on SnowflakeIntro to Data Vault 2.0 on Snowflake
Intro to Data Vault 2.0 on SnowflakeKent Graziano
 
Lessons Learned: Implementing Azure Synapse Analytics in a Rapidly-Changing S...
Lessons Learned: Implementing Azure Synapse Analytics in a Rapidly-Changing S...Lessons Learned: Implementing Azure Synapse Analytics in a Rapidly-Changing S...
Lessons Learned: Implementing Azure Synapse Analytics in a Rapidly-Changing S...Cathrine Wilhelmsen
 
Cisco connect winnipeg 2018 a look at network assurance in dna center
Cisco connect winnipeg 2018   a look at network assurance in dna centerCisco connect winnipeg 2018   a look at network assurance in dna center
Cisco connect winnipeg 2018 a look at network assurance in dna centerCisco Canada
 
The Oracle RAC Family of Solutions - Presentation
The Oracle RAC Family of Solutions - PresentationThe Oracle RAC Family of Solutions - Presentation
The Oracle RAC Family of Solutions - PresentationMarkus Michalewicz
 
Accelerate and modernize your data pipelines
Accelerate and modernize your data pipelinesAccelerate and modernize your data pipelines
Accelerate and modernize your data pipelinesPaul Van Siclen
 
Cloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The CloudCloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The CloudNew Relic
 
Cloud Governance & DevOps: Must-have Tools on Your Journey to Azure Cloud
Cloud Governance & DevOps: Must-have Tools on Your Journey to Azure CloudCloud Governance & DevOps: Must-have Tools on Your Journey to Azure Cloud
Cloud Governance & DevOps: Must-have Tools on Your Journey to Azure CloudPredica Group
 
Oracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture PerformanceOracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture PerformanceEnkitec
 
Modernizing the Analytics and Data Science Lifecycle for the Scalable Enterpr...
Modernizing the Analytics and Data Science Lifecycle for the Scalable Enterpr...Modernizing the Analytics and Data Science Lifecycle for the Scalable Enterpr...
Modernizing the Analytics and Data Science Lifecycle for the Scalable Enterpr...Data Con LA
 
Cybersecurity Insiders Webinar - Zero Trust: Best Practices for Securing the...
Cybersecurity Insiders Webinar  - Zero Trust: Best Practices for Securing the...Cybersecurity Insiders Webinar  - Zero Trust: Best Practices for Securing the...
Cybersecurity Insiders Webinar - Zero Trust: Best Practices for Securing the...Ivanti
 
Introduction to Greenplum
Introduction to GreenplumIntroduction to Greenplum
Introduction to GreenplumDave Cramer
 
Serhii Kholodniuk: What you need to know, before migrating data platform to G...
Serhii Kholodniuk: What you need to know, before migrating data platform to G...Serhii Kholodniuk: What you need to know, before migrating data platform to G...
Serhii Kholodniuk: What you need to know, before migrating data platform to G...Lviv Startup Club
 
Zero Trust Framework for Network Security​
Zero Trust Framework for Network Security​Zero Trust Framework for Network Security​
Zero Trust Framework for Network Security​AlgoSec
 

Mais procurados (20)

Data guard oracle
Data guard oracleData guard oracle
Data guard oracle
 
MULTI-CLOUD ARCHITECTURE
MULTI-CLOUD ARCHITECTUREMULTI-CLOUD ARCHITECTURE
MULTI-CLOUD ARCHITECTURE
 
Oracle RAC 19c - the Basis for the Autonomous Database
Oracle RAC 19c - the Basis for the Autonomous DatabaseOracle RAC 19c - the Basis for the Autonomous Database
Oracle RAC 19c - the Basis for the Autonomous Database
 
Build data quality rules and data cleansing into your data pipelines
Build data quality rules and data cleansing into your data pipelinesBuild data quality rules and data cleansing into your data pipelines
Build data quality rules and data cleansing into your data pipelines
 
Pipelines and Data Flows: Introduction to Data Integration in Azure Synapse A...
Pipelines and Data Flows: Introduction to Data Integration in Azure Synapse A...Pipelines and Data Flows: Introduction to Data Integration in Azure Synapse A...
Pipelines and Data Flows: Introduction to Data Integration in Azure Synapse A...
 
Oracle Open World Presentation - Oracle RMAN Best Practices for Cloud Backups
Oracle Open World Presentation - Oracle RMAN Best Practices for Cloud Backups Oracle Open World Presentation - Oracle RMAN Best Practices for Cloud Backups
Oracle Open World Presentation - Oracle RMAN Best Practices for Cloud Backups
 
Intro to Data Vault 2.0 on Snowflake
Intro to Data Vault 2.0 on SnowflakeIntro to Data Vault 2.0 on Snowflake
Intro to Data Vault 2.0 on Snowflake
 
Lessons Learned: Implementing Azure Synapse Analytics in a Rapidly-Changing S...
Lessons Learned: Implementing Azure Synapse Analytics in a Rapidly-Changing S...Lessons Learned: Implementing Azure Synapse Analytics in a Rapidly-Changing S...
Lessons Learned: Implementing Azure Synapse Analytics in a Rapidly-Changing S...
 
What is SASE
What is SASEWhat is SASE
What is SASE
 
Cisco connect winnipeg 2018 a look at network assurance in dna center
Cisco connect winnipeg 2018   a look at network assurance in dna centerCisco connect winnipeg 2018   a look at network assurance in dna center
Cisco connect winnipeg 2018 a look at network assurance in dna center
 
The Oracle RAC Family of Solutions - Presentation
The Oracle RAC Family of Solutions - PresentationThe Oracle RAC Family of Solutions - Presentation
The Oracle RAC Family of Solutions - Presentation
 
Accelerate and modernize your data pipelines
Accelerate and modernize your data pipelinesAccelerate and modernize your data pipelines
Accelerate and modernize your data pipelines
 
Cloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The CloudCloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
 
Cloud Governance & DevOps: Must-have Tools on Your Journey to Azure Cloud
Cloud Governance & DevOps: Must-have Tools on Your Journey to Azure CloudCloud Governance & DevOps: Must-have Tools on Your Journey to Azure Cloud
Cloud Governance & DevOps: Must-have Tools on Your Journey to Azure Cloud
 
Oracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture PerformanceOracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture Performance
 
Modernizing the Analytics and Data Science Lifecycle for the Scalable Enterpr...
Modernizing the Analytics and Data Science Lifecycle for the Scalable Enterpr...Modernizing the Analytics and Data Science Lifecycle for the Scalable Enterpr...
Modernizing the Analytics and Data Science Lifecycle for the Scalable Enterpr...
 
Cybersecurity Insiders Webinar - Zero Trust: Best Practices for Securing the...
Cybersecurity Insiders Webinar  - Zero Trust: Best Practices for Securing the...Cybersecurity Insiders Webinar  - Zero Trust: Best Practices for Securing the...
Cybersecurity Insiders Webinar - Zero Trust: Best Practices for Securing the...
 
Introduction to Greenplum
Introduction to GreenplumIntroduction to Greenplum
Introduction to Greenplum
 
Serhii Kholodniuk: What you need to know, before migrating data platform to G...
Serhii Kholodniuk: What you need to know, before migrating data platform to G...Serhii Kholodniuk: What you need to know, before migrating data platform to G...
Serhii Kholodniuk: What you need to know, before migrating data platform to G...
 
Zero Trust Framework for Network Security​
Zero Trust Framework for Network Security​Zero Trust Framework for Network Security​
Zero Trust Framework for Network Security​
 

Semelhante a 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
 

Semelhante a 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
 

Último

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
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
 
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.
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
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
 
(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
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
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
 

Último (20)

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
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
 
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 ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
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...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
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 ...
 
(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...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
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
 

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