SlideShare a Scribd company logo
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
From Floppy Disks to Cloud Deployments
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
From Floppy Disks to Cloud Deployments
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 (20)

The effective daum coursework focused on open source software in Jeju Nationa...
The effective daum coursework focused on open source software in Jeju Nationa...The effective daum coursework focused on open source software in Jeju Nationa...
The effective daum coursework focused on open source software in Jeju Nationa...
Channy Yun
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
eug3n_cojocaru
 
Managing software assets
Managing software assetsManaging software assets
Managing software assets
Prof. Othman Alsalloum
 
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalismBeyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Tudor Girba
 
Milton smith 2013
Milton smith 2013Milton smith 2013
Milton smith 2013
jowen_evansdata
 
Trends in the software industry
Trends in the software industryTrends in the software industry
Trends in the software industry
Li SUN
 
History of ICT @ DDVE
History of ICT @ DDVEHistory of ICT @ DDVE
History of ICT @ DDVE
Alvar Lumberg
 
Information systems ‫ system‬
Information systems  ‫ system‬Information systems  ‫ system‬
Information systems ‫ system‬
Prof. Othman Alsalloum
 
Useful Open Source Software
Useful Open Source SoftwareUseful Open Source Software
Useful Open Source Software
pramoddps
 
Smart Housekeeping Apps
Smart Housekeeping AppsSmart Housekeeping Apps
Smart Housekeeping Apps
Kinshuk Adhikary
 
Advanced Systems Design with Java UML and MDA 1st Edition Kevin Lano
Advanced Systems Design with Java UML and MDA 1st Edition Kevin LanoAdvanced Systems Design with Java UML and MDA 1st Edition Kevin Lano
Advanced Systems Design with Java UML and MDA 1st Edition Kevin Lano
dietlrheyayt
 
software engineering history2.pptx
software      engineering  history2.pptxsoftware      engineering  history2.pptx
software engineering history2.pptx
Mohamed Alashram
 
Training report
Training reportTraining report
Training report
Bhaskar Mangal
 
Db trends final
Db trends   finalDb trends   final
Db trends final
Craig Mullins
 
"Paradigm Shifting" 2013
"Paradigm Shifting" 2013"Paradigm Shifting" 2013
"Paradigm Shifting" 2013
Diego Malpica Chauvet
 
Tjava10a
Tjava10aTjava10a
Tjava10a
Meenakshi Chandrasekaran
 
COM 115.pdf
COM 115.pdfCOM 115.pdf
COM 115.pdf
DagogoGreenFurosigha
 
Technology Trends & Your Career (Y4IT 2012)
Technology Trends & Your Career (Y4IT 2012)Technology Trends & Your Career (Y4IT 2012)
Technology Trends & Your Career (Y4IT 2012)
Calen Legaspi
 
Test bank for Big Java: Early Objects 6th Edition by Horstmann
Test bank for Big Java: Early Objects 6th Edition by HorstmannTest bank for Big Java: Early Objects 6th Edition by Horstmann
Test bank for Big Java: Early Objects 6th Edition by Horstmann
mariksmarcas
 
10 books that every developer must read
10 books that every developer must read10 books that every developer must read
10 books that every developer must read
Ganesh Samarthyam
 
The effective daum coursework focused on open source software in Jeju Nationa...
The effective daum coursework focused on open source software in Jeju Nationa...The effective daum coursework focused on open source software in Jeju Nationa...
The effective daum coursework focused on open source software in Jeju Nationa...
Channy Yun
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
eug3n_cojocaru
 
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalismBeyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Tudor Girba
 
Trends in the software industry
Trends in the software industryTrends in the software industry
Trends in the software industry
Li SUN
 
History of ICT @ DDVE
History of ICT @ DDVEHistory of ICT @ DDVE
History of ICT @ DDVE
Alvar Lumberg
 
Useful Open Source Software
Useful Open Source SoftwareUseful Open Source Software
Useful Open Source Software
pramoddps
 
Advanced Systems Design with Java UML and MDA 1st Edition Kevin Lano
Advanced Systems Design with Java UML and MDA 1st Edition Kevin LanoAdvanced Systems Design with Java UML and MDA 1st Edition Kevin Lano
Advanced Systems Design with Java UML and MDA 1st Edition Kevin Lano
dietlrheyayt
 
software engineering history2.pptx
software      engineering  history2.pptxsoftware      engineering  history2.pptx
software engineering history2.pptx
Mohamed Alashram
 
