KubeCon + CloudNativeCon Europe

Project Lightning Talk: Konveyor AI for Every Language and the Future of App Moderniza... Shaaf Syed

6:13 · 23 Mar 2026 – 26 Mar 2026 · YouTube

About this talk

This talk addresses application modernization, particularly focusing on transitioning legacy enterprise Java applications to run on Kubernetes. The speaker introduces the Konveyor community, which provides tools and solutions for application modernization through static code analysis. They explain how the analysis engine evaluates code written in various languages like Java, Golang, C#, Python, and Node.js, offering remediation suggestions for Kubernetes compatibility. Additionally, the speaker discusses the integration of language server protocols for enhanced code understanding and the use of AI-generated solutions to improve coding practices. They highlight new features such as memory storage for IDE changes and automated agent processes that ensure functionality during the modernization process.

Full transcript

So, my name is Shaf, I'll speak about application modernization, coming up the stack a bit. Um if you've seen this code, don't raise your hand. Kind of tells me how uh we have the same age, you could say like that, right? So, this is about 30 years old enterprise Java bean. Your boss comes in one day, says, "Hey, I would like to run this on Kubernetes. What

do you do?" Uh you look at the protocol, and this is what you see. fun stuff. Stubs, serialization and pets taking care, no clustering, can't fail, etc. etc. Lots of troubles. So, how do we How do we solve that? So, in the Konveyor community, which is trying to solve the application modernization problem for almost every other language, uh we have a set of uh solutions for it.

And one of the main core things that we do is uh an analysis engine. We analyze the source, static code analysis. Uh we try to understand things like Java, things like Golang, etc. Uh we try to make sure that there are some guidelines for for people like me who don't program that much that, okay, if you want to change a component that uses IIOP or uh messaging

or transactions, etc., what could be the different things you could do in order for it to run on a platform like Kubernetes. So, we um we do the static code analysis engine, which is uh part of the Konveyor community. Um and then we connect it with the language server protocol, the language server protocol being uh something that gives us this nice view of uh what the code

is doing, what the code paths are, etc. etc. Um and uh gives us that implementation analysis rules. Uh we can we can have multiple rules for it. What we've done recently in last 6 months is that we've added the support for C#, um Golang, Python, and Node.js. Which means that now, if you were going to take an application, run a static code analysis on it, it's going

to report to you, you know, "Hey, maybe you should use some secrets and config maps, by the way." Right? Stuff like that that's going to give you ideas around and be able to generate code since everybody talks about AI, we can now use that static code analysis, throw that using some context engineering into the large language model and get some good results. Before I do that, here's

the report which kind of gives another Java application since I love Java so much, I thought I should give a preview of that. It shows you about a simple, you know, line that basically is offensive and offensive in the sense that it won't run on Kubernetes. It needs some context, it needs some configuration, so it's able to pinpoint and give you all the details and some remedies

and answers for it as well. Uh here's a a very nice demo, well, not a demo, but, you know, a blueprint of what's going on. What we do is we do the static code analysis, we understand the incidents line by line that are happening, and once we can understand the code and what it's doing, we can context engineer that code, send it into the large language model,

and get results, meaningful out of it, which is important because you want to have a meaningful result out of the generative AI, not just chatting around and having having answers. Once those results come in, we are then able to integrate that back into the code base We also have agents. Obviously, I have to say that because everybody has agents these days, and if we didn't, that wouldn't

check the box, right? But, if you look at agent or agentic AI, what we're able to do is that once we receive an incident, let's assume this was an enterprise Java bean or some small code or Angular 2, and we start to fix it, and once we fix one thing, we end up breaking a lot of other things in the code. And once we start breaking the

other things in the code, we want to fix them as well. So, that's where agents come in. They do compilation, they do some validation, testing, etc., and sanitize those results, and start working with all the other problems, and keep on fixing issues as we go along. So, agents as well. Another interesting thing that we just released in the last 6 to 8 months is memory. So, with

context engineering, with agents, we are also able to have memory of what you do in your IDE value while you make the changes, so we can save them, and we can keep them. For example, if somebody generated a code or a fix from Conveyor AI, and they did not like maybe the exception handling part of it, etc., they converted or changed that code and saved it, we

are able to keep that in the memory. Next time, every time in the organization, anybody tries to do that generation again, we are able to overrule that generation as well. So, basically distributed memory, right? Um so, in in respect of these 2 seconds I have, I'm just going to show you here's an example of uh a nice EJB code that I just showed you earlier. Let me

just show you. You can see it has some really, really weird stuff in here. Um and in order for us to be able to generate it, I can actually go up and say, "Hey, give me a solution for all these issues that you had." It goes back, it starts to reason with it, it starts to create uh code, and it's going to come back with the with

a Git patch, for example. So, here you can see that an RMI IIOP um code, which most of us in this room do not understand, except me, I guess, but um and some of us, uh is a is able to change that into a REST endpoint, and you can see that it brings up uh a total new REST service doing that. So, migration that way and then

finally obviously just going for that I'll say thank you. There's the conveyor kiosk. We're at the kiosk Wednesday and Thursday 10:00 a.m. So, if you have more questions I'm available outside and also at the booth and also you have the QR code for the community project as well. Thank you very much. Awesome. Thank you very much.