SlideShare a Scribd company logo
1 of 102
Download to read offline
FROM FLOPPIES TO


CLOUD DEPLOYMENTS
/LESSONS LEARNED


MARTIJN DASHORST
topicus
/1992 FONTEIN MAVO, BUSSUM
CMG SCHOOLFACT


3 22/40
CMG SCHOOLFACT


3 22/40
CMG SCHOOLFACT


3 22/40
CMG SCHOOLFACT


3 22/40
IF YOU LEARN JUST ONE THING
:
ALWAYS HAVE A


PLAN B
/WHY FLOPPIES?
/01
A brief history of
our products
/KEEP IT FRESH
/02
An upgrade where we
learned a lesson.
/ARCHITECTURE UPGRADES
/03
Three upgrades,


Three lessons learned
/TABLE OF CONTENTS
/DEPLOYMENTS
/04
Deploying software in
a more civilised age
/WHY FLOPPIES?
/01
A brief history of our
products
/A BRIEF HISTORY OF TIME
1985-2002
SCHOOLFACT
COBOL·DOS·5¼"FLOPPIES
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
/A BRIEF HISTORY OF TIME
1985-2002
2002-2009
SCHOOLFACT
COBOL·DOS·5¼"FLOPPIES
@VO
VB·WINDOWS·3½”FLOPPIES
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
/A BRIEF HISTORY OF TIME
1985-2002
2002-
SCHOOLFACT
COBOL·DOS·5¼"FLOPPIES
@VO
VB·WINDOWS·3½”FLOPPIES
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
/A BRIEF HISTORY OF TIME
2009-
1985-2002
2002-2009
SCHOOLFACT
COBOL·DOS·5¼"FLOPPIES
@VO
VB·WINDOWS·3½”FLOPPIES
SOMTODAY
WEB·SAAS
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
PARNASSYS
PARRO
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
PARNASSYS
VOCUS
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
PARNASSYS
VOCUS
@VO
@VO
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
PARNASSYS
@VO
VOCUS @VO SOMTODAY
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
PARNASSYS
EDUARTE
2017
@VO
VOCUS @VO SOMTODAY
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
PARNASSYS
EDUARTE
2017
@VO
SOMTODAY
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
PARNASSYS
EDUARTE
DAYCARE
DIGDAG (PARTOU)
2017
@VO
SOMTODAY
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
PARNASSYS
EDUARTE
DAYCARE
DIGDAG (PARTOU)
2017
@VO
SOMTODAY
KEYHUB
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
PARNASSYS
EDUARTE
SECURITY
KEYHUB
2017
SOMTODAY
DAYCARE
DIGDAG
01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
/KEEP IT FRESH
/02
Software expires,


especially when frozen…
/OBSOLESCENCE HAPPENS
2009-
1985-2002
2002-2009
SCHOOLFACT
COBOL·DOS·5¼"FLOPPIES
@VO
VB·WINDOWS·3½”FLOPPIES
SOMTODAY
WEB·SAAS
02 KEEP IT FRESH · OBSOLESCENCE HAPPENS
/OBSOLESCENCE HAPPENS
2009-
1985-2002
2002-2009
SCHOOLFACT
COBOL·DOS·5¼"FLOPPIES
@VO
VB·WINDOWS·3½”FLOPPIES
SOMTODAY
WEB·SAAS
02 KEEP IT FRESH · OBSOLESCENCE HAPPENS
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
PARNASSYS
SOMTODAY
EDUARTE
2017
02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE
SECURITY
KEYHUB
DAYCARE
DIGDAG
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
JAVA 6 → JAVA 7
PARNASSYS
SOMTODAY
EDUARTE
2017
02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE
SECURITY
KEYHUB
DAYCARE
DIGDAG
PARNASSYS
“it is completely unworkable for
over a week already. […] it has
the speed of hitting a tennis
ball through a gardenhose.”
02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE
[...] Even so slow that searching is
faster using the old archive (open
archive,
fi
nd folder, browse folder,
transferring the data, storing the
folder, closing the archive). All the
while Parnassys tried to log in. It
didn’t by. the way. And I
fi
nd that
irritating.
02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE
02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE
/JAVA 6 → JAVA 7 UPGRADE
/INSTABILITY FOR 2 WEEKS
Code would stall on
synchronization
blocks
/JAVA 7 PART OF RELEASE
NO WAY BACK
:
database and
essential features
and integrations
were released to
customers
/SUSPEND VS SPINNING
Waiting for lock:
suspend or spin. <6
suspend
>
=
6 spin.
—WE
“First deploy the new Java
runtime to Test, Acceptance and
Production before writing source
code using the new Java version”
02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
JAVA 6 → JAVA 7
PARNASSYS
SOMTODAY
EDUARTE
2017
JAVA 8


JAVA 11


JAVA 17


02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE
SECURITY
KEYHUB
DAYCARE
DIGDAG
DTAP FOR CODE, TAPD FOR INFRASTRUCTURE
Always have a plan B


/RECOMMENDATION
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
/ARCHITECTURE
UPGRADES
/03
/ARCHITECTURE UPGRADES
/TOMCAT → WILDFLY
Reevaluate your past
decisions to see if
they still hold true
/SHARED BASE PLATFORM
Code can’t be
preserved, it goes
stale and then bad.
Share the upgrade load.
/ORACLE → POSTGRESQL + K8S
Don’t execute plan
A and B together at
the same time
03 ARCHITECTURE UPGRADES
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
PARNASSYS
SOMTODAY
EDUARTE
2017
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
TOMCAT
SECURITY
KEYHUB
DAYCARE
DIGDAG
/HOW IT STARTED
TOMCAT
HIBERNATE
WICKET
BROWSERS
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
/HOW IT STARTED
TOMCAT
HIBERNATE EHCACHE
WICKET
BROWSERS
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
/HOW IT STARTED
TOMCAT
HIBERNATE EHCACHE
WICKET
BROWSERS
BONECP
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
/HOW IT STARTED
TOMCAT
HIBERNATE EHCACHE
WICKET
BROWSERS
BONECP QUARTZ
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
/HOW IT STARTED
TOMCAT
HIBERNATE EHCACHE
WICKET
BROWSERS
BONECP QUARTZ
WEB


SERVICES
AXIS
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
/HOW IT STARTED
TOMCAT
HIBERNATE EHCACHE
WICKET
BROWSERS
BONECP QUARTZ
WEB


SERVICES
AXIS + AXIS 2
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
/HOW IT STARTED
TOMCAT
HIBERNATE EHCACHE
WICKET
BROWSERS
BONECP QUARTZ
WEB


SERVICES
AXIS + AXIS 2


+ CXF
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
/HOW IT STARTED
TOMCAT
BONECP
HIBERNATE
SPRING BEANS
SPRING CONTEXT
EHCACHE
QUARTZ
SPRING
TRANSACTION
AXIS + AXIS 2


+ CXF
WICKET
WEB