Technology Trends & Your Career (Y4IT 2012)
Technology Trends & Your Career (Y4IT 2012)Technology Trends & Your Career (Y4IT 2012)
Technology Trends & Your Career (Y4IT 2012)
Calen Legaspi
 
Test bank for Big Java: Early Objects 6th Edition by Horstmann
Test bank for Big Java: Early Objects 6th Edition by HorstmannTest bank for Big Java: Early Objects 6th Edition by Horstmann
Test bank for Big Java: Early Objects 6th Edition by Horstmann
mariksmarcas
 
10 books that every developer must read
10 books that every developer must read10 books that every developer must read
10 books that every developer must read
Ganesh Samarthyam
 

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
Martijn Dashorst
 
SOLID principles
SOLID principlesSOLID principles
SOLID principles
Martijn 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 PostgreSQL
Martijn 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 8
Martijn Dashorst
 
Code review drinking game
Code review drinking gameCode review drinking game
Code review drinking game
Martijn Dashorst
 
Java Serialization Deep Dive
Java Serialization Deep DiveJava Serialization Deep Dive
Java Serialization Deep Dive
Martijn Dashorst
 
Code review drinking game
Code review drinking gameCode review drinking game
Code review drinking game
Martijn Dashorst
 
Scrum: van praktijk naar onderwijs
Scrum: van praktijk naar onderwijsScrum: van praktijk naar onderwijs
Scrum: van praktijk naar onderwijs
Martijn 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
 
De schone coder
De schone coderDe schone coder
De schone coder
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 tree
Martijn Dashorst
 
The State of Wicket
The State of WicketThe State of Wicket
The State of Wicket
Martijn Dashorst
 
Wicket 2010
Wicket 2010Wicket 2010
Wicket 2010
Martijn Dashorst
 
Vakmanschap is meesterschap
Vakmanschap is meesterschapVakmanschap is meesterschap
Vakmanschap is meesterschap
Martijn Dashorst
 
Keep your Wicket application in production
Keep your Wicket application in productionKeep your Wicket application in production
Keep your Wicket application in production
Martijn Dashorst
 
Wicket In Action - oredev2008
Wicket In Action - oredev2008Wicket In Action - oredev2008
Wicket In Action - oredev2008
Martijn Dashorst
 
Guide To Successful Graduation at Apache
Guide To Successful Graduation at ApacheGuide To Successful Graduation at Apache
Guide To Successful Graduation at Apache
Martijn Dashorst
 
Wicket In Action
Wicket In ActionWicket In Action
Wicket In Action
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.0
Martijn 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 PostgreSQL
Martijn 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 8
Martijn Dashorst
 
Java Serialization Deep Dive
Java Serialization Deep DiveJava Serialization Deep Dive
Java Serialization Deep Dive
Martijn Dashorst
 
Scrum: van praktijk naar onderwijs
Scrum: van praktijk naar onderwijsScrum: van praktijk naar onderwijs
Scrum: van praktijk naar onderwijs
Martijn 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 tree
Martijn Dashorst
 
Vakmanschap is meesterschap
Vakmanschap is meesterschapVakmanschap is meesterschap
Vakmanschap is meesterschap
Martijn Dashorst
 
Keep your Wicket application in production
Keep your Wicket application in productionKeep your Wicket application in production
Keep your Wicket application in production
Martijn Dashorst
 
Wicket In Action - oredev2008
Wicket In Action - oredev2008Wicket In Action - oredev2008
Wicket In Action - oredev2008
Martijn Dashorst
 
Guide To Successful Graduation at Apache
Guide To Successful Graduation at ApacheGuide To Successful Graduation at Apache
Guide To Successful Graduation at Apache
Martijn Dashorst
 
Ad

Recently uploaded (20)

How Insurance Policy Management Software Streamlines Operations
How Insurance Policy Management Software Streamlines OperationsHow Insurance Policy Management Software Streamlines Operations
How Insurance Policy Management Software Streamlines Operations
Insurance Tech Services
 
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptxIMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
usmanch7829
 
From Chaos to Clarity - Designing (AI-Ready) APIs with APIOps Cycles
From Chaos to Clarity - Designing (AI-Ready) APIs with APIOps CyclesFrom Chaos to Clarity - Designing (AI-Ready) APIs with APIOps Cycles
From Chaos to Clarity - Designing (AI-Ready) APIs with APIOps Cycles
Marjukka Niinioja
 
