 Če. Če so, občasno zrbišam, nekaj pa nekaj nebo veseli. Imamo, da je to, kar je svek še, da je zelo izunili, in da je zap rebellijačne in zelo, da je ta propren, nekaj je to, da je zelo, da je to, da je to zelo, nekaj je, da je to zelo, da je to zelo, nekaj je to, da je to zelo, nekaj je to, da je to zelo, In najbolj teželj, da se počunja, da teželj vse, da je očaj naša, da teželj bo, da vse počunja, da je naša, da je očaj naša. Zdaj, izgledaj se za ovaj ljubi za taj možus. Iroč da vsi nas začelj, imam Behan z SAP. In sem vsečen na vsečenu OpenStack CPI projekte, in sem vsečen na vsečenu OpenStack projekte. Mi je Konega Šumaha, sem vsečen na Zuse Linux, sem vsečen vsečen na vsečenu Cloud and Systems Management Departement, tako da smo vsečenu OpenStack, in sem vsečen vsečen na vsečenu Cloud Foundry initiative, da smo vsečenu Zuse, da smo vsečenu in vsečenu in vsečenu. J敏lepeljno resipićo in zvoj očnega na plaque, da smo vsečenu zuse vsečenu OpenStack, tako da smo vsečenu počatno vsečenu. Skupajte vsečenu, da smo vsečenu in vsečenu vsečenu na Cloud Foundry. Zato sem jaz bore down ml Shah. Sudi sem zelo vsečenu, in zelo vsečenu posledajte vsečenu, kako jer izvradi, in so. Zelo, da je to veliko in občasno projekte. Tko je to poživno, da je tudi vse, da smo počučati, kaj smo počučati, da smo počučati. Zelo, njih ne. Zato smo počučati. Ne, da smo počučati in se počučati. Proste, da me ne bošte. Ne, da se ne bošte. Ne, da se ne bošte. Ne, da se ne bošte. Ne, da se ne bošte. tako da prej vse ne idete, ne bovre, ne bude koženje, ne bovre, ni ne bovre obč mixture, ne bovre, subtitelje, ne bovre, ne bovre, ne bovre, ne bovre, ne bovre, na navam, ne bovre, ne je robil konfigurati, ne bovre's, ne bovre, ne bovre, ne bovre, ne bovre, ne bovre, ne bovre, ne je tako zelo, ne bovre, ne bovre in ne bovre. Dobro ne je bil, kot čut ven vse. So, are you okay with Kilo, or Liberty, or maybe Mitaka? What do you need? Just tell me what you need, and I will set up an open stack for you. Hmm, it sounds complicated. I don't know. I'm just a developer. I want to deploy my crowd founder, and it just has to work. Sorry. Yeah, so, can you give me some instructions how to do that, and tell me away how to check that my installation is good for you? Yeah, yeah, you are lucky. I'm working on the Bosch OpenStack CPI project, and we have a test suite, which you can use to validate the OpenStack. You know, it's easy to set up the automated tests. You just have to set up concourse. It's a concourse pipeline. Concourse is a CI system, which supports pipelines. To do this, first you have to deploy a director. Then you can deploy concourse, and after that you can configure and upload the pipeline and just run it. So, basically, first you need to prepare an OpenStack project to deploy the director, just create a project, some networks, people, security groups, and so on. It should be easy stuff for you. I think it's... After that, you can go to Bosch.io. There is a sample manifest how to deploy the Bosch director. Just copy it. There are some properties which you can have to replace, and then Bosch deploy will work. And when you have the Bosch director, you can go to the beautiful web page of concourse, and then you can find instruction how to deploy concourse. It's just for the steps. It should be easy stuff. And after that, you can configure the pipeline. There are some properties which you have to set, but they are well-named and self-explaining. And, yeah, it should be easy. And then you can run the automated test pipeline. And, yeah, don't forget to execute the manual validation steps described on cloudfoundry.org. Does it answer your question? Can I get an answer until tomorrow? Oh, okay, yeah. Sounds straightforward. I didn't get the first thing at the second thing, but I will try my best and follow the instruction. It seems a little bit complex. So isn't there a better way how to do that? Maybe, yeah, maybe you have some feedback for us, and we can improve everything. Okay, so that's where we started. So this is how we got into that. And if you go to the next slide, we saw that there is actually a need to have all these instructions, all this expert knowledge, all these things you need to know to be able to answer the question. Is my OpenStack ready for cloudfoundry? Can I actually run Bosch on it? Can I run cloudfoundry on top of it? It's documented, but there's a lot to know. And there are many situations where you actually need to answer this question. So when you set up a fresh system, you need to figure out if it actually works. When you update your OpenStack installation, you might need to recheck if it still fulfills the requirements. Also when you have some trouble with running it and there's some issue that something breaks, it would be nice to be easily be able to check if it actually still works and if everything is in place you need so that you don't have to start with debugging your OpenStack instance before you actually get to your Bosch or cloudfoundry deployments. So what we thought is that it actually would be nice to put all this expert knowledge and all these instructions we have seen, briefly seen into something which is easy to use, which is as easy to use as the other tools you use when you are using cloudfoundry. Pushing applications is so easy. Just one command and everything works and you don't need to know about all the complexity behind that. So taking this period of simplicity, we thought it would be really nice to have one tool which encapsulates all these questions and gives an answer to this question, is my OpenStack ready for that? And that's where we started and where we started to develop something which gives an easier answer to the question, will it run on my OpenStack than all the manual instructions? Yep. Before we dive in deeper, let's take an overview what kind of scenario we are talking about. So we are talking about an infrastructure where you have OpenStack as infrastructure. We have cloudfoundry on top of OpenStack and maybe there are services which are running on top of OpenStack and cloudfoundry apps. These artifacts are building your product and we have Bosch, which is a release engineering tool. You can use Bosch to deploy your product to manage the lifecycle and monitor your product. And Bosch interacts with the infrastructure. To do this, Bosch uses CPI. In this particular case we have the Bosch OpenStack CPI. But there are also CPIs for all other infrastructures which Bosch supports, for example AWS, Azure, or vCloud vSphere. And Bosch is talking with the CPI over APIs, which are the same for all the infrastructures. And the CPI translates the API calls to infrastructure-specific calls. So on this picture we can see that there is Bosch, who has some requirements to OpenStack and we have your product which is also running on top of OpenStack and has its own requirements on OpenStack. So, what we have developed as a solution is a test suite called OpenStack Validator. It's implemented in Ruby and it's just test cases which are run by Aspect. Aspect is a test framework. So we have different kind of tests here. We have tests which are going through the CPI. So they call the same APIs which Bosch is calling using. And we have different tests which directly calls OpenStack APIs to tests like API rate limit or API versions and so on. And we have also tests which use SSH to SSH into VMs in the OpenStack environment. And, to test whether you have internet connectivity from the OpenStack to the outside or how is the connection between VMs in the OpenStack. Can you ping one VM from another? So, you can see that we want to validate OpenStack for Bosch but also for your product. And it will be possible also to implement, extend this validation test suite and implement your own test for your specific product. Let's have a quick demo. I am not going to run now the validation test suite but we have the current state of the validator has these test cases. It's just an executable which you can run. You have to provide CPI release which is used to run the test. Also a stem cell version stem cell, Bosch stem cell which is used to launch the VMs and also a configuration. The validator wants to know where your OpenStack is how to connect which project, which network, and so on. And optionally you can provide also a working directory. And the test, they say what's possible and what's not possible when something went wrong. There are error messages which for now doesn't look so good but we are planning to implement a custom reporter custom formator for our spec and you will get very nice error messages and also hints when possible what can be changed to improve this or to avoid this error. And a test case looks this is a typical test case with the CPI. It's you have a helper method where you can provide an error message. When something went wrong, the error message will be print out and also you have the CPI in the context and you can execute an action with the CPI and validate the error message at the end. The result. So to sum up the way to is unexecutable, you need a configuration, CPI release and stem cell it will extract everything, install the CPI use it to execute the test and at the end you will get a nice error nice report about what's good and what's wrong with your open stack. So, Cornelius, does this works better? This looks much easier. That's something I can remember. With a tool like this, I can work and I don't have to know about all the places you showed me before. This sounds great. Cool. I will now go a little bit into the experience we gained with that. As a little bit of background we started to work with SAP on the stack CPI, the cloud provider interface for open stack of Bosch end of last year and we started the collaboration and part of that as one of the first things we did was setting up a test system to actually run the CI for open stack on different versions. So we got started with setting up a system and one of the things which emerged there which we came back again we had to communicate what do we need to set up how do we need to configure it what are the right settings we had to communicate that within the groups which were involved with that, setting up the open stack instance, setting up the configuration providing the network and so on. And one of the topics which we came back to was that actually it's not so easy to define that and it's documented and you can try it out but there was a lot of experimentation involved so this topic and of course actually having a tool to check it would simplify things quite a bit and to go a little bit more into the specific experience here so when we set things up one thing we do a lot for open stack testing is actually setting up open stack in a virtualized environment with nested virtualization which works great for some use cases but in some cases the performance characteristics is not what you want because the nested virtualization actually takes some performance away so that's one of the things we ran into that we started to set up a nested virtualized open stack instance but then when actually deploying we realized it runs for a long time and it compiles things and the performance there actually is not sufficient and not what we would have expected so this was something which was we ran through just trying to set things up but then in the end we realized okay that's not good enough we have to do it in a different way also some other things for the network configuration that's something which is there are many options and it depends on how you set it up how you give access to the open stack system the questions of connecting within open stack from the open stack instances to giving access to the people at SAP to the test system so they could access everything with the same, with the right level of access also with HTTPS so this was also something which needed a lot of manual settings setting security groups setting up firewalls setting up the network there and some manual steps to just test does it work or not and some iterations to go through to just have one answer is my network setup correct do I have everything in place and have a simple green answer or a red answer with a note okay please add this port or add this service so that was another area where it would have been nice to have something there also another part of the network setup MTU settings are always something depending on how you set things up how you layer the networks in the right way also depending on what kind of technology use there, what kind of settings to use there and that's also something where we ran into some issues where we just thought can you please tell us how to do it what to do and what settings do you need and basically the answer was make it work just has to work and that's actually what we wanted to do but to get into the explicit details we had to put together the expert knowledge and figure that so from this perspective it would have been nice to actually already have this tool and bien just showed to be able to tell is my OpenStack instance ready and give an answer to the questions okay what do I have to do to to make it ready so from this perspective we started that's the state where we are right now and so for the future as a small outlook how we want to continue with that what would be possible to do there so at the moment we cover mostly the Bosch specific area we use the CPI there which is nice because it uses the same interface the same tool what actually then the production code would use but we want to cover the full stack so that we really have a conclusive answer as much as that is possible maybe the OpenStack layer but also covering the Bosch layer covering the Cloud Foundry layer and make this more complete and for this of course some things might be implicit or might already work you might run into issues when working on this when setting up new things or when changing things so there it has to be some kind of continuous improvement so we can actually run into so let's add an additional check to check that so that we can share some of this experience and make it more simple for more people so this is where we I think need some continuous improvement and some adding things and for that also it would be nice to make it more easy to at least test add some kind of plug-in interface or something so that you can also customize it for your own needs so maybe you have a product which needs specific features specific settings so that you could just easily add this to the test tool and then whoever is setting up your OpenStack instance to run your product on can just easily call the tool and get an answer for this product I need the specific setting or something so this is more or less OpenStack focused but as we showed we are using the actual CPI interface so we have some tests which are specific to OpenStack but most of the tests actually already use the abstraction layer which also Bosch uses to abstract the cloud specifics so with this in mind it actually would be quite easy to extend that to other platforms and to other infrastructure as a service systems so that we could share most of the test code to actually do the testing through the CPI and we wouldn't have to write specific the full stack of tests again and again for every other cloud infrastructure you might want to use below that so this isn't topic which we are interested in also to get some discussion get your input what you think what would work for you how we could extend that what would be useful and how we can put that together with other things which are happening and that's where we are going the code is open source so if you want to use that it's on github in the cloud found reincubator project so you have the URL there you will find it there and we are here open to discussions we also have a package for those of you who use the suzer operating system we have an RPM build in the build service where you can actually just download the validator and you can just execute that and we are open to discussions so please talk to us give us your comments and tell us what you think thank you so are there questions right now combination or a set of combinations that will work in this version of stencil etc are there tests in that to recommend that and the second thing which I have noticed on watch.io initially in the past there used to be documentation for example if you are thinking of this stencil this is the combination of cpi where you have stencils what will work probably you lost it maybe I am not able to see it that range is being maintained the question is one part of the issue is to validate open stack and the other one is which combination of cpi stem cell should I take this for the open stack we are working on this in the future there will be on watch.io you will have a range of stem cell and cpi which are tested together and yeah it's an ongoing effort it will be there are there other questions no they are implemented in ruby we don't use now tempest we are in discussion about this and maybe we can combine efforts in the future but for now they are implemented in ruby yeah at the moment we are coming from the Bosch site so using ruby as a language using the cpi to interface with open stack tempest is on the other side so there certainly is some combination possible at the moment we are coming from the Bosch site ok, thank you and bye