SERVICES
BROWSERS
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
/JAVA EE?
SERVLET 3
JSF 2
EJB 3.1
JPA 2
JSP
CDI
JTA
BEAN
JAX-WS
JAX-RPC
JAXR
SAAJ
JAX-RS
JAXB
JMS
JAAS
JASPIC
JACC
JCA
JAVA MAIL
JSR 88
JSR 77
RMI
JNDI
BATCH CONCURRENCY
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
/JAVA EE?
SERVLET 3
JSF 2
EJB 3.1
JPA 2
JSP
CDI
JTA
BEAN VALIDATION
JAX-WS
JAX-RPC
JAXR
SAAJ
JAX-RS
JAXB
JMS
JAAS
JASPIC
JACC
JCA
JAVA MAIL
JSR 88
JSR 77
RMI
JNDI
SPRING


BEANS
HIBERNATE
SPRING


CORE
SPRING


CONTEXT
SPRING


TRANSACTION
BATCH
CONCURRENC
QUARTZ QUARTZ
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
HIBERNATE JAVA MAIL
WICKET
WICKET
CXF
CXF CXF
IF IT QUACKS LIKE
JAVA EE, IF IT LOOKS
LIKE JAVA EE, IT
PROBABLY IS JAVA EE
/HOW IT STARTED
TOMCAT
BONECP
HIBERNATE
SPRING BEANS
SPRING CONTEXT
EHCACHE
QUARTZ
SPRING
TRANSACTION
CXF
WICKET
WEB


SERVICES
BROWSERS
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
/HOW IT’ GOING
WILDFLY
WICKET
WEB


SERVICES
BROWSERS
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
PARNASSYS
SOMTODAY
EDUARTE
2017
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
TOMCAT
SECURITY
KEYHUB
DAYCARE
DIGDAG
WILDFLY
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
PARNASSYS
SOMTODAY
EDUARTE
2017
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
TOMCAT
SECURITY
KEYHUB
DAYCARE
DIGDAG
WILDFLY
REEVALUATE YOUR OLD DECISIONS
What was once a good decision may no longer be
the best.
/RECOMMENDATION
03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
/ARCHITECTURE UPGRADES
/TOMCAT → WILDFLY
Reevaluate your past
decisions to see if
they still hold true
/SHARED BASE PLATFORM
Code can’t be
preserved, it goes
stale and then bad.
Share the upgrade load.
/ORACLE → POSTGRESQL + K8S
Don’t execute plan
A and B together at
the same time
03 ARCHITECTURE UPGRADES
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
PARNASSYS
SOMTODAY
EDUARTE
2017
03 ARCHITECTURE UPGRADES · 01 ONE SHARED BASE PLATFORM
SECURITY
KEYHUB
DAYCARE
DIGDAG
WILDFLY
/ONE SHARED BASE PLATFORM
ONDERWIJS PARENT
PARNASSYS
SOMTODAY
EDUARTE
DIGDAG
KEYHUB
JAVA EE WILDFLY
JAVA
EVERY 14 DAYS
Upgrade all
dependencies to latest
releases
03 ARCHITECTURE UPGRADES · 01 ONE SHARED BASE PLATFORM
STAY UP TO DATE
Code can’t be preserved, it goes stale and then
bad. Share the upgrade load.
/RECOMMENDATION
03 ARCHITECTURE UPGRADES · 01 ONE SHARED BASE PLATFORM
/ARCHITECTURE UPGRADES
/TOMCAT → WILDFLY
Reevaluate your past
decisions to see if
they still hold true
/SHARED BASE PLATFORM
Code can’t be
preserved, it goes
stale and then bad.
Share the upgrade load.
/ORACLE → POSTGRESQL + K8S
Don’t execute plan
A and B together at
the same time
03 ARCHITECTURE UPGRADES
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
PARNASSYS
EDUARTE
SECURITY
KEYHUB
2017
SOMTODAY
DAYCARE
DIGDAG
ORA → PG


K8S
SUMMER 2020
03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
ORA → PG
/WHY MIGRATE FROM ORACLE
/MIGRATION ASSISTENT
Licensing audit
took 3 years,
extortion racket
/PRICE
Our DB server core
count costs €€€


/TOOLING
Requires RAC /
Enterprise license,
€€€
03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
/SOMTODAY
- ~220 schools


- 8 streets


- 1 schema / street


- 1 database server: Oracle


- column tenant identif
i
er
03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
/BEFORE
ORACLE
PROD
ADMIN
STUDENT
REST
STREET 1
SCHOOLS 1—25
03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
/BEFORE
ORACLE
PROD
ADMIN
STUDENT
REST
STREET 1
ORACLE
PROD
ADMIN
STUDENT
REST
STREET 2
ORACLE
PROD
ADMIN
STUDENT
REST
STREET 3
ORACLE
PROD
ADMIN
STUDENT
REST
STREET 4
ORACLE
PROD
ADMIN
STUDENT
REST
STREET 5
ORACLE
PROD
ADMIN
STUDENT
REST
STREET 6
ORACLE
PROD
ADMIN
STUDENT
REST
STREET 7
ORACLE
PROD
ADMIN
STUDENT
REST
STREET 8
SCHOOLS 1—25 SCHOOLS 26—50 SCHOOLS 51—75 SCHOOLS 76—100 SCHOOLS 101—125 SCHOOLS 126—150 SCHOOLS 151—175 SCHOOLS 176—200
MIGRATION PLAN
- Oracle → Postgresql


- Bare metal → Kubernetes
YOU CAN’T


SOLVE A


PROBLEM JUST


BY SAYING


TECHY THINGS. KUBERNETES.
© Scott Adams · dilbert.com
03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
/AFTER?
PROD
ADMIN
STUDENT REST
ADMIN ADMIN ADMIN STUDENT STUDENT STUDENT STUDENT
REST REST
KUBERNETES
/SCHEMA PER TENANT
Each tenant gets its own schema
for tenant data, one schema for
nation wide data
03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
NATIONWIDE


DATA
leerling
vak
resultaat
toets
rooster
absentie
ouder
rapport
examen
kluisje
huiswerk
pakket
opleiding
docent
rol
adres
/ORA2PG
/FREE
Dutchies most favorite
criterium!
/CUSTOM MIGRATION
Renumber IDs, move schemas


/BIG BANG MIGRATION
There’s no PG2ORA, so one
-
way only


03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
/FAILURES
Database processes kept restarting
due to memory errors
/MORE FAILURES
Amount of connections overwhelmed
database, pgbouncer to the rescue
pgbouncer does not support


server
-
side prepared statements
Amount of queries overwhelmed database
due to Java EE caching issues
Amount of long running idle
transactions overwhelmed database
/FAILURE MODE ENGAGED
03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
5
WEEKS OUTAGE


START OF SCHOOL YEAR
03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
/FINAL SOLUTION
PROD
ADMIN
STUDENT REST
ADMIN ADMIN ADMIN STUDENT STUDENT STUDENT STUDENT
REST REST
KUBERNETES
PROD
PGBOUNCER
PGBOUNCER
ONLY DO ONE MIGRATION AT A TIME
And…


