 Hello, everybody. Big crowd. I can feel the excitement in the air. I'm Jonathan LeCour. I'm the vice president of product and development at Dreamhost. I'm here to tell you today about Dream compute, our open stack-based public cloud implementation. I'm really excited to show it to you today. I'm going to actually walk through and introduce it and then give you a little demo as well. Before I get too far along, I want to tell you a little bit about who we are as a business. Dreamhost was founded back in 1997 by four college students, as all good businesses should be, and started off as a shared hosting provider. And now we have over 365,000 customers, developers and entrepreneurs, on our infrastructure. They're using our shared, dedicated, and VPS managed hosting services. And they're building all sorts of great applications and content and hosting them on our platforms. So a few years back, we were really getting pretty excited about the prospect of what we could enable these developers and entrepreneurs to do with cloud services. So we threw ourselves full on into cloud services. So one of the things that we've done is become a major contributor to OpenStack. We're foundation members, gold members, with our CEO, Simon Anderson, is on the board of directors for the foundation. And we also contribute heavily from a technical perspective. We've got the project technical lead for OpenStack networking and core contributors on a lot of other projects, Cinder, Oslo, Solometer, all over the place. So we're really, really excited about the community. We're excited to be here. And we're excited to be talking about our OpenStack cloud. So we actually started launching cloud services last year with our object storage service, DreamObjects, which I'll talk about a little bit in a few. So now let's talk about Dream Compute. So what is it? Simply stated, it's an OpenStack public cloud from Dreamhost. We are using OpenStack Grizzly, the latest and greatest. And in fact, we are a little ahead of Grizzly on certain components driven by need and functionality. And we're using KVM as our hypervisor under the hood. And we actually have two interesting things I want to highlight about Dream Compute today. The first is Dream Blocks, our block storage service that's part of Dream Compute. And that's powered by CEP, which is an incredible project that I'd encourage you to find out a little bit more about. And virtual networking, which enables all sorts of wonderful, complex, rich network topologies, virtualized up in our cloud. And that's really powered a lot by MVP from NYSERA. So let's talk about Dream Blocks first. So CEP is actually the thing that powers it under the hood. And it's a massively scalable, elastic, unified storage platform. It's open source. It was actually created by one of Dream Host's co-founders, Sage Weil, about seven years ago. And it provides out-of-the-box block storage and object storage in one unified platform. And we've been in production with it for our object storage service Dream Objects now for about six months. And it's been an amazing experience for us. We have thousands of people storing data and leveraging Dream Objects for their applications. And so we're very confident that we know how to run a CEP cluster. And so we decided we wanted to build our block storage for our compute cloud on top of the same platform. And we've done that. There are a couple of advantages to doing block storage. Some of them are obvious, right? Being able to have portability of your VMs and being able to move those volumes around with your virtual machines. But also, it enables us some operational efficiency. We can actually do things like live migrate a virtual machine from one place to another without our customer really even seeing any issues. And that gives us a lot of flexibility and efficiencies. But in addition, there's some actual performance benefits to using CEP, in particular, to back our block storage. CEP has this great functionality for copy on write. So the traditional mechanism for launching a VM, you would pull an image out of glance. And that would be copied over the network to create your virtual machine. Well, by booting directly from a Ceph backed glance store with the image, we can boot directly from the image that's already there. And then as changes are introduced, there a copy is made and the writes happen at that point. So that's a really lightning fast boot kind of scenario. So those are the things we're excited about with Dream Blocks. But what I really want to talk about to you today and demonstrate is a little bit more about the networking, because it's a little bit more fun to show off. So as I said, we're virtualizing the whole network all the way down. And we're using the OpenStack Networking APIs to their fullest. We use Nasera MVP, as I mentioned, to virtualize the Layer 2. But we've also created our own Layer 3 Plus set of services in an open sourced among GitHub called Aconda. And the most critical function it provides is software routing, virtual routing. And it also provides firewalls, port forwarding. And it's fully configurable and customizable through both the API and through Horizon user interface. So you can do all the things that you would expect out of OpenStack Networking APIs. You can create routers, create networks, and create floating IPs, associate them with virtual machines, the whole line yards. And we've actually made some additional features available from our Aconda services as OpenStack Networking API extensions. And our intention is to contribute these back as much as possible and merge them with the standard APIs as they emerge for these new features. We also selected Horizon, the standard OpenStack dashboard, as a starting point for our interface, for our customers. And there are a couple of reasons we did that. First of all, there's a lot of flexibility that we can get out of that. The community is great. It's been fun to contribute and work with them. We plan on contributing a lot of the work we put into it back. But also, it's really nice to integrate with. We've been able to build out, on top of Keystone and Horizon, to provide our customers immediate access into the cloud with their existing credentials. So no additional thing to sign up for. We have 365,000 customers who can all of a sudden have access to all the power of OpenStack Cloud. And another reason is it's easy to customize. So we've actually dropped in additional control panels for these additional layer 3 services that use those OpenStack Networking extensions on the background for things like firewalling and port forwarding, do address groups and aliases, all that good stuff. So that's really great. So I will touch very briefly on this, because it will make most of us bored. But this is the general architecture for Dream Compute. Some of the more interesting things, we have a pod architecture. And each pod has about 512 cores, about 1.5 terabytes of RAM, and over 500 terabytes of raw storage. That storage is then leveraged by SEF with three copies of every individual piece of data, intelligently distributed, self-healing, all that goodness. And so we have about 170 terabytes of redundant storage in each pod. And pods actually have about 120 gig of network throughput connecting them together, because we're leveraging 10 gig everywhere. Spine and Leaf, network topology, and IPv6 from the ground up. Every instance you spin up in Dream Compute gets a V6 address. Very, very cool. So what am I going to show you today? Well, I'm going to show you a fairly straightforward network topology. I'm going to create two networks that are private virtual networks on two different subnets, 172.1620 and 172.1630. And then I'm going to create two virtual routers. I'm going to plug them in to those private networks and to the public internet network. And I'm going to spin up virtual machines and plug those into the routers. So then I have these kind of two isolated networks. Maybe I'm hosting two customers with similar applications or completely different applications, both in one cloud, completely isolated from a network perspective. So let's get going. First thing I'm going to do is create the networks. And I'm going to show you kind of a mixture of how you can do this both through the user interface and through the APIs. So first here, I'm actually showing on the top the user interface, obviously. You can just give a network a name, type in a subnet, and click Create. And you can see here I'm using the standard OpenStack networking client, Quantum, to read out the networks. And you can see it has three networks, the public network that's provided to every Dream Compute customer, and then two private networks with a V4 and a V6 subnet. So the next step now that I have my networks is to actually create some routers. And I'm going to do that through the Quantum command line client as well. And I'm just going to say, Quantum Router Create can give it a very easy to read and remembered name that I generated with the UID generator. And then I'm going to list out my routers and show them. You can see I've already plugged them in here, but if I wanted to do that, I would just type Quantum Router interface add. And I could connect a router to a particular subnet. So now everything's wired up, but it's not very interesting because I have no actual virtual machines. So we should probably do that next. I'm going to do that through Horizon. Go in, select my image, my flavor, give it a name. And I can actually drag and drop from my available networks, which I've just created, my private A and private B networks, and connect them to the NIC on that virtual machine as I spin it up. So pretend now I'm doing this six times. I only have five minutes left, so you're going to have to be patient. There they all are. All those instances are here. And through the magic of the internet, now we can attach floating IPs. I'll allocate a V4 address and connect it into a port on one of my virtual machines so that I can expose that particular virtual machine out to the internet. So here we go in the network topology diagram that's now built into the grizzly version of Horizon. Really cool feature. You can see I have the public network with two routers. I have two private networks with virtual machines. In this particular diagram, I hadn't yet connected them, but I will connect them. And now everything is accessible. So now what's cooking? What am I going to do next? Well, I'm actually going to use Chef. And I'm going to bootstrap one of these nodes and spin up WordPress, one of the most popular applications that our customers use. We have over a million WordPress instances on our standard hosting platforms. And now people can spin it up right there in the cloud. Very, very cool. And moments later, they'll have a publicly available instance available on nodes.dreamcomput.com. Every instance gets every floating IP, gets an automatic DNS record created for it like this. And now the great thing about this, in this particular instance, I've put everything on a single node. But I have all these other virtual machines. I could very easily put my SQL that backs my WordPress on one of those virtual machines and not assign it a floating IP, such that it's completely isolated from the outside world. And the only thing that's exposed is my very secure WordPress install. Or I could put a proxy in front of it that protects it. Very, very cool. So quick summary. Dream Compute right now is in private preview. You can sign up at our website. We're really, really excited to share it with the world, but we're hardening it right now to make sure it's really rock solid for all of you. And we want you to really harness the power of OpenStack networking. That's something we really care about passionately. We want to give people the opportunity to really use those APIs and build out complex topologies. And also, we want you to use Dream Blocks, our block storage powered by Seth, and really get all the wonderful benefits there. So that's it. Yeah, all powered by Ubuntu as well, under the hood. Thank you. And if you have any questions, I'll be available right here afterwards. And I'm going to go back to the DreamHOST booth, and you can ask me any questions there as well. So thank you very much.