 My name is Daniel. Oh, you know, I've been working for almost six years at redhead in a solution architect and technical marketing manager and developer advocate So I'm also responsible C&Spam ambassador. You can find my old profile and expertise and my some The technology stuff you can find my Twitter and you can find my gilipo and also I Recommend subscribe my YouTube channel. I push a lot of technical demo video and Technical tutorial as well Okay, so here's a full challenges for spring developer Could be faced every single day, but typically container technology plus Kubernetes technology. So first of all For spring developer when they needed to adopt a new application architecture or a platform or a business Requirement they need to Made a decision which architecture which platform which component Should be considered at a very beginning at the very beginning time For example, we need to develop a sub list application We need to design reactivity application We need to more scalable flexible application to deploy Kubernetes cluster and it should be scale more than thousands of a thousand container pause at the same time. So this is all depend the different requirement expectation sometimes Bother your spring architecture or application development. So so spring Fundamentally has allows developer less control of flexibility and also for spring developers specifically the beginner or even middle of experience of spring developer. So they have to long Every single detail the spring ecosystem specifically your spring application can be Running on multiple cloud or a Kubernetes cluster, which means you have to figure it out which e-component or which Ecosystems should be Integrated your spring application. For example, spring cloud or security or integration with another spring ecosystem components. So this is a really big burden for spring developer because they need to catch up this trend and technology every single day and another thing is the developer experience So spring is really comfortable to develop every single day on your local machine, but we have to I mean spring developer have to Consider the remote container environment because the container environment is not an option It's a default runtime and infrastructure layer to run your spring application for addressing your business requirements But in order to deploy your application to container platforms such as open-shift or Kubernetes You maybe have CI CD pipeline or GitOps or something like Argo City, but This not exactly the same capability you can have in your local environment. So So that's why spring developer looking forward to adapting some kind of Some kind of tool for increase inner loop development Capabilities such as the build deploy and testing and also keep writing your code Though another the challenge it from native Comparation, so this is a still early in major technology. Some of people think about it So maybe compilations make your job application as executable by just like a goal and then you can run that application without JVM just running on substraint Vm just just part of a component of a gravity M. So What is the benefit of a nearly comparison with the Java application? It allows you have a super fast and a small memory footprint So just think about it you have a single Microsoft's application based on Java technology and then you needed to deploy that application on Your Kubernetes cluster, but that application should be scale out Maybe a thousand parts or two hundred a part and then some application takes up five minutes to scale up, but native comparison maybe Reduce the amount of time to scale out. Maybe just Five a second or ten second make that happen the same scalability. So this is a whole full Challeng face the developer specifically spring developer So we need to something different to overcome this challenge for developers So today this workshop is actually designed for hands-on experience But we have only four remaining today So I just give you some workshop environment. So you don't need to install any software or any Some command line tool, but you just need to web browser to go through every single lab But this workshop designed for three hours Don't worry about that. You don't need to finish the old labs today Just for 40 minutes, but you just try to understand each labs in terms of the goal and why corkers Why corkers? Try to help out the spring developer to develop the same Microsoft's application, but also how corkers Overcome that for challenges, but you could still have a same capability just like you develop spring application We're going to use the one of a popular comma spring with application called out pet clinic application and we convert that Quarkus application for example The presentation layer and control layer departure layer in the end. You once again, swangled Monetary spring with the application once you already Convert to quarkus, but you once again Swangled the spring with the application to parkers. So let's try to Drill down a little bit detail. I'm not going to steal lots of time from yours But just quick through What which lab? I mean the each labs What do you learn from the each lab here the first step you you will understand What spring pet clinic application and which component is Which components are implement on spring pet clinic application for example spring embassy pattern and the spring data spring di in the data multiple spring components already used To develop and implement your spring pet clinic application. This is the general embassy application present What you are in the back end sublet application In the second lab, you're going to go through and you're going to actually get started Refactor it is a spring application to parkers For presentation layers. So for example Supreme embassy implement based on Presentation layers such as html and a stylus sheet and javascript, but also timely to Make a more the decent UI and the spring and the quarkus actually Can address the same capability and feature based on the quarkus tamper engine They're also known as q the quarkus across tamper is the kind of acronym So quarkus tamper engine designed to specifically Represent your presentation layer and the one of the beauty of the quarkus tamper engine you can Have a lab coding capability whenever you change code. You don't need it to Recompile and rebuild redeploy and rerun your quarkus application is automatically done by quarkus engine You don't need to care about that it's in the end This capability increase developers productivity because you can do that in the same application implementation with 50% less time and Does the lab 3 is more about the dependency injection to spring actually provide the di capability and quarkus also provide the context and the dependency injection feature by default So you can learn how to convert spring di to springs quarkus cdi And then left four is more about uh data transaction. So spring data jpa based on And allows the developer to communicate your data storage like a database to retrieve data and create data And also insert update, etc. Just like we can call out the quad Functionality and then quarkus Give some same function. It's more than that based on hybron in the world mapping and with the panacea. So We do panacea The developer doesn't worry about Creating the gala setter in a pose of java classic and also you can automatically have The world mapping based on the panacea component and quarkus extensions The next lab Uh, now you just done the finish it to Converting from spring embassy application to quarkus and now you need to think about what is the Another way to optimize or make it better this application Uh filling in the your kubanese cluster So we're going to use your open ship the full cluster today And then before you deploy this application to a function We're going to uh slice down this application. Just like a stronger pattern As you can see, we have one single application. We make the breakdown multiple application along with your business domain such as the a bad business customer service also from an application each back end application has own The database store like a post school here The last lab, uh, you're going to Uh add more of the kubanese native application capability for example or microsoft's application Uh needed to adopt the non-functional capability such as the substrate discovery resiliency and load balancing or Has to check or externalize your configuration This all kinds of not business functionality, but also but you have to Consider when you implement and develop your microsoft's application for deploying on kubanese cluster for destroying microsoft's application architecture So the quarkus allows java developer to add this non-functional microsoft's capability easily simply based on quarkus extension So let's uh get your hands dirty so Here is the uh, how to access your workshop environment today So everything is already uh deployed and provisioned and you don't need to Install any command line or soft air. So you just need to web browser So the chrome browser of ioprox would be better Rather than the safari or in an explorer and I strongly recommend you to raise the chrome version and then Please turn on your bpn or adbrawl because we're going to use a web socket So if you prohibit the web socket protocol, please turn it off during the workshop And if you have any question around this workshop or quarkus or related technology Related to clown every application development, please don't hesitate and put on the your question in the q&a box I'm more than happy address And Next 25 minutes Okay, so here's a short link To access to our the workshop environment the binny url Binny url slash dev comp cz in 2021 that she quarkus that's lab I'm going to go Get back to this page, but let's try to move on next slide. So when you access this binny url, you can see uh account access the assignment page you need to Input your any your prefer email address We're not going to store your email address. It's kind of uh Pricy problem. So so we just delete all your email address after this workshop So print any your prefer email address in a password. I'm going to show you just a little bit later once you uh assign the Print your email address and then your password is the opposite and you will find out Your assigned username for example using one or use a 10 or use a 25 in a password Openshift and then when you click on the module quarkus for spring developer, you will find out the actual lab instruction So once again, though our magic password is all lowercase open shift so Here's a more Use case and demos around the quarkus application. So for example, uh Just i'm strongly recommending you go to my youtube channel If you are a then you're on tv and you can find a ton of the video around the quarkus application demo But also more crown ever application development for example here When you this is a one of the use cases how to Develop serverless a function application based on quarkus and then you can deploy that serverless function to a container platform That should that just use for component application and this application communicate with the backhand Distribute data grid based on the redhead that I will build on Infinii span So once you are from the application have the tons of the natural trappy The function will be scaled out. I mean just comes up Just in a second and then Try to pass down your natural trappy the backhand application like a data grid And then you will see the data grid will be over scaled out Maybe 10 part automatically depends on on demand natural trappy in the end. There's no more trappy Happened and then you were backhand application scaled down to a default replication So she added two or one and then you are thrown in the application based on serverless application will be scaled down to zero Automatically, this is a really good use case how to implement and deploy serverless application plus data grid for just with caching application So i'm going to start my project mode and then just go back to here. So once you go to Assign your own username you can find that Here the actual lab environment as you can see you just need to go through all lab instruction this lab instruction Just like the seventh step and then it should be takes more than three hours. But don't worry about that. I'm gonna keep arriving this workshop environment end of this day. So after this Workshop you can keep going through this workshop environment just end of day And then when you open your id tool, you're going to use a core radio space It's based on equally to check the web id tool And then you can find that there are multiple projects and your labs are your explorer and then please make sure to Develop or change your Java application code in the right project for example the quarkus deshpec cleaning project here Just spring deshpec cleaning project and i'm going to go back to My slice deck and then i'm going to copy this url i'm going to put in the chat as well and I'm going to stop sharing and take a look at the cleaning and it's your time get starting With your hands on experience. Okay, i'm going to so here is the binny url binny Quarkus deshpec workshop deshpec m3 this is the 24-7 available Uh, the lab instructions i made this one this lab instruction Will be available anytime anywhere. So sometimes you don't need to go through The hands on experience, but you want to understand The goal and what contains have itchy lab for example Just go through the spring di to quarkus adi because you have a lot of experience how to implement The spring di but you're just curious about how quarkus the cdi cover up the spring di And then you don't need to uh, you don't have enough time to go through about your Don't enhance. So here is the way Just go to this url and take a look at the old content to understand How to implement and spring side and how to implement in the quarkus side And then okay, so this could be better. I mean So the url the line of code pretty much less than spring I mean quarkus side and also how to implement what kind of annotation we have to use To implement same features same functionality. For example Here is the cdi injection as you can see The spring side you have to use like a component annotation or all the wire annotation to Have the dependence injection but quarkus side you just needed to use the injection the inject annotation as you can see here So this is just something different syntax, but this is not a big deal I'm pretty sure because it's just simple syntax change So one another good tip of the spring to quarkus stuff So some people ask me is there a new way To migrate ect spring to quarkus to address the full challenges or even We need to some never comparison because spring Has a plan to support the spring native end of this year Maybe around october or september time period So we don't need enough time to wait for that announcement. That's why we more focused on quarkus and then We got some new pilot project to migrate spring to quarkus. And this is this only way migrate more is there any some easier way or some Comparable way. Yes. The answer is yes so The redhead provider migration toolkit also known as mta migration toolkit for application provide some of the quarkus Lose which means you just Unload your spring with the application like a job file or explore the old file And then you could just analyze your application and it will show How to migrate and also quarkus to provide Supreme compatibility. Let me share once again real quick So when you go to quarkus.io, this is the Our official page of quarkus and then you can find the race project here and you go to guide And the click on Comparability this all about the supreme api but not we not we not gonna address all the spring ecosystem, but also spring All apis but we just focus on the common popular spring api for example spring di spring web and spring data and spring security spring cache et cetera This all api means you just keep using same spring api We don't know code change because the quarkus wrap up your spring api and running on quarkus run time But this you still have live coding capability, but also you could Never cooperation capability with the spring application but Today in this workshop, we not going to use this spring compatibility api the reason why We sometimes your spring with the application have a specific api or specific feature which the quarkus Does not support with these capabilities. So So I can show you This is maybe better way in the end because there are lots of spring features supreme Component you already are using So this is the how to refactor your easy spring boot to quarkus. Maybe brand new thing So maybe but you could still start with the the migration toolkit because of migration the migration toolkit basically uses this spring compatibility api on quarkus migration So this is maybe two ways for you When you adopt the spring to quarkus migration pass or refactoring pass the first one Try to use a spring compatible api on quarkus, which he Makes you Not so much not so many change your spring with the application But second way you need to rewrite all the application, but that's not a Big deal, I guess and I'm pretty sure because you already understand The java state the standard java specification and implementation way So you just spend maybe just two days or three days to understand How quarkus implement the microsoft's application based on java specification So we already have a great success story already migrated from spring to quarkus and they just spend maybe Five days or three days to catch up all quarkus features and capability if you go to Quarkus The user success story. Let me show you quickly quarkus So here is all you can find that the user story for example Which customer already adopted quarkus and the production environment and some of the customer already migrated from spring to quarkus Or just develop a brand new application based on quarkus you can find all that I'm going to copy and upload the chat You might interesting here Stop sharing And then go back to chat window and Here we go