Bonk coin airdrop_ Everything You Need to Know.pdf
Bonk coin airdrop_ Everything You Need to Know.pdfBonk coin airdrop_ Everything You Need to Know.pdf
Bonk coin airdrop_ Everything You Need to Know.pdf
Herond Labs
 
Marketo & Dynamics can be Most Excellent to Each Other – The Sequel
Marketo & Dynamics can be Most Excellent to Each Other – The SequelMarketo & Dynamics can be Most Excellent to Each Other – The Sequel
Marketo & Dynamics can be Most Excellent to Each Other – The Sequel
BradBedford3
 
Key AI Technologies Used by Indian Artificial Intelligence Companies
Key AI Technologies Used by Indian Artificial Intelligence CompaniesKey AI Technologies Used by Indian Artificial Intelligence Companies
Key AI Technologies Used by Indian Artificial Intelligence Companies
Mypcot Infotech
 
Rebuilding Cadabra Studio: AI as Our Core Foundation
Rebuilding Cadabra Studio: AI as Our Core FoundationRebuilding Cadabra Studio: AI as Our Core Foundation
Rebuilding Cadabra Studio: AI as Our Core Foundation
Cadabra Studio
 
Software Engineering Process, Notation & Tools Introduction - Part 3
Software Engineering Process, Notation & Tools Introduction - Part 3Software Engineering Process, Notation & Tools Introduction - Part 3
Software Engineering Process, Notation & Tools Introduction - Part 3
Gaurav Sharma
 
Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...
Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...
Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...
WSO2
 
AI and Deep Learning with NVIDIA Technologies
AI and Deep Learning with NVIDIA TechnologiesAI and Deep Learning with NVIDIA Technologies
AI and Deep Learning with NVIDIA Technologies
SandeepKS52
 
IBM Rational Unified Process For Software Engineering - Introduction
IBM Rational Unified Process For Software Engineering - IntroductionIBM Rational Unified Process For Software Engineering - Introduction
IBM Rational Unified Process For Software Engineering - Introduction
Gaurav Sharma
 
iOS Developer Resume 2025 | Pramod Kumar
iOS Developer Resume 2025 | Pramod KumariOS Developer Resume 2025 | Pramod Kumar
iOS Developer Resume 2025 | Pramod Kumar
Pramod Kumar
 
The rise of e-commerce has redefined how retailers operate—and reconciliation...
The rise of e-commerce has redefined how retailers operate—and reconciliation...The rise of e-commerce has redefined how retailers operate—and reconciliation...
The rise of e-commerce has redefined how retailers operate—and reconciliation...
Prachi Desai
 
14 Years of Developing nCine - An Open Source 2D Game Framework
14 Years of Developing nCine - An Open Source 2D Game Framework14 Years of Developing nCine - An Open Source 2D Game Framework
14 Years of Developing nCine - An Open Source 2D Game Framework
Angelo Theodorou
 
Top 5 Task Management Software to Boost Productivity in 2025
Top 5 Task Management Software to Boost Productivity in 2025Top 5 Task Management Software to Boost Productivity in 2025
Top 5 Task Management Software to Boost Productivity in 2025
Orangescrum
 
Essentials of Resource Planning in a Downturn
Essentials of Resource Planning in a DownturnEssentials of Resource Planning in a Downturn
Essentials of Resource Planning in a Downturn
OnePlan Solutions
 
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Prachi Desai
 
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
DevOps for AI: running LLMs in production with Kubernetes and KubeFlowDevOps for AI: running LLMs in production with Kubernetes and KubeFlow
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
Aarno Aukia
 
Top 11 Fleet Management Software Providers in 2025 (2).pdf
Top 11 Fleet Management Software Providers in 2025 (2).pdfTop 11 Fleet Management Software Providers in 2025 (2).pdf
Top 11 Fleet Management Software Providers in 2025 (2).pdf
Trackobit
 
Micro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Micro-Metrics Every Performance Engineer Should Validate Before Sign-OffMicro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Micro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Tier1 app
 
How Insurance Policy Management Software Streamlines Operations
How Insurance Policy Management Software Streamlines OperationsHow Insurance Policy Management Software Streamlines Operations
How Insurance Policy Management Software Streamlines Operations
Insurance Tech Services
 
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptxIMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
usmanch7829
 
