So, lesson eight. The title is Various Two-Dimensional Force Problems. Just looking at some more weird ones and the first one is a classic, it's called the Lawn Mower Problem. I like this question. I like this question. I like this question. I like this question. I like this question. Hopefully the back corner heard that. The Lawn Mower Problem is where you have vertical force components other than gravity in the normal force. We call it the Lawn Mower Problem because the classic one is pushing down the angled handle of the Lawn Mower. You're pushing down as well as pushing sideways. Or if you're pulling on something with a rope, I've also seen it done this way where you're lifting something with a rope at an angle, which means you're doing some lifting and some sliding. Example one. Oh, here's the key idea. Here's the key idea. Here's what's really, really important. In a question like this, normal force is not equal to MG. Just like on a ramp, normal force was not equal to MG. In fact, normal force won't be equal to MG Coast. This is why I said to you guys, well, it's not always MG Coast or MG, most of the time. This is why I didn't have you just memorize last unit where I said I was signed. Parallel is usually signed. Perpendicular is usually coast. Example one. It says find the normal force, find the friction force, and find the acceleration. You know what I'm going to do first? Yeah, and because they drew this force coming in like that, and I like my forces leaving, I'm going to draw my dot over here. So here's my mass. You could label the diagram itself. I just don't like having things coming in. What are the forces acting on this block? Get the obvious ones. Gravity. What else? Normal force. How big? Are we pushing down or are we lifting up on this block? Look at the applied force. Are we pushing down or lifting up with the applied force? Pushing down, which means if you're pushing down harder, what's going to happen to the normal force compared to gravity?  If I was lifting up, I would, and I'd ask you to draw a free body diagram. Can't hint, wink, wink, nudge, nudge. I'll look for a normal force smaller. What else? Well, which way is friction? Which way is this thing going to slide if it can't at all? It's got to go, because you're pushing this way. It's got to go to the right if it's going to go anywhere. So which way is friction? And then we have the applied force, 200. What don't you like about this diagram? What bugs you? There's one force that's making me go, blech. Which one, Matt? The applied force. Why? Because it's at an angle. Hey, if we were clever, what would we do? Components. And that's really the solution to this. I'm going to go, I'll call this 4x and force y. You could also call them parallel and perpendicular, but I think last unit when we were horizontal, we called it x and y. Oh, what angle is that right there? 20 degrees. What's the first thing they ask us to find now that we've done our free body diagram? I don't know the normal force. Oh, but look, look, look, look, look carefully. I know two other forces the same size as the normal force. What two forces are the same size as the normal force? In other words, think what are your forces up and what are your forces pointing down? Pointing up is this, yes? What two forces are pointing down? Is that okay? Do I know M? Check. Do I know G? Check. Do I know that? Trig. Let's see. Opposite adjacent are hypotenuse. And they gave me the hypotenuse. Which trig function? Since this is the first time I've done one of these, I'm not going to take any shortcuts. I'll go to the margin here and I'll write sine 20 equals opposite over hypotenuse. We started taking shortcuts with the ramps because we'd done so many of them. We started saying, oh, it's opposite. It is sine. And it's time-sing. Here, I just wasn't sure. I knew it was sine. I just wasn't sure if I was multiplying by sine or dividing by sine. Man, if I get Fy by itself, what do I do with that 200? Okay. So if I hear you correctly, this is going to be MG plus, oh, Mr. Deweyck, why'd you put an F? Oh, no, this is good. This is good, Mr. Deweyck. Never mind. I wrote it right. Plus 200, Matt, you said? Sine 20. Is that right? There's my normal force. There's my normal force.  I'd love to hear the sound of calculators being opened. So I'll write 558 because this is an answer, so I'll go to three sig figs. I'll keep this number on my calculator, though, anticipating that I'm going to use it. 558 Newtons. B. Jacob, what is B at? What's the second thing they asked me to find? Friction. Friction is what times what? I don't know the- oh, wait a minute. I do know the normal force because I just figured it out. But if we hadn't, I would have said, I don't know the normal force. Oh, but look, look, look, look, look, I know two forces the same size as the normal force. Here, since we found the normal force, we can go friction equals mu Fn, and they told me mu is 0.1, and Fn is 558. You know what? I don't need a calculator. It's 55.8 Newtons. All right, multiplying by 0.1 just moves your decimal one to the left. So far so good? Happy joy. All right, vendor, what's the third thing they want me to find? Okay. Oh, who's winning? Now, look very closely at our free body diagram there. Think which way this block is going to be accelerating. Who's the winning force? And don't say 200 because it's normal. Who's winning? Fx. Who's losing? Oh. So, we've got to actually, although this question looked ugly, our force equation ends up being winner minus minus, Mr. Dewick, not equals, minus loser equals ma, a fairly simple force equation. Do I know Fx? Got to do some trig. Adjacent. Which trig function? I think cosine of 20 equals Fx over 200. Our vendor, how would I get the Fx by itself? Okay. So, you know what? I'm going to go like this, 200 cos 20 minus, and friction was 55.84, if I really want to carry a few extra sig figs. Our vendor, how would I get the a by itself? Let's do that, this line, since they said find a, is that okay? And the mass was 50? Yeah. The key is a good free body diagram, Breanna. If you do that, it kind of falls apart, I think. If you don't, if you try doing all of the forces without labeling your diagram, if you think you're so smart, you can keep track of everything. If you somehow feel the one second that it takes to label your diagram is a waste of time, you're in for a world of hurt, not that I'm mentioning any names. Who came in for help yesterday and didn't have any free body diagrams filled in and was wondering what they'd done wrong? I don't know, won't mention any names. Message received? Good. Do you guys get 2.64? I don't know why you got 3.64. There you go. Easy enough to figure out. There's the lawnmower question. Did I say I like this question? There's two versions of this, pushing down which increases your normal force or lifting up with a rope which would do what? Decrease your normal force. Of course, if you're moving something, lifting up is the smart way to do it because then it slides easier. Example two, write force equations for a mass on the ramp as shown below. The force F represents a person pushing down on the mass and they're pushing exactly perpendicular to the ramp. The system is at rest. Again, I'm going to do a bigger diagram because it's also a bit too small. There's my mass. What are the forces acting on this one? Get the obvious ones. Kara, absolutely. What else? Normal force. I'm going to hold off on that for a second. Can we remember that we're going to draw one? Because I'm not sure how long it's going to be because I think that's what they're mucking around with. Is there friction? Since they put a mu there, I'm going to assume there's friction. Which way does this thing want to slide? Down the hill, so friction up the hill. By the way, we would break gravity up into mg perpendicular and mg parallel. Now let's deal with the final two forces. There's the applied force. This is an ugly or a tricky free body diagram because Connor's stuff is going to overlap. The applied force is also in the same direction as mg perpendicular. Does this make the normal force bigger or smaller or stay the same? Jacob, I think you're right. Now the normal force isn't just cancelling out that. It's also cancelling out that the normal force is going to look something like that. In terms of equations, you would say this, the normal force is cancelling out mg perpendicular plus the applied force. Really, that means it's going to be mg cosine of whatever the angle is plus I think perpendicular is cos. It is. Friction is what times what? Mu times this mess. This is why, and I think it was in this class, maybe it was my other block, when someone said friction equals mu mg, I went so ballistic because no, it can be much, much more complicated. Normal force is not always mg. In fact, if there's a ramp involved or any angles, it ain't going to be mg. You're going to be doing some trig. Who's winning? It's a trick question. Who's winning? No one. It's a tie. Another equation would be mg parallel equals the force of friction. Friction is what times what, Mitchell? What's fn? The mess. I can now work my way through whatever I needed to find. There's another example of a lawnmower type question. I would not put one this nasty on a written again. Multiple choice nasty? Sure. Fair game is a multiple choice nasty. The previous one, though, that we did, because it was on level ground, not on a ramp, that one I would feel okay putting on a written. Two, the boat problem. I have to admit, well, this is nerdily cool. It's not on your test, and I'm cutting corners. By the way, you break it into components. It's not as impressive as you think. So turn the page. You had to draw the lines through it for her, really?  The low CD, right? The third unique force problem is what's called the static equilibrium problem. This is when you have an object that is at rest. We're going to be doing an entire unit on this. You can make a little note right now that a question like this is not on this test, but I want to plant the seed today so that three units from now, when we look at equilibrium, hopefully by that time it's had a chance to grow. If an object is at rest, that means it has zero acceleration, and therefore balanced forces, it means your net force is zero. Example five, it says, find the tension in both the cables. What are the forces acting on this object? Get the obvious ones. Is there a normal force? Is this object touching a surface at all? Nope. It's hanging from two cables, some kind of a sign. This is how they strung it up. What are the forces?   The first step is being able to label it. Here's the second step, knowing what the net force is. What is the net force? Zero. Now, put your pencils down for a second. Here's where I'm going to get a little tiny bit clever. I'm going to add all three of these forces together, tip to tail, tip to tail, tip to tail. I always start out by drawing the easiest force first. What's the easiest force? I'm going to draw that first. Don't write this down yet, just watch me. I always start by drawing the toughest force next. What's the, out of the remaining two forces, which one looks uglier? Tip to tail, and I know I have to stop right there. You know how I know I have to stop right there, because when I add the third force, I know it's exactly horizontal, which means, Trevor, I can't go this far because that wouldn't give me a horizontal, or I couldn't stop right there because that wouldn't give me a horizontal. That's why I draw easiest first, toughest next, and I can almost always figure out when to stop. I'm going to add the third force, tip to tail. If this was a displacement, how far have I traveled if I end up back where I started from? If this is forces, and I add all three forces together and end up back where I started from, what's my net force? That's the picture. Draw that. Why is this so nice? By the way, you can solve this with components, but because I know it's at rest, unlike Cara, I know that as it turns out, I can draw a closed triangle, because that's what at rest means. No net force, no net displacement. It's going to be a triangle that comes back to where it starts from, which means I think it's way easier to solve that than break everything into components. All I need to do is figure out where the heck this 35 goes. Well I noticed this 35 is tension one next to a vertical line. Is that tension one next to a vertical line right there? Pretty sure that's 35 degrees, opposite adjacent to hypotenuse, adjacent to hypotenuse. And the last one, what do you want to find first, tension one or tension two? Not a trick question, just decide. Tension one? Now, the only thing I know is MG, so which trig function am I going to use for tension one? And since this is a new triangle, I'm going to write, sorry for tension one, you say sine? Cosine, yes, yes, yes, yes, yes. I'm going to write everything out carefully. Cosine of 35 equals MG over tension one. Say, how would I get tension one by itself? I think this is where I'm going to cross multiply or move stuff diagonally. I think tension one is going to be MG, not times cos this time, but divided by cosine. What do you get? 10 times 9.8 divided by cos of 35. Two or three sig figs, 140, is that right? 120, 119 point what? Okay, so 120, sure. Zay, redeem yourself. Which trig function will I use to find tension two? 10, I could use sine, but why use a possible wrong answer to find another wrong answer? Let's use what they gave me, because it's the same amount of writing. 10, 10 of 35 equals opposite over adjacent. How will I get tension two by itself here? I think multiply by MG, right? 10 times 9.8, 10, 35. 68.6? By the way, you could also have used Pythagoras, but then you're using this answer, which might be wrong, but a squared plus b squared does equal c squared. I figure by now we're comfy enough with trig, because we've done so much this unit that trig is almost like falling off a log, but not falling off a logarithm. Jacob, is he alive? He is. I just had my doubts. Turn the page. Example six says draw the vector addition of forces in example five, and notice that if the object is at rest, the forces add to give zero. We actually did that in solving this. A lot of teachers will teach to use components. In other words, they would say break tension one up into this way, and this way, and find some, you know what, I think do the trig in one fell swoop. So example six, already done. I like example four in that it's really a neat, nerdy kind of a question. I'm just going to talk about it, but we're not going to actually analyze it, because it's a bit beyond the scope of what we're doing. The accelerometer problem. If you were to accelerate this train car in this direction, this weight that was hanging would get pushed back. Well, no. Inertia would make it want to stay where it was until it reached an equilibrium point where the acceleration of the train was exactly canceling out the component of gravity that was pulling it down. You can calculate it, and it's not that tough. I just don't have time today, so we're not going to worry about example eight and example nine. We're going to do this, number one, number two, number three, and now you're not going to get all the rest of class because I want to show you a couple of videos, which is why I paused.


