 Welcome, everyone, to the intelligence app stage. I hope you've had a great day of vision so far. So our next session is titled, Accelerate your Modernization Journey with Cloud Services. My name is Benga Taylor. I'm a manager of social architecture at Red Hat, North America. I have the pleasure to introduce our esteemed speakers today. First, we have Valentina Rodriguez-Sosa, Principal Technical Marketing Manager at Red Hat, and Ed Keane, who's a student manager in Red Hat's Cloud Services practice. So they both have a lot of experience in helping our customers navigate the app modernization journeys. And so today, they're going to share lessons, learn methodologies, and best practices for app modernization. So before we start, I just wanted to ask a few things for view. If you have any questions, please place them in the events comment section. And if time permits, we'll answer them live after the talk. And finally, all sessions and recordings will be uploaded to the Red Hat developer YouTube and the presentation we've made available later. So Valentina and Ed, the floor is yours. Excellent. Thank you for the introduction, Benga. And thank you, everybody, for joining us on Dev Nation Day. We're really excited that you're here. Valentina and I have a great session to help you accelerate your modernization and cloud services journey. As Benga said, please throw comments, questions, feedback, ideas in the chat. We want to make this interactive. We would love to hear from the field as well. We are our customer facing, so what we're going to go through here is based on our experience in the field. And speaking of that, Valentina, you want to go to the next slide? And we'll talk about the challenges that our customers have with actually doing app modernization. So this is based off of boots on the ground, folks helping platform teams and developers get on to undercontainers and cloud and modernize their apps. So first one, obviously, is around prioritization of clearing tech debt and doing modernization versus features, working on features and product improvements is always a real challenge. So this is where it comes like a top-down approach to how to help teams be able to prioritize. Once they're doing the modernization, where can they go for support? It can be very disparate and disjointed and being able to centralize support. And around that support, being able to provide people with getting started guides and up-to-date documentation that is easy for them to be able to maintain and contribute to, and then we'll talk a little bit more in a minute about some of the organization silos that we have to bridge between five or more different organizations or silos to get teams on boarded onto the hybrid cloud. And then Valentina, you've got some of you seen as well. Yes, yes, should I go to the next one? Yeah, so to rephrase these, what we have seen is sometimes developers, there is a lot of silos on the organization and what we want to do is remove those barriers in order to have all those things collaborated together and that is starting from the beginning. So having a clear understanding of why we are doing this modernization is very important for not only your organization, but also the teams that will be implementing this modernization. Yes, and the next one that we will cover in later is also onboarding into containers. So how that affect the developer experience. So we will see the developer experience as one of the key elements when modernizing your applications. Excellent, yeah, and we want to make this as frictionless a journey as possible for developers to get onto the hybrid cloud. And it really all starts with having a platform that's designed for meeting the needs of developers, right? It's easy to use frictionless, where we can onboard developers and applications quickly. And we'll talk a little bit more in a second about what that looks like for Red Hat's OpenShift Cloud Services. And then on top of that, building your modernization and this is what Valentino will talk about. A big part of that is the developer experience in a loop, making sure that it's easy for people to be able to collaborate, find other services and feedback and work together on sharing lessons learned and templates and patterns. And then starting your journey with like your migration and modernization and being able to scale that and Valentino will talk more about that and what it looks like to be able to sustain this and build best modernization best practices into your daily-davy development. If you want to go to the next slide, Valentino. So for us, that platform, that developer-centric platform is Red Hat's OpenShift Cloud Services. So there's native products on AWS, Red Hat OpenShift Service on AWS or ROSA. And then on Azure, Azure's Red Hat OpenShift or ARO. So this is the foundation, right? This is the turnkey developer app dev, app delivery platform. On top of this, we're talking about accelerating your cloud services journey. You want to make sure you're building a cloud landing zone to be able to hit the enterprise scale and then you're creating patterns around cloud integrations. This is not running in a silo. We're running in AWS or running in Azure and so we're making use of like S3 storage, DynamoDB, other cloud services or cloud provider services we want to be able to have developers integrate with. And Valentino, what do you want to cover next? Yes. So that's great. So once you have your simplified platform that's such as OpenShift, what you will start looking into is how I can start building my own modernization journey. So you will go into different stages of your modernization journey from understanding where you are and doing an assessment to rationalize and that is categorizing the apps and what is that you will do with each app and taking those migrations decisions. So you will go over maybe retire, retain, rehearse, replatform and refactor depends on what your business needs are and depends on the status of your application. So rehearse will be, want to move is like the list and shift. It's moving a replication from one platform to the other one with probably minimal changes. The platform will make requires some shortcut changes to be moved, maybe a small few tweaks for make it container ready, clover ready. And then refactor that is when it will require a lot of significant shortcut changes. You may be looking at changing the whole architecture even reviving the whole app. So depends on what is that you want to accomplish is that migration decision that you may take. After that, once you have your decision what you want to start doing is start measuring right away with a pilot application. So the pilot is a way that you can start proving that this modernization fits your goals. And from that, you can start proving and feeding back to what we call a plan modernization plan. Once you have your plan set up you can start scaling out your rest of your organization and later what you really want is that modernization to be part of your software development lifecycle. So with that, how this will work you will start understanding of course where you are. You know, you have a lot of apps but where are they and what type of apps are and should I move it or not? So customers are questioning on the time that should I move this app? What should I move it? What should it start? So understanding where you are versus where is that I want to be that allows you to create your modernization plan. So you will take a criteria. So you will have a sort of different apps maybe different archetypes and line of business with that criteria you can create a barclaw. So we really recommend this to follow with agile methodologies. So in that case, you can easily iterate over pieces and also it allows you to see value really soon rather than that later. After that, what you want is start prioritizing and be able to build some sprints. So you're gonna start implementing soon. But how I can do this? So first what we want is really to start having that mission for the company. We have sometimes here from customers like how I can make everyone on my company believe on this. So everyone will be engaged, I committed to this project. So understanding creating a purpose that speaks to everyone on the organization that aligns to your business value is critical not only for commitment and motivation but also for long term success. So understanding why this motivates you to do this modernization. It could be maybe saving resources, saving costs, security concerns, accelerating software development cycle. It could be multiple things but creating that mission is important. And take that vision also as a criteria. Whatever it is that you want to accomplish creating that criteria to choose your apps to see value soon rather than later. Things like thinking about this archetype. So you may start thinking about, okay, I want to move this Spring Boot apps that I have or I'm out to move these frontends that are more easy but also understanding the line of business values that is for them and maybe looking and creating those stories around them. With that, I will be able to create a backlog. Don't forget to create metrics as well that can measure back into your plan success. Once I have that, I can start thinking about our pilot and that is what is that I will start. So I will start thinking, first defining short term goals and thinking about risk. So probably everything is around risk in some different ways. So this criteria could be, I want to focus on large scale migration. So I want to cover different migration patterns or maybe some backend apps, gateways, microservices or databases, but also reducing risk. Maybe I have some legacy apps that I am very concerned that I don't know how much time that will take. Understanding the business value. What is the value for me on my organization to do this migration and also proving this migration by working on a smaller app. So different, what we recommend is really to see different set of apps that cover different criteria. So for example, I can choose a smaller app so I can see value really soon and that app can be from a line of business. So I can show that value into the line of business and the business value. So the other thing that I can do is take one that is very, to the reduced risks, one that has complexity and also cover some of the migration patterns that I can do. So I can do that means I'm much. But how I can do this, so what I want to show you, I will switch over my topology view. Can Ed, can you see my screen? Yep, yeah, we got it. Perfect. So this is our Raiha OpenShift service on AWS or Rosa. It's our four managed OpenShift that is running on AWS. As an administrator, you see all capabilities and as a developer I have here and you can see the topology view. So we have a migration toolkit for application which is something that you can install in a way for operator. An operator is just a component that is coming from Kubernetes that encapsulates all operational knowledge into just one object that is making it easy for you. So I just installed that, it went just to three seconds. And as a developer you will see all these components that were created by this operator. The only thing that I need to do is just click here and go into my application. And here I already have an application inventory and analysis. So the first thing that you can do is an assessment to understand where is that you are. You can either import a file if you have or you can create your own. So you're ready creating my own and I can click here and I can show you how that will look. By basically... Are you able to zoom in just a little bit? Are you able to zoom in just a little bit here? There you go, beautiful. Perfect, thank you. So what you will have here is six different skaterias that it will go in order to assess my application to understand the risk. I will go from applications, details, dependencies, architecture and survivability. So let's review some of this with you. Each area will have around six questions. So it's really quick if you know what is the current status of your application and it will be around your application maturity and everything around it such as the both practices and quality and testing. So in this case, for example, it's asking you how the application is test, how the application is being configured and how security is being managed. After you have done that, what it will show you is the risk that it's found in from your application. This risk will help you understand what is the action that you may want to take. So you may want to choose whether you want to rehearse or replatform and you can estimate the effort as well either small, large or medium as well as defining the business criticality and the world periodicity. So how this will help me. It will help me to start creating that modernization to me where I can understand what is that I am right now and what is what I want to be. So I can organize these applications in terms of efforts and risks and what is my decision. This also will help me to understand what is the pilot that I want to create. So imagine that I have reviewed this and I want to go over my pilot decision. So I can create different tags. These tags are being already populated and are based on their technology but I also can create a new tag that is based for a pilot project. So what I have done is I can go here and I can filter by the tag. And here I can set, I want to select the ones that are for my pilot and here will display the applications that I have selected so I can keep track of whatever I am doing. However, let me clean this. What if I have an application? I have here this legacy application that I don't know much about it. It has been done so many years and I don't have too much context on it. So I might want to go on detail on the source code. So what I can do is actually I can go into the analysis tab here and I can click on analyze and this can analyze your source code, your binary. I can click on max and it will have different paths that I can choose. So I can choose a containerization approach and in my case I choose Quarkus as well because this application will give me better speed and performance resources in order to have my application speed up quickly and this is perfect for containers. Then you just can click on max and that's it. So I already have done that for you. So I will click on here and this is my report. And here what I can see is a dashboard will have all the different things that I may need to change. So it's a good summary for me to understand what is that I am. I can go into the different issues and it will give me not only recommendations but how are the things that I should be implementing. So in my case for somebody who has Springboard libraries that I should remove and it tells me what is that I need to do in order to make it Quarkus implemented. The other thing it will also read on my container a cloud readiness and also it says for example here what about your applications files? How are you writing into this? Maybe you need to request some investigation in the Springboard to start there and many things. So this is a great way for those applications that may require some factor and you want to go deep into detail on what's going on with this. The other thing that is very important is to start thinking about it is we have seen that customers sometimes they have their reference architecture that they want to migrate. The only thing with that that we need to be careful is when those reference architecture requires really months of source code changes you are keeping yourself to taking advantage of the platform, the container platform capabilities. So if you spend just two, three, six months changing source code, you may be holding back in order to move your application maybe finding like a middle ground, right? Maybe doing some smaller factors to start seeing the value of containerization sooner rather than later. And then you complain for a different factor more advanced later on. So this will give you that advantage that you can really understand what is that you are right now and what is that you want to be in terms of your modernization approach. It will give you that analysis of what you can say, well, this actually will take a factor but what if I do a minimal effort or what if I can choose updating the OpenJDK. So whatever it is that you choose you can reflect everything from here and this can be your place when you keep everything. Ed, do you have any comments on that you like so far? Yeah, and the anything I was going to add is Valentino mentioned like refactoring one of the things that we like to do is create like a new help teams get set up with like building a new service or refactoring like a small light service where we can help them build like the refactoring passion and the scaffold. So when they're ready to build a new service a new capability, a new feature and they want to build those a new microservice they've got all the scaffold to hit the ground running. Yes, yes, yes, exactly. Okay, so I will continue with the slides. Yes, so let me go back to this one. Excellent, hey, I'll pick up from here Valentino. So it all starts with getting teams, developers and teams onto the platform. And this is where we've got like our OpenShift on-boarding getting a new project or a namespace creates it ensuring that the teams get access to it having the integrations to like the relevant tools and like enterprise tools that you might be using, right? How should you call it? Vault is a pretty, very, very common one. And then a lot of this is involves can involve multiple teams and multiple approvals. So what we've got here is just like examples of where we've done this at a couple of different customers and it's taken 20 days and we're involved working with like multiple different teams just to get like a new namespace and access to the namespacing be able to start containerizing applications. And if you go to the next slide Valentino once you've got access to the namespace the next step is getting your applications on board. And this is where there's things that you can start putting in place around having playbooks, sample code change or going through your code changes, building your container. And if you keep clicking on through Valentino we should see the rest. Here we go, getting your application on board and then to like your CICD and your testing ensuring that they've got those integrations in place. And the things that as far as like what we put in place and help customers with and we recommend customers have are like a community of practice. So people can go to if they have challenges they can post solutions when they've solved some of the hard problems themselves we work with like a multi-factor like an adoption core team or enabling team to help developer teams get onboarded quickly and help teach them like the best best practices when they're doing this for the first time. And then Valentino went through some of the tooling and automation to help kind of speed up the journey here too. Yeah, maybe I will do the recap later. So let me show you about the developer experience. Of course right now we do have so many products we meet developers wherever they are. But one of the things I want to show you is this beautiful, I really love this one. Let me go into my demo. So what I have here is imagine that you are a developer needs to start building applications, right? And you don't know where to start, right? So after you have done your pro factor if this needed you can come back here and add your project. So you can come back here or you can come into this view. This view will provide you is a really nice way to pull your application into the cluster and run it as a container image as easily as it is. So if you already have your container image you can embed it if you have a homework repository or any service. You may already have a YAML file or a JAR file. We take it. So in this case I will just show you how it will work with a sample application. Just taking your source code with that we can create everything. So you can create different types of deployments. I have a serverless operator as well already set up so it can be converted into a serverless. I have my OpenShift pipelines installed. So this will be converted into a pipelines automatically automatically and also it will create the route and everything for you. So I already did this. I will go straight into my pipeline and as you can see here I have my pipeline running and succeeded. So I did this just with a click of a button. I didn't need it to understand anything in detail like how to create a YAML file how this will work internally. Just with a click of a button I have CI CD. I have my container image created and running on a cluster which is fantastic. But also if I am interested and have these YAML files or make some changes I can go straight into this which is fantastic. So everything through my topology view. The other thing I want to show you I know we have a couple of minutes. What if I want to connect with a cloud services? So I wanted to talk about that. So here what I have is a set of microservices already connected and running on my cluster. I have a beautiful application that is all about fighting superheroes. And this application is connecting to my Atlas database that is on the cloud. So I have here my application. And what I want to show you is that all that my Atlas resources that is running on a short cluster on AWS is managed through my OpenShift cluster. So as a developer I do have the availability to go here and create and organize my database. So I can create a project to have all my components managed to my database. I can choose whatever the type of deployment that I want to create from serverless to multi-cloud to multi-region. In this case I choose the, if you want to try it I choose the M0 which is just a free cost just for learning purposes running on AWS in each region. And I just need to create my user that will be the one connected into my application. So with that I will just give access to my application but how this will work let me show you in a second. So I have my deployment file which is the file that is describing how my application will run in Kubernetes in this case in OpenShift. And the only thing I needed is to provide my Quarkus environment variable that will be specifying how my application connects to a connection stream. So this is given by a secret that is magically auto-generated by the operator. And that's it. That's the only thing I needed to do. So I will show you quickly how this will work. I have amazing fighters here, super curious with Billions. I am fighting them. As you can see all of these entry data is coming from my database. So I will show you quickly here that this data is being populated here and it's at the end working. So as a developer the only thing I need to be worried is really just adding that variable connecting with a secret. That's it. So I am connected my application that is running an OpenShift with my Atlas that is running on the cloud. Then I will, I know we are almost done. So Ed, do you want to go over the key? Yeah, we've got the slides here. We're pretty much up on time. I posted the link for where folks can get started with the developer sandbox. If you have questions like Valentina and our contact info are in here. We've got a bunch of key resources that will make sure you get the slides and you can go through and start doing these yourselves. And thanks so much for joining us. Thank you. Oh, Bangor, if you're talking, you're muted too. Sorry about that. So thanks to Valentina and Ed. That was really good and illuminating. Thanks for showing us the next steps. Unfortunately, we don't have time for Q&A right now but I know some people posted some questions. They've been collected. And when we post the materials your guests' answers there. Also, just a reminder, sessions and all the recordings are uploaded to the YouTube page. And so next up is supersonic model serving using DGL and Quarkus. Thanks for joining and we'll see you soon. Thank you. Thank you so much.