Boost Fertility New Invention Ups Success Rates.pdf
From 4 releases per year to 104 Joakim Lindbom - Redhat Summit 2020
1. From 4 releases per year to 104 -
using an automate-everything-that-moves attitude
Legacy modernization
Joakim Lindbom
Certified Chief Architect
Account Architect
Capgemini Sweden
3. 15 years of legacy modernisation
Finance, banks, telco – mainframe system from 70s - COBOL
Midrange from 80s - RPG
Client/Server from 90s – SQL Windows
Mainframe from 60s – 4th GL
VAX from 80s - Pascal
Retail – mainframe system from 70s - PL1
6. Legacy systems
Anythin older than 15 days or not written in Java
Systems having more control over you
than you have over the systems
Revenue generating systems
29. From 4 releases per year to 104 -
using an automate-everything-that-moves attitude
Legacy modernization
Joakim Lindbom
Certified Chief Architect
Account Architect
Capgemini Sweden
Photos from https://www.rgbstock.com/
Editor's Notes
A - Tvetydig
Hypermedia as the Engine of Application State
Consistency
Availability
Partition tolerance
Lego didn’t ask the kids what model they’d build!
GIT
Jenkins – basic usage
UT 1000s – pretty good
SWQ – pretty OK, if you trust the tools
But still very hard to learn – 4+ MLoC
Starting with nearly zero when it comes to test automation and modern tools in core system, we have come far with the modernization:
Modern CICD pipeline built with modern tools (Github Enterprise, Jenkins, Ansible, Behave, etc.)
Git used as single-source-of-truth, aka GitOps based design; all assets are maintained under version control, not only the Java or Kotlin code.
Configuration items (App Server Properties) taken from a manual, UI-based update and brought into Github – this means there’s no manual intervention needed when deploying. Besides providing 100% automation, this approach cuts out manual errors, which is identified as the main cause of test environment issues; next step is to expand to include properties stored in DFP Data based versioning is now piloted where we auto generate the delta scripts for a particular environment. The database schema is under version control, tightly connected with the corresponding source code; the delta scripts are independent from the code and reflect the actual need for any environment.
Test automation extracted from git and configured before execution. Test automation also running as part of daily/weekly/etc smoke/business critical scenarios. We’re using the TDBot to extract available test data, rather than e.g. using hard coded article numbers. We’re working closely with the TDBot team to expand reach and scope of the test data collection tool.
We’re currently deploying to the various on-prem environments under our control, but the design of the CICD solution includes higher level environments (pre-prod and prod) as well as cloud based based hosting.
This is a modern CICD pipeline built with modern tooling (Jenkins, Ansible, Behave, etc.)
Git used as single-source-of-truth, aka gitops based design
Configuration items (Properties) maintained under version control – no manual intervention needed when deploying (next step is to expand to include properties stored in DFP). The main reasons is to cut out manual errors and ned for human intervention during the deploy process.
Test automation extracted from git and configured before execution. Test automation also running as part of daily/weekly/etc smoke/business critical scenarios
Remaining work:
All components work y themselves, integration work is ongoing in current sprint (as of 2020-09-19), including blocking deployment after SWQ and RegTest
Pilot rollout for DB versioning and properties injection is ongoing.
Selection of RegTest subset based on which service is deployed
Rollout to all environments, up to and including Prod – principal agreement with platform team done.