We have a hadith, a very known hadith, it's said on the member of Allah that If it wasn't for me, Allah SWT wouldn't have created you and if it wasn't for you, Allah SWT wouldn't have created me And if it wasn't for Fatima the Zahra, he wouldn't create neither of us But they said, please explain on this hadith, thank you very much The narration This hadith I think is one of the narrations that highlights to us that divine mystical Abrahamic light that continued in the loins of Rasul Allah SAW And the great Abu Talib SAW It wasn't just a matter of Arabs who were becoming leaders of a religion Rather it was part of a divine covenant And Allah SWT was also showing us that in reality these three, Muhammad SAW, Ali and Fatima are the greatest teachers that I have created If ever you want to understand my religion or my existence and the mercy that surrounds you And believe me, when you look at a sermon like Al Khutbah Al Fadaki or Fatima Zahra or a dua like the supplications of Ali You'll find that if you want to know God, there is no one better than the triumvirate of Muhammad Ali and Fatima So therefore, when we read narrations like this or a narration like Imam al-Haskari's narration We are a hujjah on the people and Fatima is a hujjah on us Such narrations highlight to us that the very depths of knowledge in this religion And the foundations of this religion lie with Rasul Allah with Fatima Zahra and with no doubt Imam Ali Zahra Thank you


A couple of you. How many of you had seen a death? Less hands. Well, maybe just about as many hands. But by far the majority of you had not. Let's talk a little bit about this. First, I'd like to ask you what you liked about what the doctor did. What did you like first? And then let's talk about what you would have done differently. How many are assisted by unpaid volunteer support from the community? Just give me a number. Shout it out. Ninety percent. Ten percent? Forty-five? Ninety. Eighty? Ninety? Less than two. My question to you is, first of all, has anyone around the table actually been there, done that, or been in a similar situation? How many people have been? So, good many people. Some questions for the people who have had this experience or many of these experiences. Your reactions to this? Did this sound like, feel like something that actually might have happened, could happen to you? Who wants to respond? And other things that the doctor did well? Yeah. She utilized moments of silence very well. Can you tell me more about that? Ah, good. Want to say more about what distress you think he was feeling? I think it cuts off the discussion. Because to ourselves more, if you would, about this cold business, abandonment is the big thing we want to avoid communicating, whether it's in body language, in verbal language, or in action. So, can you give me a little bit more about your response on this, Marianne? Anyone comment on how the partner was feeling? He's angry. Angry? Yes, that's right. Frustrated? Frustrated. He may actually be making the whole situation a little worse. Down at the end? He allowed her to continue with her hope. Okay. So, the issue of hope is here, it's palpable, and you felt like he allowed her hope for what sounds like full recovery to continue. Yeah. Okay? All right, over here, and then over here. And I'm just curious, how many people thought that here it would have been effective to do that that you would, if you were in a similar situation, have tried to at least hold a hand while you were telling people this? Okay, maybe about half, but not all. Interesting. The case we'll be looking at today, the video is a 34-year-old man who you've met previously. He has HIV disease, and he is visiting for a routine exam after pneumonia. And his partner is expressing concerns about recent changes in his behavior. So, we'll go to the video. We'll touch on the issue of prognostic uncertainty, and again, this is by definition a chaotic environment and multiple care providers, and that influences the whole milieu. So, with that as a setting, what I'd like to do is let's go to the trigger tape and then let's have some discussion after that. Today, we're going to be talking about medical futility, and we'd like to start out with a trigger tape, a tape to be able to discuss some of the issues. This is a case-based methodology. So, what we're going to do is we're going to have, look at the objectives, we're going to then look at the trigger tape as our first vignette, and then we'll go to the vignettes and the binders and indulge in a conversation around how we make decisions around a number of key symptoms. Let me pause there for a moment and invite your responses to the scenario you saw on the trigger tape. How did the doctor do? Was the patient with someone you recognize? Have you had conversations like that yourselves routinely with patients? Whatever came to your mind? Please, Barbara. What I'd like to do is, based on the case that you saw, is talk through some of these issues. I'm not going to use the slides at the moment. I'd like to start off by talking about neurological dysfunction. Was she fair? Was she honest? Did she do a good job? Any thoughts? Was she right? Did she mislead? Yes. I could say the message or the straight talk at the same time that he was trying to be supportive. Okay, other reactions. Larry. Yes. Sleeping how she was sleeping and she was getting enough sleep or was her dyspnea preventing her from sleeping? Sure. The whole issue of is this a symptom that's waking up her night because it may give you a lead to different causation? Sure. Other issues here that we feel we need more information? Yes. Well, maybe not more information, but she did voice some emotional distress about the problem with dyspnea. Sure. So her emotional distress. What did the doctor do well? The setting was, the choice of setting was good. It was private. Okay, so the setting was private. Okay, other things that the doctor did well. That's a lovely image, building blocks. I think that's important, that it's not all just laid out in one fell swoop. These are building blocks that happen over time. So as with any of the symptoms in the background, this is happening to a person who's dying and they need continuing support and reassurance and help as this goes through. So yes, very good points. And so I think for her that was essential. I think that's an excellent point. You guys have done a marvelous job in making my job easier and a lot of what I'm going to sort of say is a summary based on the great things that she did and the great advice about what you all would have done differently.


