Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Modernizing Legacy Systems with Apache Kafka & ...

Jack Yu
July 30, 2023
53

Modernizing Legacy Systems with Apache Kafka & CDC Pipelines

Jack Yu

July 30, 2023
Tweet

Transcript

  1. Modernizing Legacy Systems with Apache Kafka and CDC Pipelines by

    Jack Yu - Full Stack Engineer (@Jack Yu) 1
  2. Agenda Introduction Apache Kafka, Debezium... Legacy System: Mainframe, AIX System,

    COBOL... Modernizing Legacy Systems through CDC Pipelines & Apache Kafka Change Data Capture Event Summary Q & A 2
  3. Debezium Debezium Source Connector for PostgreSQL Debezium Source Connector for

    MySQL Debezium Source Connector for SQL Server ... Debezium Connector Overview 4
  4. Introduction To Our Company Local Mini Broker, founded in 1988

    IT System accross multiple era such as Mainframe, COBOL, C/C++, Java, php, python, javascript... Self own on premise data center, multiple operating system such as AIX, Linux, Windows... 5
  5. Our Legacy System IBM Mainframe IBM AIX System COBOL Vender

    designed specific programs unable to modify by ourself... MySQL 5.5, SQL Server 2008... PHP 5.3, Perl 5.8, C/C++... 6
  6. 7

  7. COBOL is Still Alive ref: Quora: Is there any demand

    for COBOL programming nowadays? The answer is a bit unclear. There are still billions of lines of COBOL code handling the business of the 21st century and someone needs to maintain and update them. In many cases there is still new development being done (though new languages and architectures are increasingly used for development). From that perspective, yes there is demand for COBOL. “ “ 8
  8. Problems New developer have no idea about COBOL Business logic

    hard to understand, lot's of dependency Difficult to share data between mainframe and other systems Each team have their own tech stack, data store hard to collaborate 9
  9. 11

  10. 13

  11. 15

  12. What is CDC? - Change Data Capture mysql> SELECT *

    FROM customers; +------+------------+-----------+-----------------------+ | id | first_name | last_name | email | +------+------------+-----------+-----------------------+ | 1001 | Sally | Thomas | [email protected] | | 1002 | George | Bailey | [email protected] | | 1003 | Edward | Walker | [email protected] | | 1004 | Anne | Kretchmar | [email protected] | +------+------------+-----------+-----------------------+ UPDATE customers SET first_name='Anne Marie' WHERE id=1004; 16
  13. Example CDC message generate from debezium { "before": { "id":

    1004, "first_name": "Anne", "last_name": "Kretchmar", "email": "[email protected]" }, "after": { "id": 1004, "first_name": "Anne Marie", "last_name": "Kretchmar", "email": "[email protected]" }, ... } 17
  14. Change Data Capture for COBOL key value style action=R,id=1002,first_name=George,last_name=Bailey,[email protected] action=U,id=1004,first_name=Anne

    Marie,last_name=Kretchmar,[email protected] Binary style 0xbb20f55a5eecf669602cf0a8380f57de012634ebe0a35b4d0d35432d4c232e8d 0x36f00e344b59ddbe23ba0d32cf808c74a80b4e08f074907c44e3f84a8a866bf7 0x508f8405eeacbbb5b311a323287f489fd877815a801b57fab2b27b3d08b7e5af 18
  15. 20

  16. Benefit of New Architecture Each team can focus on their

    own business logic, tech stack, data store... Easy to share data between different systems through Kafka Easy to scale & implement the system with modern technology (both scale up & scale out) Development could be parallel and more efficient, since each team have their own responsibility 21
  17. Scalability & Flexibility Once the data is out from mainframe

    & COBOL, it's easy to scale & implement the system with modern technology k8s..., mongodb..., postgresql..., python..., javascript..., golang..., kafka..., redis..., elasticsearch..., prometheus..., grafana..., fluentd..., kibana..., ... 22
  18. Reference Stand up to the Dinosaur: Mainframe Integration, Offloading and

    Replacement with Apache Kafka Debezium Tutorial A Gentle Introduction to Event-driven Change Data Capture 24