From Chaos to Clarity - Designing (AI-Ready) APIs with APIOps Cycles
From Chaos to Clarity - Designing (AI-Ready) APIs with APIOps CyclesFrom Chaos to Clarity - Designing (AI-Ready) APIs with APIOps Cycles
From Chaos to Clarity - Designing (AI-Ready) APIs with APIOps Cycles
Marjukka Niinioja
 
Bonk coin airdrop_ Everything You Need to Know.pdf
Bonk coin airdrop_ Everything You Need to Know.pdfBonk coin airdrop_ Everything You Need to Know.pdf
Bonk coin airdrop_ Everything You Need to Know.pdf
Herond Labs
 
Marketo & Dynamics can be Most Excellent to Each Other – The Sequel
Marketo & Dynamics can be Most Excellent to Each Other – The SequelMarketo & Dynamics can be Most Excellent to Each Other – The Sequel
Marketo & Dynamics can be Most Excellent to Each Other – The Sequel
BradBedford3
 
Key AI Technologies Used by Indian Artificial Intelligence Companies
Key AI Technologies Used by Indian Artificial Intelligence CompaniesKey AI Technologies Used by Indian Artificial Intelligence Companies
Key AI Technologies Used by Indian Artificial Intelligence Companies
Mypcot Infotech
 
Rebuilding Cadabra Studio: AI as Our Core Foundation
Rebuilding Cadabra Studio: AI as Our Core FoundationRebuilding Cadabra Studio: AI as Our Core Foundation
Rebuilding Cadabra Studio: AI as Our Core Foundation
Cadabra Studio
 
Software Engineering Process, Notation & Tools Introduction - Part 3
Software Engineering Process, Notation & Tools Introduction - Part 3Software Engineering Process, Notation & Tools Introduction - Part 3
Software Engineering Process, Notation & Tools Introduction - Part 3
Gaurav Sharma
 
Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...
Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...
Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...
WSO2
 
AI and Deep Learning with NVIDIA Technologies
AI and Deep Learning with NVIDIA TechnologiesAI and Deep Learning with NVIDIA Technologies
AI and Deep Learning with NVIDIA Technologies
SandeepKS52
 
IBM Rational Unified Process For Software Engineering - Introduction
IBM Rational Unified Process For Software Engineering - IntroductionIBM Rational Unified Process For Software Engineering - Introduction
IBM Rational Unified Process For Software Engineering - Introduction
Gaurav Sharma
 
iOS Developer Resume 2025 | Pramod Kumar
iOS Developer Resume 2025 | Pramod KumariOS Developer Resume 2025 | Pramod Kumar
iOS Developer Resume 2025 | Pramod Kumar
Pramod Kumar
 
The rise of e-commerce has redefined how retailers operate—and reconciliation...
The rise of e-commerce has redefined how retailers operate—and reconciliation...The rise of e-commerce has redefined how retailers operate—and reconciliation...
The rise of e-commerce has redefined how retailers operate—and reconciliation...
Prachi Desai
 
14 Years of Developing nCine - An Open Source 2D Game Framework
14 Years of Developing nCine - An Open Source 2D Game Framework14 Years of Developing nCine - An Open Source 2D Game Framework
14 Years of Developing nCine - An Open Source 2D Game Framework
Angelo Theodorou
 
Top 5 Task Management Software to Boost Productivity in 2025
Top 5 Task Management Software to Boost Productivity in 2025Top 5 Task Management Software to Boost Productivity in 2025
Top 5 Task Management Software to Boost Productivity in 2025
Orangescrum
 
Essentials of Resource Planning in a Downturn
Essentials of Resource Planning in a DownturnEssentials of Resource Planning in a Downturn
Essentials of Resource Planning in a Downturn
OnePlan Solutions
 
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Prachi Desai
 
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
DevOps for AI: running LLMs in production with Kubernetes and KubeFlowDevOps for AI: running LLMs in production with Kubernetes and KubeFlow
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
Aarno Aukia
 
Top 11 Fleet Management Software Providers in 2025 (2).pdf
Top 11 Fleet Management Software Providers in 2025 (2).pdfTop 11 Fleet Management Software Providers in 2025 (2).pdf
Top 11 Fleet Management Software Providers in 2025 (2).pdf
Trackobit
 
Micro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Micro-Metrics Every Performance Engineer Should Validate Before Sign-OffMicro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Micro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Tier1 app
 
Ad

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
  • 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? [email protected] topicus.nl · topicus.com · martijndashorst.com @dashorst
  • 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