 Okay thank you everybody for coming. I'm Max from IBM and today I have the great privilege really to present with Maria and let me start by saying first thing is that everybody here if you're coming to hopefully learn something about Bosch you know a little bit about Bosch I'm looking for Dimitri I can't see him but anyway that's okay he's the brain of Bosch we all know that but the heart in soul is Maria believe me so I'm here in good hands and hopefully you'll learn a lot from what we have to talk about so we're gonna talk about Bosch in it so it's gonna be kind of a back-and-forth a pair of presentation with my colleague Maria and we'll get started there is a live demo hopefully everything works we prayed to the gods so should be okay but we'll see where it goes so first is what is Bosch I mean it's it's a it's a easy question in some ways to answer but also very difficult but the important thing I think is in you know especially Bosch unit is listed here so you think of Bosch as a agnostic tool for deploying infrastructure in deploying large systems Bosch unit is the bootstrapping of that so Bosch unit is that first VM how do you get that first VM started so that you can do the subsequent deployments that you need the other important thing is that as you know Bosch is agnostic so you could do you could use Bosch to deploy not only CF but also one core CI which a lot of people have discussed in any other kind of large scale cloud you know projects or systems so this is the important thing so Bosch unit is new and this is gonna be pretty much the purpose and the topic of this talk today so as we mentioned there is a demo and Maria is gonna start it because it takes about five to ten minutes so hopefully get started so quick all right so let's get down to business and start our demo so we're gonna use Bosch unit to deploy our initial director VM to ALBS infrastructure so we're gonna run Bosch unit deploy command and we're gonna pass in the manifest file so notice that the only input that it takes is a manifest file so Bosch unit is a CLI tool it's using cloud provider interface so cloud provider interface which is CPI is a software that implement specific API that can manage resources in certain infrastructure so CPI is packaged as release and first thing that Bosch unit is doing is installing the CPI locally and then it's using the CPI to create resources in infrastructure after VM and disks are created it configures those VMs as specified in deployment manifest so we're gonna take a look at deploying manifest a little bit later in more detail but let's take a look what are the main components of Bosch unit so stem cell release and deploy manifest are three main components of Bosch that is used to uniquely identify any deployment stem cell is an operating system image it's used by Bosch to create VMs from and release is a software that defines what services are gonna run on that VM and what dependencies they need deploy manifest is a configuration file so let's take a look at deploy manifest so it it's a YAML file and with Bosch unit we try to be consistent with format that's what director is using to manage any other deployments so it's using the same manifest format as Bosch director and it has similar VM and disk lifecycle and also it specifies stem cells and releases in easier way so let's take a look at that deployment manifest that we use to to run our demo so there are several parts in deployment manifest and first you can see the releases which is software that we're gonna install on a VM and you can see that we're gonna install Bosch director and we're gonna install UA UA is user authentication service and we're gonna use it to manage our authentication to Bosch and since we're deploying to AWS we're gonna also use AWS CPI release next we have resource pool section that defines what type of VM we're gonna deploy and the stem cell that we're gonna use to create our VM from so next sections networks disk pools and jobs are all stay consistent with Bosch director the last bit is cloud provider section so this one is unique to Bosch unit and it basically defines some properties that are gonna be used to bootstrap our VM so yeah let's talk more about the history and why we decided to rewrite existing tool so we used to have Bosch micro CLI plug-in which was a gem that was installed along with the Bosch CLI and it was used to create that initial director VM and we called it micro Bosch so that tool worked well but it came with certain limitations and Max here experienced those limitations so he can tell us more about them thank you Maria so let me be clear I work for IBM and large company and when I say when Maria said I experienced the limitation really by poxy so there are people here actually Ben and Jimmy was sitting in the womb that actually experiences every day because these guys are running blue mix and of course maybe many of you have experienced similar limitations so I think part of the biggest problem that we had and this came about like last year discussing with Dimitri and Maria and various people is that blue mix for instance had to fork Bosch because we have our own cloud called software and of course we use other clouds like open stack but we needed to include a CPI for that and of course you know that cloud maybe other people don't care so we had to fork it well once you fork that means that you now have to manage an external piece of code that you know is evolving and of course Bosch is evolving so how do you keep it merged so it's a real pain in the you know where so how do you kind of deals with deal with that in Bosch in it one of the big thing that we did is we externalize the CPI so now you no longer as you if you remember when Maria was showing you the manifest there is a section where you can specify the CPI that CPI exists as a binary it's a completely different piece of code it can be and it can be written in whatever language you want as well so you're gonna see a little bit more of that so it makes it a little bit better for development testing and so on another part was that before you couldn't really combine different releases and as you saw if you remember from the demo Maria demo the manifest included not only the Bosch director but also UA which is a component of Cloud Foundry and UA can be useful for other things because this is where you'll have essentially the users for your Bosch director so by combining those two releases and of course you could have other releases so if you wanted to add concourse to the mix you could also do that another important one was that the installation was difficult because the Bosch director is written in Ruby and of course the CPI code was embedded as part of it you now had essentially have to install Ruby into your you know wherever you wanted to use Bosch and the CLI as well so it made it made things very difficult everything it was written in Ruby which is great to some extent but also difficult because of the fact of the pollution of the gems for instance and certainly startup time is not as good as what we have now we think it's all fixed because in some ways Bosch in it is a rewrite but is it not fully but almost there right so one things we want to talk about specifically is that the CPIs for instance at IBM we are rewriting our CPI in in Go for the software cloud there are other CPIs so we've externalized the different CPIs that makes it basically a better separation of concerns so the CPIs versus the director then even if you write your CPI in Ruby your Ruby environment for your CPI can be very different than your director environment for your CPI those are very specific things that we've experienced pain that we've experienced that we've now essentially solved another part of this is the linear stem cells yeah you're gonna have to keep your head down because yeah thank you yeah so because we we Bosch in it can take arbitrary number of releases and install them on initial VM that means that we no longer need to include CPI release and Bosch release into the stem cell so before we included those releases solely for the purpose of deploying that initial Bosch director VM so now this can be removed that makes our stem cells lighter and we can independently update those stem cells whenever there is operating system updates required and update Bosch release independently when there is new like director changes so we have now releases that we can install several releases so you could see in a demo that we specified Bosch and we installed it alongside of UA so because we can install several several releases we can like extend the features of existing releases by integrating them with some other releases on on that initial VM so that wasn't possible before for that initial VM also it opens door for installing multiple CPIs or not VM and we no longer tied to CPI that our first VM is created on so we can use any CPI and we can now create VMs with specific purpose like for example jumpbox if if you want to deploy VM that doesn't need Bosch director maintains but at the same time you want to utilize Bosch features like deploying manifest and dependency management then you can use Bosch in it tool to deploy that VM so we rewrote our Bosch in it CLI in go and that gives us several adventures so now is distributed as standalone binary it's very easy to install it compared to like previous to Bosch micro CLI plug-in which was a gem you had to like resolve all this gem conflicts so now you just download it put it in your path and run it and it's faster to start up it feels more responsive and as always we're free writing it allows us to address some technical depth there also were made some more improvements it's more item important it has more consistent UI and there is a cleaner separation of deployment workflow and infrastructure management so yeah mark max has had experience developing CPI for software so he can talk more about it sure thank you Maria so of course you know rewriting the CPI was also happening at the same time as some of those Bosch in it you know one of the best programmer I know Dimitri actually would like a warden CPI which you can also use so I look at that and essentially pattern a new CPI after this which you could it's all open source so you can also look at that and I think the important thing to remember is this following picture you can take of this as a Russian director shelling out and talking to the CPI and what what's happening it's actually calling to this binary so this entire part of the CPI just I'll expand it later is the CPI so it's a binary and the director just talked to it and back and forth shelling out so that's pretty much what you now have and it can you know it has to be in the same you know VM but that's kind of what happens now to implement your CPI you really just have to implement the methods that I listed of course it's more complicated than that naturally each one of those methods have parameters and they return some values but pretty much that's all you have to implement and actually you don't have to implement all of them you really have to implement a subset of these essential ones so pretty much create stem cells delete stem cells create VM delete VM has VM and so on so once you implement those you can actually start using your CPI and of course as you need more features you'll have to implement more of it that's pretty much what the new idea so I think you know we're encouraging people to to get to this so Maria is gonna talk about some of the CI update that we did also right so because we separated our CPIs we can now independently manage and maintain and produce CPI release version Bosch release version and stem cells so that allows us to split our one big CI pipeline into several pipelines and we use concourse so we start switching to that and concourse actually can be deployed with Bosch in it and we are planning to generalize that CI pipeline that we used to test our CPIs and CPI developers can use it to to run tests against their CPI so of course I think part of what we're trying to do here is to encourage more right more collaboration more companies joining and we can't really speak for Microsoft and Google but we know that they've been experimenting with it certainly at IBM we have multiple CPIs and you're gonna see those coming I've got a team from China here that we're gonna be working on planning for releasing some of this so we're gonna be adopting this whole Bosch in it very soon hopefully a thousand more will bloom too so we have to go back to the demo keep warmest so here we deployed initial Bosch director VM so you can see that first we install CPI locally then we use that CPI to create our resources in infrastructure so we create VM we created disks and we installed all required dependencies and we started our service which is Bosch director and we put it alongside with UA so now we can use UA to log in into director so let's do that so we have UA configuration that we can use so here's the user let's use it so our UA is configured with custom certificates so I need to pass in my SSL alright so these are the prompts from UA and here we are cool yeah so what you're seeing here is not only the new VM being deployed the different releases including UA being deployed using the UA now to log in so if you know anything about Bosch this should be kind of I don't say mind-blowing but should be interesting to you all right I have one person saying it's mind-blowing thank you okay so to finish up what's next right I mean in many ways Dimitri has set up Bosch IO if you don't know anything about Bosch IO you're interested in Bosch you owe yourself just go to it just check it out it's Bosch.io right so any send us feedback if you're trying Bosch init we want to hear from you email Dimitri so right there don't spam him but feel free to spam him and then he'll respond and then I think the other thing is they both started the whole team started Bosch notes which is where a lot of the ideas of what's coming up you know is being discussed so feel free to go there the one thing we mentioned besides thanking you is this important one so again I'm IBM I'm working with Pivotal I spent a lot of time with them and what you should know is a lot of this doesn't start without a team so a lot of them are in the back of course I mentioned Dimitri multiple time but there's Chris also who did a lot of the work on this you know fun unfortunately left Pivotal but he's been instrumental to this and then we have my Fabio impersonator call who also did quite a bit of the work on this so in many ways I'm sitting in front of you but we owe it to them so thank you for your time and I think we have some time for questions so okay yes so the question is are there plans to rewrite the CLI? I guess the question to our project manager, Dimitri, do you want to add to this? Yes, actually. Other questions we have a little bit of time? Yes? So we completed delegating to UA our authentication mechanism so whatever UA gives you you can use it. Did I answer your question? Any other questions? Well actually yeah Cloud Foundry CF release is using UA so we had to extract UA into separate release to go to integrate it with Bosch. And remember it can be any release right so like for instance concourse or any other project like Great Boris you know as long as there's a release for that product you can you can add it. So repeating the question is can you use Bosch in it to kind of increase the HA of the director? I think we've discussed a lot of things I don't think that's the design at this point but certainly we'd love to hear you know if you try it you know let us know. So yeah we support old manifest format so if you deployed your initial director with micro Bosch tool we're gonna convert that state deployment state into new format for you if you use this tool. There is a path yes to migration basically which is what you're asking yes no it's true I mean I'm gonna spend all Wednesday with Ben and Jimmy discussing what is the path for BlueMix to migrate to this yes we're trying. No it's there it's actually implemented so we we save the state of your micro Bosch VM in a specific file it's like deployment YAML and if you put your manifest in the same folder for Bosch in it where this file is we're gonna find it and convert it into new format that Bosch in it understands. One last question yeah there's environment variable you can use to turn on debugging logs and see more information. Okay thank you Dimitri is here Maria is right here next to me so come and talk to us thank you