 Okay. Hello. I'm Kevin Deerling with Melanox Technologies, and I'm here to talk about building clouds with Lego and really applying Lego principles to OpenStack Clouds with what we call Open Composable Networks. So, first of all, I think many people may know Melanox as the InfiniBand company. That's where we started back about 16 years ago. We are the dominant supplier of InfiniBand connectivity for high-performance computing, but more recently we've really launched into the Ethernet space, and we sell a lot more Ethernet today than we do in InfiniBand technology. And in fact, I would say that four out of the top five hyperscale data centers in the world are our customers. Unfortunately, most of them consider what we do part of their secret sauce and don't let us talk about it publicly, although a couple of people do. So, you know, Facebook, for example, and Microsoft have both publicly talked about the fact that they're using our interconnects inside of their data center. And these numbers, you know, I think everybody understands that with over a billion users now in Facebook, all of these different applications that are driving more and more data, really building clouds is all about doing so very efficiently, rapidly, and at a very cost-effective price point. So, when we look at building clouds, we really see three elements that are required. And the first of these is where the Lego comes in, and we call this composability. And the second piece is programmability. And this is where software-defined everything comes into play, software-defined storage. And the last is predictability. And this is really something that I'll talk in some detail about that is where you can get into troubles when you deploy things. And the results that people are looking for is flexibility and efficiency and value and really simplicity. And all of these things need to come together to make that happen. And I think OpenStack being here in Austin, it's great because it really brings all of these different pieces together. So, I'm going to talk first about the composability piece and the Lego. And so, you know, one of my colleagues here, Chloe, has a young son, and she was talking about the fact that with Lego, he's able to build many, many different things. And one of the first key things is that all of the pieces are really fairly basic, and all of those components can come together then using standard interfaces. All of the pieces of the Lego actually are very well-defined and connect well together in terms of their interfaces so that they can be combined very freely. So you can put things together. And then, really, it's up to your imagination about how you build these things. Because when you have the first two principles, now you can do automation and really use your own imagination to build whatever you want. And to do so in a way that works efficiently, and you can scale that very nicely. And so, here's some pictures of things that you can build with Legos. And it's kind of hard to see, but there's a little man there standing in front of the giraffe, so that's about a 20-foot tall giraffe and a car and other things. And really, we see many of the same principles here, applying to OpenStack and Building Clouds as when you build Lego. So we call this Open Composable Networks. And really, this is the first piece, this composability, where Open Platforms need composability. And one of the key things that we've been able to do is take our hardware and then build standard APIs on top of that. And a couple of the APIs that I want to highlight, this is for our Ethernet switch. The first is called SwitchDev, which is part of Linux. And the second is called Psi, which is the switch abstraction interface, and actually was defined in one of the sister organizations to OpenStack, which is the Open Compute project. And both of these are standard APIs. So those of you who are familiar with NetDev, for example, when you write an application to an Ethernet NIC, you don't really care whether it's a Melanox NIC or one of our competitors NICs, a Broadcom NIC or an Intel NIC, you write to the NetDev interface and it's up to the vendor to supply a driver that conforms to that API. And so a couple, I guess it was about six or eight months ago, one of the key developers in the Linux community said, boy, wouldn't it be nice if the switch ASIC vendors did the same thing? And so Dave Miller threw out that challenge and we heard it. And so we came back and we contributed SwitchDev for our spectrum ASIC to the market, similarly working with Microsoft, believe it or not. In the Open Compute project, we developed Psi, which is the switch abstraction interface. So when you start looking at a Ethernet switch, there's a lot of things that you need to do to bring that switch up, bring a physical link up, bring a logical link up, you can read ports, you can turn fans on, all of those things. Frankly, there's not a lot of differentiation between individual switch ASICs. So by standardizing all of that, we really enabled now the whole market to build components on top of that that can plug and play. So a good example was Microsoft Sonic, which was announced at the Open Compute project a month ago. And very interestingly, that is a completely Linux-based platform. I wouldn't be at all surprised to see them become more involved in OpenStack. The other one that we announced was Cumulus Linux, and I'll talk a little bit more about that in a second. The third one that we showed was HPE OpenSwitch. And so this is the new open source switch network operating system running on top of multiple platforms again. MetaSwitch is another company and then we had our own operating system running on top of that. So really with this Lego building block concept, you have open platforms and you've disaggregated the hardware from the software. And what Open Composable Networks is all about is how you put it back together easily in a way that gives you flexibility and scalability and automation. So to give you an example, this is Cumulus, this is their integration with OpenStack. So they have a cloud controller node, you can merge that obviously with your compute nodes. And then they have a platform that they call the RMP, which is their rack management platform. And then on top of that, it really gives you access to a whole range of SDN controllers. So again, part of that software to find everything, whether it's MetaCura or Nuage or Plumgrid or anybody's SDN that conforms with OpenFlow, then you can build SDN on top of this. Again, you're taking individual components and building on top of standard APIs. If you look at the Cumulus viewpoint and the philosophy associated with the Cumulus Linux, basically it's 100% open and it's Linux throughout. And then this drives, of course, value and the cost that I was talking about. And so with the Cumulus networks on top of the spectrum switch, you get the combination of both one of the best hardware platforms in the world and the best software platforms, particularly if you want to manage your network as if it was servers. So one of the things that differentiates the Cumulus networks offering is that a switch just behaves like a server that happens to have a lot of Ethernet ports. In our case, it's 3200 gigabit ports. So it's a lot of very fast Ethernet ports. But you manage it as if it were just another server in your network. So that appeals to a whole bunch of folks and we'll talk about some of the people that are deploying that a little bit later. So the second piece that I talked about was this programmability and software to find everything, in particular software to find storage. And storage is really interesting because right now there's three major transitions occurring at once. And that always makes things interesting. The first is where we see solid state disks replacing the traditional hard disk drives. And in particular, something called NVMe, which is non-botal memory express. So it goes over PC express, very, very high performance solid state drives and I'll show some of the performance data here in a second. The other thing we're seeing is software to find storage, sometimes called scale out storage or server sand storage. So instead of these big monolithic arrays that we're familiar with, with fiber channel connectivity, today we see scale out storage happening. And I think OpenStack is a great example of that. We see things like Ceph and Nexenta and Zidara and others that are exploiting this scale out principle for storage. And the third thing we see is hyperconverge where people are trying to take all of the compute and storage and put it into a single entity. And that's another opportunity here where I'm starting to see announcements that, for example, Morantis and Quanta put together something that looks like a hyperconverge platform. The good thing here is all of these things need a lot faster network. It turns out if you break open one of these big scale up boxes, if you look at an EMC chassis or if you look at Oracle or Teradata or really any big storage platform inside, you'll see Melanox. So it works kind of in every data center in the entire world running mainstream applications that are critical every day. But you don't see us because we're actually the internal network that's moving the data. And for those of you who are familiar with storage, you have something called write amplification. You do one write and it spawns five writes in the back end network. That's why you need something that's very low latency, high performance and has all of the transport offloads. When you do that in the cloud and you start to do scale out, you actually need it in your network. So you'll see that many, many of the scale out storage providers today are using Melanox for their network for the same reason that the big scale up people uses for the networks. So I said that faster storage needs faster networks just to give you some idea. If we started with a SATA hard disk drive, you can see here it took 24 SATA disks to saturate a 10 gig link. And that means 250 SATA drives to actually saturate one of our 100 gig links which we're shipping. If I fast forward to SSD, suddenly two SATA drives can saturate a 10 gig link. And we need 24 of those to saturate a 100 gig link. But as we've progressed here with SAS SSDs, we get down to one SAS SSD saturating a 10 gig link and only 10 for 100 gig link. And today with the NVMe, we're talking about a single NVMe drive will actually generate close to 25 gigabit per second. And four, we've actually seen three saturate a 10 gig link with even some of the newer ones. So we've really moved the bottleneck now. So instead of spinning rust that took seven milliseconds to access, we've moved the bottleneck from the disk to the network. And the latency here today used to be on the disk drive. This is the spinning rust with seven milliseconds and who really cared about the network and the software. But as we go to SSDs, we're shrinking that. As we go to NVM, suddenly the network storage and the software associated with it become a critical part of the overall latency equation. And so now we're really reworking all of those things at a very low level to actually optimize the protocol and the network. And so we're doing things like NVMe over fabrics to reduce the latency so that we can get the performance out of the new memories that we have. So for example, a single NVMe drive can generate about 25 gigabits per second. So with the 10 gigabit link, you're throwing away two thirds of the performance of that NVMe drive. So how have we applied this to OpenStack? This is just some data that we generated for Ceph here. And we had multiple partners that we worked with, Supermicro, Quanta, and Scalable Informatics, or the three I've cited here. It's really interesting that we've been able to get in a OpenStack Ceph environment to actually show the type of performance that we're able to achieve here. Anywhere from 2x to 7x, the performance based on the higher performing networks here. We've got 70 gigabits per second of throughput with our 100 giga E adapters with Scalable Informatics. So this is all Ceph-related workloads that we've done. The next one I wanted to talk about was Nexenta. We actually just did this work. Victor's here from our team in the audience. I can see him in the back. I did this work just last week, where we took the new Nexenta Edge and we ran that on Supermicro servers with Micron flash drives. And you can see here that at 50 gigabytes. So here we were running just 25 gigabits and 50 gig. We didn't do the 100 gig. We got about 3 gigabytes per second performance. Frankly, this was pretty much out of the box. We haven't done any performance tuning yet. We need to add another gateway device. And I think we'll be able to push these numbers even higher. So it's pretty encouraging that when we can pull something together pretty quickly, we just published a blog on this today. So I encourage you to go to our website and you can look at that. So the other key piece that we really are looking at is all sorts of new offloads inside of the network itself. And so as we get the 25 gigabit per second, we say that 25 is the new 10. We're seeing very rapid growth of 25 gigabit and many, many people adopting this technology. So our Kinect X4 LX delivers 25 gigabits per second. The Kinect X4 is our 100 gigabit per second, Nick. These are both shipping today. With the Kinect X4, we've gotten TCP throughput of 93 gigabits per second. One of the key things that we're doing in order to deliver that kind of performance, there's a tremendous amount of activity that you need to do, not just the normal LRO, large receive offloads and the transmit equivalent of that, but really managing at a very, very tight level all of the interaction with the cores. On top of that, there's a new thing that's called DPDK, which is the data packet development kit. And so with DPDK, you're actually running in user space. We were able to demonstrate 34 million packets per second with DPDK at 25 gigabits per second. So DPDK is a really great infrastructure for building NFV. And I think NFV is one of the areas where we see the OpenStack community embracing both OpenStack and DPDK to develop NFV applications on top of that. And I think a key here is that actually managing all of the individual threads and scaling that is very important. Beyond that, we're doing work now with OBS offloads. So if you're familiar with the open virtual switch, normally you think of that as a software construct, something that's sitting up in the hypervisor. Now it turns out that just like many of the things that we've done to accelerate TCP, there's no reason that we can't accelerate OBS as well. Now some people have some problems with that in the sense of sort of philosophical problems because they want the control in the actual hypervisor itself. And so in fact, we keep all of the control plane, so all of the control is in the hypervisor remains there. If there's a flow that we don't recognize, we throw it to the hypervisor and it generates its policy and installs the flow into our device. And after that, we accelerate the data plane activity associated with that. So all of these things together, when you're talking about 25, 50 and 100 gigabits per second, you really need to accelerate every piece of the network. Otherwise we've seen situations where somebody plugs in a 40 gig NIC, but they're not using the accelerators we have. So that can be VXLAN encapsulation and decapsulation as well as all the stateless offloads. And they only get about less than 10 gigabits per second. So they paid for 40 gig adapter and they're only getting 10 gig worth of bandwidth. As soon as they turn on our accelerators and we say, oh, you need to do this, you need to use this SRIOV, you can turn on the rocky capabilities, we have lots of accelerators to get us up to these performance levels. And the other key part of this is that it's not just the fact that you're getting performance, but because you're doing the offloads. In one of these cases, we saw that we were consuming four cores at 25 gigabits per second. And when we turned our offloads on for the OVS, we went down to zero CPU utilization because we were doing it in hardware. So we're giving the cores back to the application processor to be able to run the application. Because at the end of the day, that's what you're interested in. If you're in NFV, you're not really concerned about moving the data. It's about running whatever application you want on top of all that data that you're getting. When we go to 100 gig, if you extrapolate, if you were using four cores, you're gonna use 16 cores to run your transport protocol stacks. That's not what you're paying all the money for an expensive CPU and memory subsystem. That is the most expensive part of your server. You really want that part to be effectively free in the NIC itself and then use those CPUs to run the application processing. So the last piece is predictability. And here we talk about our spectrum switch. One of the things when you have a network, you really need to make sure that you have everything working smoothly in that network. And here we're talking about things like packet forwarding rates, the ability to withstand congestion, latency, and really predictable behavior. And I'll talk about some of the things that we see there. So spectrum is our new 100 gigabit ethernet switch. It uses what's called a fully shared packet buffer. And compared to some of our competition that breaks their chip up into four pieces, that causes a lot of problems. So first of all, you get very inefficient buffer allocation. So if you look at the data sheet of our device, it says around 16 megabytes of buffering and you look at another device, it may say 16 megabytes. But suddenly if only four megabytes is allocated for any given flow, you can imagine that you get much worse performance when inevitably you see what's called in-cast or microbursts occur in your network. And when that happens, you're gonna lose packets and you're going to wonder what's happening in your network, your performance is gonna go down. And so managing all of those individual consumers that you have in your cloud is a challenge. So when we characterized this, we saw that anywhere from nine X to 15 times better in terms of the ability to absorb a microburst. So this is when multiple devices are talking. So let's say you're doing a backup or you're accessing data from a stored compiler or you might be doing daily backups or hourly backups, you're going to have an in-cast situation. And the question is, is how long can you sustain and how much data can you absorb in terms of these microbursts? And here we saw about a nine to 15 times better performance capabilities than we saw with our competition, namely the Tomahawk switch. The other thing that was really interesting in terms of predictability and trying to understand what's happening in your network, we saw that if depending on the ports that you choose, the bandwidth that gets allocated to an individual virtual machine can be very, very unfair with the Tomahawk. So in certain circumstances, you'll get more balanced bandwidth allocation, but in other cases, you'll end up with one virtual machine or one connection sharing half of the bandwidth and then all of the other virtual machines that are connected to other ports going to servers are sharing the other half. And this will change on the fly if you change your connections. But these days, you really don't wanna send anybody into a data center and ask them to unplug a device. That's all happening manually. So you're actually moving virtual machines and doing VM migration. And so these activities are really transparent to you or invisible to you because you're doing VM migration. So when VM migration happens and suddenly your performance because you've changed the physical port that you're connected to goes from something that was very, very good to something that's very, very poor. It leaves you wondering what's happening and it's very difficult to debug. In our case, we fairly allocate the bandwidth across all the ports. So no matter which ports you share and change and whether a virtual machine moves, the bandwidth is allocated fairly no matter what. And this allows you to give service level agreements and have predictability in your network. So the last piece here is some of these things I was talking about are in-cast situation. In-cast is when you have two 25 gig ports talking to one 25 the same output port. Sooner or later, buffers fill up and it's a question of how well you can manage that. But there's another thing that goes on which is just how fast you can forward packets. And in particular in many applications, whether it's a messaging application or if you have a common node that's actually doing the storage of demons, for example, it's getting lots of small messages for synchronization. Then the question is can your forwarding ASIC, can the switch ASIC actually keep up with the forwarding rates? And this is what I call a voidable packet loss because it's a voidable meaning if the ASIC can keep up there's no in-cast. It's just I have a lot of packets coming into the network and those can be acknowledgement packets or management packets or messaging packets. And then can I keep up and keep forwarding them out? And what we've seen here is we are line rate across all packet sizes from 64 bytes and up. This is very important for telco applications in particular, you need both the end points that I talked about and the switching network to be able to generate full line rate across all the packet sizes. With the Tomahawk we saw here, for example, that from basically 64 bytes all the way up to 1,500 or 200 bytes, it was dropping packets. So really a critical difference here between the two. So all this information is available if you look at the Tali report here. It's melanox.com slash Tali. I encourage you to read that and you can take a look at that. And with that, I wanted to introduce one of the we have, I think, one of our customers, Cambridge is here. And they've built an open stack cluster, but we also have Enter here, Mariano from Enter, who's going to talk a little bit about his use case and how he's been able to take advantage of some of these principles. So this is my last slide, actually. So this was just the overall integration that we have with all of our partners. And then an example of that, I think Mariano can talk to it. Thank you, Kevin. Hello, everybody. Thank you for being here. And let me introduce Enter Cloud Suite. Enter Cloud Suite is a project from Enter. Enter is an Italian company. It's an Italian ISP that moved from being an ISP five years ago to a cloud service provider. And Enter Cloud Suite is its flagship product. It's a cloud based on OpenStack, deployed in three different regions in Milan, Italy, Frankfurt, Germany, and Amsterdam in the Netherlands. It was actually the first multi-regional public cloud based on OpenStack in Europe. So when we started, we started to work around Enter Cloud Suite in 2012. And OpenStack was pretty young. And the solutions we had at the time, there was a huge fight for network vendors to get the throne. It was the game of thrones for the plug-ins. I think it's finally over. And what we wanted, actually, was to be able to decide at what level to put our control plane and just to use underlying levels neutrally. So we clearly wanted to move away from locking, vendor locking. You can see on the left image, you had this maybe Cisco or something like Juniper boxes where you bought essentially the forwarding plane coupled bolt into the control plane. We wanted to move away from this approach because we have seen OpenStack was doing exactly the same on the server side. We come both from the data center services and from the network. So we were able to manage this complexity at a higher level. So what we wanted to do was to choose our hardware, use APIs to manage the hardware, and use the functionalities built-in into Linux kernel, and on top of that, to run the user software, the management services, and eventually now the containers to run application at a higher level. So this is a desegregation process that was started in the data center services like virtualization, but it was ready to be ported to the network also. So why reinventing the wheel? So there are so many operating systems. We have evaluated the many of them before choosing. And then we decided that we already had the common language that everybody in our company, but also in the OpenStack environment, was able to use Linux. So we wanted to use Linux to manage all of our hardware and all of our infrastructure, both servers and networking. So what we wanted actually to do was we are a small company. I don't know, maybe some of you work for small companies, and to run a public cloud with OpenStack may be a challenging task. So what you need to do is to be efficient every time. You need to have people being able with the same skills to work on very different aspects of your infrastructure. They can range from networking to storage to virtualization to anything that the OpenStack world can bring to. So you definitely want your users to have one single common interface to cope with all the infrastructure you are running. So Ansible is one that we use. We also use Puppet. And so why not bringing all this automation to the networking part? So at the end, what we think is that we, by using Melanox and Cumulus, we are going to reach the same model. This is actually the same model you can have in OpenStack. It's not very different. You just run different hardware. In this case, the hardware is just forward in place, playing the hardware just forwards packets. When we decided to work with the guys at Melanox, we were wondering how to solve our issues we had with our previous cloud platform. We were coming from a VPS product. And we were using Nova Network on Essex. It's still running. And we were working with Essex Nova Network with VLANs. And then our marketing and our brilliant CEO here decided to provide a free trial registration with email that brought us, so for 14 days, you could have any virtual machine for free. So we got flooded from Vietnam, Thailand, the US, anybody with the email and email could access our infrastructure and run VMs. So we called it the trial disaster because our villains soonly ended. So in the next release, within the Cloud Suite, we decided to move to a more extensible network topology. And so we decided to run VXLAN that at that time was alpha version. So the RFC was not very subtle. And our main concern was about the fact that VLANs, VXLAN, require a lot of UDP tunnels. So the concern was that providing CPU to VXLAN would be kept away from the customers. So that we decided to work with Melanox because the UDP offload was so effective that we have seen the 9.0. We used 10 gigabit nicks. So we have seen 9.3 effective hyper bandwidth, which was pretty awesome on our nodes. Also, we use SAF as a block storage device. So we use the 40 gig nicks, double dual nicks on top of SAF nodes. So it was very important for us to have a large bandwidth also because we use SSDs inside the SAF installation. A last thing to say is that when it comes to OpenStack, you cope with a lot of vendors, the biggest one, the smallest one. And one thing they provide, they promise you, is they are going to support you. But when it comes to real support, you need someone helping you to solve the problems once they show up. We had an issue with the driver, with the offer driver, which is the open source driver for Melanox because we were trying to fix some issues they had. And so they allowed us to send one of our technicians to the Israel R&D office. He spent three days there with the best engineers they have, and they provided the solution in three days. So we had the problem fixed. It was a pretty big bug to fix. And we had it fixed. So when you have to face a challenge like running an OpenStack cloud, there are not many vendors that can help you, except the ones that are betting their company on your success. And Melanox did this with us. So thank you very much. Thanks. So with that, I think we've got a little bit of time left, so we're happy to open it up for questions. If not, there's a question. Go ahead, you can use the speaker's microphone. Just talk. This comes into provisioning of the things. A two-plugging for Mitaka is not GA yet. One thing, and other thing is, are you guys looking into, for example, to MetaSwitch, your partners, Kalliko, Project Kalliko, and Akanda's Astara to use those approaches for provisioning of those net layer 10, layer 3 nets? So I'm not the right guy. That's way above my pay grade. But ERA is this here somewhere, who would be able to, there he is right behind you. So he can answer the question about ML2. And I think Chloe can probably talk to the MetaSwitch question. So I encourage you to come by our booth and have some detailed discussions. Any other questions? So you mentioned that your NIC can do offloads, right? Yes. I heard a reference to a NIC which Menonaut has designed with programmable accelerators inside that. Could you talk more about that? So I'm not sure. There's quite a bit of programmability in our existing. I'm not going to talk about the future things that are coming. There's always a spectrum of programmability, but our NICs today are quite programmable. So inside of the device, you can have open flow rules where you have, it recognizes a flow and it has a set of actions. And then you can filter that and loop it back through and do multiple actions. We can do end cap and decap. So it already is quite programmable. It's not programmable in the sense of our other devices. So we acquired a company called EasyChip earlier this year, which is, there's two parts of it. One is a network processing company. The other is a Tylera was the name of the company that is multi-core processors, arm-based processors. And so those are infinitely programmable. They're general purpose processors or network processors. And so we've talked about the fact that we'll see those technologies come together, the Melanox technologies and the EasyChip programmable technologies in the future. Oh, sounds good to hear. Great. OK. Yeah, so the way Melanox works, we actually, everything on chip is sort of a cache. And so then because we have access, very rapid access to external memory, then if we don't have it on chip, we can go fetch it off chip. So the answer is effectively infinite. But it's how big the cache is. And I actually don't know in the latest ConnectX4. Maybe ERAs, I don't know if you know. Yes, so the question was if we can upgrade to newer open flow. So basically the current design is so that every flow that we cannot address in hardware will go to the user space back to the OVS. But internally in our silicon, we have some degree of flexibility. We can add capabilities that we don't have today with some flexible parsers that can somehow add capabilities that are not available or not designed today yet. So not for everything, but yes, there is way, OK? OK, so if there's no more questions, we can go and drink beer.