SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

CQRS and Event Sourcing, An Alternative Architecture for DDD
CQRS and Event Sourcing, An Alternative Architecture for DDDCQRS and Event Sourcing, An Alternative Architecture for DDD
CQRS and Event Sourcing, An Alternative Architecture for DDDDennis Doomen
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaGuido Schmutz
 
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...Tin Linn Soe
 
Microservices with Spring Boot Tutorial | Edureka
Microservices with Spring Boot Tutorial | EdurekaMicroservices with Spring Boot Tutorial | Edureka
Microservices with Spring Boot Tutorial | EdurekaEdureka!
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudEberhard Wolff
 
Introduction to Microservices Patterns
Introduction to Microservices PatternsIntroduction to Microservices Patterns
Introduction to Microservices PatternsDimosthenis Botsaris
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureAbdelghani Azri
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudEberhard Wolff
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices Amazon Web Services
 
Microservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaMicroservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaEdureka!
 
Three layer API Design Architecture
Three layer API Design ArchitectureThree layer API Design Architecture
Three layer API Design ArchitectureHarish Kumar
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootKashif Ali Siddiqui
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaAraf Karsh Hamid
 
Interview Questions For Microsoft Dynamics CRM
Interview Questions For Microsoft Dynamics CRMInterview Questions For Microsoft Dynamics CRM
Interview Questions For Microsoft Dynamics CRMKumari Warsha Goel
 
Microservices for Enterprises
Microservices for Enterprises Microservices for Enterprises
Microservices for Enterprises Kasun Indrasiri
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAraf Karsh Hamid
 

Tendances (20)

CQRS and Event Sourcing, An Alternative Architecture for DDD
CQRS and Event Sourcing, An Alternative Architecture for DDDCQRS and Event Sourcing, An Alternative Architecture for DDD
CQRS and Event Sourcing, An Alternative Architecture for DDD
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
 
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
 
Microservices with Spring Boot Tutorial | Edureka
Microservices with Spring Boot Tutorial | EdurekaMicroservices with Spring Boot Tutorial | Edureka
Microservices with Spring Boot Tutorial | Edureka
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 
02 api gateway
02 api gateway02 api gateway
02 api gateway
 
Introduction to Microservices Patterns
Introduction to Microservices PatternsIntroduction to Microservices Patterns
Introduction to Microservices Patterns
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Microsoft Azure Logic apps
Microsoft Azure Logic appsMicrosoft Azure Logic apps
Microsoft Azure Logic apps
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices
 
Microservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaMicroservices Design Patterns | Edureka
Microservices Design Patterns | Edureka
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Three layer API Design Architecture
Three layer API Design ArchitectureThree layer API Design Architecture
Three layer API Design Architecture
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring Boot
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and Saga
 
Interview Questions For Microsoft Dynamics CRM
Interview Questions For Microsoft Dynamics CRMInterview Questions For Microsoft Dynamics CRM
Interview Questions For Microsoft Dynamics CRM
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Microservices for Enterprises
Microservices for Enterprises Microservices for Enterprises
Microservices for Enterprises
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
 

Similaire à 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
 

Similaire à 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
 

Dernier

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
(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
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
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
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
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.
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
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.
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
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
 

Dernier (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
(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...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
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
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
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
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
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 ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
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...
 

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