 So let me invite Katie up to the stage Excellent welcome to the stage So so while we try to make the laptop plugging in not awkward I'll ask her a question. Oh great. Yeah. Yeah So Katie why don't you tell everybody who you are and what you do? Hi, everyone. I'm Katie Gross. I'm an engineering manager at Pivotal Cloud Foundry And I'm currently enjoying allocation to the build packs team. Awesome. Awesome. So you have a demo for us today I do. Excellent. That sounds good But I think you've also brought a slide first. So why don't we talk about what your demo is going to be and then you could show us some boxes Yeah, absolutely. So, um You want to see the boxes? Sure. Yeah, show me the boxes first. It'll help that the diagram helps everything. Okay. It's boxes So, um, so I'm here today to talk about the build packs teams newest feature set multi build packs We rolled it out about a month and a half ago and using the latest version of the cli you can start using it today Right. Do you want to know what it does? Yeah. Okay. What's what's multi build pack all about? Excellent So it allows you to extend build packs out having to fork them Maintain your own version of them or push an image. Um, most importantly probably you can use more than one language In a single app without forking it. That's kind of cool. There's a lot of potential there How many people here have forked a build pack before Yeah, I see hands raised. You don't have to do that anymore. So pay attention All right. Do we do we want to kind of explain what it's going to do? Absolutely. So, um, this is a very abstract engineers artist interpretation of what's going on. Um If you're familiar with build packs at all, uh, you'll know that classic Classic build packs have three scripts. Um, they use detect compile and release But the new build packs in this paradigm have replaced compile with supply and finalize Which splits out the, um, retrieval of the dependencies and putting them in the right place and getting everything packaged up and ready to go so, um, what you're seeing right here all in abstract is let's say that you have, uh, three build packs You're running in a row. Um For for argument's sake, let's say they're all languages you're familiar with So you have a ruby app that is for some reason shelling out to go and um, Let's see python So this doesn't seem like a good idea. No, I don't recommend it actually although The ones that get stuck in my head are always the bad ideas people told me they do cool So let's make that easier. Yeah Exactly. So your bad ideas like we can help you do it without breaking quite as much. Um, So, yeah, uh in that scenario, let's say, um, you have a python build pack It's just going to run its supply part of the script Then you're going to run your what was the other one? I said go then it'll run the go supply script And then since the ruby build packs the final build pack It'll run its own supply script and also finalize to round everything up So what it's showing is setting up the dependencies directories for each build pack And then finalizing it and getting it ready to ship Awesome. Let's see it. Awesome. Okay so Once this is going on cool All right, um Also before we continue with this you can learn about it in more technical detail shameless plug here at 1115 in the shanghai room Uh, the 1115 shanghai 1115 shanghai downstairs The illustrious steven levine who's already been introduced and myself are going to be talking about um more of the details of The new build packs paradigm and also some of the future applications that we foresee. Cool. That'll be neat But after that plug Cool. Now i'm going to get started staging this app So this is a really simple bare bones sinatra app. Um, not surprisingly one of the build packs it's using is the ruby build pack Sure. Um, you're probably familiar with the ruby build pack What you're probably not familiar with is the one proceeding at the apt build pack At least i don't think you are because we wrote it last week Um It has the distinction of being our first supply build pack. Um supply only So that's digging into the idea that you can get a lot more modular with multi build packs and have really specific single use case Supporting build pack. So what does the app build pack actually do? Yes the apt build pack. Um You might be able to guess from the way apt is spelled it uh It supports apps that require custom apt packages So I can install packages. Yes, you can you can install whatever packages you want Um, I chose kind of dorky one because I was on a lythons of flight And was focusing the fact that I don't know german and it turns out there's a package called translate That is near as I can tell exists exclusively to translate english to german and german to english excellent Yeah So, uh, we've just I want to show this quickly. We've packaged this up. You can see it going through. Um Yeah, you can see that cool You can see it going through apt build pack updating the apt cache Downloading packages and installing packages and then going through all of the usual ruby output you'd be seeing Um, and now We can get it running on port 88 88 Fingers crossed We're doing it live. Yeah fun thing here chip was like it's great. Do it live it invigorates the audience because they want to see if you'll fail Good there you go see I told you they they really really comforting um made preparation fun So, uh, let's see Here we go Continue does it work. Yes. What is what it's doing right now is looking up cloud And telling you all of the ways you can say cloud incidentally the first one it's returning is mushroom cloud. So let's change that um Let's look for a better internet word. Uh, how about kitten Yay internet. Okay, there we go. Yeah, not much better. Um Pretty cool, huh? Yeah But um, this is this is doing something really basic It's just taking like an apt package shelling out and using it directly from whichever build pack you want Which I think is pretty neat and um, I wrote in like five minutes And so can you and what's really neat about it was I noticed that it was running On your local laptop. Yes. Yes. It was using cf local, which is kind of neat Exactly, which I encourage everybody to use. It's really fantastic Especially in case you didn't notice when I walked up here a nice little macbook air mac air So, um, not running with much ram right now and yet running perfectly awesome All right. Well, thank you so much. How about a hand for kitty