Always have a plan B
03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
/RECOMMENDATION
/DEPLOYMENTS
/04
Deploying software in a more
civilised age
/FLOPPY SOFTWARE RELEASES
INDEX.HTML
How do we ship software
currently
/CLOUDY DEPLOYMENT
How did “we” ship software
in them ole days?
/WHAT IS THIS TOPIC ABOUT?
YOUR LOGO HERE
/SOFTWARE RELEASE PROCESS
/MODIFY HELM CHART
Apply a sprinkle of
YAML
INDEX.HTML
04 TO CLOUD DEPLOYMENTS · CURRENT SOFTWARE RELEASE PROCESS
/SOFTWARE RELEASE PROCESS
/PUSH TO GITHUB
Perform change request
review
/MODIFY HELM CHART
Apply a sprinkle of
YAML
INDEX.HTML
04 TO CLOUD DEPLOYMENTS · CURRENT SOFTWARE RELEASE PROCESS
/SOFTWARE RELEASE PROCESS
/PUSH TO GITHUB
Perform change request
review
/MODIFY HELM CHART
Apply a sprinkle of
YAML
/MERGE TO BRANCH
Triggers ARGO CD


INDEX.HTML
04 TO CLOUD DEPLOYMENTS · CURRENT SOFTWARE RELEASE PROCESS
/SOFTWARE RELEASE PROCESS
/PUSH TO GITHUB
Perform change request
review
/DONE
ARGO CD updates K8S and
deploys modif
i
cations
/MODIFY HELM CHART
Apply a sprinkle of
YAML
/MERGE TO BRANCH
Triggers ARGO CD


INDEX.HTML
04 TO CLOUD DEPLOYMENTS · CURRENT SOFTWARE RELEASE PROCESS
~25 mins
From code change to


patch on production
04 TO CLOUD DEPLOYMENTS · CURRENT SOFTWARE RELEASE PROCESS
« no CI/CD (yet) »
/FLOPPY SOFTWARE RELEASES
INDEX.HTML
How do we ship software
currently
/CLOUDY DEPLOYMENT
How did “we” ship software
in them ole days?
/WHAT IS THIS TOPIC ABOUT?
YOUR LOGO HERE
/1992 FONTEIN MAVO, BUSSUM
CMG SCHOOLFACT


3 22/40
CMG SCHOOLFACT


3 22/40
CMG SCHOOLFACT


3 22/40
CMG SCHOOLFACT


3 22/40
CopyPro 2000
* 44-230 diskettes per hour


* Unattended operation


* 50 disk capacity option included


* High Speed Drives


* Separate Reject Bin


* Drive Cleaning Mode


* Automatic Batch Mode Processing


using multiple Disk Masters


* Bit
-
by
-
bit verif
i
cation
04 TO CLOUD DEPLOYMENTS · FLOPPY DEPLOYMENTS
CONTROL PANEL
INPUT BIN
OUTPUT BIN
REJECT COMPARTMENT
04 TO CLOUD DEPLOYMENTS · FLOPPY DEPLOYMENTS
300 customers


40 floppy’s / release
200 / hr / machine


12,000
/A BIG NUMBER TO SUPPORT THE CONCEPT
04 TO CLOUD DEPLOYMENTS · FLOPPY DEPLOYMENTS
floppies
300 customers


40 floppy’s / release
200 / hr / machine


60 hrs
/A BIG NUMBER TO SUPPORT THE CONCEPT
04 TO CLOUD DEPLOYMENTS · FLOPPY DEPLOYMENTS
300 customers


4 boxes of 10 floppies


€5 / shipment
€1500
04 TO CLOUD DEPLOYMENTS · FLOPPY DEPLOYMENTS
/SHIPPING
TARIFS: TPGPOST.NL 2002
DON’T USE FLOPPIES
Nobody can use them anymore and they are
expensive.
/RECOMMENDATION
04 TO CLOUD DEPLOYMENTS · FLOPPY DEPLOYMENTS
/CONCLUSION
/05
JAVA 6 → JAVA 7 → JAVA 8 → JAVA 11 → JAVA 17
Use TAPD for infrastructure, DTAP for code.


Always have a plan B
MIGRATION FROM ORACLE 2 + KUBERNETES
You will not sleep well when there’s
no plan B.
TOMCAT → WILDFLY
REEVALUATE YOUR OLD DECISIONS. What was once
a good decision may no longer be the best.
MIGRATION FROM ORACLE 1
Projectmanagers sleep better with the
security of a plan B
USE SHARED BASE PLATFORM
One parent POM to rule them all and
in the build bind them
.
.
.
/WHAT DID WE DO?
AUTOMATED DEPLOYMENTS
Infrastructure as Code saves your
life.
/DTAP FOR CODE, TAPD FOR INFRASTRUCTURE
Always have a plan B


/ONLY DO ONE MIGRATION AT A TIME
And…


Always have a plan B
/REEVALUATE YOUR OLD DECISIONS
What was once a good decision may no
longer be the best.
/PAID SOFTWARE MAY BE WORTH IT
Don’t dismiss paid software that
prevents a problem
/STAY UP TO DATE
Code can’t be preserved, it goes
stale and then bad. Share the load.
/RECOMMENDATIONS
/DON’T USE FLOPPIES
Nobody can use them anymore and they
are expensive as hell
ALWAYS HAVE A


PLAN B
(AND DON’T USE FLOPPIES)
CREDITS: This presentation template was created by Slidesgo, and includes icons by Flaticon, and infographics & images by Freepik
THANKS!
DO YOU HAVE ANY QUESTIONS?
martijn.dashorst@topicus.nl


topicus.nl · topicus.com · martijndashorst.com
@dashorst
2004 2006 2008 2010 2012 2014 2016 2018 2020 2022
PRIMARY EDUCATION
SECONDARY EDUCATION
VOCATIONAL EDUCATION
PARNASSYS
SOMTODAY
EDUARTE
2017
03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
ORA → PG
SECURITY
KEYHUB
DAYCARE
DIGDAG
PARNASSYS
SUMMER 2018
/PARNASSYS
- ~6500 schools


- 1 schema


- 1 database: Oracle


- column tenant identif
i
er
03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
/WHY MIGRATE FROM ORACLE
/MIGRATION ASSISTENT
Licensing audit
took 3 years,
extortion racket
/PRICE
Our DB server core
count costs €€€


/TOOLING
Requires RAC /
Enterprise license,
€€€
03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
/BEFORE
03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
PRIMARY SECONDARY
standby
ORACLE ORACLE
standard replication
production
/AFTER?
03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
PRIMARY SECONDARY
STANDBY
standard replication
/ORA2PG
/FREE
Dutchies most favorite
criterium!
/SLOW
1 day for 1 migration attempt, or
unstable (parallel)
/BIG BANG MIGRATION
There’s no PG2ORA, so one
-
way only


03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
NOPE
LOOK AT ALL THE
NOPE
NOPE
NOPE
NOPE
🎶♬
♪🎵
/HVR
/EXPENSIVE
“Call for pricing”


— Dutchies least favourite criterium!
/FAST
Real
-
time sync, low latency


/REVERSIBLE
Bi
-
directional, cross database
synchronization!
03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
Cross-database replica
ti
on using redo logs
/HVR «BEFORE MIGRATION»
03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
PRIMARY
NEW


