 This talk is about Lifetime Zero Cost End-to-End Modernization and Automation and that is provided by our software, GoPro Paddle Community Edition. That's what this talk is about. Okay, next slide, Gayatri. Hi, I'm Kishore and I'm co-founder and CEO of GoPro Paddle. As already introduced, I've worked for over 30 years in industry developing mainly infrastructure software and automation on Linux. I'm right now technically leading a very motivated team to deliver and innovate the GoPro Paddle platform and all the related automation tools. My key motivation at work is the wide scope for innovative products and tools in this space of automation and modernization for Kubernetes clusters. And I hope I'll be able to share that energy with you all today. Gayatri, I can introduce yourself please. Yeah, sure. Hi all, my name is Gayatri. I'm a friend and developer in GoPro Paddle. Also, I'm a tech blogger and I'm passionate about learning Kubernetes and the related technologies and all. Also, apart from this, I'm doing some product evangelization across various mediums. That's all. Yeah, thank you Gayatri. We can move on to the next slide. Let's talk of modernization. What does it take to modernize? And modernization we imply moving to a Kubernetes cluster like platform. There are three distinct stages, the environment on which all this happens, the applications that need to run on it, and the automation involved in all these things. The environment is, of course, as we all know, a Kubernetes cluster. So you need to provision Kubernetes clusters. You need to then monitor those clusters because you have to know what nodes are up and then how are they performing and what is their high availability settings and so on. They also need to be set up for horizontal auto scaling so that nodes can come in and go out based on dynamic workloads and demands. Firewall is a very important piece because you want to properly set up all the network rules. And you need all the load balancers to be set up to ensure that there is application load balancing and network load balancing and all the interest rules are set up, right? This is all the environment on which it has to run. But in terms of the application, the application itself, which is running on a standalone system, either on a server, on a VM, has to undergo an architectural transformation here. It has to be containerized and then resulting in a Docker file. And it has to be templatized the deployment. So you need the corresponding YAML files and the Helm charts. In terms of the automation itself, once you move there, you have to ensure that your image is scanned for vulnerability. There is logging for all the actions taken and all the events that occurred. For the events, they should be capable to give you alerts, maybe through pager duty, Slack, right? And then you need to be able to monitor the application, right? How is the app performing? And also monitor things like storage clusters and infrastructure as well. And you need to have pipeline integration so that you can do your continuous integration and deployment, isn't it? So we'll drill down a little into the application, because that's what is being moved from a standalone kind of system, non-modernized system to a modernized system. So I'll drill down a little into the application. Okay. That's the next slide, please. All right. An application, of course, starts the code. The code consists of its source code, of course. So if you have a Node.js app, it has its source code. And then for it to build, you need a base image, maybe a Ubuntu system, Ubuntu OS, and then you need Node.js version 8, maybe. And it all its utilities, right? You need lots of utilities to be able to build in that environment. You need related libraries, it uses, and in the case of Java, it will be Java libraries and app artifacts, in the case of Java, JAR files and so on, right? Those are the app artifacts. Along with this, what is needed is that every application that you've configured and runs has its capacity, right? How much of CPU, how much of memory does it require to really run reliably? And security related to what is its username, password, what is it, user ID, group ID, all these access controls, security to access the app itself, right? Help checks to detect is the application alive, very important part. Storage, enough storage configured and monitored to ensure the application can run efficiently. And various configuration related to things like your environment. For instance, if it's a go lang, you have to have a go root properly set up. If it's various things you're executing, the path variables have to be set up. So a huge number of things you have to set up, isn't it? And network, you have to have proper forwarding of ports and your ingress rules have to be set up. So all these constitute the aspects of organization. All right. Next slide, Gayathri. Gayathri, if you can mute your audio. Yeah, once again. Yeah. Thank you, Gayathri. All right. So I explain to you to modernization what is involved in modernization, what is involved in now modernizing application. This is where our platform go paddle comes in. It is the simplest, fastest and cheapest way to modernize and maintain cloud native applications. It's a no code platform. It does the automation and the modernization effectively. It's a multi-cloud solution. It provisions on AWS, EKS, or Google GKE, or as you AKS from a single console, from a single dashboard. It's out of the box automation. It has all the end to end DevOps capabilities. It does all the scaffolding, auto generates all your artifacts in Kubernetes, Docker files, YAML files, Helm charts, does all the logging, monitoring, alerting. It has all the enablers for your CI CD and the vulnerability scans. It supports all types of Linux workloads. It has over 32 integrations, Grafana for monitoring, and so many others, which we can show you. And there are 30 plus ready-built application templates. You want templates, for instance, maybe MongoDB template that can readily run on the Kubernetes cluster so that you can integrate with that in your app. We have over 30 plus ready-built tested application templates. This is what go paddle provides. Next slide, Gayathri. We talked about app modernization previously, right? Now, we are talking in go paddle, we want to automate the entire app modernization. So take, for example, a simple Node.js app like tic-tac-toe. In Gayathri's talk, she will show an actual demo of all these steps that I'm explaining now. So you can literally trace what I say here through the steps that she will show in her demo. So you start from the source code. You start from the source code, go paddle, goes and analyzes the project. In this case, it analyzes the project to understand what kind of language it is. And then it suggests to you, it goes and does a discovery first to find out what is the base operating system, is it going to? And then based on analysis of the project, it's a Node.js, it picks the Node.js image. And then it finds the best fit image and creates a container profile. Create container profile involves all the things I said earlier related to what is your environment? What is your security in terms of username, password, group ID, user ID, all these things you capture. And along with this, you have to also capture details about what is your resource requirement? What is the amount of memory you need? What is the amount of disk space you need? What is the amount of CPUs you need? So all these are captured, container profile is created. Using this, we go ahead and do the build on a Kubernetes environment. A build results in an actual build of the Docker image for your source code using all your build parameters and build tools, which we all have captured and also applied the container profile. Once constructed, we push to a Docker registry, we support public, private, on-prem, SAS, everything. And once you've done this, you create a service group in Kubernetes and we add it to a create a deployment template and then add it to our existing template. So once you have a template ready, you can go deploy to Kubernetes or you can just generate Helm chart which can then be downloaded and activated and deployed anywhere. So this entire modernization happens through a few clicks if you choose or by single command line if you choose. So we hope to show you all that. Next slide please. So this talk is about Gopaddle Lite. What I covered previously is what Gopaddle does. Gopaddle has a community lite edition which we are very happy to announce in this conference and then make it available to everybody. It's a community edition of Gopaddle. We also have our on-prem or enterprise version. We also have a SAS version which has a lot many more features. This community edition is self-hosted. It's lifetime free. It's for developers, startups, learners and for all kinds of evaluation you want to do. It is available as an add-on to MicroKates. As you know in MicroKates you have an add-on that you can enable and disable and it's that mechanism we have used and we will show you all that. It runs on desktops, VMs and host machines, simple to install and use which again we will show. It currently is supported on GitHub with token-based authentication. It could be managed and self-hosted too. In coming releases we will be also supporting single sign-on and then on GitHub. We will also be supporting for GitLab and Bitbucket. Builds, unlimited builds you can do as many builds as you want. Docker registries, it supports private, public like Harbor. It does not have currently multi-cloud and multi-user capabilities in this version. All these capabilities are available in our enterprise versions and also in our SAS versions. This is a light edition. It is expected to be run on a standalone home Kubernetes in a box, isn't it? It is for end-to-end DevOps experience with production grade quality on a single box. On your laptop you can have a complete automation and modernization on MicroKates. Therefore it is on the local one. Hence there is no multi-cloud and multi-user in this light edition that is all. It is available through our enterprise as well as SAS versions. It has all the monitoring and logging, continuous integration, alerts and notifications, most of which we will be able to show you. In summary what I can say is go paddle light is going to dramatically increase productivity through your entire life cycle. The increase of productivity through your life cycle is the key value of go paddle light and we will go over to the next slides to experience it. Next slide Gayatri. All right, I will hand it over to Gayatri who will take you through the installation of this go paddle light and then show you a demo. Thank you all. Thank you Kishore. So far Kishore has talked about the various problems or hurdles faced by the developers during the onboarding process and finally he spoke about how the go paddle resolved those problems. Now I am going to show you the demo of the go paddle light edition. For that you have to do is to install the microcators on your environment and you have to execute these two commands. It is flexible for all the environments. Already Kishore mentions you can install this on your local desktop or maybe VM or any host as well. So for enabling the go paddle light edition you can see you have to provide the hyphen v and hyphen v option. This is both the i and v are the optional parents. Here hyphen i indicates that the static IP address of the instance. For example suppose you are going to install this light edition into your AWS instance means here you have to provide the public IP address of the AWS instance. Then suppose you are not going to, suppose you haven't provided this hyphen i option means it will automatically take your internal IP address of your VM or mission. Suppose you wish to install this go paddle light edition on your local mission. That time you are not providing this hyphen i option means it will automatically pick the local host as the static IP address and the hyphen v option is the version of the go paddle light edition. Suppose you haven't provided the value it will take the latest version of the go paddle light edition. Here also one more thing you have to note like you haven't provided this hyphen i option means it will like you can't able to do the CICD kind of stuff. After like after installing the after enabling this go paddle light add-on you will get the access endpoints like this. For our demo purpose already I have brought up one light edition in my mission. Here you can see the access endpoint of that. Just copy and paste it over on your browser. Once you like open this on your browser initially it will land you to the land you through the like license agreement page. In that in that license agreement page you have to provide your email address and you have to agree the license agreement and once you are agreed the license agreement you will get the default password for your this light edition. For my case I already have done the license agreement and here you can see my a default password. Once you logged in to the logged into the light edition you will land into the dashboard of the light environment. Here you can see various activities logs and metrics like all the activities you are done through the platform. First of all this is the built-in trends. This will show you the past one weeks like succeeded and failed build information and the second the next graph is the security trends graph. This will show you the like vulnerabilities which are discovered through which are discovered from your Docker image during the build phase. Also it is categorized in various you know it is categorized under various criteria. Then you can see here you can see the recent builds and here you can see all the average build duration. Then coming to the alerts and events section here it will show all the application and the cluster related events. If suppose you click on the more option it will show the complete events of the of your running applications. Here you can see some of the metrics logs. So like the main advantage of this event like event metrics is suppose any of your services goes down and or you have like suppose any of the service goes down means here you can easily capture and you can easily find out which service goes down and which application is causing the problem and all. Then already I mentioned about the license agreement part right in that like once you agreed the license as soon as like the it will like register your local environment into the go paddle light edition. Here is the my local environment and here you can see some of the add-ons like Prometheus Prometheus and exporters and the Grafana. So this is the this is installed as part of the cluster registration. Then during the like while talking Kishore he explains about the pre-built available templates know you can get all the available pre-built templates from here and you can use those templates for your deployment deployments. But suppose in case if you want to onboard your your own application like your own microservices application into Kubernetes means maybe you can use this quick start wizard option with that you can onboard your source code based application from scratch without writing any docker or yaml files yeah and then for that you have to feed all these steps only like first step you can see the AP token information this is the personal access token of the go paddle light edition you can this is used during the initialization process you can use the default option itself. Then the next step is the cluster info here this cluster is used for building and deploying your source code application into the Kubernetes. And the next step is the docker registry here you can the docker registry is used for like pushing your image and pulling the image back for back to the deployment phase for that you just need to register your docker hub registry into the go paddle light platform and the next step is the allocation policy allocation policy means like how much capacity you requires for building and deploying your source code based project you can set these like CPU and memory request and limits based on your source code project. Next step is the source code option like your project is maintaining under github repository means you have to register your github account in the go paddle light edition. Suppose your projects are maintained as a public repo means you just need to use this public source code account option and go ahead with the next rest of the step. But suppose in case your application is maintained by the maintained under as a private repo you just need to register your github account into the light edition for that you just need to generate one personal github personal access token and with that through that you can able to register here. Also apart from this github go paddle is supporting both big bucket and github kind of sign-on single sign-on way of registration as well but as of now in this particular version the github only we are provided. I'm using the public option and the next is the repository session. The repository part you have to provide the flow neural of your source code project for mind taking this application. Once you provided the flow neural then you have to specify the branch information. Then next one is the project type. Here you can write note you can see the node js and java applications but the go paddle light or go paddle edition is not restricted to these two languages. You can onboard any kind of Linux workloads like python, go land or even darknet code kind of application and all. You can onboard it through the light edition go paddle light edition. Then third is the base image. This base image is used for building and deploying your application. Then third is the build on commit option. Build on commit means CICD option. In case you enable this option as soon as you are doing some new code commits and new code changes and once you push into your github repository it automatically build your source code project and generate as a docker image. But one restriction here is if you are choosing like earlier in the source code option I have used with the public repository. It is not available for public repository. If you chosen the private it will available. Then next option is the vulnerability scan option. This will tell you this will list you the vulnerabilities which are discovered in your like a docker image during the build phase. Then next option is the override environment variables. If you enable this option if is there any conflict between the base image which you provided and with your environment means it will override the ENVs with your environment's ENV variables. Then the application start duration. The application start duration like is the total time taken for like running your source code project. Then next step is the quick time check for the winding up in maybe some five minutes. Next is the environment variables section. Here you can suppose your source code project has any database or any like database username or password kind of like dependency is that then you can add the environment variables as here. If there is no external ENVs you can skip that part. Then second one is then the next step is the scripts part. Here you can provide all the like a script which are used for building and running your source code application. The builder script indicates the how to build your source code project and the start script indicates how to run your source code project and health check script indicates health check script is used before validating whether your services are running or not. Then stop script is used before like all the discoveries are done. Then this script is used to like stop your process. Like this then one more thing you have to know like this scripts are just assemble scripts only according to your project like based on your source code project it will change. Then once you are done like once you are added your source like scripts then you have to download the script but you have to provide the exact path of the scripts file then once everything is done you just need to copy this whole script into your mission. It will like mission it will do the onboarding process but before that you have to make sure you already installed Docker in your mission and make sure it is up and running. Like for the time constraint I have recorded this part in a part as video so I will quickly show you the so now you can see once I pasted the like command into my terminal it will automatically clone your source code project and it will initiate the gpctl. gpctl is the command line utility for a compatible platform then after that it will analyze the project and detect the um like a project type here the project type is the view view js and it will show you the conflicted environment variables and all like both like path and node version is conflicted here and also it will show you the uh like command and entry point information as well after that it will execute your uh like start uh execute your uh microservices and after that it will start the uh containerization uh process as part of the containerization process it will generate all the uh like uh containers deployment templates and all uh now you can see it is uh creating the uh like uh container repository distribution information and all now the build is got triggered uh so it will uh take few minutes and after it will deploy your source code application uh you can see uh here the application uh launch is initiated and i will uh quickly show you the uh like uh after uh the application dashboard as with i already onboarded uh uh through quick start wizard uh tic tac view is the one of that application here you can see uh you can access this application using this you are in point obviously i'm using aws instance so i'm taking the for accessing it outside i'm taking the public ip address so here you can see uh the application uh is accessible outside and uh this is the uh service dashboard here it will list all the uh services once you clicked on the service it will uh show you the detailed information about your uh services here it uh you can uh get all the uh cpu and memory which are used by uh this particular uh service and similarly you can see the cpu usage and memory usage uh graph as well then uh under replicas uh section uh you can see the various uh it will list all the replicas and once you clicked on the replicas it will land you to the replicas dashboard and this is the container uh list once you clicked on the container it will show you the detailed content container information also uh like in in case any errors or any failures happens uh you can easily uh you know a debug from this platform itself so for that the terminal option is available uh you can access this particular container uh through this terminal also uh the uh the provided light environment uh provides uh various uh container and replica and all kind of logging and all logging strategies as well then uh quickly i'll show you uh i will uh show you the build a dashboard as well here is the build a dashboard here you can see uh the vulnerabilities uh information and all then once you clicked on the build a page uh here it will show the detailed view of the vulnerability information and the source code uh project information um then here you can see all the uh like which build environment is used and uh the build is happened or scheduled on which mode and how much uh request and uh cpu limit is used for building this particular container and all then um here is the complete uh build log uh like suppose in case you you have any issue with the build uh it will uh here itself you can uh easily figure out and you can debug your uh container build and all then uh this is the vulnerability log here you can uh see the detailed vulnerability uh information also uh like as part of the uh like template generation uh you can uh generate your um like your source code project as uh helm chat as well but right now uh the light doesn't have the uh doesn't have the support uh but the like uh like sass or on-premise version of gopad it has uh the support as well then here you can see like once uh like all the um uh the content uh like once it ends it will show you the access you are of the uh project uh this you can directly uh use this URL to access your project outside without going um and visiting the UI also then suppose if you want to uh delete the resources which are created as part of the initial like uh this initialization process you can this use this command and clean up those resources and yeah finally you can um access or you can try this out-of-box DevOps tool uh that is go paddle light uh in your mission like you can use this github repository for that uh suppose you have any queries uh related to the uh like uh like go paddle light you can reach you out through the through our Slack channels as well yep thank you thank you all thanks