 So, hi, I am Suraj Narode, that's about me, I work at Red Hat, I contribute to projects and the catch and my life revolves around Kubernetes and OpenShift and in meanwhile Alexa and yeah, if you want to contact me, that's my contact details and you can find my blogs at suraj.pro, yeah, let's start with the talk. So, you might heard the terms containers, orchestration, Kubernetes, that means like everyone wants to containerize their applications, right. So, like some of you, someone like you go to some conference and heard terms microservice as containers and they went back and like, hey, let's do microservice, let's containerize the application. So, first thing you want to do is you will learn Docker, right, so called movie, yeah. Then you do Docker run and some application and you get started, right, you deploy your first Docker application. But what if you have a more than two Docker run two times, okay, but that's not feasible, you cannot do those things in production, right, or even it's not feasible to do it locally. It was a Docker compose, right. So, the same thing you mentioned earlier with the two Docker run, you can mention with the in a say in one YAML file, like image name, environment variable, volumes and all. But your developer is happy now, okay, but not for so long because one does not simply deploy containers to the production, right. You need some kind of container orchestration, you need some kind of management, right. So as I said, like Docker compose, it's good for local development but not for production, right. So container orchestrators, so there are multiple container orchestrator, Kubernetes, Docker Swarm, Mezos, but since this is a Kubernetes talk, I'm wearing Kubernetes t-shirt, I'll talk about production ready container orchestrator, Kubernetes. So why Kubernetes? It's a robust, it's coming from the Google's production experience which is Borg and it has a huge community around it, so you'll get a very decent support. But at the same time, the developers has the problem, there's a huge learning curve, you have to learn all the basic things like pods, services, deployment, replicas and all and developer don't want to learn those things, right. So remember the Docker compose, your developer learned Docker compose before to just get started with the containers, right. So where's the investment, like you invested some time with Docker compose, right and now you have to get started with Kubernetes. See your Docker compose file was just 8 to 10 lines and here's the Kubernetes, it's ending down as well. So here's the solution, compose. So what compose does? It gives you the power to deploy your Docker compose on to the Kubernetes, okay. So why compose? So it will transition you from Docker compose to Kubernetes. The default generated by the compose may be the quick start for you, may be the base, it gives you the base manifest for you to deploy. It will not be 100% for you but you'll be 95% way there on Kubernetes. So what were the main use cases? Main use cases were like testing your cluster in day environment may be because what I saw that most of the developers use a Docker compose only for the local development, creating POCs, simplifying Kubernetes deployment and what I think is like if your application is going to deploy in Kubernetes, you should do Kubernetes native development, right. So you can use that for that thing. So the features we have added, so we added Docker compose version 3 support as well and now we are trying to add the latest version as well which is 3.2 and later on. We have build and push support, let's say you have a build key, I'll show that demo now and we support the other controller as well. We have YAML JSON, both support because I heard from the people that most of the ops guys hates YAML file due to indentation and all. So we have JSON as well and we support OpenShift as well. And integrations, how many of you familiar with May 1 plugin or Fabricate, yeah. So we have integration with Fabricate May 1 plugin as well in Red Hat Dev Suite and other very cool integrations are there under our website and roadmap. So we are trying to support as much key as possible because Docker also trying to simplify the experience. So we have some keys in the Docker compose which now directly map and UX. But before that I want to tell something different. There are some limitations for the compose right like because Docker compose was initially made for the local development or a Docker swarm. So there are some limitations like you cannot create stateful set jobs, volumes are difficult to create. So you can check conversion matrix on our website under conversion page. So we have we have done the all those things like which key maps to what and all and what next actually. So the next is we will learn some lessons from the compose that we cannot go 100 percent towards the Kubernetes from Docker compose. So we started a new project catch it is yet another project which starts with K because everything in Kubernetes ecosystem starts with K and it is related to ocean. So what is catch? It is a simple and easy way to deploy applications. You define only things you needed and it is not related it is not limited to developer you can extend it as well. So this is the catch this is the big YAML of Kubernetes again the same I will not go in much detail because tomorrow at centers dojo I am presenting the catch. So you can find me there and to know more about catch you can join me and these are the resources for the compose. Recently we we graduated from incubator to Kubernetes org. So now we are under Kubernetes org that is our website compose.io for catch we have our own org catch project catch catch project org and if you want to talk to us we are on compose channel on Kubernetes Slack and for catch we have our own Slack. So before going to question I will show you some demo of compose. So I have a very simple Docker compose file which has a is it visible for your yeah. So very simple service to service which is counter web and redis. So let us say if you want to generate Kubernetes artifact you just have to do compose convert and you get all those files let's check web deployment the all deployments are there and compose convert steady out and I haven't given the hyphen a flag because compose takes the Docker compose.yml by default and you can check like the services deployment everything is generated let's say so for local purpose I am using mini shift it's a local open shift cluster what's open shift it's also Kubernetes. So to deploy I simply have to do compose up and you can see the applications is deployed you can see here Ocget pods they are running the both are running now and to access it I'll go to mini shift console web to access the application I'll create the route and yeah has my application had it's deployed very easily we we didn't have to do anything we just use our own Docker compose file that's it. So let's say you will say I want a JSON I hate YAML okay so you just have to do hyphen jflag and you get your JSON output right you get JSON output now I'll show about build and post demo so this is a normal developer workflow you have a simple application app.py you have Docker compose file which has a build key and the dot that means the code is in the current directory and the other Docker file and all the basic things first I will remove the old deployment we have done so to remove we just have to do compose down and it will delete everything as simple as that so here I just have to do again compose up now if you see it says build key detected that means it knows compose detects that build key is there and it has to build the image so it will build the image it will push it to registry and then my cluster will pull the new image and it will deploy the things see it's running the first two things if you check UI as well it's running there right basically they were the same thing that's why you will see the same output but the different thing and let's say let's say you want to create some other controller right so you can do compose convert and see the help so we have hyphen hyphen controller flag where you can mention deployment or whether a demon set or a replication controller yeah I still have a few minutes yeah thank you so quickly I will show you about okay so for deploying the simple application you just need those lines so we have added some shortcuts like port mapping you can see if you if you have to mention those things in a kubernetes amal they are like port target port and everything so this is KJ amal again you want to generate kubernetes amal just feed the file to it and it will generate the file or you want to deploy it in a similar way page apply yeah your service and deployment is created so that was about my demo yeah oh something goes wrong so yeah questions yeah so yeah so the lesson we learned from the compose was we cannot get hundred percent way there so we wrote our own DSL which is catch it's a simplified yamal it's a yamal only but it's a simplified and it has some shortcuts as well which you can easily define the things and along with that it's not limited to that only we are using the same structs from the kubernetes so you can extend it so things like node affinity and all which are like very high level ops level stuff you can also define that there so cage was made in the keeping in mind that developer will do kubernetes native development but yeah it's pretty much stable you can give it a try and if you have any issues create any shoes and a PR talk to us on slack any more questions any feedbacks please check out the projects give us the feedback so that we can improve and tomorrow I'll talk about catch in more depth at centers dojo catch me there and I based on case I object interesting surprise project just catch me and I'll show you the demo thank you so yeah so currently compose you can see it has around more than 2000 stars so lots of people are using it and so it just a quick start to you for the kubernetes on the catch side some of my colleagues are using it for their day-to-day stuff and some of the outside people also using it they come to our slack they ask questions about it they ask about like whether you want you will integrate it with something may one or something like that yeah there are users so it's been about 8 to 10 months now okay thank you thank you