 day. So next up, we're going to see some more open infrastructure in demo form. So fingers crossed. And to show it off, we've got one of the folks that did some awesome demos back in Austin, Alex Pulby from CoreOS, and Spencer Kimball from Cockroach Labs. Welcome out. Thank you, Mark. All right. Good luck, guys. All right. Thank you. Okay, so last year we opened a few minds showing how we can use Kubernetes to deploy OpenStack itself. And this time, we hope to do that again. Now around stateful systems, particularly CockroachDB, which is a cloud-native database. So before we get into this, Spencer, why did you choose such an awful name? That's a it's a fair question. This started as a GitHub project and I have a kind of a dark sense of humor. I never thought when I named it CockroachDB that I'd have to explain myself to everyone. It's such a huge crowd. But I think the name stands. CockroachDB is something that replicates itself and is very hard to kill. So it lives up to its namesake. All right. So cloud-native, what is what is this? Well, in the context of a database, I think cloud-native has three important components. The first is that it's scalable, horizontally, and is transparent to the application. It's also an architecture that has no single points of failure. And it needs to be survivable and self-healing. Okay. Isn't this just no SQL? It shares a lot of commonalities with no SQL, but there's two crucial differentiators with CockroachDB. The first is that it's scalable SQL and the second is that it provides multi-active availability. Could you go on please? Sure. So SQL is something everyone here is familiar with just by show of hands. Who here in the audience has used a SQL database or deployed a SQL database? Yeah. Pretty much everyone. You know, SQL fell out of fashion in the last decade with the advent of no SQL, but it's come roaring back. And it turns out that folks appreciate some of what SQL brings to the table when they're developing applications. Transactions, secondary indexes that are consistent, a standard query language that's actually quite sophisticated for doing analytics, but they also want scale. So CockroachDB is bridging that gap. All right. That's a lot of concepts. Even for someone distributed systems, could you talk about high or multi-active availability? I think is what you called it. Absolutely. Yes. So this is an evolution of the idea of high availability. The difference is that it's always consistent. And that means that you can talk to any node in a CockroachDB cluster and read or write and always get the same correct answer. This is very much, by the way, scalable SQL, multi-active availability. These are the technologies and the capabilities that Google Spanner technology provides. The difference with Cockroach is that it's both open source and it's been architected in such a way that it can run just as easily on a developer's laptop as it can run in a, you know, a multi-cloud hybrid environment. All right. Which brings us back to Kubernetes. And so before we start showing this off, I need you to just fall along with me on this one and open your mind that it's something you may not believe, which is you can run any stateful application inside of containers and on top of Kubernetes. A lot of, there's been a lot of misconceptions in our space, but any application and particularly stateful applications all work extremely well on this. So we're going to show it off. All right. So here what we're doing is we're looking at the CockroachDB administrative dashboard. There's three nodes. Each one of these is the pod running in Kubernetes. And the pods contain a CockroachDB binary running and also a load generator. So we have three. These are running on IBM's BlueMix cloud. They've been running for a little while. There's, you know, some amount of data between them. We can actually look at, you know, how many queries are being run per second. There's about 400 reads and 400 writes per second that are running. And, you know, one of the big things with Cloud Native is elastic scalability, right, Alex? Right. So let's go ahead and just show how we can take this this Cockroach cluster and scale it up. I'm going to just launch two more nodes on this. It's pretty much just as easy as that. There's one going. We'll just do the next one. So again, this system is now going to scale horizontally both on throughput and availability. Great. So now we're running five Kubernetes pods. If we go back to the Cockroach administrative UI and look at the node list, we have five nodes here. So what Cockroach is now going to be doing, there were, you know, 112, I think, replicas in each of those original three nodes. And Cockroach splits up the key space into these smaller things called ranges, kind of like tablets in the Google world. Right now, it's rebalancing those across the now five nodes that are in the cluster. And that will happen over the course of the next several minutes. Okay. So this thing should be survivable though, too, right? Right? That's right. And if the demo gods permit, you can use your itchy trigger finger here and choose a victim. Okay, I'm going to just go and kill a note. Let's make sure they're all online. They should show up here. So we scaled it up and now we're going to just nuke one of the instances. I'll just take this one. We'll go ahead and delete it. Okay, should be dead. All right, so if we reload this Kubernetes. Oh, there's only four now. Yep. All right. Now if we look at Cockroach, it usually will take 10 seconds before it decides that a node is unresponsive. Here you can see there's a little orange dot instead of a green dot next to node four there. The system's still running. It's still responsive. There'll be, you know, some a little glitch in performance as things have to fail over on there. And you can see there's a little glitch there and some of the latencies have gone up, but the system is still going to be running. You can see here that the replicas per node were kind of rebalancing down as there were five. So this will just continue. Okay, and I'll bring that node back up just to heal the cluster here. Since it was a node four again, we'll just launch that one. Okay, so it should be back online as soon as that container launches. Okay, it's running. We're going to have to check to make sure things are healed. And take, oh, yeah, from orange back to green. So now that's going to continue rebalancing and, you know, come up to speed. You can see that the replicas have all sort of rebalanced. There's about 67 on each of them now. Okay, great. So we showed a SQL database that is both horizontally scalable and self-healing. So for many of you that might be a first, but as promised, I wanted to make sure we showed something that had definitely never been seen before. And to do that, let's bring Mark back out. So welcome, Mark.