So, my name is Konstantin Semenov, I'm the principal software engineer at Pivotal, and today me and my colleagues from Google, Jeff Johnson and Megan Cailin, will talk about Kubo. So, what are we going to talk about? First, I will give a brief introduction to Bosch. Well, some of you may know what Bosch is, some of you might be interested in what problems it's canceled for us. Then, Jeff will talk briefly about Kubernetes and explains what problems that solves and how it could be useful to Cloud Foundry community, and then Megan will explain how Kubo brings both of them together to our mutual benefit. Then we'll give you a demo of how Kubo handles VM failures with an example application and how does that propagate throughout the whole stack. And while we're doing this, there will be some time waiting, so we'll discuss the project roadmap, and then we'll tell you how to contribute to the project. So let's kick off. In modern-day, developers use different technologies to deliver the functionality they're working on. These could be anywhere between functional systems that are event-driven or microservices. These could be more complicated app-centric systems that we all know and love, and we use 12-factor apps in Cloud Foundry. Those could be more complicated, stateful applications, for example, something that can be run on Docker via Kubernetes or even data services like database management systems and the like. So all of them are handled by running on top of some sort of infrastructure, and when it comes to connecting them together and then maintaining that, that sometimes, well, almost always will shoot the operational cost through the roof, because either you'll be left with unpatched versions of different environments because all of them are running on different systems, you have to be patched through, you have to manage the credentials when the applications are talking to each other, and all of that will grow and grow exponentially with the number of systems that you have to handle. So what do you do? Well, Cloud Foundry has been using Bosch quite a lot for a long time to manage all of that. It is used to create all the virtual machines that Cloud Foundry runs on, make sure that they're up and running, enable scaling, updating, and now with the new Cred Hub product also can manage storing and rotating your credentials and secrets securely and automatically. So what is Bosch? It's an automated Cloud agnostic platform. It's based, it was inspired by Google's Borg system, which is a cluster manager that runs at a tremendous scales and handles hundreds of thousands of clusters in the Google infrastructure. It's an open source tool chain for release engineering, deployment, and lifecycle that is managing your infrastructure for you, as I have explained before. So without further ado, I'm heading over to Jeff to talk about Kubernetes. Thank you, Konstantin. Does this work? Yes. Okay, so what is Kubernetes? If you've been on Hacker News before, you've seen the ship's wheel. There's a lot of talk about it, but if you land on kubernetes.io, you'll get a pretty dense but comprehensive explanation. Kubernetes is all about deploying, scaling, and managing containerized applications. You think about a containerized application, I like to think of it as just a binary blob and some metadata that you can run in a pretty reproducible way. But you don't just have a container. There's not just a single instance, there's not just a single service. It's a whole network of interacting pieces that work together and they have a lot of these problems around how do you access them, manage them, update them. Kubernetes is all about that orchestration and management. Where you would use a system like Kubernetes varies quite a bit, but there are a few ones that really stand out. An excellent use case are commercial off the shelf applications. So let's say you have this C++ program with a whole long tail list of these binary dependencies. Well, sticking that in a container is a much more convenient way to run that and run it reproducibly. If you can just pull it off a Docker hub, very easy way to get the software. Some apps have very specific hardware scheduling and networking requirements. So a CF push would not suffice if I need to say, this is today, I need to say that my machine needs 10 GPUs and it better not run on the same machine as this other little node. So these are little very special applications. And the last bit is when we're talking about data services with persistence. This is sort of an evolving area in Kubernetes, but we'll show you how you could do that today. So this is a bit of an eye chart and I apologize, not like a graphic designer. But here's a few core concepts of Kubernetes that we're going to look at just to get some of the terminology and sort of understand how Kubernetes talks about these containers and connects them together. So if you look at the bottom row, we have three pods going across. The pod is a set of running containers. So our pods here is an image CockroachDB, just an image from Docker hub, and it has got some metadata on it. So app equals CockroachDB, just arbitrary key value. Now with those three running pods, above them, we have a service. The service is how we're going to expose these applications. So the service gets a name and it gets a selector. The selector is the same as our DB coincidence. And it's got a name. What this allows us to do is dial it within the cluster, get DNS resolution, and route traffic directly to a healthy pod. So if we go up a tier, we've got our front end, which just think of it as a stateless app. That's able to access it over the container network, access those services. In our case, we use flannel, but you can use anything here. This is not that opinionated about it. One more layer above our guest book pods, which is just like the one below, is a service with a node port. Now Kubernetes has a lot of ways to expose services externally to the cluster, and we're not going to go in a lot of detail about that, but node port is one that says, okay, if you hit any VM on this port, I will route you to this service. Somehow you're going to do ingress into there, and you've got a service. Now this is how sort of the concepts play together, but in practice, Kubernetes is just a collection of running user space applications. So if you look on the far left, we've got our control plane. The control plane has a master node. That master node runs an API interface, as well as a scheduler, which decides where it's going to run the work, and that's all stateless and connects to a database which uses SED, which stores all the actual state for the cluster. We then have a set of workers who actually do something in the cluster. They're actually running your work, and they also run a few services on there like the container overlay network, Flannel, and Kube Proxy to help set up some IP tables rules. Somehow that gets to the internet, and folks can consume your Kubernetes services. So that's sort of the whirlwind tour of Kubernetes. I'm going to pass it off to Megan who's going to talk about how you can combine Bosch and Kubernetes. Thanks. So if you Google Kubo, you'll actually get this movie called Kubo and the Two Strings. Have any of you guys seen that? Well, if you came here to hear about that, we're not talking about that, so I'm sorry. We named it that actually not after the movie, surprisingly, but after Kubernetes on Bosch. It's shortened. So we said already, Bosch is based on Google's Borg system, which is our internal cluster manager, and you might also know that Kubernetes is based on the same system, but in a different way. So Kubernetes does management of containers, clusters of containers, and Bosch does management of VMs and clusters of VMs. So they're actually very complementary systems, in my opinion, because they're based on the same underlying Borg system. And this is a project that we've been working on Google and Pivotal together for about six months. The reason we started this project is that we've kind of found that Kubernetes has some unsolved problems, since it's meant to be a manager of containers, not VMs. We don't have some things like, for example, health checking and healing of VMs themselves. So those Kubernetes nodes, if they go down, Kubernetes will reschedule the pods onto other nodes, but they won't bring back the nodes themselves. Also in terms of HA, there's no support out of the box for multiple master nodes or SED nodes. And then scaling. So if we want to add additional nodes to our cluster, we'd like a way to be able to do that, and Kubernetes isn't providing that today. And then upgrade. So that's both upgrading the Kubernetes software you're running and also upgrading your operating system. So if there's, for example, another heart bleed bug, you'll need to update a stable version of the operating system for your cluster, and you'd like to be able to do that without taking the cluster down. And you might have noticed that those are the exact problems that we earlier said Bosch solves. So Kubo is meant to solve those problems using Bosch. So our goal is to give you a uniform way to deploy and manage your Kubernetes clusters, and we do that with Bosch. And since Bosch works on any cloud, Kubo should also work on any cloud. How do we do that? We kind of break it up into two things. So day one activities would be deploying a cluster. We have a repo with deployment scripts and documentation on how you could deploy a cluster using a Bosch director. And then we're working on integrating that with Cloud Foundry so you could type, like, CF create service Kubernetes to get a Kubernetes cluster up and running. And then in terms of day two activities, for the most part, we just rely on Bosch to do that for us. We're testing it and making sure any kinks are kind of worked out. But Bosch does the self-healing of VMs and monitoring via the Bosch agent. Elastic scaling for clusters, rolling upgrades. So we're continuously updating Kubernetes version to later versions. We're on the latest major version right now, and we're working on updating to the latest minor version. And then high availability, and we'll be working on multi-zone support, so you could have a cluster that spans multiple zones. Kubo OSS is the joint project we've been working on, Google and Pivotal together. We kind of have two different tracks of work. One would be the pure open source solution, so that has no dependency on Cloud Foundry. You deploy a Kubernetes cluster using Bosch, and then you just interact with it the same way that you'd interact with any Kubernetes cluster using kubectl. But we also have another track of work to integrate this with Pivotal Cloud Foundry. So we do things like share a routing layer with Cloud Foundry, and hopefully integrate support through the CFCLI. Now it's time for a demo. So we have a cluster already deployed. It takes about 20 minutes to deploy, and we don't have that much time. So we've deployed a cluster that has two master nodes, three worker nodes, and three at CD nodes. And the first thing that we'll do is look at the nodes that Kubernetes is aware of right now. And we'll do that using kubectl. So we have three worker nodes, as you can see. And then let's look at the VMs Bosch is managing. And we'll just look at the workers, since that's what we're demoing right now. So you can see the IP addresses of the nodes are the same. So these are the exact same nodes. And now we will deploy an application to Kubernetes, which is CockroachDB. You'll have to excuse us if it's a little buggy. It's a cockroach. Thank you. Oh, can you make it bigger? A font. Yeah. OK, so let's deploy our database application to Kubernetes. Oh, and yeah, we're going to watch the pods that are created on Kubernetes. OK, so we're creating a CockroachDB pod. We're going to create three, but they get created sequentially. And the reason we're deploying this to Kubernetes is because Cloud Foundry doesn't support CockroachDB. But we want to use that for our application. So we're going to use the two together. And we're going to deploy a front end application to Cloud Foundry in just a minute. OK, one of our pods was created, so that's good. Now we're creating the second one. Once all the pods are created, we'll also run a script to create a database within those pods and table in the database. It takes a second. Cool, so now we can create our database and the table. And then we will push our Cloud Foundry app that uses CockroachDB to Cloud Foundry. And what this application is, it is the Kubernetes guestbook application. So if you've used Kubernetes, you've probably seen this. All it is is a store for text that you type into a guestbook. And the reason we're deploying the front end to Cloud Foundry is because we think it's a good candidate for a Cloud Foundry application. But like I said, the CockroachDB is not supported. So we need some way to deploy that if we want to use it. We kind of think of this as they can be complementary. So you could deploy part of your app to Cloud Foundry, part of it to Kubernetes. But if you're migrating to Cloud Foundry, you might have applications that have dependencies that are hard to move. So you can use this as kind of a stopgap solution if you want, or you can use it as a full solution if you have a dependency that really needs to be run somewhere like Kubernetes. Takes a couple of minutes. Everything in this demo takes a couple of minutes. OK, there we go. Now let's look at our application. We're going to pull up two windows just so you can see the persistence. Oh, that's an old deployment over there. Cool. So now if we store something in the guestbook, it should be stored in the database. And we can see it is. We can write something else. Darth Vader was also there. They're not writing much about what they thought, but that's OK. Cool. So now let's see what happens how these two systems play together if we delete one of our worker nodes. So we'll run a watch on the Bosch CLI command to see the VMs it's managing. So we can see how Bosch is dealing with this failure. And we're already running the watch on get pods down here so we can see how Kubernetes deals with the failure. And we'll delete one of the nodes that has the dashboard running on it and one of our Cockroach DB pods. We have to get the name of it from this, so the VMs aren't named very easily, but usually they don't need to be. I don't think people are usually deleting their VMs on purpose, but we do it a lot. Cool. So this is going to take about two and a half minutes to delete. Google has really fast VM boot times, but not really fast VM delete times, which is probably the place that you want to optimize, but depends on what you're doing, I guess. Not in this demo, but that's OK. So let's talk about what's happening here while it's deleting. So this is the current state of our cluster. We have two masters, but you can ignore that part. We have three workers and the green tiny boxes that hopefully you can see are our Cockroach DB pods. And then I just put this purple pod in here to represent the Kubernetes dashboard. And right now we are blowing up that worker node. So we're going to end up in this state, which is not where we want to be. We have two replicas of our Cockroach DB and only zero of our dashboard. So what will happen is Kubernetes will notice that those pods are gone. So it'll reschedule the dashboard onto another node, which is great. We asked the Cockroach DB pods to all be on different nodes, so it won't reschedule that one. It'll just be mad for a little while. And then our Bosch director will activate. It'll notice that the VM is gone because it can't contact the agent that is running on that VM. Then it'll wait a couple minutes to see if it's going to come back on its own. Well, I think it waits like 30 seconds. I believe that's a setting in Bosch, though. And then it'll start creating the VM. Like I said, it takes about 30 seconds to create a VM. Then it takes a couple more seconds to install the Bosch agent on the VM. And then it has to run all of the jobs, like the kube proxy and kubelet on that VM to make it part of our Kubernetes cluster again. Once the node is back, Kubernetes will notice that it's there, and it'll be like, yay, I can schedule that pod again. And it will. Then we'll be back in the state we were in before. Our dashboard will probably stay on that other node because it doesn't matter where it's running, but we'll be in a happy state again. So while we're continuing to wait, do you want to talk about the product roadmap for a bit? Yes, thanks, Megan. So while we're waiting for something to happen, Bosch and Kubernetes both noticed that actually our machine is gone. I can briefly talk you through the roadmap, what's at the top of our backlog right now. And I will be pointing out when something fails. As you can see now, the VM that we've killed is now not recognized any longer by Bosch as a running VM. So it's now suspecting that something went wrong. It will disappear in about 20 seconds, and a new one will boot in another 20 seconds. In the meantime, I can tell you about the networking that we have planned. So many... Oh, before you start, if you notice, the Cockroach DB pod is now unknown by Kubernetes. And if we could see the rest of this, you'd see that the dashboard was recreated on a different node. Also, GCloud has finally reported that it has deleted the VM. Yes. Okay, so networking. Most of the Kubo clients would be really interested in exposing the applications they are deploying to Kubernetes to outside of the Kubernetes cluster. At the moment, we have two ways of exposing that. One is through the CF routers. Another is through IaaS load balancers. The thing is they both have shortcomings and both needs to be further developed. And yeah, now our node is missing from Bosch, so that means Bosch is currently creating a new VM to be that worker node. Great. Next up is high availability, which should be relying on the Bosch functionality, but it's really need to be thoroughly tested. We have a few experimental multi-AZ deployments that seem to be working, but we need to do more thorough testing on that. So the VM has came back up again, and it's waiting for the agent to be installed in order to be running. And before it could be recognized by Kubernetes. Oh, it is running. Yeah, so now it's running, but it's installing all of those Kubernetes jobs on it so that it becomes a true worker node. So the next feature that is really in high demand is persistence, because in most cases, when people use Cloud Foundry and they want to have Kubernetes, in many cases, because they want to have stateful applications, so they need persistence. Kubernetes is handling the persistence through the platform, but Kubo has to be able to configure it properly in order for it to be reliable. Core, migration to the latest core components. The Kubernetes has a very fast upgrade update cycle, so version one six came out two months ago. Version one seven will probably come out in about a month or so, and there are a lot of differences between those versions, so we need to stay on top of the track. Currently we don't support rolling upgrades, but it's something we're really looking forward to. It looks like our VM is now up and running, and we have a CockroachDB pod that is initializing. It takes a few minutes to initialize, so I think we should just switch back to the slides, but we are now back in the state that we'd like to be in, because of Bosch. I'll just close that. And the last feature that is also very important is multi-IaaS. So Bosch does support multiple IaaSes, which is really great, but we also need to have some of our custom configuration in order to enable Kubernetes to run that, so this is really tied to persistence as well. And as you may have seen yesterday, Kubo was recently accepted into the Cloud Foundry Foundation. We're celebrating, yay. And this cat is really happy. So we have here links to our repo, but we're about to change them to Cloud Foundry Incubator. I believe these links will still work, but if they don't work, then just swap it to Cloud Foundry Incubator. This is our, the Kubo deployment, that's our helper scripts and docs that we have. So if you're interested in deploying a Kubernetes cluster using Bosch, that's a really good place to start. If you're really good at Bosch, you could just go directly to our Bosch release at Kubo release. I don't, I wouldn't recommend it because it's hard to configure a manifest, but, and we have one already configured in Kubo deployment, but if you're really adventurous, you could do that. And we also have a Slack channel that I have a link to here. Thanks. I think we have a few minutes left for questions if anyone has questions. Can you state your name and association really quickly? Sergey Madochkin, Comcast. Question about, about persistency and volume management. Last time I checked you were focusing on a cluster, right? Is there plan to have it more pluggable, specifically for installations inside data centers, not in a, not in a cloud? Something like a skill AO and other backends to use. So at the moment, we're focusing on native volumes that are provided by the IS platforms. And we're not focusing on other solutions right now. So it might, even though it might be in the pipeline, but it's for later. What version of Kubernetes are you allowing to deploy together? Sorry, can you speak up please? Can you hear me? Louder. What version of Cloud Foundry, sorry, the Kubernetes allowing it to deploy through CF. And there was two statements you made. Okay, can everybody hear? My question was like, what version of Kubernetes were you allowing to deploy through CF at this time? Because you made a two statement, you can add scale masters, you can add scale easily. That is totally wrong. I mean to say the version 162 allows that way to scale masters in multiple nodes and then you can also scale ETCD the quorum into multiple nodes or multiple masters. So if you answer that question. The version of, at the moment of Kubernetes, I think is 161 is the current version of Kubernetes, but we're planning to update. Okay, additional questions, yes?  To update the Bosch manifest with an additional number and then Bosch will kind of do a diff of what you want and what you have and scale that way. We haven't talked about auto scaling, but that would be cool. Yeah. The traditions and it can do it for me automatically, so I'm curious about that. What do you automate it? Also, like our prioritization process is a lot based on what people are asking for. So I mean the fact that you're asking that means we should probably talk about it. There are a couple more questions. So one here. Hi guys, from Accenture. I think this is great and solves a really big problem, but I have two questions. How do you keep it from falling behind from like Kubernetes? As you mentioned, it's a fast pace. And the second part is how do you prevent it from like exposing like limited set of features? Like you mentioned like there's a persistence that's still not there and other things. So I think those two problems would continue. So what is like overall strategy to make this kind of like a default way of deploying Kubernetes? Yeah, I mean since we're in a pre-Alpha state right now we're obviously missing some things. In terms of keeping Kubernetes up to date right now we're just manually updating the binaries, but I think it'd be cool if we could do like an automatic system that do that, like a pipeline, a concourse pipeline or something. Which I think we started talking about a little bit. I don't think you could do that for major versions maybe, but at least for minor versions. And then your second question was? Oh, yeah right. So I think the thing we're missing in Kubernetes right now is that we don't have these like cloud provider packages. So it can't provision cloud resources right now, but we're actively working on that like this week. So hopefully once we have that in place we'll be able to provision things like load balancers or the persistent volumes. One last question, Edith. Okay, Jeff has to go about, Konstantina and I are gonna stick around after if you have questions too. So quick question. So there is Bosch, which I'm really a big fan. And then there is Infracrate and there is also COPS. So my question is, is that mean that COPS is done, is gone and like, can you expand? Oh. Do you say COPS?  They're different installed in the theCUBE. Not necessarily, I mean some people I think are using Kubernetes in different ways. This is really more for like production workloads I think. And things that really need something to manage Kubernetes. I don't know that every use case requires that though.


