SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Tackle Containerization
Advisor (TCA) for Legacy
Applications
1
2
Accelerate your journey to Kubernetes
with the Konveyor Community
A community of people passionate about
helping others modernize and migrate
their applications to the hybrid cloud by
building tools and best practices on
how to break down monoliths, adopt
containers, and embrace Kubernetes.
www.konveyor.io
Watch The Presentation
https://youtu.be/S8ISWz87rlk
FORKLIFT
CRANE
Existing
Applications &
Infrastructure
Migrate applications between
Kubernetes clusters
Migrate virtual machines to
Kubernetes (KubeVirt)
MOVE2KUBE
Migrate applications
from other
technologies to
Kubernetes
PELORUS
Measure the impact of changes
on software delivery
performance
TACKLE
Discover, Assess, and Analyze
Applications for
containerization
Application refactoring
recommendations
Konveyor Community Projects
TACKLE
August, 2021
Tackle Container Advisor (TCA)
5
Anup K. Kalia, Jin Xiao, Mihir Choudhury, Lambert P. Wassi, Divya Sankar, AI Ishida, Maja Vukovic
IBM Research Hybrid Cloud
Salai Siva Madhavan, Jayanta K. Mal, Divakar Mysore
IBM GBS
Pavan Kapanipathy, Dinesh Garg, Saswati Dana, Alexander Gray, Salim Roukos
IBM Research AI
Purpose of TCA
6
7
Why TCA?
Clients could have a large application portfolio with 1000s or even 10,000s of applications
Examples:
• Application 1: cobol java javascript: : , , unix/mainframe, unix/mainframe: unknown , db2 oracle 10g oracle 8i vsam
other - db2 v9, , ibm-db2-v9, oracle-oracledb-10g, oracle-oracle db-8i
• Application 2: mq client 7.5 rightfax client 10 sql server 2008 connect direct 4.5, 4.6 & connect direct file agent tws zcentric
8.4, , windows, windows: no, sqlserver
• Application 3: openedge: : tomcat 3/4/5/6/7, , hp unix / rhel / win desktop, hp unix / rhel / win desktop: yes, openedge
Manual verification takes week or even months to go through each application and determine container candidates
TCA provides an automated step that could map applications to container candidates in different catalogs (e.g., DockerHub,
Openshift)
This would significantly reduce efforts to determine container candidates and improve in recommendation accuracy
8
What TCA really does?
Given an application such as the following, TCA recommends container candidates based on a specific catalog. For example, the
following
Application 1: cobol java javascript: : , , unix/mainframe, unix/mainframe: unknown , db2 oracle 10g oracle 8i vsam other - db2
v9, , ibm-db2-v9, oracle-oracledb-10g, oracle-oracle db-8i, sql
TCA maps them with candidate container images such as
DockerHub:
1. DB2: https://hub.docker.com/r/ibmcom/db2,
2. Oracle Database: https://hub.docker.com/_/oracle-database-enterprise-edition
Openshift:
1. DB2: https://catalog.redhat.com/software/applications/detail/823403
2. Oracle Database: https://catalog.redhat.com/software/applications/detail/837443
TCA determines certain other aspects such as.
1. VSAM is Unknown,
2. SQL is a General entity, and
3. Unix/Mainframe cannot not be mapped to any candidate container,
Thus, TCA provides an overall picture of what can or cannot be mapped to containers. Thus, TCA is useful for clients generate a broader picture
for modernization advisory
9
Components in TCA
Containerization
Assessment
Knowledge
Base (*.json)
T1: Containerization
Planning
Entity
Standardization
Model
TCA Backend API
TCA Knowledge Base
Knowledge
Base (.sql)
TCA KG Utils
Generate Jsons
from SQL
TCA Entity Standardizer
Generate the
Model from
Mentions
Add more
tasks
10
Running TCA Backend API
Containerization
Assessment
Knowledge
Base (*.json)
T1: Containerization
Planning
Entity
Standardization
Model
TCA Backend API
1. git clone the tackle-container-advisor repository
2. cd tackle-container-advisor/ and run the shell script “run.sh”
OR you can cd into the following repository and run the docker command
cd aca_backend_api/
“docker-compose -f 'docker-compose-api.yml' --env-file ./config.ini up -d –build”
Two ways to run the backend API
OR
Containerization Assessment API Output
server response codes and their
descriptions
Code Description
200 Success
201 Assessment Completed
successfully!
400 Input data format doesn’t match
the format expected by TCA
401 Unauthorized, missing or invalid
access token
500 Internal Server Error, missing
or wrong config of RBAC access
token validation url
The different Reason codes and
their description
Code Description
101 Medium or low confidence
for the inferred data
102 General technologies
detected
103 Unknown technologies
detected
Assessment Output
Assessment Input
Containerization Recommender API Output
Code Description
200 Success
201 Container recommendation
generated!
400 Input data format doesn’t match
the format expected by TCA
401 Unauthorized, missing or invalid
access token
500 Internal Server Error, missing or
wrong config of RBAC access
token validation url
Recommendation
Containerize
Partially Containerize
[] – No recommendation
Container Recommendation Output
The different server response codes and
their description
Container Recommendation Input
Augmenting Knowledge Base
Entity Relationship Diagram of TCA’s KG Upload TCA’s KG into Dbeaver as a .db file
• INSERT INTO entity_types(entity_type_name) VALUES(?)
• INSERT INTO entities(entity_name, entity_type_id, external_link) VALUES(?,?,?)
• INSERT INTO entity_mentions(entity_mention_name, entity_type_id, entity_id) VALUES(?,?,?)
• INSERT INTO entity_relations(entity_parent_type_id, entity_parent_id, entity_child_type_id, entity_child_id, COTS)
VALUES(?,?,?,?,?)
• INSERT INTO docker_baseos_images(container_name, OS, Docker_URL, Notes, CertOfImageAndPublisher,
Certification_Status, OfficialImage, VerifiedPublisher, OpenShift_Correspondent_Image_URL, OpenShiftStatus)
VALUES(?,?,?,?,?,?,?,?,?,?)
• INSERT INTO docker_images(container_name, OS, lang, lib, app, app_server, plugin, runlib, runtime, Docker_URL, Notes,
CertOfImageAndPublisher) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)
Run the SQL queries for adding new entities into TCA KG Incorporate updated KG
• Generate a new .SQL file
• Update the existing SQL file with the new file
• Go to the main repository tackle-container-advisor
• Run the shell script “setup.sh”
Add a New KG
To run TCA with a new Knowledge Base, please perform the following steps
1) Replace the existing .sql file with the new <new_db>.sql file in the aca_db folder
1) Change the config.ini file in the aca_entity_standardizer folder as follows
• db_path = aca_db/<new_db>.db
2) Change the config.ini in the TCA_kg_utils folder as follows
• db_path = aca_db/<new_db>.db
3) Modify the setup.sh script to reflect the sql and db file accordingly
• aca_sql_file="<new_db>.sql"
• aca_db_file="<new_db>.db"
4) Run the TCA's environment setup by running the following script
• sh setup.sh
1) Modify the clean.sh script to reflect the sql and db file accordingly
• aca_db_file=” <new_db>.db"
Technical Deep Dive into TCA
15
16
Challenges
Applications Descriptions
Candidate Containers*
Recommender
*Candidate container recommendation is one kind of downstream task, there could be more such as 6R disposition, version recommendation, etc.
• Inputs will be noisy and hence they need to be standardized
• They could have abbreviations, numbers, punctuations and
symbols (e.g., rhel, ODM, WAS, AS/400)
• They could have multiple variants (e.g., oracle 10g, oracle-oracle-
10g)
• They could have redundant information (e.g., oracle 10g, oracle-
oracle-10g)
• They could have unknowns that may not have been captured by
the model (e.g., considering vsam was unseen)
• They lack contexts such as surrounding words or entities
Building a recommendation module needs enormous data for almost every
downstream task
Knowledge Base
1. OS,
2. Lang,
3. App,
4. App Server,
5. Lib,
6. Runtime,
1. IIS, App Server, Q11341,
2. MS SQL Server, App, Q215819
1. IIS, App Server, IIS
2. IIS webserver, App Server, IIS
3. Internet Information Services, App Server, IIS
4. Microsoft SQL Server, App, MS SQL Server
5. MSSQL, App, MS SQL Server
6. MS SQL, App, MS SQL Server
7. SQL Server, App, MS SQL Server
1. OS, Windows|*, App Server, IIS|*, No
2. OS, Linux|*, App Server, MS SQL Server|*, No
3. OS, Windows|*, App Server, MS SQL Server|*, No
4. OS, Unix|*, App Server, MS SQL Server|*, No
1. Windows Server Core, Windows|Windows Server, D_URL
2. Red Hat Enterprise Linux, Linux|Red Hat Enterprise Linux, D_URL 1. Windows IIS, Windows, IIS, D_URL
2. Microsoft SQL Server, Linux, MS SQL Server, D_URL
3. IBM Websphere Liberty, Linux, Java, Websphere Liberty, D_URL
1. SQL Server Red Hat Container, Linux, MS SQL Server, O_URL
2. IBM Websphere Liberty, Linux, Java, Websphere Liberty, O_URL
1. Red Hat Enterprise Linux,
Linux|Red Hat Enterprise
Linux, D_URL
Knowledge Base Details
Entity Types: 12, Entities: 610
Types Entities
App 268
Lang 88
Technology 54
OS 51
Lib 43
App Server 34
Plugin 27
Runlib 15
Runtime 13
HW 9
VM 7
Storage 1
Entity Mentions: 4883
Entity Relations: 1267
Docker Images: 164
Openshift Images: 54
Docker Base OS Images: 14
Openshift Base OS Images: 1
Entities: 447 out of 610 are mapped
to Wikidata
Approach
Applications
Descriptions
New Mentions (no
versions)
Named Entities
Versions
Knowledge
Base
Mentions, Entities
Preprocessing
Entity
Standardization
Model
Named Entities
Task A: Candidate
Container
Recommendations
Matching Rules
Container Images,
Entities
Entity, Entity,
Compatible Relations
Application
Components
Reasoner
1
2
3
4
c#/winforms: iis 7.5, iis 8.5: sqlserver
c#/winforms: “”, iis: “7.5, 8.5”, sqlserver: “”
c#/winforms, iis, sqlserver
C#, IIS, MS SQL Server
C#, IIS, MS SQL Server
C1: “Windows, IIS, C#
C2: “Linux, MS SQL Server”
C1: IIS Container Image, C2: MS SQL Server Image
Entity Standardization Model
D1 = ['IIS', 'IIS’]
D2 = ['IIS', 'Microsoft IIS Webserver’]
D3 = ['IIS', 'Microsoft Internet Information Services’]
D4 = ['MS SQL Server', 'Microsoft SQL Server’]
D5 = ['MS SQL Server’, ‘MSSQL’]
D6 = ['MS SQL Server’, ‘MS SQL’]
D7 = ['MS SQL Server’, ‘SQL Server’]
query = [‘MS SQL’]
iis information internet microsoft ms mssql server services sql webserver
D1 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
D2 0.75 0.0 0.0 0.37 0.0 0.0 0.0 0.0 0.0 0.53
D3 0.35 0.49 0.49 0.35 0.0 0.0 0.0 0.49 0.0 0.0
D4 0.0 0.0 0.0 0.35 0.31 0.0 0.62 0.0 0.62 0.0
D5 0.0 0.0 0.0 0.0 0.42 0.68 0.42 0.0 0.42 0.0
D6 0.0 0.0 0.0 0.0 0.66 0.0 0.33 0.0 0.67 0.0
D7 0.0 0.0 0.0 0.0 0.33 0.0 0.67 0.0 0.67 0.0
iis information internet microsoft ms mssql server services sql webserver
0 0.0 0.0 0.0 0.0 0.70 0.0 0.0 0.0 0.70 0.0
D1 D2 D3 D4 D5 D6 D7
0.0 0.0 0.0 0.67 0.59 0.94 0.70
tfidf vectors
query vector
cosine similarity (tfidf, query) D6 = ['MS SQL Server’, ‘MS SQL’]
fit_transform
transform
'MS SQL Server’, ‘App’
•Anup K. Kalia, Raghav Batta, Jin Xiao, Mihir Choudhury and Maja Vukovic. ACA: Application Containerization Advisory Framework for Modernizing Legacy Applications. IEEE International Conference on Cloud Computing (Cloud) [Work-in-progress], sept,
pages 1--3, 2021.
'Component 1': ‘Linux, DB2, COBOL, Java, JavaScript’,
'Component 2': ‘Linux, Oracle Database, COBOL, Java, JavaScript’,
Reasoner
input: c#/winforms: iis 7.5, iis 8.5: sqlserver
1. 'Windows': ['IIS', 'MS SQL Server’, C#],
2. 'Linux': ['MS SQL Server'],
Component 1: ‘Windows, IIS, C#’,
Component 2: ‘Linux, MS SQL Server’
Compatibility Relationship
Component Detection
input: cobol java javascript, db2 oracle 10g oracle 8i
vsam other - db2 v9, , ibm-db2-v9, oracle-oracledb-10g, oracle-
oracle db-8i,
'Windows': ['DB2', 'Oracle Database', 'COBOL', 'Java', 'JavaScript'],
'Linux': ['DB2', 'Oracle Database', 'COBOL', 'Java', 'JavaScript'],
Compatibility Relationship
Component Detection
Candidate Container Recommender
Scores Table:
Scores
Matching
Points
OS 40
App 20
App Server 20
Runtime 10
Lang 10
Windows, IIS, C# 70
Application Score Card
Images OS App App Server Runtime Lang Confidence Additional installations needed
Windows_IIS 40 20 0 0 0 86% C#
mssql-server-windows-developer 40 0 0 0 0 57% IIS, C#
Mongo_Windows 40 0 0 0 0 57% IIS, C#
.NET Framework 40 0 0 0 0 57% IIS, C#
Linux, DB2, COBOL, Java, Javascript 90
Application Score Card
Image Name OS App App Server Runtime Lang Confidence Additional installations needed
db2 40 20 0 0 0 67% COBOL, Java, Javasript
docker-cobol 40 0 0 0 10 56% DB2, Java, Javascript
openjdk_linux 40 0 0 0 10 56% DB2, COBOL, Javascript
sonarqube 40 0 0 0 10 56% DB2, COBOL, Javascript
tomcat 40 0 0 0 10 56% DB2, COBOL, Javascript
glassfish 40 0 0 0 10 56% DB2, COBOL, Javascript
Confidence = = = 0.86
Demo
Join the Konveyor Community
www.konveyor.io

Weitere ähnliche Inhalte

Was ist angesagt?

DockerCon 18 Cool Hacks: solo.io
DockerCon 18 Cool Hacks:  solo.ioDockerCon 18 Cool Hacks:  solo.io
DockerCon 18 Cool Hacks: solo.io
Docker, Inc.
 
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
Docker, Inc.
 
Modernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to ProductionModernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to Production
Docker, Inc.
 

Was ist angesagt? (20)

Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 monthsMigrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
 
Cloud Economics - Crayon Optimization Services
Cloud Economics - Crayon Optimization ServicesCloud Economics - Crayon Optimization Services
Cloud Economics - Crayon Optimization Services
 
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
 
DockerCon 18 Cool Hacks: solo.io
DockerCon 18 Cool Hacks:  solo.ioDockerCon 18 Cool Hacks:  solo.io
DockerCon 18 Cool Hacks: solo.io
 
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
 
Cost Control and Rapid Innovation in Kubernetes with OpenRewrite
Cost Control and Rapid Innovation in Kubernetes with OpenRewriteCost Control and Rapid Innovation in Kubernetes with OpenRewrite
Cost Control and Rapid Innovation in Kubernetes with OpenRewrite
 
DockerCon 18 Cool Hacks: Cloud Native ML with Docker Enterprise Edition
DockerCon 18 Cool Hacks: Cloud Native ML with Docker Enterprise EditionDockerCon 18 Cool Hacks: Cloud Native ML with Docker Enterprise Edition
DockerCon 18 Cool Hacks: Cloud Native ML with Docker Enterprise Edition
 
How Docker EE is Finnish Railway’s Ticket to App Modernization
How Docker EE is Finnish Railway’s Ticket to App ModernizationHow Docker EE is Finnish Railway’s Ticket to App Modernization
How Docker EE is Finnish Railway’s Ticket to App Modernization
 
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
 
Modern Application Development v1-0
Modern Application Development  v1-0Modern Application Development  v1-0
Modern Application Development v1-0
 
Building Your NoSQL Ship: How an Enterprise Transitioned from a RDBMS to NoSQ...
Building Your NoSQL Ship: How an Enterprise Transitioned from a RDBMS to NoSQ...Building Your NoSQL Ship: How an Enterprise Transitioned from a RDBMS to NoSQ...
Building Your NoSQL Ship: How an Enterprise Transitioned from a RDBMS to NoSQ...
 
Tackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case GeneratorTackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case Generator
 
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
 
Openshift YARN - strata 2014
Openshift YARN - strata 2014Openshift YARN - strata 2014
Openshift YARN - strata 2014
 
OpenShift Overview - Red Hat Open House 2017
OpenShift Overview - Red Hat Open House 2017OpenShift Overview - Red Hat Open House 2017
OpenShift Overview - Red Hat Open House 2017
 
Modernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to ProductionModernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to Production
 
9 - Making Sense of Containers in the Microsoft Cloud
9 - Making Sense of Containers in the Microsoft Cloud9 - Making Sense of Containers in the Microsoft Cloud
9 - Making Sense of Containers in the Microsoft Cloud
 
Kubernetes 1.21 release
Kubernetes 1.21 releaseKubernetes 1.21 release
Kubernetes 1.21 release
 
The Complexity to "Yes" in Analytics Software and the Possibilities with Dock...
The Complexity to "Yes" in Analytics Software and the Possibilities with Dock...The Complexity to "Yes" in Analytics Software and the Possibilities with Dock...
The Complexity to "Yes" in Analytics Software and the Possibilities with Dock...
 
Containers and Kubernetes
Containers and KubernetesContainers and Kubernetes
Containers and Kubernetes
 

Ähnlich wie Tackle Containerization Advisor (TCA) for Legacy Applications

Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
QAware GmbH
 

Ähnlich wie Tackle Containerization Advisor (TCA) for Legacy Applications (20)

Build on AWS: Migrating And Platforming
Build on AWS: Migrating And PlatformingBuild on AWS: Migrating And Platforming
Build on AWS: Migrating And Platforming
 
Build on AWS: Migrating and Platforming
Build on AWS: Migrating and PlatformingBuild on AWS: Migrating and Platforming
Build on AWS: Migrating and Platforming
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with Docker
 
Getting started with MariaDB with Docker
Getting started with MariaDB with DockerGetting started with MariaDB with Docker
Getting started with MariaDB with Docker
 
The Very Very Latest in Database Development - Oracle Open World 2012
The Very Very Latest in Database Development - Oracle Open World 2012The Very Very Latest in Database Development - Oracle Open World 2012
The Very Very Latest in Database Development - Oracle Open World 2012
 
The Very Very Latest In Database Development - Lucas Jellema - Oracle OpenWor...
The Very Very Latest In Database Development - Lucas Jellema - Oracle OpenWor...The Very Very Latest In Database Development - Lucas Jellema - Oracle OpenWor...
The Very Very Latest In Database Development - Lucas Jellema - Oracle OpenWor...
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The Cloud
 
Container on azure
Container on azureContainer on azure
Container on azure
 
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for DatabasesDeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
 
Categorizing Docker Hub Public Images
Categorizing Docker Hub Public ImagesCategorizing Docker Hub Public Images
Categorizing Docker Hub Public Images
 
DevConf.cz - Introduction to Kubernetes Operators for Databases
DevConf.cz - Introduction to Kubernetes Operators for DatabasesDevConf.cz - Introduction to Kubernetes Operators for Databases
DevConf.cz - Introduction to Kubernetes Operators for Databases
 
SEASPC 2011 - SharePoint Security in an Insecure World: Understanding the Fiv...
SEASPC 2011 - SharePoint Security in an Insecure World: Understanding the Fiv...SEASPC 2011 - SharePoint Security in an Insecure World: Understanding the Fiv...
SEASPC 2011 - SharePoint Security in an Insecure World: Understanding the Fiv...
 
DevOps with Kubernetes and Helm - OSCON 2018
DevOps with Kubernetes and Helm - OSCON 2018DevOps with Kubernetes and Helm - OSCON 2018
DevOps with Kubernetes and Helm - OSCON 2018
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
 
SKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for DatabasesSKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for Databases
 
Enterprise guide to building a Data Mesh
Enterprise guide to building a Data MeshEnterprise guide to building a Data Mesh
Enterprise guide to building a Data Mesh
 
Development workflow guide for building docker apps
Development workflow guide for building docker appsDevelopment workflow guide for building docker apps
Development workflow guide for building docker apps
 
Development workflow guide for building docker apps
Development workflow guide for building docker appsDevelopment workflow guide for building docker apps
Development workflow guide for building docker apps
 
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
 

Mehr von Konveyor Community

Mehr von Konveyor Community (10)

State of application modernization 2024 report
State of application modernization 2024 reportState of application modernization 2024 report
State of application modernization 2024 report
 
Tackle 2: New capabilities for modernizing applications to leverage Kubernetes
Tackle 2: New capabilities for modernizing applications to leverage KubernetesTackle 2: New capabilities for modernizing applications to leverage Kubernetes
Tackle 2: New capabilities for modernizing applications to leverage Kubernetes
 
State of application modernization 2022
State of application modernization 2022State of application modernization 2022
State of application modernization 2022
 
Migrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2IMigrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2I
 
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
 
Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...
Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...
Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...
 
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
 
[Konveyor] roles &amp; processes that make application modernization projects...
[Konveyor] roles &amp; processes that make application modernization projects...[Konveyor] roles &amp; processes that make application modernization projects...
[Konveyor] roles &amp; processes that make application modernization projects...
 
Modern Security Pain Points with Application Modernization - With Jermaine Ed...
Modern Security Pain Points with Application Modernization - With Jermaine Ed...Modern Security Pain Points with Application Modernization - With Jermaine Ed...
Modern Security Pain Points with Application Modernization - With Jermaine Ed...
 
[Konveyor] address technical risks when implementing workload modernization u...
[Konveyor] address technical risks when implementing workload modernization u...[Konveyor] address technical risks when implementing workload modernization u...
[Konveyor] address technical risks when implementing workload modernization u...
 

Kürzlich hochgeladen

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Tackle Containerization Advisor (TCA) for Legacy Applications

  • 1. Tackle Containerization Advisor (TCA) for Legacy Applications 1
  • 2. 2 Accelerate your journey to Kubernetes with the Konveyor Community A community of people passionate about helping others modernize and migrate their applications to the hybrid cloud by building tools and best practices on how to break down monoliths, adopt containers, and embrace Kubernetes. www.konveyor.io
  • 4. FORKLIFT CRANE Existing Applications & Infrastructure Migrate applications between Kubernetes clusters Migrate virtual machines to Kubernetes (KubeVirt) MOVE2KUBE Migrate applications from other technologies to Kubernetes PELORUS Measure the impact of changes on software delivery performance TACKLE Discover, Assess, and Analyze Applications for containerization Application refactoring recommendations Konveyor Community Projects TACKLE
  • 5. August, 2021 Tackle Container Advisor (TCA) 5 Anup K. Kalia, Jin Xiao, Mihir Choudhury, Lambert P. Wassi, Divya Sankar, AI Ishida, Maja Vukovic IBM Research Hybrid Cloud Salai Siva Madhavan, Jayanta K. Mal, Divakar Mysore IBM GBS Pavan Kapanipathy, Dinesh Garg, Saswati Dana, Alexander Gray, Salim Roukos IBM Research AI
  • 7. 7 Why TCA? Clients could have a large application portfolio with 1000s or even 10,000s of applications Examples: • Application 1: cobol java javascript: : , , unix/mainframe, unix/mainframe: unknown , db2 oracle 10g oracle 8i vsam other - db2 v9, , ibm-db2-v9, oracle-oracledb-10g, oracle-oracle db-8i • Application 2: mq client 7.5 rightfax client 10 sql server 2008 connect direct 4.5, 4.6 & connect direct file agent tws zcentric 8.4, , windows, windows: no, sqlserver • Application 3: openedge: : tomcat 3/4/5/6/7, , hp unix / rhel / win desktop, hp unix / rhel / win desktop: yes, openedge Manual verification takes week or even months to go through each application and determine container candidates TCA provides an automated step that could map applications to container candidates in different catalogs (e.g., DockerHub, Openshift) This would significantly reduce efforts to determine container candidates and improve in recommendation accuracy
  • 8. 8 What TCA really does? Given an application such as the following, TCA recommends container candidates based on a specific catalog. For example, the following Application 1: cobol java javascript: : , , unix/mainframe, unix/mainframe: unknown , db2 oracle 10g oracle 8i vsam other - db2 v9, , ibm-db2-v9, oracle-oracledb-10g, oracle-oracle db-8i, sql TCA maps them with candidate container images such as DockerHub: 1. DB2: https://hub.docker.com/r/ibmcom/db2, 2. Oracle Database: https://hub.docker.com/_/oracle-database-enterprise-edition Openshift: 1. DB2: https://catalog.redhat.com/software/applications/detail/823403 2. Oracle Database: https://catalog.redhat.com/software/applications/detail/837443 TCA determines certain other aspects such as. 1. VSAM is Unknown, 2. SQL is a General entity, and 3. Unix/Mainframe cannot not be mapped to any candidate container, Thus, TCA provides an overall picture of what can or cannot be mapped to containers. Thus, TCA is useful for clients generate a broader picture for modernization advisory
  • 9. 9 Components in TCA Containerization Assessment Knowledge Base (*.json) T1: Containerization Planning Entity Standardization Model TCA Backend API TCA Knowledge Base Knowledge Base (.sql) TCA KG Utils Generate Jsons from SQL TCA Entity Standardizer Generate the Model from Mentions Add more tasks
  • 10. 10 Running TCA Backend API Containerization Assessment Knowledge Base (*.json) T1: Containerization Planning Entity Standardization Model TCA Backend API 1. git clone the tackle-container-advisor repository 2. cd tackle-container-advisor/ and run the shell script “run.sh” OR you can cd into the following repository and run the docker command cd aca_backend_api/ “docker-compose -f 'docker-compose-api.yml' --env-file ./config.ini up -d –build” Two ways to run the backend API OR
  • 11. Containerization Assessment API Output server response codes and their descriptions Code Description 200 Success 201 Assessment Completed successfully! 400 Input data format doesn’t match the format expected by TCA 401 Unauthorized, missing or invalid access token 500 Internal Server Error, missing or wrong config of RBAC access token validation url The different Reason codes and their description Code Description 101 Medium or low confidence for the inferred data 102 General technologies detected 103 Unknown technologies detected Assessment Output Assessment Input
  • 12. Containerization Recommender API Output Code Description 200 Success 201 Container recommendation generated! 400 Input data format doesn’t match the format expected by TCA 401 Unauthorized, missing or invalid access token 500 Internal Server Error, missing or wrong config of RBAC access token validation url Recommendation Containerize Partially Containerize [] – No recommendation Container Recommendation Output The different server response codes and their description Container Recommendation Input
  • 13. Augmenting Knowledge Base Entity Relationship Diagram of TCA’s KG Upload TCA’s KG into Dbeaver as a .db file • INSERT INTO entity_types(entity_type_name) VALUES(?) • INSERT INTO entities(entity_name, entity_type_id, external_link) VALUES(?,?,?) • INSERT INTO entity_mentions(entity_mention_name, entity_type_id, entity_id) VALUES(?,?,?) • INSERT INTO entity_relations(entity_parent_type_id, entity_parent_id, entity_child_type_id, entity_child_id, COTS) VALUES(?,?,?,?,?) • INSERT INTO docker_baseos_images(container_name, OS, Docker_URL, Notes, CertOfImageAndPublisher, Certification_Status, OfficialImage, VerifiedPublisher, OpenShift_Correspondent_Image_URL, OpenShiftStatus) VALUES(?,?,?,?,?,?,?,?,?,?) • INSERT INTO docker_images(container_name, OS, lang, lib, app, app_server, plugin, runlib, runtime, Docker_URL, Notes, CertOfImageAndPublisher) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) Run the SQL queries for adding new entities into TCA KG Incorporate updated KG • Generate a new .SQL file • Update the existing SQL file with the new file • Go to the main repository tackle-container-advisor • Run the shell script “setup.sh”
  • 14. Add a New KG To run TCA with a new Knowledge Base, please perform the following steps 1) Replace the existing .sql file with the new <new_db>.sql file in the aca_db folder 1) Change the config.ini file in the aca_entity_standardizer folder as follows • db_path = aca_db/<new_db>.db 2) Change the config.ini in the TCA_kg_utils folder as follows • db_path = aca_db/<new_db>.db 3) Modify the setup.sh script to reflect the sql and db file accordingly • aca_sql_file="<new_db>.sql" • aca_db_file="<new_db>.db" 4) Run the TCA's environment setup by running the following script • sh setup.sh 1) Modify the clean.sh script to reflect the sql and db file accordingly • aca_db_file=” <new_db>.db"
  • 15. Technical Deep Dive into TCA 15
  • 16. 16 Challenges Applications Descriptions Candidate Containers* Recommender *Candidate container recommendation is one kind of downstream task, there could be more such as 6R disposition, version recommendation, etc. • Inputs will be noisy and hence they need to be standardized • They could have abbreviations, numbers, punctuations and symbols (e.g., rhel, ODM, WAS, AS/400) • They could have multiple variants (e.g., oracle 10g, oracle-oracle- 10g) • They could have redundant information (e.g., oracle 10g, oracle- oracle-10g) • They could have unknowns that may not have been captured by the model (e.g., considering vsam was unseen) • They lack contexts such as surrounding words or entities Building a recommendation module needs enormous data for almost every downstream task
  • 17. Knowledge Base 1. OS, 2. Lang, 3. App, 4. App Server, 5. Lib, 6. Runtime, 1. IIS, App Server, Q11341, 2. MS SQL Server, App, Q215819 1. IIS, App Server, IIS 2. IIS webserver, App Server, IIS 3. Internet Information Services, App Server, IIS 4. Microsoft SQL Server, App, MS SQL Server 5. MSSQL, App, MS SQL Server 6. MS SQL, App, MS SQL Server 7. SQL Server, App, MS SQL Server 1. OS, Windows|*, App Server, IIS|*, No 2. OS, Linux|*, App Server, MS SQL Server|*, No 3. OS, Windows|*, App Server, MS SQL Server|*, No 4. OS, Unix|*, App Server, MS SQL Server|*, No 1. Windows Server Core, Windows|Windows Server, D_URL 2. Red Hat Enterprise Linux, Linux|Red Hat Enterprise Linux, D_URL 1. Windows IIS, Windows, IIS, D_URL 2. Microsoft SQL Server, Linux, MS SQL Server, D_URL 3. IBM Websphere Liberty, Linux, Java, Websphere Liberty, D_URL 1. SQL Server Red Hat Container, Linux, MS SQL Server, O_URL 2. IBM Websphere Liberty, Linux, Java, Websphere Liberty, O_URL 1. Red Hat Enterprise Linux, Linux|Red Hat Enterprise Linux, D_URL
  • 18. Knowledge Base Details Entity Types: 12, Entities: 610 Types Entities App 268 Lang 88 Technology 54 OS 51 Lib 43 App Server 34 Plugin 27 Runlib 15 Runtime 13 HW 9 VM 7 Storage 1 Entity Mentions: 4883 Entity Relations: 1267 Docker Images: 164 Openshift Images: 54 Docker Base OS Images: 14 Openshift Base OS Images: 1 Entities: 447 out of 610 are mapped to Wikidata
  • 19. Approach Applications Descriptions New Mentions (no versions) Named Entities Versions Knowledge Base Mentions, Entities Preprocessing Entity Standardization Model Named Entities Task A: Candidate Container Recommendations Matching Rules Container Images, Entities Entity, Entity, Compatible Relations Application Components Reasoner 1 2 3 4 c#/winforms: iis 7.5, iis 8.5: sqlserver c#/winforms: “”, iis: “7.5, 8.5”, sqlserver: “” c#/winforms, iis, sqlserver C#, IIS, MS SQL Server C#, IIS, MS SQL Server C1: “Windows, IIS, C# C2: “Linux, MS SQL Server” C1: IIS Container Image, C2: MS SQL Server Image
  • 20. Entity Standardization Model D1 = ['IIS', 'IIS’] D2 = ['IIS', 'Microsoft IIS Webserver’] D3 = ['IIS', 'Microsoft Internet Information Services’] D4 = ['MS SQL Server', 'Microsoft SQL Server’] D5 = ['MS SQL Server’, ‘MSSQL’] D6 = ['MS SQL Server’, ‘MS SQL’] D7 = ['MS SQL Server’, ‘SQL Server’] query = [‘MS SQL’] iis information internet microsoft ms mssql server services sql webserver D1 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 D2 0.75 0.0 0.0 0.37 0.0 0.0 0.0 0.0 0.0 0.53 D3 0.35 0.49 0.49 0.35 0.0 0.0 0.0 0.49 0.0 0.0 D4 0.0 0.0 0.0 0.35 0.31 0.0 0.62 0.0 0.62 0.0 D5 0.0 0.0 0.0 0.0 0.42 0.68 0.42 0.0 0.42 0.0 D6 0.0 0.0 0.0 0.0 0.66 0.0 0.33 0.0 0.67 0.0 D7 0.0 0.0 0.0 0.0 0.33 0.0 0.67 0.0 0.67 0.0 iis information internet microsoft ms mssql server services sql webserver 0 0.0 0.0 0.0 0.0 0.70 0.0 0.0 0.0 0.70 0.0 D1 D2 D3 D4 D5 D6 D7 0.0 0.0 0.0 0.67 0.59 0.94 0.70 tfidf vectors query vector cosine similarity (tfidf, query) D6 = ['MS SQL Server’, ‘MS SQL’] fit_transform transform 'MS SQL Server’, ‘App’ •Anup K. Kalia, Raghav Batta, Jin Xiao, Mihir Choudhury and Maja Vukovic. ACA: Application Containerization Advisory Framework for Modernizing Legacy Applications. IEEE International Conference on Cloud Computing (Cloud) [Work-in-progress], sept, pages 1--3, 2021.
  • 21. 'Component 1': ‘Linux, DB2, COBOL, Java, JavaScript’, 'Component 2': ‘Linux, Oracle Database, COBOL, Java, JavaScript’, Reasoner input: c#/winforms: iis 7.5, iis 8.5: sqlserver 1. 'Windows': ['IIS', 'MS SQL Server’, C#], 2. 'Linux': ['MS SQL Server'], Component 1: ‘Windows, IIS, C#’, Component 2: ‘Linux, MS SQL Server’ Compatibility Relationship Component Detection input: cobol java javascript, db2 oracle 10g oracle 8i vsam other - db2 v9, , ibm-db2-v9, oracle-oracledb-10g, oracle- oracle db-8i, 'Windows': ['DB2', 'Oracle Database', 'COBOL', 'Java', 'JavaScript'], 'Linux': ['DB2', 'Oracle Database', 'COBOL', 'Java', 'JavaScript'], Compatibility Relationship Component Detection
  • 22. Candidate Container Recommender Scores Table: Scores Matching Points OS 40 App 20 App Server 20 Runtime 10 Lang 10 Windows, IIS, C# 70 Application Score Card Images OS App App Server Runtime Lang Confidence Additional installations needed Windows_IIS 40 20 0 0 0 86% C# mssql-server-windows-developer 40 0 0 0 0 57% IIS, C# Mongo_Windows 40 0 0 0 0 57% IIS, C# .NET Framework 40 0 0 0 0 57% IIS, C# Linux, DB2, COBOL, Java, Javascript 90 Application Score Card Image Name OS App App Server Runtime Lang Confidence Additional installations needed db2 40 20 0 0 0 67% COBOL, Java, Javasript docker-cobol 40 0 0 0 10 56% DB2, Java, Javascript openjdk_linux 40 0 0 0 10 56% DB2, COBOL, Javascript sonarqube 40 0 0 0 10 56% DB2, COBOL, Javascript tomcat 40 0 0 0 10 56% DB2, COBOL, Javascript glassfish 40 0 0 0 10 56% DB2, COBOL, Javascript Confidence = = = 0.86
  • 23. Demo
  • 24. Join the Konveyor Community www.konveyor.io

Hinweis der Redaktion

  1. Konveyor tools provide help on the first three Rs. We understand each of these Rs in our own way: Rehost is for moving applications towards Kubernetes without making any changes. These applications can be: Virtual Machines that we move without any changes for them to be executed with Kubevirt, for which we would use Forklift. Already containerized applications that are moved from any other Kubernetes cluster retaining the original images, manifests and state. We understand replatforming as moving containerized applications from other container platforms like Cloud Foundry or Docker Swarm to Kubernetes, and for that we have Move2Kube. And finally, we see the refactoring strategy as containerizing applications that come from more traditional platforms like application servers. This includes both application modernization and migration to leverage Kubernetes.