 Okay I think this is the last presentation right and thanks everyone for joining this presentation and my name is Xiaopeng and I'm a software developer at doclaw and my GitHub ID is HNXIOP and today I'm bringing the topic improving is still debugging experience. Mirage debug for localized development and basically this is the introduction to introduce a tool that that is for e-steal newcomers and hope there will be more developers to the e-steal project after this presentation and so what is Mirage Debug and in one sentence it is an open source local remote debugging tool for Kubernetes apps and you can use these two to facilitate your localized development and why do you need Mirage Debug. I think you guys may have may have or will have similar experience like me like you want to debug e-steal and you try to configure some of the environmental variables and start the local e-steal and also you found out that there's no side car there's no side car is connected and you still need to configure the pilot agent and also things like network for the existing side cars in the cluster to make the XDS client to connect to the to your local e-steal and maybe another approach is to like build your source code to an image and put it into your real environment and to see if everything is working as expected and these approaches are working but they may not be very friendly to new developers and here with Mirage Debug we can have a seamless debugging experience that mirrors the real environment after doing some easy to set up steps and it also has the IDE integration currently it supports the most popular ideas like JetBrains and VS Code and it also has the multi-language support currently support Go and Rust since this project was actually designed to debug e-steal and eternal and here we have the architecture and you can see we have three parts and the first part is the Mirage itself and the server is a background service that can manage different debugging sessions and the client is just a command line tool that can help you interact with the server and we have the Kubernetes clusters as the second part and the only components involved in this in this Mirage is the API server and the port you want to debug here it is the ECOD and the API server is actually is mainly doing the port forward job and we have the IDE as the third part in this in this part we have the source code and also the local debugger and when we have initialized the debugging configuration you will Mirage debug will will build your source code into the binary file and then both the binary file and the local debugger like the DLV will be copied into the port you want to debug and after this these two copied files will be running as separate processes and there will be a specific port that is being opened to listen to requests from the debugging client and then you can use your local IDE to connect to your remote debugging server in your port and here we have the processes running inside the ECOD with output from ps-ef and to summarize this we have a headless service that is running the debugging tool and listening on a specific port to allow requests from the debug from the debugging client and also we have a EC still pilot discovery service running alongside the debugging tool and this is to allow EC still pilot to to be debugable and after these two processes we are going to like debug it through the local IDE connection by using the port forward and here we can install the Mirage debug by using go install and we will cover the these three commands in the rest of the usage part and we have the unit command here you see there are maybe like many questions but actually the only question you need to type is the first one what is the app name and after this you can just like select default options and hit enter enter and I think then the configuration will be initialized and after we have initialized the configuration we can run Mirage debug config demo to do the rest of the thing so if you config this successfully and you can see there is a Mirage remote debug demo here and you can start your debugging journey and if you do not want to debug again you can use delete command to delete the Mirage debug and we have a quick demo here okay so you can see we're going to start the server and we initiate some debugging configuration and select the default settings and then we can use a config command to do the rest of the thing okay now we can start our debugging mode we will see the checkpoint over there that's pretty simple right so let's move on if you didn't see it clearly you can go to the github repo to see the demo again okay so we have the repo link here and if you have any questions you can go to the Mirage debug repo to ask questions and thanks everyone for joining this presentation