Emergence. When many simple objects interact with each other, they can form a system that has qualities that the objects themselves don't. A multitude of small elements tied up together will end up having different properties compared to their original state. This term originates from the Latin verb emergo, which roughly translates into arise or rise up. And you can look at simple mathematical rules creating living patterns or traders contributing to the stock market, or hell we can go a little bit deeper and look at the neurons creating consciousness. And the truth is that emergent phenomena are everywhere in the universe. And emergence is not meant to explain the world around us in a detailed manner, it is simply a macro mechanism of understanding. If you feel like you don't particularly understand a specific structure or system, you can use emergence to get the better grasp of the macro. In principle, if I have to talk about the current state of our planet, I will have to tell you what all the atoms are doing. But I have no idea what they are doing. What I can tell you is that in the real world, to predict what the earth is doing, I will have to talk about the center of mass of the earth, where that is now and where it is moving. So only using an incredibly tiny amount of information, I can make incredibly precise and accurate predictions. I can have this enormous handle over what the world is doing, ignoring almost all the data that there is about the specific state of the world. And this is what emergence does, is when you don't need to know almost anything about the specific system. On the other hand, you can work with a certain very very special high leverage pieces of info that you can use to make pretty accurate predictions. And when thinking about how we can use emergence in our day to day life to help ourselves better make sense of the world, I personally like to come back to it every time I'm in a bad mood, as something did not work out in the world around me. So if I find myself complaining about how the traffic in the subway is awful today, instead of getting mad, I'm trying to picture and understand it through the lenses of emergence. The person wakes up, eats food, prepares the clothes and goes to work. What we do not often take into account is the multitude of elements interacting with each other that created the state of that specific person, state of being, of leaving the day job and family. We often label the properties of the system as bad, when we should be really looking at the properties of the relationships between the system and us, the environment. It is indeed a continuous flow and oftentimes a rabbit hole. This has been understanding emergence in 100 seconds. Thank you for watching and I will see you in the next one.