 Hi, everybody. My name is Doug Shelley. I'm the VP of Product Development at Tesora. I'm here today to talk to you about what's new in the last couple releases of our product, basically since Paris, since I did this in Paris. So I'm going to talk about that. I'm going to try to get through the description of the features relatively quickly so I can go through a demo in the time that I have, so don't further ado. So a little bit of background quickly. What's Tesora database-to-service platform? So this is database-to-service for OpenStack, shocking. It's based on the Trove project, and the whole goal here is really self-service provisioning and lifecycle management. And that's why I got this nice graphic of this pot machine. So basically select databases, provision them, lifecycle manage them. And one of the other goals is to leverage the existing capabilities of the underlying databases and maximize them. Tesora provides guest images, which we'll talk about a little more. We support and test the guest images, which I think is critical to the success of the product. And we provide enterprise and community additions, which I'll touch on here now. So this kind of lays out our community and enterprise addition. So on the far left, you basically have the OpenStack community code, the OpenStack Trove project. Both of our additions, obviously, are based off the OpenStack Trove project as well. We also have Horizon, which is what I'm going to show in my demo. The community code, the community addition adds simplified installation and configuration. The guest images are in there that we provide and we do lots of testing and fix bugs and all sorts of wonderful things. On top of that, for the enterprise addition, you get into support, 24x7 support. We have guest images for commercial proprietary databases. We also do something where, depending on the release cycle, we'll provide early access to features that aren't released upstream yet. And there's some enterprise database of service features. I think I was one of those to go through today and we've enhanced the GUI and I'll show you that today when we go through. Okay, so since Since Summit in Paris, we've released two versions of the product, one in January, which was our 1.3 version. So these are the things that included. We released an Oracle 12C guest agent that's basically a proxy to talk to the container database running within the Oracle 12C multi-tenant environment. Basically allows you to provision and manage pluggable databases within that context. We released what was called in the community replication v2, which is basically fail-over capabilities for MySQL and start from incremental and start multiple replicas simultaneously. So I'll demo some of that. We added support for configuration groups in Horizon. So configuration groups is a mechanism in the product to provide database specific configuration parameters to instances or groups of instances. And we added new guest images for Maria and Postgres. Just today, if you're following press releases, we released version 1.4. This includes a guest agent for Oracle 11G. So this is a traditional NBM guest that supports some basic provisioning of the instance and database and user management. We did improvements to the Cassandra guest. So we added backup and restore configuration groups, user and DB management. We did a lot of work on Horizon. We we did create database user management and cluster provisioning, which we picked up from upstream and also the data store inversion list was done. And we added guest images for Mongo 3, Postgres 9.4, and Couchbase 3. So it's a further ado. Let me get into this. So if anybody's seen me do this before, I like to demo on video because I don't trust like running live. So you can hiss and boo chain. So okay, so here we are. So this is our skin Horizon, right? So let me go here. So we're going to sign in to the dashboard. And what I'm going to show you, I'm going to take you through a lot of those things that I just described on those two slides. So the first thing we're going to do is I'm going to show you this new database, a data store version, and a data store list and data store version list functions. So you can see I have all these guest images loaded and you can see them now. This previously didn't exist in Horizon. You can drill into it and look at some details about it. Check out what versions of the data stores are available. I think I'm going to show my sequel because there's actually two versions. I'm really slow. I don't know I should do this faster. So 5.5 and 5.6 are there. Okay, so now what I'm going to do, I'm going to demonstrate the replication failover capabilities in Horizon. So first thing I'm going to do is I'm going to launch an instance that's going to be my master. So I'm going to call it Doug test instance. I'm going to select a flavor for it, which will be one of my trove flavors here, one of my Dbass flavors, I think a medium. I'm going to put a ten, three, a three gig, and I'm going to use 5.6. So this is going to provision GTID-based global transaction ID-based replication in my sequel 5.6. And I'm going to create a database and a user for it. So now we're going to launch it. So when you do a video demo, launch is really, really fast. There you go. It's already active. Look at that. Okay, so now we have our master. We are going to launch some replicas. So I'm going to launch, I think two instances, simultaneously they'll both replicate off the master I created in the previous part. So we're doing my sequel 5.6 and here we go. So basically the source for initial state, we can pick replicate from instance and this is new. We can pick replica count, which is how many replicas it's going to fire up. Okay, so off it goes. It's taken a backup of the master. You can see there that'll finish and then it'll launch the backup onto the two replicas and start replication. There we go. So I got three my sequel instances live. And I'm going to just take you through and show you some of the details so you can see how it's set up. So this is the first replica. So you can see down there at the bottom. I hope, yep. It has a link back to the master and you can see that the databases that I put on the master are now on the slave on the replica. This is the second replica and you can see it says is a replica of and that's the master. It has the database, myDB and right. So now what I'm going to do is let me just stop it there. So one of the aspects of the failover feature in our in version 1.4 is that you can, there's two operations you can do relate to failover. The first one I'm going to show you is promote. So you can basically at will pick a replica, make him the master and it'll take the master, the current master and and demote him to a replica. So I'll show you that. So there's a promote to replica source. So I picked replica one and it's going to knock out the master. So basically puts all the instances in promote state while it's running this and then what'll happen is it'll reorient the topology, bring all the instances back up and I'll show you that. So now they're back live. So we'll go into the master and you notice now that it's not, it's a replica of another instance. So I'm going to click on I believe and you can see that the new master is replica one and he has two replicas. So it basically just shifted the topology of the of the replication network and replica two you'll see is still a replica, but now it's a replica of the replica one. Okay. And now I'm going to demonstrate the second the second aspect of failover, which is you can if you have a failed master you can use the eject replica source function to knock it out of the replication network and the system will elect another master based on there's a couple algorithms. I believe the one that's defaulted is most current, right? So let's do this. So you pick the eject replica source function and so I'm kicking out replica one. So now it's going to decide between those the test instance and replica two which one to make the master. So we're going to look at replica one and you will notice that he's basically shut down. I failed him. I went under the covers and knocked the MySQL engine out from underneath him so that I could cause the failure. So you can see here. He's now no longer in the replication network. We're going to look at replica. We're going to look at test instance. He is now a still a slave, but now he's a slave of replica two who got nominated to be the new master. But you can see right there. Okay. So now we're going to go back. Okay that is the that's got the demo of managing replication in within Horizon. Now I want to show you the clustering feature with the clustering panel. So clustering for MongoDB was added in Juno. This is the Horizon panel for it that was just is actually just merging upstream currently I think but we've released it in 1.4. So I'm going to take you through provisioning a MongoDB cluster. I think it's MongoDB 2.6 cluster in Horizon here. So we're going to pick a tiny instance because it's going to make it ends up making three a replica set with three instances in it and I only had so much hardware to run this on. So here it's built building the cluster and as I said, this is a sharded replica set and I start it starts off with a single shard with a replica set with three nodes in it. Which I'm going to show you now. So that's the cluster description, the details of the cluster. The key thing on here is it shows you how to connect to it. You're basically connecting to a query router that was spun up as part of the configuration. And here's the instances you can see it. Named them based on the name you typed into the original panel there. And then I just show some of the details of these of the instances in the cluster. So you can see this is the second node that's in the cluster. And notice that the connection information for the nodes in the cluster actually links back to the cluster entry. So you can actually get the query router address. Okay, so now we're going to add a shard. So basically at this time the only shard you can add is you're basically creating another three node replica set as a second shard. And so I'm going to get three more instances that you're going to see here. So the yeah, so that's the details of the cluster which are still the same. And there's the cluster with the shard added to it. So you pick up three more another another full replica set. And here's some details of the of the of a node that's in the second shard. Okay, I believe now I'm going to shoot the cluster. So I'll do the terminate function, which will delete all the instances, clean it all up, get rid of everything. And then we're going to move on to I believe configuration groups. Just one second here. Okay, so as I said configuration groups are a mechanism in Trove to manage database specific parameters and you can assign them to a single instance or multiple instances. It's a way to give the user more fine-grained control over how the database is configured on the instance. So what I'm going to do first is I'm going to set up a I'm going to create a configuration group for for a Percona 5.6, I believe. So I just name the configuration group put a description in pick which type of data stored is, which actually causes a database specific set of parameters load to be loaded that get validated against. So you can't like assign Cassandra parameters to Percona. So now I'm going to drill into it and add details to the there we go, add a parameter. So see you can see it loaded all the MySQL Percona specific parameters. We're going to pick a couple here max connections. I'm going to set it 500 Then I'm going to add another one. I'm going to pick connect timeout. I'm going to set it to an hour. I think or something like that. Okay, then they apply that and then basically what you can do at this point is I have this configuration group. I can assign it to running instances. So let's go do that. So behind the scenes I started two Percona instances. So there they are. So now I'm going to show you how you attach a configuration group to one of those instances. So there's an attach configuration group option and you just pick it and it gets assigned. Now when it gets assigned it actually sends the new configuration down to the guest and in certain cases the guest, it knows if the guest has to be rebooted and it would tell you and I'll show you that in a second. So you can see now the configuration group is on the instance and it's running with those parameters that you just set. And then the other thing I can do is I can assign the same configuration group to more than one instance, which is one of the powers of the feature is that you can have multiple instances on the same configuration group and then you can change the parameters in the configuration group and it'll shoot that configuration down to all the instances at the same time. So you can see I'm just kind of going through. I signed it on the second instance and it's there. So now what I'm going to show you is we're going to create a configuration group for Cassandra 2.1 and we're going to assign it at launch time. Okay, so here we go. And you'll see you'll see that the parameters that it loads for Cassandra are markedly different than the ones that loaded for Percona. So I'm just naming this Cassandra parameters, put a description in and then we'll get into the... So Cassandra 2.1, create it, go in. There it is. Let's go and add some parameters to it. I think I'm just going to add one parameter and I think I'm going to add a cluster name I added. Now let's launch a Cassandra instance and attach that configuration group at the time of launch. So we're just launching a large flavor with five gig volume and we're going to go into the advanced panel and pick Cassandra for AMP's configuration group and launch it. So there's our instance building and let's just look at it. So you can see in the details it's got the configuration group attached. Magic. Now what are we going to do? We're going to... We're going to detach the configuration group. So that's another function you can basically detach the config group and reset the instance to the default settings. So on one of the Percona instances, I'm just going to detach it. Now what you're going to see is detach always requires a restart. So it doesn't restart the instance immediately. It basically tells you that it's waiting to be restarted and you can restart it whenever you want. So I'm going to push the restart. I pushed the restart button in there. It's active again. Restarted the database on the instance. So now that's now running the original configuration. Okay, now what I'm going to do... Right. So as I mentioned earlier, we released today the Oracle 11.2 Guest Image and Guest Agent. So I'm just going to show launch of that and I think that's the end. So we're going to create an Oracle instance here. So it has a special flavor with a big root volume because that's what Oracle needs. I put a 10 gig cinder volume under the data directory, 11.2 Datastore. I'm going to create a database on launch called DugTest and a user for it typing. Okay, so now the Oracle instance is launching on a VM that's that flavor with that size. So there it's got a 10 gig volume. It even takes longer for the Oracle instance to launch in a video. Okay, so here's the instance details. You can see again, the key thing down there is it it feeds back to you the locator that you're going to need from your application to connect to this database that just connected. It just launched. So it says like, for it gives an example of connection. So SQL plus is the Oracle command line utility username password at with the IP address and the database name. And I believe I'm going to show just show that the users check out the user tab here and the database tab. So it's got my DugTest database on it and my user Dug. And I believe that is it. Let me just go back here. Okay, so that's my demo. I hope I already enjoyed it. If you want to learn more about all this stuff, we have a booth right over there, T45. We have all this stuff on the web. And if you come to the booth, you have to find out what this is. Okay, I'm not going to tell you. But it's very cool. Okay, so come by the booth and they'll give you a demo and potentially you can walk away with one of these puppies here. So thank you very much.