PRIMARY
ORACLE SECONDARY
failsafe
ORACLE
PROD
PROD
standby
standard replication
/HVR «BEFORE MIGRATION»
03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
ORACLE
failsafe
ORACLE
PROD
PROD
standby
HVR HVR
standard replication
PRIMARY
NEW


PRIMARY SECONDARY
/HVR «AFTER MIGRATION»
03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
ORACLE
failsafe
ORACLE
PROD
PROD
standby
standard replication
HVR HVR
OLD


PRIMARY PRIMARY SECONDARY
/CURRENT DATABASE
03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
PROD standby
standard replication
PRIMARY SECONDARY
OLD


PRIMARY
/DTAP FOR CODE, TAPD FOR INFRASTRUCTURE
Always have a plan B


/REEVALUATE YOUR OLD DECISIONS
What was once a good decision may no
longer be the best.
/PAID SOFTWARE MAY BE WORTH IT
Don’t dismiss paid software that
prevents a problem
/STAY UP TO DATE
Code can’t be preserved, it goes
stale and then bad. Share the load.
/RECOMMENDATIONS

More Related Content

Similar to From Floppy Disks to Cloud Deployments

Safe Go - 2022-10-26 - Go West
Safe Go - 2022-10-26 - Go WestSafe Go - 2022-10-26 - Go West
Safe Go - 2022-10-26 - Go WestMax Ekman
 
Training and Education Presentation
Training and Education PresentationTraining and Education Presentation
Training and Education PresentationFieldComm Group
 
Modernization options for Oracle Forms applications
Modernization options for Oracle Forms applicationsModernization options for Oracle Forms applications
Modernization options for Oracle Forms applicationsSven Bernhardt
 
Web sustainability
Web sustainabilityWeb sustainability
Web sustainabilityScott Turner
 
Starting your education in big data - Sneak peek to the new Big Data University
Starting your education in big data - Sneak peek to the new Big Data UniversityStarting your education in big data - Sneak peek to the new Big Data University
Starting your education in big data - Sneak peek to the new Big Data UniversityRaul Chong
 
The Glass House V3 The Economics of Glass in Ark Mode
The Glass House V3 The Economics of Glass in Ark ModeThe Glass House V3 The Economics of Glass in Ark Mode
The Glass House V3 The Economics of Glass in Ark ModeBrij Consulting, LLC
 
GDSC EPITA Docker Presentation
GDSC EPITA Docker PresentationGDSC EPITA Docker Presentation
GDSC EPITA Docker Presentationssuser540861
 
An AWS DMS Replication Journey from Oracle to Aurora MySQL
An AWS DMS Replication Journey from Oracle to Aurora MySQLAn AWS DMS Replication Journey from Oracle to Aurora MySQL
An AWS DMS Replication Journey from Oracle to Aurora MySQLMaris Elsins
 
Norwegian SharePoint Community - What happened at Ignite
Norwegian SharePoint Community - What happened at IgniteNorwegian SharePoint Community - What happened at Ignite
Norwegian SharePoint Community - What happened at IgniteMikael Svenson
 
Out of the Blue - the Workflow in Bluemix Development
Out of the Blue - the Workflow in Bluemix DevelopmentOut of the Blue - the Workflow in Bluemix Development
Out of the Blue - the Workflow in Bluemix DevelopmentOliver Busse
 
Agile practice in drupal 8 module development 20200328a
Agile practice in drupal 8 module development 20200328aAgile practice in drupal 8 module development 20200328a
Agile practice in drupal 8 module development 20200328aDOCOMO Innovations, Inc.
 
Glass Mix Z Form V1 Glass Mix Concepts
Glass Mix Z Form V1 Glass Mix ConceptsGlass Mix Z Form V1 Glass Mix Concepts
Glass Mix Z Form V1 Glass Mix ConceptsBrij Consulting, LLC
 
The Glass House V2 Matrix Expansion
The Glass House V2 Matrix ExpansionThe Glass House V2 Matrix Expansion
The Glass House V2 Matrix ExpansionBrij Consulting, LLC
 
Project Case Study Sample
Project Case Study SampleProject Case Study Sample
Project Case Study SampleChi D. Nguyen
 
EMC World 2015 devops-st06 Containers and Converged Infrastructure Deployment
EMC World 2015 devops-st06 Containers and Converged Infrastructure DeploymentEMC World 2015 devops-st06 Containers and Converged Infrastructure Deployment
EMC World 2015 devops-st06 Containers and Converged Infrastructure DeploymentKendrick Coleman
 
Scot-Cloud 2015
Scot-Cloud 2015Scot-Cloud 2015
Scot-Cloud 2015Ray Bugg
 
CakePHP in a containerized CI/CD environment | Cakefest 2017
CakePHP in a containerized CI/CD environment | Cakefest 2017CakePHP in a containerized CI/CD environment | Cakefest 2017
CakePHP in a containerized CI/CD environment | Cakefest 2017Stefan van Gastel
 
Personal Resume of John Alexander Evans
Personal Resume of John Alexander EvansPersonal Resume of John Alexander Evans
Personal Resume of John Alexander EvansJohn Evans
 
Moving To New AVEVA Technology
Moving To New AVEVA TechnologyMoving To New AVEVA Technology
Moving To New AVEVA TechnologyAVEVA Group plc
 

Similar to From Floppy Disks to Cloud Deployments (20)

Safe Go - 2022-10-26 - Go West
Safe Go - 2022-10-26 - Go WestSafe Go - 2022-10-26 - Go West
Safe Go - 2022-10-26 - Go West
 
Training and Education Presentation
Training and Education PresentationTraining and Education Presentation
Training and Education Presentation
 
Modernization options for Oracle Forms applications
Modernization options for Oracle Forms applicationsModernization options for Oracle Forms applications
Modernization options for Oracle Forms applications
 
Web sustainability
Web sustainabilityWeb sustainability
Web sustainability
 
Starting your education in big data - Sneak peek to the new Big Data University
Starting your education in big data - Sneak peek to the new Big Data UniversityStarting your education in big data - Sneak peek to the new Big Data University
Starting your education in big data - Sneak peek to the new Big Data University
 
The Glass House V3 The Economics of Glass in Ark Mode
The Glass House V3 The Economics of Glass in Ark ModeThe Glass House V3 The Economics of Glass in Ark Mode
The Glass House V3 The Economics of Glass in Ark Mode
 
GDSC EPITA Docker Presentation
GDSC EPITA Docker PresentationGDSC EPITA Docker Presentation
GDSC EPITA Docker Presentation
 
An AWS DMS Replication Journey from Oracle to Aurora MySQL
An AWS DMS Replication Journey from Oracle to Aurora MySQLAn AWS DMS Replication Journey from Oracle to Aurora MySQL
An AWS DMS Replication Journey from Oracle to Aurora MySQL
 
Norwegian SharePoint Community - What happened at Ignite
Norwegian SharePoint Community - What happened at IgniteNorwegian SharePoint Community - What happened at Ignite
Norwegian SharePoint Community - What happened at Ignite
 
Out of the Blue - the Workflow in Bluemix Development
Out of the Blue - the Workflow in Bluemix DevelopmentOut of the Blue - the Workflow in Bluemix Development
Out of the Blue - the Workflow in Bluemix Development
 
