 All right, so we have about 45 minutes right now. Is that right? We can keep you guys all night long. No, so what we're gonna do tonight was we're gonna talk about Jakarta EE and tell you kind of what's going on there and there's gonna be a lot of history lessons along the way to talk about where we came from and where we're going and where We are and just to give you a perspective of what's going on and if works out Well commission's gonna try to run a demo, but he's never run on my computer before because his computer is running out of battery And we lost his power supply So it was kind of like when we tried to catch a cab earlier tonight, right? He didn't have data, but his credit cards would work. I have data, but my credit cards won't work in Singapore And Clamont he's he's from France and it just didn't work at all So we had the American the Indian and the Frenchman we couldn't get a cab What's to save our lives? It was actually kind of interesting. So what we used to have uber in this town just one year ago What happened? This is kind of Yeah, so the grab app didn't work for us. So let's go and dive into this content I think we're gonna have some fun this evening talk about some interesting things tomorrow morning when we actually do the key Kickoff keynote you're gonna see a demonstration around microservices and serverless architecture coming together to build a holistic application We actually have an interactive game. We'll play with you guys if all goes well It's actually a fairly complicated demonstration You'll see from us in the morning and then tomorrow afternoon We're gonna do a serverless talk right to talk about function as a service and how to run that on a Kubernetes backbone And then on Saturday, we have a workshop that we're gonna be doing Related to Istio and service mesh technology, which is super interesting also So these are all kinds of topics we've been talking about for the last several days with different customers in town And we'll be talking about at Vox days tomorrow and Saturday, but let's go and dive in here This is my name is Burr Sutter This is Kamesh Sampath you can get our connection information there And actually the URL to this slide deck is right down here if you want it So bitly future Java Enterprise that'll get you access to the slide deck and access to everything else So here to talk about Jakarta E and this is the new logo for Jakarta E So just keep that in mind. We'll talk more about that later We represent Red Hat developer at developers.redhat.com So that's the group that sponsors us within Red Hat to fly around the globe and talk to developers all over the place I have a long history with Java user groups in North America I was the Atlanta Java user group president for many years gave birth to a conference there called Dev Nexus Which is now like a multi-thousand developer conference there So I'm always excited to go out and talk to Java user groups all around the globe That is certainly the kind of community I wish to belong to and love actually participating in So it's you guys have done a phenomenal job building up the local Java user group here and sponsoring your own Vox days That's a huge accomplishment for your local community So I fundamentally believe in that and so when I was preparing for this presentation I went back to 2003 presentation. I gave for the Atlanta Java user group 2003 So I said there's a lot of history stuff in here and you're gonna see a lot of this kind of thing and this is a presentation I gave Well, I talked about and you have to keep mine. This is a long time ago You know, so we had J2ME back then, right? There was no smartphone back then This is long before the iPhone occurred, right? So we had J2ME and WAP. Anybody remember WAP? Okay, but we had we had dumb browsers. We didn't have Ajax at this point You know, but we actually could interface with email. We can interface with browsers We can interface with workstations where that be swing or dot net windform applications I used to do a lot of spreadsheet integration with back in Java applications or spreadsheets And certainly we had a lot of business partners business to business transactions and through the firewall And then you had on the right-hand side of this all your different data sources where that be a relational database There was no such thing as no sequel back then. Okay, this is 15 years ago XML was a king at that point and EDI style transactions were very popular You might actually integrate with an AS 400 or OS 390 as an example, maybe you had integrated people soft anybody remember those people soft folks I speak into a room full of youngsters. I know you're like what people soft SAP. They're all dead, right? But what's really funny is these tiers of the architecture have not changed We're still primarily as developers connecting front-ends to back-ends at the end of the day Almost 90% of what we do it seems like when we're writing code is building some interface or there'll be a user interface or an API Connected to some set of data what we do in the middle has gotten very creative over the years But otherwise this is the same thing. Would you guys agree with that? We kind of pretty much just do the same thing for the last 20 years or so I know I've been doing it for the last 30 years. Let's put it in perspective the same thing We just do it differently. So we might have done it with servlets and JSP. We might have done it with struts We might have done it with XML parsing back in the day. We certainly had EJBs back in 2003 We are also at that very moment exploring pojos for the first time playing old Java objects You notice there's no spring here because spring didn't exist in 2003 Okay, Rod Johnson's book EJB J2E without EJB came out in 2004. There was no spring, right? So we didn't have that at this point And you can kind of see over here. We had entity beans. We didn't have JPA. We had this weird thing called JDO at the time also So just to kind of give you a perspective. This is when Java EE was king Okay, specifically J2E is what it was called at this point in time And we had to buy all our software from expensive software vendors We had to get an application server from the folks at BEA and it might have been $80,000 to get that set up As a matter of fact, I did the pricing back in this era the pricing to set up a hello world website with Java EE Was half a million dollars To buy the hardware to buy the database to buy the app server semantic cafe Your IDE was $30,000 for your team So you know it was expensive back then and so I just want to put that in perspective And this is kind of where the original roots of J2E came from. This is what an architecture looked like This is we use this presentation what we called our guru night at the Atlanta Java user group We had the best architects in the city come speak to each other about all their best practices and tools and techniques It was a really great presentation And I also copied this in at this point, too These were the open source tools we had just told the world about in 2003 Right ant no maven J unit right no in unit or whatever struts struts was king of the universe at this moment in time If you guys remember that And jboss had been born and jboss was in Atlanta So we were talking about jboss and tomcat and we were telling people you don't have to pay $80,000 for an app server anymore You don't have to pay a hundred plus thousand dollars for a portal server anymore Right you could do it on this so hopefully that gives you a little perspective And this is what it looks like from a j2e standpoint, right? So j2e 1.2 comes born about 2000 And j2e 1.4 Born at about 2004 Okay, and notice that the brand changed here at 2004. This is important I just spent uh all day with someone recently And hopefully not in this room at this moment and all they said was j2e this and j2e that and I said You know we changed that brand 15 years ago 15 It went to j2e the javi 15 years ago Okay, but this kind of gives you a little perspective of what's happening here You can see the original players like t max soft Unfortunately, we don't have some of the good players on here like um back then macromedia was a player in the app server business If you remember borland was a player in the app server business You know what happened to all these folks And this is what j2e looked like, you know, especially j2e to javi We it started off as fairly short intervals like 19 months 21 months, and then it got fairly long towards the end So javi 8 was 15 52 months long So the process is getting longer for two reasons one It's you know designed by committee and working across multiple vendors or some issue there But also it's just the fact that it was a mature specification So you don't you don't constantly churn sequel as a specification You don't constantly churn hdp as a specification as a matter of fact we live with hdp 1.1 For a really long time and most people don't even know there's an hdp 2 yet There is by the way, it's been out for a few years now, but no one even knows You know as an example So standards do kind of evolve slowly when they're important standards that run a significant amount of the world's transactions tcp sequel hdp j2e right or javi at this point um Kind of go here. I want to give you the short history of microservices again a lot of history here to give some perspective In 1999 when things cost half a million dollars to do hello world We wanted to find ways to improve the productivity of development teams And so a group got together and created this thing called you know continuous integration in the context of xp extreme programming We had the agile manifesto those folks went away that you know and basically sat on the mountaintop and came up with the agile manifesto And they did that in february 2001 and then you notice ec2 was born in 2006 the cloud was born in 2006 It's 2018 now so 12 years ago the cloud was born We also started talking about dev ops in 2009 We start we had javi 6 in 2009 to kind of give perspective there So that was when we added things like dependency injection that we saw in the spring universe back into the specification through cdi as an example Uh, then netflix moves to amazon in 2010. This is a notable moment This is when a person a team with a rather large workload said we're going all in on cloud We're we're selling our data centers getting rid of them and going to the cloud and doing cloud native architecture Drop wizard was the first fat jar architecture to show us microservices before there was to turn microservices for java developers So job drop wizard, which is still fairly popular in england. I don't know if it's very popular here in sing anyone using drop wizard here in singapore You know so like in england it's all over the place But you don't find it around the world But it was the first, you know, uh fat jar architecture of significance Then you had ribbon being open sourced by the netflix team Historic and eureka all in 2012 So the stuff that we're super excited about now microservices architecture 2012 was when it came out So we have to keep that in mind, you know, these things have happened a long time ago microservices was first identified by the thoughtworks radar in 2012 Docker was born in 2013 spring boot born in 2013 Uh microservices officially defined in 2014 and probably a very notable seminal moment was kubernetes born in 2014 So you can see that these things started aligning and the world starts changing for us fairly dramatically at this point in time Okay, so this actually caused a significant disruption to the way we write software completely, right? It wasn't just j2e or jave being disrupted. It was everything being disrupted We were going from traditional monolithic software that deployed every six to nine months Most of you here probably deploy every three months and you probably you're like clockwork every three months. We deploy every six months We deploy To this world of we want to deploy every day Well, how do you do that? It's a fundamentally different world Okay, so let's kind of keep going here Also in 2017 I was here a year ago talking about kubernetes and verdex if you guys came to this session last year I was doing a verdex presentation with ezin yinaga clemont here just to talk about verdex this uh tomorrow He's our verdex expert and we talked a lot about kubernetes And in 2017 all the original people who are like we don't like kubernetes have now adopted kubernetes and then includes amazon Okay, so everybody now loves kubernetes and it's the de facto standard for cloud native software With the cloud native computing foundation to move your application workload from maybe an on-premise cloud To an amazon to an azure to an ibm to an oracle to whatever cloud you want and back again It is the standard for building applications in a cloud native way now So just keep that in mind where everybody's super excited about kubernetes This is what the kubernetes ecosystem now looks like it has exploded in the last several years What used to be a single google project where they called up red hat and said hey We're going to do this thing. We're going to open source google you red hat people want in we said yes And then if you see in the presentation back in those early days they basically said well google we run 2 billion containers a week We know how to run containers at scale. We've been doing it for a decade And so we jumped in on that project We're still the second largest contributor to kubernetes outside of google themselves And we're still very much committed to putting everything in the upstream at the cloud native computing foundation the cncf And so you can see a lot is happening in this space Okay, as you know, you can't even read this chart anymore. It's got so much going on And uh, so just keep that in mind In 2016 we made a very special announcement at dev nation 2016. We had these folks on the stage This is a fellow from ibm. This is a fellow from the london java user group community This is mark a little from our team who is from red hat and we announced this thing called micro profile So we red hat ibm payara tommy tribe got together and said, you know what the javi specification is just not moving fast enough Let's start our own standard And that's what we did. We gave birth to a standard called micro profile Separate from the javi community at that point separate from oracle And then we gave you know birth to this thing called micro profile and we started moving along We actually started with a 1.0 in 2016 with these three specifications cdi for dependency injection Json p for json processing and jacks rs for a restful endpoint If you think of a microservice an average microservice is kind of just a rest endpoint or a series of rest endpoints And it goes deployed in your war file like if you're into thin wars deployed in your war file Or if you're into fat jars deploying your fat jar Right and there was multiple implementations of this in the market at that time. So payara tommy tribe ibm and red hat okay We then moved the specification from a default entity just running a micro micro profile io to the eclipse foundation Notice it took a year to do that It takes time to move your content to a new governing body with all the ip associated with it It just takes time It takes time to negotiate with the different parties and takes time to negotiate with the eclipse foundation in this case So we moved it over there in 2017. We started adding more capability to it like a config specification Then in october 2017, you can see it's starting to move faster now Right, we had a method metrics health check json web token fault tolerance And then in january 2018 you can see we've updated several specifications and added open tracing to it So if you're looking at just discreet micro services often based on a rest endpoint But json payloads going back and forth You know in a fat jar architecture now, there's a standard coming out of the micro profile community all within eclipse So this happened in january 2018 Now we there's another spec on 2.0. We're this is roadmap item. So this is what we're working on adding json b as an example Okay, and these are the supporters of micro profile at this point Again, the original ones were the payara time. We tried ibm and red hat along with the london java user group and the brazilian java user group Several java communities also joined us for this effort But you now see light ban oracle microsoft Microsoft joining these things kind of interesting isn't it the world has changed if you guys remember, you know linux's cancer microsoft This is a different world. We're living in now, right? They love java. They really embrace java now as an organization And you can see this note from david Delabasi from august 2017 about the need to open up java e and open sourcing it So this was an announcement and then negotiations happened on the backside to basically say where can they open source this technology? Uh, and it came to the eclipse foundation as ee4j So it should be kept in mind these were parallel efforts micro profile just working on their own And then moving to the eclipse foundation and then oracle deciding You know what this thing needs to be open sourced so it can move along at the proper rate It needs to and oracle then looking to donate their assets to an open source project In which case eclipse foundation became the owner of that So this happened as e4j And then we started doing some things like we need a name because java is still owned by oracle The word java right they still have java se what we think of the java programming language So there had to be a non java e So there was a vote that was held enterprise profile There were several mini mini options put forth most of which did not pass legal muster Because the weird thing that's hard in software engineering right is how to name your project Do you have you guys felt that pain before and if you ever try to pass a name by a legal team? It can be very painful Okay, they will tell you no to everything So enterprise profile was one the finalist but jacarta e actually won jacarta being the largest city on the island of java Not too far away from here as an example So I don't know if they did a big party there or not. I haven't heard of one But that was jacarta e was the name that won and then the crowd sourced the logo as well All right, so in the case of the logo the community basically decided not only on the name but also what the logo should be This logo actually came from one of idre designers who's been part of the j boss design team for 15 years now, I think He designs all the different logos often within the redhat universe and within the j boss universe and designed this one too They put it out for public vote and at one So now we have a name. We have a place to put it We have a logo and you can kind of see we have a bunch of sponsors including Some folks have been added not too long ago like sap pivotal web tide light band microsoft We mentioned earlier a vaadin. There's a number of people that are part of the overall jacarta e community now Okay, and supporting that standard and of course there's groups that are being starting to meet And talk about where they want to go from a roadmap standpoint So here's actually an important element of what's going on inside that specification If you think of all the apis that are part of java e and this is an important point You can see many of them have hit the 80 mark and you can read what david wrote about that We're getting closer 80 mark means the initial contribution is pushed to an eclipse get repo Okay, so this is the apis themselves the tck's will come a little bit later But it is moving the all that stuff that was housed within oracle land is now moving to the eclipse foundation This means it's going to be open open to all of you both your contributions at the code level or just your thoughts and energies around the apis themselves You can now participate when you used to be behind You know the jcp process right it's now going to be much more open and the eclipse communities starting to understand how they want that How they want that to unfold There was also an important survey that was conducted just a little while ago in march to march time frame 18 1855 people responded to it And so these were developers people obviously care about java e and and total and I thought this is very notable The top three things people felt were critical was better support for microservices Maybe they can borrow some ideas from the micro profile team considering they're the same team as an example Native integration with kubernetes. That's why I brought up that kubernetes point earlier kubernetes is now the defective standard for cloud native apps So maybe we need to find better ways to integrate kubernetes And I'll give you one certain example I was talking to some of the engineers on the ibm side who are working on The micro profile capability now and what they're going to do is look to integrate istio circuit breakers Into the language. So I don't know if you guys have seen istio the service mesh technology They're basically can sit on top of like a kubernetes. We'll do the workshop on saturday on istio But it means you don't have to put circuit breakers fault tolerance Look up load balancing, you know discovery. You don't have to put that in your code anymore You don't have to have all those spring cloud annotations anymore, right? You basically put them back in the infrastructure where they belong leaving your business logic clean as an example And so istio is that technology? It's a sidecar technology service mesh technology And so can we find clever ways to integrate with the events coming out of istio back into the code itself to call? Let's say a fallback method when the circuit breaks at the istio level without adding the circuit breaker into the java code as an example Uh, and then of course just the overall pastor faster pace of innovation You know, we also asked What are you guys looking for on my microservices standpoint jersey spring eclipse my micro profile? No jas and kubernetes, and I thought that was kind of funny, right? kubernetes is a little different than the rest but look at no jas on that list Isn't that interesting? And I can tell you I I got to speak to you know thousands of developers mostly within the red hat ecosystem And we talked to lots of red hat customers They're interested in no jas also So no jas is an up and comer in this overall world inside the java ecosystem And so can we how can we find some interesting ways to integrate with a no jas solution as an example? You know there could be some very interesting things there and then The other one that I thought was interesting Is when I go and talk to audiences like a java user group or vox days or dev ox or dev nexus Typically when we deal with a group of people at the user group community You folks are the elite of the elite So I want you to think about that for a second. There's approximately 10 million professional developers doing you know They're getting paid to do software development on this planet supporting 7 billion human users, right? Everyone has a mobile app at this point, you know and some back in api that supports it So the ratio is already really bad You know the number of real digital creators to the digital population that needs our creations But then if you think of the people who show up at our java user groups and our conferences We're dealing with maybe 30 000 people worldwide of the 10 million So you guys are you know forget the one percenters you guys are the you know 100th of our percenters You are the elite of the elite in the java ecosystem So you should be pretty proud of yourselves and i'm not i'm not making fun of this. This is serious, right? You truly are the most ambitious Dedicated and diligent professional programmers on the planet just by showing up for your user group and showing up for your conference I feel that's a very incredible important point But in that group This group here These people said 67 of what we're trying to do is moving to microservices We're going to start moving to microservices 60 percent of us 67 of us within the next year When I go out and talk to user groups, it's greater than 70 percent at least That are trying to move to microservices now when you actually drill down on that Most people don't know the proper definition of microservices. We're not going to go into that tonight But that's often a problematic area where people are like, oh, yeah, i'm doing microservices. What are you doing? Why are you spring boot for this? No, that's not exactly right. Okay. Well, I use tomcat over here. No, that's still not quite right You know, you know, they're not they're just building a monolith a different way in most cases But that's fine. You know, you're building a cooler sexier faster monolith. That's still awesome for your organization Okay, but a lot of everyone is looking at microservices of fundamental new architecture Okay, and let's see here. Rome's done We have our micro profile implementation is called wall fly swarm at this moment at this moment But we have a brand new name. We're going to rename it because naming is hard Okay, and you might have thought when you saw has anyone even heard of wall fly swarm All right, you can keep your hand up. It's okay. We're proud of you, man So, um, you know, so if you guys are looking at microservices architecture, how many people who are looking at no jas as an example Nobody and just one. Okay. It's okay. No, it's cool. All right. I like node also Uh, anyone using vertx looking at vertx technology because you're sitting by kamat. Is that why All right, because kamat made you say that another gentleman in the back there anyone and we said no one was on drop wizard Anyone using like the uh, micro framework or any of the other there's a there's about 5 000 microservices frameworks any one of It's kind of like the mbc wars or ajax, you know Web wars and then how many people are looking at spring boot as their solution for micro microservices? Okay Not you guys you can raise your hand. It's okay. Normally. It's more people than that that are doing spring boot So wall fly swarm is an implementation of fat jar implementation based on micro profile using javae standards We'll show you some of the code in a second commercial do that demo But the name wild fly swarm was actually problematic because swarm is also used in the docker community for their competitor to kubernetes Okay, it's docker swarm So that was problematic and wild fly which comes from our existing app server The old javos app server is renamed wild fly It's seen as a traditional javi app server and we want to kind of change the game here So we renamed it thorn tail. So just keep that in mind and now it's time for demo So kamesh has never used my computer before we're going to see if we can actually run the demo and show you the code If not, we'll see what we can make work here You want the microphone? No, yeah, that's good I'll leave him to drink some water. So he's been speaking since morning. So all right, so So before we go there, I think before I get onto the demo, I just want to show you a couple of things which we Mention as top critical things, right? So when we mentioned that we want Better support of microservices and then native integration with kubernetes So what does what does it mean? Like so, how do I deploy my we are talking about microservices micro profile Wildfire swarm and all these stuff. So we want to say how do we deploy into kubernetes? That's that makes things more interesting to you So that's what I'm going to show you Before I get onto here. So it's it's quite usual. I think people would have Seen this. I'm sorry about that. I'm using burst machine. So I might be a bit slow. So So, uh, so this is a wildfire swarm site, uh, if you can Not sure if people can see there Okay, so it's just Wildfire swarm. I just need to get this out So if people want to go from where I want to pick this up, uh, this is quite analogous to common microservices framework So you can go to wildfire.swarm.io. I think soon you should see thontail.io soon Uh, so we have a generator link here So which can give you a zip or template of the project like you have used in any other Frame like springboard or anything so you can just choose this But the only difference is that it gives you all the micro bombing Profiles that is there available for you to download for example In this case, I'm just going to create a project called this demo and then I'm just going to use micro profile Uh, so micro profile uses combination as burst shown in the first version. It's a cdi and it has If I'm not wrong, I just get Jack Serres and jsonp I think these are three things which comes from the micro profile together Instead of you adding multiple dependencies together just going to have one dependency Which is going to get you all the stuff which is part of that So I'm going to go ahead and then say, um I just generate project so I should technically get a zip Uh, downloaded. Um, I just get it All right, I got a zip here. So what I'm going to do is like I'm just going to go to my cli Before that I want to show you so I uh, we have uh the kubernetes. We're talking about enterprise right now So I just want to show you The open shift here. So open shift is nothing but enterprise kubernetes. That's from red hat So we ship all the enterprise related features into kubernetes and then give it for the enterprise to take and work on it So what I'm going to do is like today I'm going to deploy, uh, the microservices on to open shift Which means that it aligns with jakata ee with an enterprise kubernetes for you, right? So, um So what I'm going to do now is just go down. Um, and then I say unzip With burst, but I'm just making a temp directory here so that you can knock it off Yeah Yeah, so, um Demo space one tip I go to the finder and then I can rename this back. Uh, sorry. Uh, yeah There we go That's going to see Okay Okay So if we go to this, uh, demo folder here, I'm just going to say open that up and we shall see the code for you So So no big deal. So if we have seen the, uh the stuff so You could see a bomb, uh I'm not sure guys is visible there. You want me to blow it up Okay, uh, so you see you should see a wildfire bomb, uh, which has all the dependencies that you want there And then as I said that I'm just going to add only one the api for compilation and then I have micro profile, uh added to this So Having this I'm going to get jacksrs and all other stuff that's going to get into my application including cdi So let's go and quickly see the class That's going to be there. It's not a big It's pretty complicated. So might take time for you to understand this so, um So just in a helloable application, um, it's just interesting point So what I'm going to need to do is like I just need to go and add, um an application class to make sure that it gets deployed as a jar So I'm going to copy paste the package from here in fact Let's go to this Hello world application I'm going to say application That's going to be slash and then As a constrictor, right? I think, uh, I'll just say this as application dot java So still the The plug-in is downloading its dependencies here. So let's give some time for that So while this happens, I'm just going to add a Docker file I'm going to check right. We had the other one Okay I'm just going to copy the docker file from some metal. So it's all the same. So we're just Going to put this up and then I don't need all these guys So I don't need this So this is going to build me a demo swarm jar on the target and this I'm just going to deploy this back here So It's still loading So I'm just going to do me and clean package I know this will fail. Yeah, this is the uh jacksrscore application. So I'm just saying this application path And then I should say the root path of my rest apis At least I'm not going to do other stuff. I'm just going to say this and then we have one this point I'm just going to do a clean package now okay, so In the target you should see a couple of files one as the um The war the traditional war file which you can take and deploy it on any of the ep servers And then if you want to do the the traditional microservice java dash jar kind of a way Then you should see something called as demo swarm dot jar So that's the jar which kind of has all the dependencies and builds you the uber jar for you to go and deploy that Right. So, uh, let's quickly run from the cli to see how it runs. So I'm just going to go to Uh, okay, I'm here. So I'm just going to do java dash jar Target There you go. So it has the json p jacksrscore and every other stuff is loaded for you And it says it's listening and then it's jc wildflake swarm is ready for you to deploy the application. So let's do a quick Curl local host 80 80. I'll just clear the screen for for clarity Slash hello Right, there we go So you got the application deployed and starting which means that my application is good. So so how do I deploy this? As I told you earlier, so I'm going to deploy this, uh Into this project, I think I'm going to go to oc project my I'll show you what this means in a second So what I'm trying to do is like I'm just going to deploy this stuff into, uh This namespace this equipment at its namespace what we call as project and open shift. So it's quite analogous to each other So I'm just going to take this and deploy this here. So before this Uh, if people are used to doing docker builds making application container based images The couple of things which usually do is like one thing we already done. We package the jar Once we package that the next step you have to do is like we had to build the docker file and make the container available for you So we already if you noticed that we already wrote This container stuff and then we said, okay, I'm going to do this use this JDK image and then I'm going to copy this from jar into my application and then deploy it into open shift Right. So, uh, when I say this, so what does it mean is that I have to build So usually what we do is like we create a package and then we do a docker build And all of this stuff, but with open shift, we don't need to do that I just need to configure my build config and say start building it. That's it So what I'm going to do right now is like I'm just going to go back here and then say Oc login to your server I think yeah admin ipv Open shift dot This is my server. It's my console. I'm just going to do a login here So it's a secure supply right, so As I sold you Oc project I'm just going to go to my project Okay, so, uh Oc, I'm just going to see if I have any application just to show you that there's no application here. That's just no project Oc get parts I don't have any parts right here. So what I'm going to do right now is The first job is that I have to say that do a build. So I say Oc new build I say binary which means that take my docker file and start building it And then I give a name call this demo And then I give a label saying that make this as my app call this demo You can have any label, but it just Just a convention. So what we use. So I'm just going to do this um The moment I do this so if we go to the console and I'll show you where it gets created If you go to bills So, yeah, just take some time for it to go there Yeah, probably Fag end of the day. So it's slow like me. So Go on all right I'm not sure. Yeah, you got this here. So So we got one build here So it says that if you see this this is the Kubernetes yaml I'm just trying to avoid the developers from creating these kind of yaml's and deploy the application Which is the most painful part when you start deploying application into Kubernetes So what you've done right now is let open shift can take care of all these stuff. I don't need to do this anymore So I've already packaged this I'm not going to do package again So what I'm going to do is like I just go to start the build Oh, see start build I'll give the build name Just saying that from this dir which means that pick up the docker file from my getting directory And then I'm going to say follow Right if you see this so you don't need to type this I'll show you what is advantage of this You don't need to actually kind of do a docker build every time I can just start a build I can set environment variables for example Usually in an enterprise deployment you'll be having nexus. I can make my build point to the nexus so that your builds are faster I can start doing all these kind of stuff and furthermore stuff like getting other configurations inside security and all the stuff Webbooks, whatever you call it. So anything that is related to build could be done So we can also see here It says that build is running so which means that the build has started and start it's just uploading your Docker binary there So once it is done Give some second when the network is slow. So the next the next task you have to do is like how to create create an application Which is what I'll be doing soon. So once the build is done I'll just create an application and finally I have to open the application for servicing to the external world So that's the last step which we usually do So Yeah, so while this happens So see if you've seen this right now So what I've done is like there are multiple steps which are involved here So I have to first go to the generator download the zip file open the zip file create a docker file And to multiple other steps before I can actually deploy the application to any other Kubernetes based environment So what you can do instead of that is like if you use like we have something called as launcher The launcher gives you a supported runtime like right at our open shift supported run times You can just choose your runtime where you want to run These are the currently supported run times. So you don't need to generate these things What do you basically do is like I go ahead and say, okay, launch my project and then I say gear name I say demo to Right and then it says where you want to deploy. So I say, okay, go and Deploy to my open shift cluster And then once I'd say this is a Kubernetes cluster end of the day and then these missions and run times So these are some best Patterns microservices pattern that we said for example, crud caching circuit breakers So it gives you a template to get started with these kind of microservices pattern so that you don't need to Start writing and including those dependencies So and then let's say I want to do a health check this again a rest api And then you can choose your framework, which you want you want vertex or you want spring boot or you want Wi-Fi spam the advantage here is that it's all tested on open shift By red hat and it guarantees that this definitely will work this version of the run times that you see here Will definitely work on open shift So for enterprise customers who think that okay, what version what support I'll get Okay, you can just be sure that you're using this version. It definitely runs on open shift Right, so I can just say go ahead and say Wi-Fi swarm And then go down and then say give some name. So this actually creates a project in github So this is mapping to clements GitHub repositories. So I'm just going to create one project with this permission there Yeah Okay So and then I say set up the application So it basically goes there and starts creating a github repository So you can map it to your local github URL as well And then it starts pushing the code there and then starts create a project in open shift And then it starts running a build there. So instead of you doing all the steps Which I'm manually doing right now. This is going to do out of the wizard for you So you don't need to worry What is it for example? This is another build. It is going to run. So this might take time Because like I have to change this build to use Nexus I already have Nexus deployed. So what I'm going to do is like as I told you To the build config I can go here and then edit the build config environment and say add a value and say maven Mirror URL So I already have an access deployed if people know Kubernetes So I just use the Kubernetes local URL is deployed into a project called as Nexus Okay I'll go to the URL here ctp nexus.apps I guess so this one, okay, so Slash nexus I have an access deployed in my local cluster So I'm just going to reuse this and just going to grab the last part of this URL So that is easy for me Okay, I should say nexus content group public. So this is an outside world access But if you want to access it from it within this cluster I just need to give the nexus and then follow by the the project name and the path and then the complete path to pick this up And then I say save so this is an advantage that when I'm doing a build So all these things you usually do manually on a command lander You have some script scripts which I usually do that But when you're using build config with an open shift, I don't need to do all this stuff So when I get back here and then say okay start this build again, so My build should be faster. Otherwise it takes 12 minutes because it has to get all the maven artifacts inside your Container, so we can just use the log here. So while this does let's go back and see what's my okay My application is pushed If you go back to the URL the other one So if you see there is a build You see there is an image the new docker image is being built there and this image is available for you right So what do I do? I'm just going to go Create the same command. There's a bunch of commands available with things. I'm just going to say new app App name I'm going to say app name and then I'm going to give label If you remember that this is very important because with this label It's going to map which docker image it has to pick up. That's the reason I'm giving the same Labels for both the cases. So once I do this So we'll see this application Here coming soon for you Okay, so let's see what happens So here if you this the build is done here So and then this project is created So if you see this this is a wizard based approach like I just doing click click click And then it has a template and then you can have your own templates defined And then map to this launcher so that you don't need to depend upon the common community templates Which we have and it's across run times. So it could be spring boot It could be welfare smart. It could be vertex anything you name, right? So uh, this way like it helps you to go faster in development So that like you don't need to do all these manual commands, which I'm tapping right now For example, it's already there Let's quickly see where it is. So if you see this The application is here So which is pushed here and then it's still not as exposed, right? Which means that I have to go and say the command itself says that what I have to do So just do this After you create the application The moment I do this, uh, you will see the there's a new one which is coming up here So which to which I can access the application I don't have anything in the route as we know that we just did Right there. So there you go. So my application is deployed now the same application, which is deployed running on my local I just localized deployed it onto the cloud. So this is a manual steps, which I showed you But if you use wizard, then it's all done for you automatically. So if you see here, I did not do anything I just did that and then map Nexus to it because I need the bills to be faster And that's all I choose to run time, which I want my application is deployed for me with an open shift It's in Kubernetes sent all the day. So this is again another application So where you can go and access to kind of Hello world kind of stuff. So this is two ways by which you can deploy applications There are further more ways you can customize and start deploying applications cloud native way Using jakata ee and micro profile Okay And that's all I think it's all the blur Let me show I want to there's one thing I want to show Real quick. Let's see if we can push it real fast Just to kind of give you guys a better So this is what this is our studio tutorial and what we've done is implement a micro profile As an example, but we also have spring boots for that examples So you can kind of see right here You kind of see there's the at get at inject. So this is just fairly standard jacks or s right that you're seeing here So at path. So it's just a different set of annotations. So I think of it, you know, so this is the Jacks or s way of doing it micro profile way of doing it. And then we also have Yeah, where is the spring boot version Down here. There we go So the same endpoint has implemented multiple ways because what we're trying to show is that you can run all this On kubernetes, right? We're trying that's really what our focus is on how to run it on the underlying platform Get it dockerized get it running at a scale and a kubernetes backbone open shift backbone And this case with the istos service mesh technology. So you get all the distributed tracing circuit breaking Metric capture all that stuff basically in the infrastructure and it's not part of your business logic You can see this is fairly straightforward business logic With some mangling of headers and things of fun nature, but it's just a hello world style application Okay And this you have the same thing on like I said on the Micro profile side. So really just a different set of annotations All right, so that's really all we have for our presentation If you guys want more you have any questions Wow silence, you're like you're overwhelmed You just can't take it anymore But no no specific questions We can certainly be available after the next session and take some more questions there too And again, keep in mind in the morning, we'll show you a really cool microservices plus function demo Hopefully it works. You guys are praying for us, aren't you? You don't understand We're running like a real hardcore demo. So it's it's actually pretty interesting to see how it plays out And then like I said, we'll do servalus tomorrow afternoon and we'll do a reactive with clemont tomorrow also So how many folks are coming to vox days tomorrow? It should be all the hands. Okay. Yeah, are there any more tickets left? Well, maybe you might be to see the right people here to get a ticket still Okay, but if we have you have questions, feel free to come up and see us afterwards Otherwise, thank you so much for your time and hopefully you guys got did you get something out of the session? Was it valuable? Fantastic