 Hello, hello everyone, thank you for tuning in my talk. And then the talk, today I want to give you this like, building your own data distributions, which is that you can possibly share it in the cloud, up in there. And I need to sense my point, because the crowdwell has encouraged me to package that, but this is a new service, so we can't get it in the project. So we use this kind of framework, to get our own project involved. So here I want to be sharing those kinds of things with you. So, I'm going to use myself. My name is Andrew Lee, and I'm from Taiwan, and we go from Kobe to Denchil, which is my original name. And I've been modeling in the other projects since 2009. And before I did it, I also do the marketing package. So I've had more than 20 years of experience of doing marketing and stuff. And I've been working in the cloud run for only seven years. I'm really building the past project. And the cloud run is the whole business comes close to the scene of the meeting. And we have all lots of crime projects that we don't get our own product, but we help our client to deal with the problem. So in the building, we have a team that I use to do the editing, and also set up the cost voucher and view the packages. And also, nowadays, we also integrate the DSC line. So I'm going to start by using one of that. In this talk, I'm just focusing on the obvious part and maybe the next time, the chance I will work around it in this time. So that's the overview. So what is the obvious part of it? We're just looking at the plastic cost voucher or we need to do the package for our customer. So we have one source package to build on one package of care. And then you should prepare what you should do. You should prepare the shoes, right? So every time I do the build, I do the shoes, I do the shoes. And I ensure that the client will do the shoes. Once you have one view, then you have one shoes. And you have two views that you can do shoes. And also, you need to publish, you know, parts with the kind of impact it's going to be possible. And just imagine that in your project, a company may have, you know, had to self-execute more and more users and then you can move them as new institutions. And you get more and more and more views. For example, if you do the original idea, what is the strategy? What is the master? The strategy is the previous release, right? And the master's career is stable release. And just imagine that you have a new institution and also a new team on it. So again, we see more and more compounding. So we need a normal view of the type of focus that you may have more than you can choose. And then, if you want to add a support to your user, then you get more and more. Just imagine that this is kind of the thing to come to the max, right? If you want to support your software to, you know, people who do the execution and also the architecture for your customer, then you need a company, a company that shows you how to do that. And then you will have each of them and then you will have the final revenue. So it's really, really nice. So here, we just want to fix the mess. So we found the solution. There's a powerful open source and we should say a powerful open source that is related to this kind of software. And it's provided open view service. So you can just choose what of your favorite main solution of the cloud. And then you need to go to the doctor. You know, I choose to stay there and also, you know, you need to go to the doctor. And then you need to do the contendance and things. And also, you need to do the obvious inside the contender. And that, because everything of the articles, many of the work will be ultimately done by this contender who is the obvious in the process. So let's see the revenue. Here is the the screenshot. You can see that this is a catch on the obvious every time you start to upload the source package, the obvious automatically debuted by the children. We used to have a new children doing one on the application with 6.5 and start to build the package. So they show that every time the package is going to be automated consistently. And then, and also for this new sort of project you can see that obvious for the different distributions and also multiple different applications. But only one source option. So you have this kind of dynamic infrastructure and you just the white source call and the obvious handle the classic way has many, many important ideas. So you have a new library and then you have a building a workflow. So just imagine that you have some repositories for production. But sometimes you need to view the views of the new library you can not just publish that. You need to test. So all these views in a branch the real QA, the fetch binary and for the test you go into the production and you can see the view process. So the package submit and view you can do the test. And then you submit here and QA and you don't have something to test. For our internal usage we have a jitter program that you can also use in library to test. Once that test passed then we get some jitter updated status. You can see for who arriving to the production repository. See, this is an example that I reviewed and also many published this kind of repository. So that on the daily basis you can version of this app game. Things help not bring your bankers. And for user, yes, this is just an advantage that is obvious because the vision is obvious. It has a built-in CVS line version control. So each source package you can upload and you can get a track on the vision control that you can upload. So if you do something that you found this source package upload and no time duration then you can just check out the previous one and you can go through and see the differences. And those are the automatically calculated new dependence at the stage of the package include. Just imagine you view the package but it has a loss of also dependencies. And it will automatically be calculated which package should be first, the priority. So you can see that we included all the source packages that you can start to view. And also if anything the new dependence it will show that it can't be solved. So if you come down to the unresolved level you can see what kind of new dependence is missing for your past story. Simple. And then also the basis control list. So we can control that in a different project. Sometimes we know team, different team from a different project. And we have a different project on the whole user system. We have an SS1 node where we have people who have access, can multiply, can couple. Those are the dependencies in the package. And then how do we set up? Set up is easy. Now we have value that they already need. So I was going to compare the .container. So what do you do? You just need to choose your own .container. And then you can fetch the .container. And then once you can fetch the .container. There is a link file and it shows you that how you can view the .container all the way. And also once you do that you can use the .container. And then the .container is done. So here is the .container. We just have a demo. So we use OBS API. The name for the .MS for the .container. So here it just asks us to your OBS container once you bring it up. Then you just go to the UI of OBS and get the .container. And then you see that your .container was at least kind of an ego OBS page. You can also see the username and password as the name of the version. Logging before having a username and password as you said. And once you're logged in then you see that the page can start to configure. But configure on the UI takes many steps. So that's why it remains single. It's a script to do the .container setup. So we need to setup the .tot. .tot is a downloadable event. Which is meant that the page has so many dependencies. But we don't want to have a whole data mirror or root mirror or whatever. We only want the page dependencies. So they have a design called .tot. .tot. .tot. .tot. .tot. So here is a script you can setup a .tot. Then you just go to the OBS tests and you can find the script is called .tot. There's a one of the scripts you can see that the user has seen this. There's a script that is of .tot. There was a .tot. So we do this. Let's do this. And then there's one this script is of .tot. And there's also a page of a load of .tot. And then there's a project. It's an update. Then after you run this script the .tot is being configured and the code manager is followed. So now you go back to OBS and you can see that the .tot has been configured. And also there's a project already created when you go inside the project and you can see it's a player already and it starts to show that it's the distribution and it starts to view the binary packages. Now it shows that the code is because the PLB takes some time to download the packages. You see that? How many packages? More than one every package. Every package. So it doesn't go in a while to the bandwidth and it becomes yeah, you'll get a package and then it starts to view and you can see it use something like that. That seems to be the obvious component so that if you want to manage your OBS fast structure, you can have a best idea about this. So this main component has three parts. The one part is that the webcom app is a Ruby thread stack. It's why we call it a SQL service and this is the obvious thing. It also invades the package and also makes it obvious. And then the main service is two different things. One is the OBS server and OBS server is one of the events to manage those kind of event view package. And then the OBS worker is actually the computer powered to view and the worker is like anytime you fetch that page view and view from the machine. So the OBS worker can run on different applications so you can use different applications. In other tools, you can use the version or setup and also you can use the OBS command tool. For example the obvious thing that DOE has served is very simple. You can see how I set up the DOE command patch and upload the package. And those are the data which is lazy to tag long time back. So in stadium we use the deep boot. So we also create the deep boot plugin so you can use a lot of deep boot syntax to upload your source so here let's see the workflow of the OBS command. So here is the example. The first one that we contribute to the OBS scene we should use the command to complete the SSL account and also go to account and after this command then we will generate the OBS Rc5 command tool. So here we just example we use the OBS command. If you have to create the OBS you can use the OBS command here and then the password and we will also correct to get the command like it's a soft sign certificate and just complete it all. Okay and then you can use the OBS scene C0, C0 means check out, same as the OBS command right? So you take out the text package, you know the text project, project contents so you can see that the text project is going to check out and this text project was previously generated by the OBS certificate. And you can check out the source package. And now you get the deep source package will generate the stadium package and we will use the stadium package command to always check out the source package. Once you check out the package you can go inside you can see that the order is the deep side and this is the order content of this package and now you can do the for example we do some derivation of the source package on the new version later and then after that we can look at some here. It's a very very simple presentation to show you how it basically that they how that works. If you want to see that more detail you can look at the developer of the branch and also the policy. I don't talk too much about that part, it's focused on OBS so we go back here and you see that after we form the package we find the changeable the stadium package. So after that it's a make a new revision. Okay that's there. Okay we will hand the branch A1 the rest of the revision for the OBS problem okay and then we save the changeable and then we build the source package and after the source package build we go back to the previous folder and you see that totally preparation. Why is it O1? Why is it O1? It's a branch A1 generated. It is a folder you can use the voice command to you see they always add the remove so we will manually update the source package in the CVS and now we will upload the OBS in my CRS a read and then we can okay and then we go back to the Y and you can see that the new revision has been uploaded to OBS in more different applications so once you build it you can go through it you can see that it will fail and you can see that it failed with the source package okay this is an example for the OBS so we then we get the source package and then the first package we do the address command and we do OBS people and then there's a test and project and then most of it is fine you use this command it will be uploaded to the source package okay the same way on the front page you can see that the recent update is in the status and in the status you can see there's a protocol because we've seen a few dependencies so you nearly will handle that and then try to create one for you okay and after that we can also share some idea of how we can optimize those things but what we do that we have also in the software called Verge Almesque this is our software much how we can keep tracking for instance you have software product and based on one of our some of the distributions for example it's basically a bundle of distributions and then always we want to keep changing update update update so we need to create a new product and then you can use this software to load a new configuration and then patch a new update and then the software will be able to do three merges to do and after the merge you generate a source package and you have to load it so you can see if this update it will go on for more years before you let your product actually pass through it so here is an example that there is a package that is committed by Verge Almesque so you can see those are on the good point and those are all backtracking so you have some backtracking there you can also be viewing the OBS with your backtracking so here is a simple we use OBS to trigger the update of status another backtracking so if we can notify the QA it will do the test and it will automatically update status automatically it will do the assignment for the test and after QA it will do the assignment test ask if it is up and it will load the package if it failed it will also message some messages and it will send back the new things which will be learning from the project and also if you can also do the package update here is an example we want to do the package update here is an example in Verge that the package already completed and it starts to do the source package and source package will be very integrated and that means it will be automatically sending the source package to the OBS you can even add the build the whole distribution image in the package that's how we do the build the jumpings will trigger the script and it will attach the binary package binary package is on the OBS repository and it will also direct the package and also we can use Lava to run the open-v test on the HL firmware and Lava is a project behind the internal design it's just a case of the internal that builds on the HL hardware and this one we can test and manage that the visually test search to do the distribution image that you can have a lot of open-v to do the image on HL hardware and see if that works that's a good repair so I hope it's a good idea so you might talk now you will learn that how is it better to use this hardware in class to help you build it better so set the time for your team and remember that you have to know how to do the setup it's very easy to stage the object and it will also come in so you can work through a very easy simple command and also I explained you that the obvious components so you can have an idea about how to do that and also do well on my relation to create your identity okay so my problem is here and I need you to think that the main one if I was able to help I can now make the another here has anybody got any question as I understand I think OBS works only for Debian-based or other Linux architecture that's its work OBS is developed by OpenSUSE so it's used to not get based on it and we use this by so we can contribute to the upstream OpenSUSE and we still have some changes and those changes are already in the Debian package so it's easy to use the Debian package but also be aware that the Debian package is not the same like the one from OpenSUSE it doesn't have the option to support so I don't encourage you to run such services in Debian package on the public I think that actually it's better to move very fast on the real world Debian remains a stable release for this one I encourage you to use the local contender internal network not installed outside and then OBS supports the non-papier-based distribution in Debian if you want to see the more detail I encourage you to get OpenSUSE and also they have the main group there you can use that group to understand how to do the non-papier-based setup of OBS thank you okay, thank you Mr. Andrew Lee