Agile practice in drupal 8 module development 20200328a
Agile practice in drupal 8 module development 20200328aAgile practice in drupal 8 module development 20200328a
Agile practice in drupal 8 module development 20200328a
 
Glass Mix Z Form V1 Glass Mix Concepts
Glass Mix Z Form V1 Glass Mix ConceptsGlass Mix Z Form V1 Glass Mix Concepts
Glass Mix Z Form V1 Glass Mix Concepts
 
The Glass House V2 Matrix Expansion
The Glass House V2 Matrix ExpansionThe Glass House V2 Matrix Expansion
The Glass House V2 Matrix Expansion
 
Project Case Study Sample
Project Case Study SampleProject Case Study Sample
Project Case Study Sample
 
EMC World 2015 devops-st06 Containers and Converged Infrastructure Deployment
EMC World 2015 devops-st06 Containers and Converged Infrastructure DeploymentEMC World 2015 devops-st06 Containers and Converged Infrastructure Deployment
EMC World 2015 devops-st06 Containers and Converged Infrastructure Deployment
 
Scot-Cloud 2015
Scot-Cloud 2015Scot-Cloud 2015
Scot-Cloud 2015
 
CakePHP in a containerized CI/CD environment | Cakefest 2017
CakePHP in a containerized CI/CD environment | Cakefest 2017CakePHP in a containerized CI/CD environment | Cakefest 2017
CakePHP in a containerized CI/CD environment | Cakefest 2017
 
Personal Resume of John Alexander Evans
Personal Resume of John Alexander EvansPersonal Resume of John Alexander Evans
Personal Resume of John Alexander Evans
 
Glass Mix Z-Form V1 thru V3
Glass Mix Z-Form V1 thru V3Glass Mix Z-Form V1 thru V3
Glass Mix Z-Form V1 thru V3
 
Moving To New AVEVA Technology
Moving To New AVEVA TechnologyMoving To New AVEVA Technology
Moving To New AVEVA Technology
 

More from Martijn Dashorst

HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0
HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0
HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0Martijn Dashorst
 
Converting 85% of Dutch Primary Schools from Oracle to PostgreSQL
Converting 85% of Dutch Primary Schools from Oracle to PostgreSQLConverting 85% of Dutch Primary Schools from Oracle to PostgreSQL
Converting 85% of Dutch Primary Schools from Oracle to PostgreSQLMartijn Dashorst
 
Solutions for when documentation fails
Solutions for when documentation fails Solutions for when documentation fails
Solutions for when documentation fails Martijn Dashorst
 
Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8Martijn Dashorst
 
Java Serialization Deep Dive
Java Serialization Deep DiveJava Serialization Deep Dive
Java Serialization Deep DiveMartijn Dashorst
 
Scrum: van praktijk naar onderwijs
Scrum: van praktijk naar onderwijsScrum: van praktijk naar onderwijs
Scrum: van praktijk naar onderwijsMartijn Dashorst
 
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)Who Automates the Automators? (Quis Automatiet Ipsos Automates?)
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)Martijn Dashorst
 
Wicket 10 years and beyond
Wicket   10 years and beyond Wicket   10 years and beyond
Wicket 10 years and beyond Martijn Dashorst
 
Apache Wicket and Java EE sitting in a tree
Apache Wicket and Java EE sitting in a treeApache Wicket and Java EE sitting in a tree
Apache Wicket and Java EE sitting in a treeMartijn Dashorst
 
Vakmanschap is meesterschap
Vakmanschap is meesterschapVakmanschap is meesterschap
Vakmanschap is meesterschapMartijn Dashorst
 
Keep your Wicket application in production
Keep your Wicket application in productionKeep your Wicket application in production
Keep your Wicket application in productionMartijn Dashorst
 
Wicket In Action - oredev2008
Wicket In Action - oredev2008Wicket In Action - oredev2008
Wicket In Action - oredev2008Martijn Dashorst
 
Guide To Successful Graduation at Apache
Guide To Successful Graduation at ApacheGuide To Successful Graduation at Apache
Guide To Successful Graduation at ApacheMartijn Dashorst
 

More from Martijn Dashorst (20)

HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0
HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0
HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0
 
SOLID principles
SOLID principlesSOLID principles
SOLID principles
 
Converting 85% of Dutch Primary Schools from Oracle to PostgreSQL
Converting 85% of Dutch Primary Schools from Oracle to PostgreSQLConverting 85% of Dutch Primary Schools from Oracle to PostgreSQL
Converting 85% of Dutch Primary Schools from Oracle to PostgreSQL
 
Solutions for when documentation fails
Solutions for when documentation fails Solutions for when documentation fails
Solutions for when documentation fails
 
Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8
 
Code review drinking game
Code review drinking gameCode review drinking game
Code review drinking game
 
Java Serialization Deep Dive
Java Serialization Deep DiveJava Serialization Deep Dive
Java Serialization Deep Dive
 
Code review drinking game
Code review drinking gameCode review drinking game
Code review drinking game
 
Scrum: van praktijk naar onderwijs
Scrum: van praktijk naar onderwijsScrum: van praktijk naar onderwijs
Scrum: van praktijk naar onderwijs
 
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)Who Automates the Automators? (Quis Automatiet Ipsos Automates?)
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)
 
De schone coder
De schone coderDe schone coder
De schone coder
 
Wicket 10 years and beyond
Wicket   10 years and beyond Wicket   10 years and beyond
Wicket 10 years and beyond
 
Apache Wicket and Java EE sitting in a tree
Apache Wicket and Java EE sitting in a treeApache Wicket and Java EE sitting in a tree
Apache Wicket and Java EE sitting in a tree
 
The State of Wicket
The State of WicketThe State of Wicket
The State of Wicket
 
Wicket 2010
Wicket 2010Wicket 2010
Wicket 2010
 
Vakmanschap is meesterschap
Vakmanschap is meesterschapVakmanschap is meesterschap
Vakmanschap is meesterschap
 
Keep your Wicket application in production
Keep your Wicket application in productionKeep your Wicket application in production
Keep your Wicket application in production
 
Wicket In Action - oredev2008
Wicket In Action - oredev2008Wicket In Action - oredev2008
Wicket In Action - oredev2008
 
Guide To Successful Graduation at Apache
Guide To Successful Graduation at ApacheGuide To Successful Graduation at Apache
Guide To Successful Graduation at Apache
 
Wicket In Action
Wicket In ActionWicket In Action
Wicket In Action
 

Recently uploaded

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
 
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
 
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
 
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.
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
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
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
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
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
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
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
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
 
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
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
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
 

Recently uploaded (20)

Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
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 ...
 
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
 
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
 
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...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
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 ...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
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
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
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...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
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
 
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
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
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
 

