 So, what we are going to talk today is on a serverless integration with camel and Kubernetes that's what is we are going to see today like how many of you work in integration space how many of you do integrating of applications on to a few hands how many of you know camel Apache camel one okay so alright so I will give you some introduction about these things don't worry that what these are so what you are going to see today is like how do we take camel how do you take integration and take them into serverless way right how do we do serverless way of integration that's what we are going to see today alright this is serverless right so it was funny like so I usually use this slide because I think a lot of people felt initially including myself like when I was first heard the word serverless I thought like people were saying to me okay serverless there is no servers there is no data centers there is no machines running I was wondering like how did it really happen like how do you do coding right what happens to your system maybe you are going I was in the moment I was thinking like we are going back to the age old way we get some exes install the exes run the exes on your boxes and start running but finally this is not serverless so we heard a few introduction of a fair bit of introduction from Burr in the previous session like what exactly serverless is I will go a little bit deeper into that and we will also see how we can apply on the integration space as well so literally what it means is that it's that that is not required a server management because I don't need to install an API I don't need to install anything else there I just need to go ahead and do no server management my platform takes care of what needs to be done and then it has a fine-grained deployment model I'll come back to this in a second when I show the demo what exactly I mean by a fine-grained deployment model for running a serverless but a very important stuff is that it executed scale and build in response to the exact demand need right so when I request it something comes up and then gets executed and something goes on so that's exactly what serverless means it's on demand request kind of thing on demand thing which gets comes up does a job goes out right a typical example of that we could imagine like for example I run a cron job right this is a very easiest example which you can think of I run a cron job let's say the cron job starts at let's say 12 in the night and then finishes at 12 15 right that's an example what usually happens is that we keep running the servers all throughout the day and then we say the okay the job starts and then let's say warming up starts at 1155 and then execute starts from 12 to 1215 and it gets executed and then after that it goes off right after that my system again is becoming idle which means that I'm wasting resources the rest of the time so in idle case what you have to do is like basically I have it serverless what I'll typically be doing is that I'll be running something like that but what happens it starts at 1155 that's a moving up whatever is required execute what's needs and goes off in that way what happens is that you can save the resources there you can save your cost there and use it somewhere else that's our old principle behind that so let's see what benefits right why we want to do serverless so in the case if you imagine like that one of the things is that I want agility in cloud environment right you'll see a K native example as well with thinking K native in mind like it's K native is what I'm going to use to run my serverless workloads with agility I can take the same K native platform and deploy it on Azure or Amazon or Google or Alibaba or any cloud provider you want to do right but I'm going to get the same thing same agility I can move it easily without doing any big change right that's what I mean that in any cloud environment the second one is even driven cloud native applications right half late like most of the companies most of the enterprise organizations basically what we do right now today is that we want to have Azure also we want Amazon also we want a GCP also you want to have your private data center also right what we mean by this is like we call them as hybrid cloud infrastructure so in hybrid cloud infrastructure what basically happens I want something to be communicating across the clouds for example I want let's say compute in instance is created in Amazon I want the event data to go to Azure to do something else right but what basically happens each cloud does it own different way so what we wanted to have is we want to have an way a standardized way by which the metadata or data is exchanged between the clouds so that's what CNCF did cloud native computing foundation they create a spec called as cloud events using cloud events what I can do is like I can have a data exchange in a cloud event specification format and in case in this case K native naturally supports cloud event on the K native eventing supports cloud event base specification so I can start the exchange data between various clouds the third one is that focus on business differentiation so for me like it's like this right let's imagine a case I want to start a proof of concept some some technology something I have to verify so basically I estimate that okay it takes me a week to get this proof of concept done and then what we have usually do is like we spend Monday Tuesday Wednesday include even a part of Thursday setting up my environment right in a what cloud what software as I require what are other things I need to do I spend which means technically I'm spending 80% of my time just setting up my environment but actual your business thing is that I want to prove whether this particular concept or a technology works for me right that's what your more energy has to go into that which ideally what we do is like you spend 80% setting up the environment and just 20% doing what's required for you to verify right but that is not focus on business right we are doing the business is digress and setting up the environment basically when you move to cloud I mean serverless way of doing things what happens is that your platform knows how to run your application all you need to give you is that okay this is what you need to run for me run this for me that's all which means that that's your POC in case you may be minutes seconds hours anything to get it performed in Kubernetes a candidate way is just going to be one deployment that I'm going to do which is going to run a serverless way my concept is proved right I don't need to worry about how do I create the server underneath how do I deploy my application how do I deploy my other staff I don't need to worry all those things I just write a couple of commands it creates the environment for me in Knative and then runs and then deploys test whatever you want to do and then turn it off okay that's where I increase more on focus differentiation which means that when I'm able to do all these things I can apply the same concept to my business and then make my faster features get into quickly than waiting for anything else right spending time on infrastructure and last consistent and scalable operations what I mean by this is that if you go if you using Knative we can you get a consistent scalability across any environment right because it's the underlying platform to run a serverless workload is Knative so Knative takes care of how to scale how to scale up scale down where I don't tell you vertically or whatever you want and then you can just you don't need to worry about how my application will behave right in any given cloud provide any given platform my application is exactly going to behave the same way right what happens with this is that end of the day I'm achieving a better resource and cost optimization which means I can take this resources which is spent unnecessarily somewhere else take them out and give it to a particular resource where it might need right I can say the cost invest in something else so this is something which we achieve because of this what happens is that something which we need to keep in mind this is usually a trend of the industry a trend how we actually do according or development architecture or whatever this so I classified basically three different architectural styles which we have today which we commonly use today the services which is your monolithic based application or anything clients have a model and then we have microservices and then we have functions are just taking serverless to be functions because people always confuse between functions and serverless right when I say serverless people say it's fast how many of you say it's serverless is fast serverless is not fast right serverless is a way of doing thing I got architectural style whereas fast is one of the ways by which I can do serverless fast is not the serverless right people always have the confusion whenever I say to people say okay serverless okay I do fast not necessary I'll show you an example I'm going to deploy a microservice to be running on a serverless way it's not a function which means that I can run any given program wherever I can do Java dash jar or a deluxe container I can make this Linux container run in a serverless way so just take this thing out of serverless it's not equal to fast so fast is one of the way I can do serverless the why I'm putting this here is because I want you to decide what you want to do okay which means that when to choose what so this is one of the important things we need to think about when you're doing serverless architecture style of microservices or even your traditional way of doing building applications what we always have is that we get carried away with the new things that happen in the industry right how many of you agree to that something new comes okay I want to try this I want to apply to my next project I want to get it executed but your next what happens that it is not suited for the case and you'll have a lot of issues after that right and a lot of money base resource waste etc etc so what I basically tell here is that choose what you want for example if you want to have an high control and high complexity let's say I have a lot of confidential data which I want don't want to be in cloud I want to let it keep it in my within my data center in that case like I still encourage you to go with services a client server a monolith or a modular monolith kind of stuff and then keep it within your environment all right if you're going to have microservices where I feel okay I don't have to I don't need to too much control but I want to quicker read applause new feature getting released quickly in that case that's where you want to do microservices which is kind of single responsibility pattern in case if I want to do even even more one more thing level up I say okay I don't need worry about something which is there frequently but what I want to do is he says only 10 minutes of the dates getting used or 20 minutes of the dates getting used then that's where I want you to go with functions right that goes up does the work comes down again where I have low productivity and low control and microservices sit somewhere in between this right and people will always say the okay do monoliths to microservices your problems are solved how many people heard this word monolith to microservice I mean a lot of things for the sales people as well since they probably say to sell the microservice thing they say okay you want to go for a monolith to microservices right no you don't do that right the problem is that if you're doing monolithic bad then you're going to do microservices worst because your complexity increases with microservices because it gets distributed you have network or services you need to expect failures you don't know how your application behaves on failures a lot of other things which follows that right so what I encourage you is that if there is no need for you to do services you don't need for you to break the services then don't break it still run it as it is because if it's giving you what is expected then don't break it for the sake of breaking it right in case what I also suggest you said then you feel in some cases you might feel okay this functionality can be run and can be quickly changed it's this particular responsibility then that's there you take this one and make them as microservice and run them as microservice and within the microservices I'll be having 10 different actions or functions or behaviors if you're having something like that then what I suggest to you is that we can try to see if we can make those behaviors or actions into own functions right you can add as a serverless function in that case what I say is microservice is a single responsibility pattern if you go to functions or serverless it's going to be single behavior pattern and I'm just going to mimic one single behavior as thing which is going to get executed run for you and come down makes sense agree great but what is camel has to do here right since people don't know about camel is want to give you a short introduction as a camel here camel is a Java based platform it's kind of a integration platform for us like I've been using this for more than 10 years right now and then you can also have it has 20 to 250 plus components as there what I mean by components here is that I can connect talk to approximately 250 different types of systems for example SMTP FTP SAP or anything as you name it right I can have rest DSL etc etc the thing here is like it also gives you DSL which means that you don't literally need to write a Java code I can hear I can also write as XML you'll see an example where I'll be writing a JavaScript code but that gets run as a Java code end of the day right the camel takes care of doing that as well and can integrate it anything this is where you might need to know bit of Java right when I want extend right when I want to extend for your current or custom functionality then I have to take camel and extend camel to a custom functionality okay but what happens is that we thought like okay all these days even a few years before even I was doing few projects around camel the ideas like I still need to run camel in a serviceful way me to say like I was to run a camel server which is called as fuse which is a reddit subscription so we have to run that 24 cross seven for integration to work take the lake the similar example right usual integration a very simple integration is that I have some file getting dropped in your FTP server I pick it out and then transform that csv or XML or JSON or anything and then send it to another system right this is usual way we do this but what happens is that your integration keeps running all the day right throughout the day it keeps running and then probably it gets executed when the end of the day right for probably the last last fag end of the day let's 1155 something and then it gets executed does this transform throws the data out to a second system and then that's all his job is done but for that I need to have this fuse server or a jboss server which usually have which keeps running 24 cross seven but what you're going to see today is that using up another project based on camel and Kubernetes using Kubernetes we can see like can I do it as serverless mean to say I just write my DSL whatever integration needs to be run let camel K the platform decide on how do I need to run even if I want to run it a serverless way I just tell it to run it a serverless way it runs in the serverless way even in integrations as for all right so let's see what it has again there's the same platform based on operator SDK I think that these are the lot of Kubernetes stuff here is a platform based on OpenShift and Kubernetes and it's based on core operator SDK how many of you know about Kubernetes operators okay one two three okay so operators are the way by which the new way by which we can install things onto Kubernetes you would have heard about LM you would have heard about something else so what operator basically does it helps to install and maintain your software typically like it's a human software operator it behaves like a human software operator sitting and running those things for you there's a operator hub spec I think I'll show you that on my screen when I show you the OpenShift console there's an operator hub you can go find out all these operators what are the operators available from there and then install those operators whichever is required for you so by default OpenShift doesn't come with any kind of installation but you can choose what operators you want to install I'll show you a few what are installed on my cluster today it's a community-driven project and we still don't have a 1.0 release we just did a 1.0.1 milestone one couple of days back that's the latest release we have so what it does before we see what it does I want to know how many of you do Kubernetes deployment very familiar since today's morning session right so first what you'll do is like I'll go to write the same Kubernetes deployment and then we'll see how do you convert that into serverless deployment okay that's going to be the first thing which we do so let's jump to the demo now okay all right so I'm going to use official code studio code here let me put a new file I say call this app.yaml and then I say kind okay so this a quick easy quicker way to get your deployment run which is your studio code which has a Kubernetes plugin running so it gives you the yaml so you don't need to write the hard code the yaml completed by yourself so I'm just going to call this application as greeter all right since Kubernetes we're going to have a service here I just need to say what service I want to be here so I just say match the labels like this and then again I had to say they use the same label here as well I just say greeter and I call my app as greeter here again and then I'm going to use a pre-built image I use a registry quay.io slash Red Hat developers k-native tutorial greeter and it's a quarkus based applications I'm just going to give this a quarkus and then I'm just going to say 8080 or 1990 is going to be the port that I need to take so this is a very basic elementary deployment file that usually run so this is what I'm going to run right now and then obviously I need to define a service so what I'm also going to do is like I'm just going to define a service again so I say okay kind it do the same thing just copy the same the labels so that it's easy for you to map the usual mistake what people do when writing their first given its application is putting the mappers on so once you don't put the right label selectors your services will not be mapped I'm just going to say the same port here as well so that it gets given for me so I write I've written a service and I deployment so I'm going to take our existing up image docker container or renex container image what I call us and then I'm going to do the deployment so how do I do this I'm going to get back to my command console and then I say okay CD dash I go to the demo folder let's see if I have this YAML and then watch OC get pods okay I say OC create dash f app.yaml all right I'll have a service created and then I should assume me having something created for me right here there's a deployment that gets created here and then OC get SVC I'll have the service also get created all right the container is running let's see if the content is running for a second just pulling the image right now and then you should be seeing the container running for us okay so since the service is not exposed I need to expose a service OC expose SVC greeter so that I get a URL and then I say OC get routes all right I have the route as well here so I need to do a quick change here so let me just delete this recreate it again I want to distinguish between the k native service and this service okay so let me go back to my where was I I just call this is greeter SVC just to just give a different name to identify from the other one so let's go back here and then do the same stuff create it again and then OC delete delete routes greeter I just as I'm going to create a different service here and you should be having it running in a second I just expose a service OC expose SVC greeter SVC I'll come back to think why I change his name all right so now when I go to my console back my official console is here and then what I'm going to do is like log in as this guy and then we have a customer and then we go to networking and then we find routes we'll have the customer routes here I just need to go to this project called us tutorial that's where we are in so I have a great SPC thing and I call this up I get this hello world right so sorry just agree to saying hi great or something like that this is just so this is what I write to do it as a serverless right you see what I want you to watch is this space we are one-off one right now so what I'm going to do is I'm just going to go back here to my YAML where is that here sorry here and then what I'm going to do is like I'm just going to copy this and then paste the new one and then I save this as case we see YAML okay just give me this k-native service I don't need a service anymore I'll come back to this Y and then we are talked about CRDs this is going to be a serving dot k-native dot dev slash V1 alpha 1 ALPHA 1 and this is going to be called as a signed service I just going to call it as a service here same way we find it out right so for example like like what Burr showed in the last thing I just going to say OC get CRD grep k-native and I get all the k-native CRDs here the one which we are interested is services dot serving dot k-native dot dev this is what we are going to look about right now and then this is what you're going to create and then just right creating there I don't need this metadata labels anymore because I'm not going to do this anymore here and then I also don't need to have a name because the name gets automatically generated by k-native so that's all I require now if you see the amount of service YAML that I'm going to do for k-native which is serverless way exactly same app because I'm using the same image I'm not changing the image but what you need to write has come down because I know few things that needs to be done automatically for example I need to create a deployment I need to create a service and match this with a route everything will be automatically done by k-native behind the scene because it knows what needs to be done the same boilerplate you do for every application deployment this k-native does know all these things it has abstracted those things out and it said okay let's let me do this way all right so let's see what happens I think I might not need the selectors as well let me keep it for a second and see what happens to this and then I say come on OC apply or create a chef case we see dot YAML hopefully if I'm not wrong done any wrong okay internal error occur no service register with service okay let me I think I'm making some typo here let me find it out the exact API name k-native tutorial six okay just grabbing this name up from here and then I say go back here and then say it's save it back here okay probably I made a mistake there service and then I don't need a selector as well I just have a template and then I have these things let me create again there you go and then since I have the service created and let me go to CLI and then I say OC get case we see okay and it's still getting created let me see if it's having is getting created or not I don't think so it's getting created so OC get case we see all right I'll come back to maybe it could be some errors here OC describe I'll come back to the error in a second there's something wrong OC get case we see let me describe this OC get OC describe OC describe case we see creature oh sorry I guess I'm feeling sleepy I think it says some error here let's see what of what is the error it's there the route is still working to reflect the latest this high specification something it's taking time probably so let's come back to see it after some time to see if that's get created and so basically it creates this is a way like what which I can turn a probably an existing Kubernetes deployment into serverless deployment right so because why I use this ways because the latest serverless spec Canadian spec 0.7 has lot of changes so I have an example which actually runs with 0.5 but I need to update the tutorial to reflect 0.7 what 0.7 has done is that they have literally maintained the same Kubernetes deployment but they have removed some parts you just need to remove some parts from it to make it working for you right and then change your Canadian serving and service all right let me come back to that in a second maybe something wrong with that I'll try to delete this again and then probably I'll show you a deployment with a different one OC delete case we see YAML and then I also change the app dot YAML as well so that I don't have all these things deleted let me up to 0.1 basics so this is the Canadian tutorial what you are referring to I'm just going to deploy a similar one just the same greater example here OC create dash f service dot remote dot YAML OC get parts I think the greater is getting created there you should see 0 of 2 here that's getting created right there and then let's see OC get case we see and then you have a greater service getting created there for us and then just throw you an URL with which we can access a service as well let's see why I don't know why it's taking so much time because it's getting created or okay I can use cube curtail as well for this cube curtail get k native services dot okay all right I have a greater service here created here so I say OC get case we see hopefully I should have it right now have the URL here I just open the URL right now what happened okay say HTTP I'm all right so it's getting the same greater thing which is all year the same application same image but I'm running in a serverless way I just leave the screen right now for you because you'll see the service getting terminated because I'm not getting used by default it takes one and a half minutes that's what the very minimum we can go with k native until one and a half minutes is there it wait for the request to come if no request come in next one and a half minutes then it automatically starts to terminate all right so this is how like we start to deploy even take a basic application the application which I'm running right here is not a function is still old my same old glitter application which is a jacks RS resource rest resource I just still wrote the same application but all I did is that I encompass that inside a service serving YAML which I showed you and then I deployed the same thing again so which in this way it became serverless automatically and it will wait for your request until sometime I think probably I'll have it running again you can see it's getting out as well so but what we want to do right now is that I want you I want us to try the same thing probably Burr introduced all these things so I'll try to skip this up and then what k native basically does for us is that it takes your source for example if you are in the next session I'll be showing the same example about how do you build it from sources that using tecton pipelines so I take source I build it to a container which means that I'm containing that into a Linux container the moment I convert that into Linux container what I also do is like I want to give you an URL right by which I can access the application that's what I do with serving the serving gives me a new oral to the application that's that's what we see when they put OC get case we see you got an URL for which I can access a service so that I can start the service keep it running get the response etc and if you're using an event based system like tough car anything else then I can use produce and consume humans as well in this way what I can do is like these are the basic building blocks I can take these things to build my application in serverless way right so if once we have do this what also happens is that with camel what happens is that I get all these 250 components which is allows you to connect to multiple different applications are in two multiple different integrations I get all these 250 components along with enterprise integration patterns like the common enterprise integration patterns what we have and take it on top of k native to give that the serverless flavor which means that I can run the serverless thing on top of this and then still use Kubernetes platform because k native needs Kubernetes to run all these things in serverless way so how do we do this let's take a simple example here let me go back to my the non-working model so this is a very basic example you see here I'm writing a route this is a camel DSL for a thing so with this camel DSL what I'm basically saying is that every three seconds just say hi Bangalore that's it and I'm just because it's very simple example where I say that okay from this which could be a producer or a consumer from this particular staff go to this particular log right I'm just saying it to log it to the console but technically what you do in integration is that we send it to a different piece of thing right to put it in another message queue or a Kafka topic or anything else and then we keep chaining them together in this case what I'm trying to do is like I'm just saying okay run this integration only in this way right I just say that okay I'll just give you in JavaScript or a groovy I have a groovy example also the same thing you can also write in XML you can also write in Golang as well that's also possible but the DSL is going to say we have to learn the camel DSL to write this particular one I'm writing this stuff again and what I'm going to do is like let me go here you see that this this one got terminated so how do I invoke that back I'm going to show you an example to invoke that back oh sorry the moment I say this let's see the container gets created again and then the service is coming up and then it will serve your request which means that it's it's gone down there's no longer required so it will go down and when it's up it starts up and then serve your request and it will be running for next one and a half minutes again and then terminate back so that's how we can run your serverless workloads as well so since I'm going to deploy the same application again so what I do is like Oc deli-f service no remote.yaml so that I can I can use the same name otherwise I have to use a different name in my code so what I'm going to do is like I'm just going to do the same name again here it's getting terminated in a second I say camel that's a tool so to get the camel what you have to do is like you have to go to Apache camel K this is a get up URL for Apache camel K you can go here you'll have the binary how to download the binary and install the binary so this is a camel K binary that we need to have that's what I'm doing here so camel K binary is already configured I say camel K and then I say run dash dev I'll come back to this dev mode in a second and then I say greeter.js okay and not there right so CD maps camel K demo now I say camel run dash dash dev greeter.js so the moment I say you see one more camel container getting created for you and now this is not in a serverless mode if you see there is only one container which is running this is not in a serverless mode this is going to print everything in a log for you you see the camel thing getting deployed which is a java application but you write in java script but camel K takes care of converting that and running as a java application for you and then I'm just starting to say I just keeps logging on to the screen every three seconds right what is a dev mode basically means is that for example like if I if I'm a developer basically what I want to do is like I want to do start something keep working on something for example in this case and then I change something I want the live reload to happen for example what in this usually in the case happen slide I give it a file and then it goes to camel integration definition which is in the camel K underlying thing which runs in type of bin it is it actually takes that and compiles that into java application and deploys the application for you which means that for the integration I don't need to write any kind of deployment yambles or service yambles or routes or anything else camel K takes care of doing those work for you and then it uses camel K operator and basically and deploys your pod right basically what operator does is that it reads this yaml and it knows what needs to be created and it deploys a pod for you that was exactly happening for you just deploy the java script file java script file was recompiled into java file and deployed and the application was started for you right this development workflow I want to also know how the live update works so let's go back here and then okay what's that and just I'll just change this to hello the moment I save this you'll see the integration getting updated here and you'll also see a new container getting created here for you which means that I can do update delete whatever I want to do with my application a new application gets started and you'll be seeing a new logs coming here for you right which is hello right should not be high it basically says that it should be hello and then gets terminated and then the old content getting eliminated and then a new one getting started for you and then starts logging the same thing what is required for in this way what I can do I can have a continuous development life cycle maybe said I can develop something test automatically and then stop something change something and then see if it's coming without me redeploying it traditionally in any integration service today what we basically do when you want to do a new deployment I have to stop the existing application build it deploy it right I don't need to do this anymore right so we saw this serviceful way of doing things so what I need to do with the serverless way and also like it clears the resources once I terminate that you see this getting terminated here what's also nice about camel k is that to do it in the same thing in the serviceful way serverless way what I need to do is like I just need to tell camel that it's going to be a k native endpoint so that I get a URL for this and then I just use any name you want I just saying it's default and then I go back to hello again so what I do is like when I run this again you will now see zero of two getting run in a second for you zero of three which I have Istio also involved in that so which means that right now I have zero of three running for me and then when I do OC get case we see you get a gritter you are it you don't have a URL yet because it's still coming up so you'll also have the application running for you and then you got a URL now all right when I give the URL the same URL when I say HTTP body I got aloe Bangalore now right exactly same integration which you're getting deployed but right now I'm deploying in a serverless way like if you leave this for another one and a half minutes we'll be seeing that this is getting automatically terminated in this way what I also can do is like and run serve I mean service integrations with Apache camel based integration in a serverless way also right because integration not necessarily need to be run 24 cross 7 else I have to have in the slide and I'll also love you to try this one if you go to bit.ly.ly sorry yeah you have to send these are properties probably so this is an example I just change this to show because now in this case what happens you don't need a time delay because whenever I call using the URL I'm going to go to the service otherwise I said to not go to the service so bit.ly.ly Canadian tutorial this is something which I'm working on I think right now I have the 0.5 release for Knative so it has all the things to get I think probably build is deprecated so you don't need build anymore you have all these things like fundamentals of how running serverless with Knative you can do serving auto scaling eventing etc etc and then if you want to run with camel k which I'm talking about you can go here to integration using camel k I have few setup here how do you set up all these things let's take this one example of doing a message filter like this is one of the patterns which you have what I'm going to do basically is I'm running an s3 kind of a server let me go and find the server out for us so this is a one which I have so I have two folders in my s3 this is a local s3 the mocking s3 kind of stuff what I'm going to do is like I'm going to upload two files here basically so one is an xml file and one is a text file and then I'm going to apply this enterprise integration pattern called as message filter what it basically does it like whenever the file is getting dropped there it'll check for the file extension that's a very simple example if it's an xml then it moves from the data folder to the top folder which I have there okay that's what I'm going to do but again this is going to be done in a serverless way so let's see what we have to do here I already have these buckets I'm not going to create the buckets now I'm going to deploy this particular application here so I have it here I guess let me yeah this is a one I stop this we don't need this anymore I make this bigger right and then I also have this here as well to upload the data I copy this and then I put it here so now what happens soon I'll see another app getting deployed OC get parts creep okay so it's getting 0 of 3 I think as I told you right in this case what I want so once it is comes up I'll also do another thing I feel that I don't want service mesh features here right I don't want service mesh I just want it to be just serverless okay that's what the need of mean for the word so what I need to do basically for that is that OC edit case we see let me find the case we see name for OC get case we see so this is called as cartoon message mover so I'll just take this app and then let's see if it's running okay OC edit case we see cartoon get more what I've done is like how many people know that they can change your editor to your wish like do that do this let me take a code so what I've done is that I have set an environment variable for cube editor to be my visual studio code when I do this what happens is that whenever I do OC edit like this it's going to take me to my visual studio code where I can go edit stuff which makes your life much easier for you because whenever you're editing ammels you need the space indentation to be proper so if you set that globally on a visual studio code so that when you edit it it gets automatically intended for you don't need to worry about that so what I'm going to do right now is that to this I'm going to say if I'm correct Istio dot sidecar dot inject Istio dot are you all right slash sidecar inject is false the moment I do this what happens is that the service get redeployed let's see OC get pods fnw and then the old cartoon mover is getting terminated and soon you've seen the new one getting updated for you I hope we get the new one right now in a few seconds for some reason it's not maybe my annotation name is wrong let me find the right annotation name this is the okay sidecar at Istio dot I am sorry about that so when I change this one to this deployment to come back here I did this and then go back to this one and then change this way and then close it up and I think it updated here and then you'll see was editor terminated okay let it get it deployed right now what I'm going to do is like I say file this is what I'm going to do right now OC get pods let's see if it's come up that's still running so the moment I do this so I also need to add some files here I'll go back here to my integration project all the instructions just copying pasting here I'm just going to upload this file I'm sorry I'm just uploading the data here the data file I have one more file to be uploaded I just do this as well once this is done I just going to run this curl before I do this run what I also wanted you to see is that let's go back to the console where I was running this file let's refresh this I have two files here and I have no files here okay and then you also have a tool I have a tool call or something probably would have heard about this in the morning since during our session it's getting terminated again because it's not been inactive for quite some time so let's do this OC stern cartoon FNC user container okay right now we will not be having anything the moment I give the request here we'll you'll see that coming up again because the request has reached that now I'm using a full range it's enriched pattern here we'll saw the application coming up right there because it got the request right now to process the file and soon in the logs you should see the files getting processed maybe it can also time out a bit and it starts to run gets the easier pod run it gets the serverless k native pod run and everything it added and now it starts to run and then I think you should get an example here I don't know why this turn is not working here let's go back and check it here on our file the file and then let's go here and then do a refresh we saw this message getting moved it moved from the data folder to top folder and my integration is right now running in a serverless mode because he saw the integration which I deployed was terminated because it was not used and the moment I gave the request to process the file it came up process the file moved into the new folder now after again one and a half minutes it knows that it does not require anything more it terminates back again all right so in this way I can also run any type of integration you have I think I have other examples as well here so I had three different patterns is the message filter enterprise integration pattern there is something called a spoil enrich where I can read the data basically from the application that thing it also gives you this information as well I can read the data for example in this case what I do is like in the example I have an XML coming in and I'll read the XML and then split the top based on the country right I'll create a country folder another thing and then start processing as well okay these are all basic file examples because that's very easy to understand you can also write all complex examples as if you go to the camel case side inside the examples folder we have a lot of other examples as well and then I also have a content based router where I can do content based routing as well to go to one message handler to the other message handler based on what we get as part of the content right that's all these are the very common integration use cases that you use very common integration patterns again but in this way I can do a very even very complex integrations running in a serverless way as well if I don't need to be running 24 cross 7 then I can also run the serverless way as well all right let me take a quick check on where we are with the time I think we have 10 more minutes to go I'm not wrong right so the let's let's go back here to see what else I have I think I think that's pretty much I have probably I'll throw you these slides for you to go and check this out the tutorials are there the camelcade tutorial the commands which I ran today is exactly reproducible from there so you can go grab those commands as well from there and then you also have the Istio tutorial which you can use to conduct Istio data stuff and then know about more about Istio whatever you talk today morning