From Floppy Disks to Cloud Deployments

  • 1. FROM FLOPPIES TO 
 CLOUD DEPLOYMENTS /LESSONS LEARNED MARTIJN DASHORST topicus
  • 2. /1992 FONTEIN MAVO, BUSSUM CMG SCHOOLFACT 3 22/40 CMG SCHOOLFACT 3 22/40 CMG SCHOOLFACT 3 22/40 CMG SCHOOLFACT 3 22/40
  • 3.
  • 4. IF YOU LEARN JUST ONE THING : ALWAYS HAVE A 
 PLAN B
  • 5. /WHY FLOPPIES? /01 A brief history of our products /KEEP IT FRESH /02 An upgrade where we learned a lesson. /ARCHITECTURE UPGRADES /03 Three upgrades, 
 Three lessons learned /TABLE OF CONTENTS /DEPLOYMENTS /04 Deploying software in a more civilised age
  • 6. /WHY FLOPPIES? /01 A brief history of our products
  • 7. /A BRIEF HISTORY OF TIME 1985-2002 SCHOOLFACT COBOL·DOS·5¼"FLOPPIES 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 8. /A BRIEF HISTORY OF TIME 1985-2002 2002-2009 SCHOOLFACT COBOL·DOS·5¼"FLOPPIES @VO VB·WINDOWS·3½”FLOPPIES 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 9. /A BRIEF HISTORY OF TIME 1985-2002 2002- SCHOOLFACT COBOL·DOS·5¼"FLOPPIES @VO VB·WINDOWS·3½”FLOPPIES 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 10. /A BRIEF HISTORY OF TIME 2009- 1985-2002 2002-2009 SCHOOLFACT COBOL·DOS·5¼"FLOPPIES @VO VB·WINDOWS·3½”FLOPPIES SOMTODAY WEB·SAAS 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 11. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION PARNASSYS PARRO 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 12. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION PARNASSYS VOCUS 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 13. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION PARNASSYS VOCUS @VO @VO 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 14. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION PARNASSYS @VO VOCUS @VO SOMTODAY 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 15. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION PARNASSYS EDUARTE 2017 @VO VOCUS @VO SOMTODAY 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 16. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION PARNASSYS EDUARTE 2017 @VO SOMTODAY 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 17. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION PARNASSYS EDUARTE DAYCARE DIGDAG (PARTOU) 2017 @VO SOMTODAY 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 18. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION PARNASSYS EDUARTE DAYCARE DIGDAG (PARTOU) 2017 @VO SOMTODAY KEYHUB 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 19. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION PARNASSYS EDUARTE SECURITY KEYHUB 2017 SOMTODAY DAYCARE DIGDAG 01 WHY FLOPPIES? · A BRIEF HISTORY OF TIME
  • 20. /KEEP IT FRESH /02 Software expires, 
 especially when frozen…
  • 23. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION PARNASSYS SOMTODAY EDUARTE 2017 02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE SECURITY KEYHUB DAYCARE DIGDAG
  • 24. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION JAVA 6 → JAVA 7 PARNASSYS SOMTODAY EDUARTE 2017 02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE SECURITY KEYHUB DAYCARE DIGDAG PARNASSYS
  • 25. “it is completely unworkable for over a week already. […] it has the speed of hitting a tennis ball through a gardenhose.” 02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE
  • 26. [...] Even so slow that searching is faster using the old archive (open archive, fi nd folder, browse folder, transferring the data, storing the folder, closing the archive). All the while Parnassys tried to log in. It didn’t by. the way. And I fi nd that irritating. 02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE
  • 27. 02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE /JAVA 6 → JAVA 7 UPGRADE /INSTABILITY FOR 2 WEEKS Code would stall on synchronization blocks /JAVA 7 PART OF RELEASE NO WAY BACK : database and essential features and integrations were released to customers /SUSPEND VS SPINNING Waiting for lock: suspend or spin. <6 suspend > = 6 spin.
  • 28. —WE “First deploy the new Java runtime to Test, Acceptance and Production before writing source code using the new Java version” 02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE
  • 29. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION JAVA 6 → JAVA 7 PARNASSYS SOMTODAY EDUARTE 2017 JAVA 8 
 JAVA 11 
 JAVA 17 
 02 KEEP IT FRESH · JAVA 6 → JAVA 7 UPGRADE SECURITY KEYHUB DAYCARE DIGDAG
  • 30. DTAP FOR CODE, TAPD FOR INFRASTRUCTURE Always have a plan B /RECOMMENDATION 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 32. /ARCHITECTURE UPGRADES /TOMCAT → WILDFLY Reevaluate your past decisions to see if they still hold true /SHARED BASE PLATFORM Code can’t be preserved, it goes stale and then bad. Share the upgrade load. /ORACLE → POSTGRESQL + K8S Don’t execute plan A and B together at the same time 03 ARCHITECTURE UPGRADES
  • 33. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION PARNASSYS SOMTODAY EDUARTE 2017 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY TOMCAT SECURITY KEYHUB DAYCARE DIGDAG
  • 34. /HOW IT STARTED TOMCAT HIBERNATE WICKET BROWSERS 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 35. /HOW IT STARTED TOMCAT HIBERNATE EHCACHE WICKET BROWSERS 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 36. /HOW IT STARTED TOMCAT HIBERNATE EHCACHE WICKET BROWSERS BONECP 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 37. /HOW IT STARTED TOMCAT HIBERNATE EHCACHE WICKET BROWSERS BONECP QUARTZ 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 38. /HOW IT STARTED TOMCAT HIBERNATE EHCACHE WICKET BROWSERS BONECP QUARTZ WEB 
 SERVICES AXIS 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 39. /HOW IT STARTED TOMCAT HIBERNATE EHCACHE WICKET BROWSERS BONECP QUARTZ WEB 
 SERVICES AXIS + AXIS 2 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 40. /HOW IT STARTED TOMCAT HIBERNATE EHCACHE WICKET BROWSERS BONECP QUARTZ WEB 
 SERVICES AXIS + AXIS 2 
 + CXF 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 41. /HOW IT STARTED TOMCAT BONECP HIBERNATE SPRING BEANS SPRING CONTEXT EHCACHE QUARTZ SPRING TRANSACTION AXIS + AXIS 2 
 + CXF WICKET WEB 
 SERVICES BROWSERS 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 42. /JAVA EE? SERVLET 3 JSF 2 EJB 3.1 JPA 2 JSP CDI JTA BEAN JAX-WS JAX-RPC JAXR SAAJ JAX-RS JAXB JMS JAAS JASPIC JACC JCA JAVA MAIL JSR 88 JSR 77 RMI JNDI BATCH CONCURRENCY 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 43. /JAVA EE? SERVLET 3 JSF 2 EJB 3.1 JPA 2 JSP CDI JTA BEAN VALIDATION JAX-WS JAX-RPC JAXR SAAJ JAX-RS JAXB JMS JAAS JASPIC JACC JCA JAVA MAIL JSR 88 JSR 77 RMI JNDI SPRING 
 BEANS HIBERNATE SPRING 
 CORE SPRING 
 CONTEXT SPRING 
 TRANSACTION BATCH CONCURRENC QUARTZ QUARTZ 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY HIBERNATE JAVA MAIL WICKET WICKET CXF CXF CXF
  • 44. IF IT QUACKS LIKE JAVA EE, IF IT LOOKS LIKE JAVA EE, IT PROBABLY IS JAVA EE
  • 45. /HOW IT STARTED TOMCAT BONECP HIBERNATE SPRING BEANS SPRING CONTEXT EHCACHE QUARTZ SPRING TRANSACTION CXF WICKET WEB 
 SERVICES BROWSERS 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 46. /HOW IT’ GOING WILDFLY WICKET WEB 
 SERVICES BROWSERS 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 47. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION PARNASSYS SOMTODAY EDUARTE 2017 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY TOMCAT SECURITY KEYHUB DAYCARE DIGDAG WILDFLY
  • 48. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION PARNASSYS SOMTODAY EDUARTE 2017 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY TOMCAT SECURITY KEYHUB DAYCARE DIGDAG WILDFLY
  • 49. REEVALUATE YOUR OLD DECISIONS What was once a good decision may no longer be the best. /RECOMMENDATION 03 ARCHITECTURE UPGRADES · 01 FROM TOMCAT TO WILDFLY
  • 50. /ARCHITECTURE UPGRADES /TOMCAT → WILDFLY Reevaluate your past decisions to see if they still hold true /SHARED BASE PLATFORM Code can’t be preserved, it goes stale and then bad. Share the upgrade load. /ORACLE → POSTGRESQL + K8S Don’t execute plan A and B together at the same time 03 ARCHITECTURE UPGRADES
  • 51. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION PARNASSYS SOMTODAY EDUARTE 2017 03 ARCHITECTURE UPGRADES · 01 ONE SHARED BASE PLATFORM SECURITY KEYHUB DAYCARE DIGDAG WILDFLY
  • 52. /ONE SHARED BASE PLATFORM ONDERWIJS PARENT PARNASSYS SOMTODAY EDUARTE DIGDAG KEYHUB JAVA EE WILDFLY JAVA EVERY 14 DAYS Upgrade all dependencies to latest releases 03 ARCHITECTURE UPGRADES · 01 ONE SHARED BASE PLATFORM
  • 53. STAY UP TO DATE Code can’t be preserved, it goes stale and then bad. Share the upgrade load. /RECOMMENDATION 03 ARCHITECTURE UPGRADES · 01 ONE SHARED BASE PLATFORM
  • 54. /ARCHITECTURE UPGRADES /TOMCAT → WILDFLY Reevaluate your past decisions to see if they still hold true /SHARED BASE PLATFORM Code can’t be preserved, it goes stale and then bad. Share the upgrade load. /ORACLE → POSTGRESQL + K8S Don’t execute plan A and B together at the same time 03 ARCHITECTURE UPGRADES
  • 55. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION PARNASSYS EDUARTE SECURITY KEYHUB 2017 SOMTODAY DAYCARE DIGDAG ORA → PG 
 K8S SUMMER 2020 03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME ORA → PG
  • 56. /WHY MIGRATE FROM ORACLE /MIGRATION ASSISTENT Licensing audit took 3 years, extortion racket /PRICE Our DB server core count costs €€€ /TOOLING Requires RAC / Enterprise license, €€€ 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
  • 57. /SOMTODAY - ~220 schools - 8 streets - 1 schema / street - 1 database server: Oracle - column tenant identif i er 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
  • 58. 03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME /BEFORE ORACLE PROD ADMIN STUDENT REST STREET 1 SCHOOLS 1—25
  • 59. 03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME /BEFORE ORACLE PROD ADMIN STUDENT REST STREET 1 ORACLE PROD ADMIN STUDENT REST STREET 2 ORACLE PROD ADMIN STUDENT REST STREET 3 ORACLE PROD ADMIN STUDENT REST STREET 4 ORACLE PROD ADMIN STUDENT REST STREET 5 ORACLE PROD ADMIN STUDENT REST STREET 6 ORACLE PROD ADMIN STUDENT REST STREET 7 ORACLE PROD ADMIN STUDENT REST STREET 8 SCHOOLS 1—25 SCHOOLS 26—50 SCHOOLS 51—75 SCHOOLS 76—100 SCHOOLS 101—125 SCHOOLS 126—150 SCHOOLS 151—175 SCHOOLS 176—200
  • 60. MIGRATION PLAN - Oracle → Postgresql - Bare metal → Kubernetes YOU CAN’T 
 SOLVE A 
 PROBLEM JUST 
 BY SAYING 
 TECHY THINGS. KUBERNETES. © Scott Adams · dilbert.com 03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
  • 61. 03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME /AFTER? PROD ADMIN STUDENT REST ADMIN ADMIN ADMIN STUDENT STUDENT STUDENT STUDENT REST REST KUBERNETES
  • 62. /SCHEMA PER TENANT Each tenant gets its own schema for tenant data, one schema for nation wide data 03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME NATIONWIDE DATA leerling vak resultaat toets rooster absentie ouder rapport examen kluisje huiswerk pakket opleiding docent rol adres
  • 63. /ORA2PG /FREE Dutchies most favorite criterium! /CUSTOM MIGRATION Renumber IDs, move schemas /BIG BANG MIGRATION There’s no PG2ORA, so one - way only 
 03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
  • 64. 03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
  • 65. /FAILURES Database processes kept restarting due to memory errors /MORE FAILURES Amount of connections overwhelmed database, pgbouncer to the rescue pgbouncer does not support 
 server - side prepared statements Amount of queries overwhelmed database due to Java EE caching issues Amount of long running idle transactions overwhelmed database /FAILURE MODE ENGAGED 03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
  • 66. 5 WEEKS OUTAGE START OF SCHOOL YEAR 03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME
  • 67. 03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME /FINAL SOLUTION PROD ADMIN STUDENT REST ADMIN ADMIN ADMIN STUDENT STUDENT STUDENT STUDENT REST REST KUBERNETES PROD PGBOUNCER PGBOUNCER
  • 68. ONLY DO ONE MIGRATION AT A TIME And… 
 Always have a plan B 03 ARCHITECTURE UPGRADES · 03 FROM ORACLE TO POSTGRESQL FOR THE 2ND TIME /RECOMMENDATION
  • 70. /FLOPPY SOFTWARE RELEASES INDEX.HTML How do we ship software currently /CLOUDY DEPLOYMENT How did “we” ship software in them ole days? /WHAT IS THIS TOPIC ABOUT? YOUR LOGO HERE
  • 71. /SOFTWARE RELEASE PROCESS /MODIFY HELM CHART Apply a sprinkle of YAML INDEX.HTML 04 TO CLOUD DEPLOYMENTS · CURRENT SOFTWARE RELEASE PROCESS
  • 72. /SOFTWARE RELEASE PROCESS /PUSH TO GITHUB Perform change request review /MODIFY HELM CHART Apply a sprinkle of YAML INDEX.HTML 04 TO CLOUD DEPLOYMENTS · CURRENT SOFTWARE RELEASE PROCESS
  • 73. /SOFTWARE RELEASE PROCESS /PUSH TO GITHUB Perform change request review /MODIFY HELM CHART Apply a sprinkle of YAML /MERGE TO BRANCH Triggers ARGO CD 
 INDEX.HTML 04 TO CLOUD DEPLOYMENTS · CURRENT SOFTWARE RELEASE PROCESS
  • 74. /SOFTWARE RELEASE PROCESS /PUSH TO GITHUB Perform change request review /DONE ARGO CD updates K8S and deploys modif i cations /MODIFY HELM CHART Apply a sprinkle of YAML /MERGE TO BRANCH Triggers ARGO CD 
 INDEX.HTML 04 TO CLOUD DEPLOYMENTS · CURRENT SOFTWARE RELEASE PROCESS
  • 75. ~25 mins From code change to 
 patch on production 04 TO CLOUD DEPLOYMENTS · CURRENT SOFTWARE RELEASE PROCESS « no CI/CD (yet) »
  • 76. /FLOPPY SOFTWARE RELEASES INDEX.HTML How do we ship software currently /CLOUDY DEPLOYMENT How did “we” ship software in them ole days? /WHAT IS THIS TOPIC ABOUT? YOUR LOGO HERE
  • 77. /1992 FONTEIN MAVO, BUSSUM CMG SCHOOLFACT 3 22/40 CMG SCHOOLFACT 3 22/40 CMG SCHOOLFACT 3 22/40 CMG SCHOOLFACT 3 22/40
  • 78. CopyPro 2000 * 44-230 diskettes per hour * Unattended operation * 50 disk capacity option included * High Speed Drives * Separate Reject Bin * Drive Cleaning Mode * Automatic Batch Mode Processing 
 using multiple Disk Masters * Bit - by - bit verif i cation 04 TO CLOUD DEPLOYMENTS · FLOPPY DEPLOYMENTS
  • 79. CONTROL PANEL INPUT BIN OUTPUT BIN REJECT COMPARTMENT 04 TO CLOUD DEPLOYMENTS · FLOPPY DEPLOYMENTS
  • 80. 300 customers 40 floppy’s / release 200 / hr / machine 12,000 /A BIG NUMBER TO SUPPORT THE CONCEPT 04 TO CLOUD DEPLOYMENTS · FLOPPY DEPLOYMENTS floppies
  • 81. 300 customers 40 floppy’s / release 200 / hr / machine 60 hrs /A BIG NUMBER TO SUPPORT THE CONCEPT 04 TO CLOUD DEPLOYMENTS · FLOPPY DEPLOYMENTS
  • 82. 300 customers 4 boxes of 10 floppies €5 / shipment €1500 04 TO CLOUD DEPLOYMENTS · FLOPPY DEPLOYMENTS /SHIPPING TARIFS: TPGPOST.NL 2002
  • 83. DON’T USE FLOPPIES Nobody can use them anymore and they are expensive. /RECOMMENDATION 04 TO CLOUD DEPLOYMENTS · FLOPPY DEPLOYMENTS
  • 85. JAVA 6 → JAVA 7 → JAVA 8 → JAVA 11 → JAVA 17 Use TAPD for infrastructure, DTAP for code. 
 Always have a plan B MIGRATION FROM ORACLE 2 + KUBERNETES You will not sleep well when there’s no plan B. TOMCAT → WILDFLY REEVALUATE YOUR OLD DECISIONS. What was once a good decision may no longer be the best. MIGRATION FROM ORACLE 1 Projectmanagers sleep better with the security of a plan B USE SHARED BASE PLATFORM One parent POM to rule them all and in the build bind them . . . /WHAT DID WE DO? AUTOMATED DEPLOYMENTS Infrastructure as Code saves your life.
  • 86. /DTAP FOR CODE, TAPD FOR INFRASTRUCTURE Always have a plan B /ONLY DO ONE MIGRATION AT A TIME And… 
 Always have a plan B /REEVALUATE YOUR OLD DECISIONS What was once a good decision may no longer be the best. /PAID SOFTWARE MAY BE WORTH IT Don’t dismiss paid software that prevents a problem /STAY UP TO DATE Code can’t be preserved, it goes stale and then bad. Share the load. /RECOMMENDATIONS /DON’T USE FLOPPIES Nobody can use them anymore and they are expensive as hell
  • 87. ALWAYS HAVE A 
 PLAN B (AND DON’T USE FLOPPIES)
  • 88. CREDITS: This presentation template was created by Slidesgo, and includes icons by Flaticon, and infographics & images by Freepik THANKS! DO YOU HAVE ANY QUESTIONS? martijn.dashorst@topicus.nl topicus.nl · topicus.com · martijndashorst.com @dashorst
  • 89.
  • 90. 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 PRIMARY EDUCATION SECONDARY EDUCATION VOCATIONAL EDUCATION PARNASSYS SOMTODAY EDUARTE 2017 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME ORA → PG SECURITY KEYHUB DAYCARE DIGDAG PARNASSYS SUMMER 2018
  • 91. /PARNASSYS - ~6500 schools - 1 schema - 1 database: Oracle - column tenant identif i er 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
  • 92. /WHY MIGRATE FROM ORACLE /MIGRATION ASSISTENT Licensing audit took 3 years, extortion racket /PRICE Our DB server core count costs €€€ /TOOLING Requires RAC / Enterprise license, €€€ 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
  • 93. /BEFORE 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME PRIMARY SECONDARY standby ORACLE ORACLE standard replication production
  • 94. /AFTER? 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME PRIMARY SECONDARY STANDBY standard replication
  • 95. /ORA2PG /FREE Dutchies most favorite criterium! /SLOW 1 day for 1 migration attempt, or unstable (parallel) /BIG BANG MIGRATION There’s no PG2ORA, so one - way only 
 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME
  • 96. NOPE LOOK AT ALL THE NOPE NOPE NOPE NOPE 🎶♬ ♪🎵
  • 97. /HVR /EXPENSIVE “Call for pricing” 
 — Dutchies least favourite criterium! /FAST Real - time sync, low latency 
 /REVERSIBLE Bi - directional, cross database synchronization! 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME Cross-database replica ti on using redo logs
  • 98. /HVR «BEFORE MIGRATION» 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME PRIMARY NEW PRIMARY ORACLE SECONDARY failsafe ORACLE PROD PROD standby standard replication
  • 99. /HVR «BEFORE MIGRATION» 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME ORACLE failsafe ORACLE PROD PROD standby HVR HVR standard replication PRIMARY NEW PRIMARY SECONDARY
  • 100. /HVR «AFTER MIGRATION» 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME ORACLE failsafe ORACLE PROD PROD standby standard replication HVR HVR OLD PRIMARY PRIMARY SECONDARY
  • 101. /CURRENT DATABASE 03 ARCHITECTURE UPGRADES · 02 FROM ORACLE TO POSTGRESQL FOR THE 1ST TIME PROD standby standard replication PRIMARY SECONDARY OLD PRIMARY
  • 102. /DTAP FOR CODE, TAPD FOR INFRASTRUCTURE Always have a plan B /REEVALUATE YOUR OLD DECISIONS What was once a good decision may no longer be the best. /PAID SOFTWARE MAY BE WORTH IT Don’t dismiss paid software that prevents a problem /STAY UP TO DATE Code can’t be preserved, it goes stale and then bad. Share the load. /RECOMMENDATIONS