Hello everybody, and welcome to Barcelona. Sorry for the dark, rainy weather. I'm a local and I swear it's not usually like that. Although that being said, autumn be autumn, and you cannot plan for those things. All right. So the presentation that we're going to give today is about container networking, a bit of an introductory one. So how many of you are familiar with containers and run containers in production? That's a nice show of hands. Very well. So I hope that it will be very relevant to your current knowledge and that we will expand it a bit maybe. But before we do that, let's introduce ourselves. Myself, I'm Antonio Segura Puimeton. I work at Red Hat. And also that second logo is from the Superfluidity Project, which has a lot to do with containers and microservices and so on. You can introduce yourself. I'm Neil Jerem. I'm with a company called Tegera, which is the originator of the Calico project. And yeah, so that's me. I'll be talking a bit later on. And then we'll have Flavio Castelli, which I hope will arrive very soon. Otherwise, I'll have to present his part. And well, it's going to be a bit of improvisation, but it's good. It's good. All right. So let's continue. First of all, I want to give a word of disclaimer of which are the constraints we took to take on such a broad topic like container networking. There are many container engines. Like I'm sure that if I ask, let's ask. So anybody here run LXC or LXD? You see, there's many container engines. There's also Rocket and so on. But today we'll just talk about Docker, which is the most common one. And also about container orchestration engines, we're also going to restrict ourselves to the two most common. There's a big missing one, which is Mesos, which is also quite common. But due to time, we had to restrict it to just swarm and Kubernetes. The thing is, each of these orchestration engines comes with a set of assumptions, or sometimes even an interface that kind of couples the solution to some kind of networking. Sometimes you can work around that, sometimes not. But we're going to explain a bit how that can look like. And finally, of course, what I'm saying today in two months is probably going to be obsolete because somebody else will come and innovate and so on. And that's really a good thing. So the problem is with the advent of containers, a more important or more field-changing thing happened, which was the arrival of the architecture based on microservices. How many of you know what microservices are? All right, let's work for me. Perfect. So due to the nature of microservices and how they are split into a lot of small containers that each serve a part of the application and that each part can be served by multiple containers, this implies a lot of endpoints that you need to connect to your networking and a very changing one. Because the good thing about microservices or rather one of the good things is that they allow you to scale up, scale down, depending on the necessity. So it gives you a lot of agility. So let's start first, though, with the foundation, with all of you found when you first started with containers. I suppose like most of the developers here, you started by installing Docker and seeing what you can do with Docker. So let's start with the most basic one. When you put create a container and you would not have any kind of networking thought out, you would just plug it into the networking of the host. So what happens with this is that you just have access to any of the interfaces that are on the host. So if I start it on my computer, I'll have the ethernet and I'll have the wireless card. And if you do something like show the links that you can see in the container, you can see them all. Of course, having the possibility to use them all doesn't mean that you can do changes on them, on the devices or on the routing tables and so on. Because what that would imply would be you could wreck havoc into the host networking. So typically Docker, when you start the container, it will drop some of the capabilities. So you cannot do things like flash the addresses or change the routing tables and so on. You can do it, however, if you pass cabinet admin, which is a Linux kernel capability. All right, so well, one thing I forgot to say about the previous slide is when would you use host networking? So a very typical use case is when you want to do infrastructure containers. So let's say that you are running Kola. So your Nova, Neutron and so on are running on containers and you want to network them. So the most common way to do that is to just place them in the host networking and to have the host networking configured. Of course, you could do it otherwise. You could have Kola with a VLAN based networking with the driver, but it's not so common. So this is the mode that most of you used for the first time since it's the Docker's default in which Docker sets up a Linux bridge for you that is not connected to anything. The only connection to the outside world is through forwarding and I'm gonna show a bit how it does that. And to that Linux bridge, which in truth it's more like a switch because it has a lot of ports, it just puts a VF device and which is like a pipe and what goes through VF zero appears on VF one. And the good thing is that VF one and VF three in this case are already in the kernel namespaces that Docker sets up for the containers. So how does it look like when you look outside and inside? So from the outside what you see is that you have a bridge with an address. It's a private range, so it's completely isolated from outside, but since Docker wants you to be able to serve things or the containers to go out, so it sets up forwarding and for the return flows it sets up masquerading rules. And from inside the container what you see is that you have an IP on that private range and the default gateway is the one on the host networking. The other important aspect is as I said before that you should be able to open the networking that you give to the containers so otherwise you cannot serve anything. So it would be quite useless. And to do that it uses IP tables. And as you can see here that is the Docker chain that sets up a D NAT rule so that the port 8,000 on the host will go to the port 80 on my NGINX container. And now I give the word to Neil. So now Demi you move on to kind of wanting to run containers on multiple hosts instead of just one. And when you do that then two kind of new factors come into play. So one of those is that you need to start being a little bit more careful with your IP addressing because if all of the containers were all just on a single host and if you're only talking between containers on a single host then the IP addresses which those containers are gonna use are never going to go anywhere outside that host. And so it doesn't really matter what IP addressing you choose there. But if you have a set up like this where we've got three hosts and let's say you want the yellow containers to be able to talk to each other, one of those on host A, one of them on host B then whatever IP address container one has that's gonna kind of go outside host A. So a little bit more care is needed to avoid allocating overlapping IP addresses in cases where you don't want to allocate overlapping IP addresses. And secondly you need to address the question of how the data gets from one of those hosts to another. And of course those things since we're at an open stack conference here. These are things that open stack of course has analogous answers for VMs in neutron. And if we look at the transport question first, the question of how that data gets from one of the hosts. So just to pin this down a little bit more. So imagine container zero one is sending a packet to container zero two. So clearly what first thing that happens is that data goes from the container on host A to its host. And then that host has to do something to get it from host A to host B. And then once it gets to host B, host B is able to deliver that packet to its local container. The one in yellow numbered, numbered two. And traditionally neutron has solved this problem using overlay networking. I think called an overlay network. So an overlay network basically means every packet that those containers want to send to each other gets wrapped by the source host inside some other IP packets. Then that IP packet is addressed to the destination host. So host B in this case, when it gets the host B, it gets unwrapped and delivered to the destination container. So, and this means that the addressing that the containers have is completely independent of the host infrastructure addressing. It also means if you do that kind of wrapping up such that you include the layer two, the ethernet headers that were sent by the original containers, then you can still simulate a layer two adjacency between the containers if you want to, even if there were, let's say, intermediate routers in the fabric in between host A and host B. So that's not shown explicitly here, but there could be if you're running on, let's say, GCE, for example, there were intermediate routers between every GCE node. So that's what overlay networking allows you to do. And also just on the addressing point once again, because of the point that the addressing of the containers is independent of any IP addresses that are used in the host infrastructure network, that also means that you can use overlapping IPs. You basically can allow different users of your data, of your container cluster to, for example, what's called bring your own addressing. So they can quite happily, as long as you've got kind of a user of certain containers over here, say the containers in pink, and a user of the container, another completely separate user, say of the users, the containers in yellow, and as long as those never need to talk to each other, they can use the same IP addresses. It just means that when you kind of work out this way of wrapping the packets, when you encapsulate those packets, there needs to be something in the way that you encapsulate that it kind of has a scope in it that is able to differentiate, let's say, if both containers using 10.65.02, then say this is 10.65.02 for the yellow containers and this is 10.65.02 for the pink containers. So that's overlay networking in a nutshell. I hope I'm not just telling you things that are already absolutely familiar to you all, but it comes at a cost of having to encapsulate and de-capsulate those packets all the time and there's a performance cost to that, there's a slight complexity cost to that, there's a cost in terms of MTU, having to know what's going on with your MTU. It's also a bit more difficult to troubleshoot. It means that in different parts of the fabric, if you're looking for a packet going from one place to another, or more typically looking for why you don't see a packet going from one place to another, then you need to know that in a different part of the network you need to look for it in a slightly different form because it will be wrapped up in some way. And so is there any alternative to that? And in fact, there is and this is the thing that we're going to call routed networking. So if you have a situation, so look at this and say, kind of like look at this and say, well, what would I need to say if I didn't want to have an overlay network? So if you had containers which didn't actually need the layer to adjacency to each other, and also if you didn't need bring your own addressing. So in other words, if you are happy for all of your containers to get their IPs from a managed flat IP space which was managed in such a way that there were never any conflicts between what one group of containers wanted and what another group of containers wanted and also managed so there were no conflicts between those IP addresses and the host infrastructure. Then you don't need this overlay network. Then essentially you can basically just do IP routing to get the packets from one container to another. And that packet will never be encapsulated or de-capsulated anywhere and would look the same. And anywhere you see it in a fabric, it will look the same. And this is what we call calling a routed network. Yeah. I do. Sorry. So I'm gonna talk about a load of specific projects which are now implementing these approaches and that was all kind of like preamble. So to just go through some of the routed and overlay projects which kind of provide all of these approaches. So, and actually that's not the next slide. This one is. So this slide is showing some routed approaches. The thing on this slide which is saying docker zero is slightly, is not correct for all of these projects. So actually where it says docker zero, what you should think of is that a packet is coming from one of the containers and is actually going into the routing table of the host. And then the host is routing that to wherever it needs to go. So I mentioned some implementations down there at the bottom, calico, flannel, and romana. So, I'm gonna talk about flannel and romana first because they are similar in that what they do, the way they manage the routing is that they say, well a certain prefix, a slash 24 for example, belongs to a particular host. And then if, so imagine container A is sending to container D then the routing table on host A could know that all of the 10.0.9 addresses are for containers on host B. So basically it can put an entry in its routing table which says 10.0.9 slash 24 via that IP address there which is the IP address of host B. So <IP_ADDRESS>. And that's how basically how flannel and the routing elements of flannel and romana work. So calico takes a slightly different approach. So calico actually doesn't say we want to kind of reserve a slash 24 for every host because when calico started we thought that was a little bit inflexible. So we go instead with allocating slash 32s and I've rearranged the IP addresses here so you can see that you can have say 10.0.8 on actually one on host A, one on host B and similar 10.0.0. So basically with calico the addresses can be anywhere. And instead what happens is that we use BGP to propagate those routes around to the other hosts that may need to forward data to those addresses. So to put a bit more, just a bit more leads on that. So what happens in calico is that something the orchestrator says, well, there's this container which should exist on host A. It's got an address of <IP_ADDRESS> and it will be connected to the host. It has its own network namespace but it's connected to the host by a v-th pair. And so the first thing that happens is on the host we say we create a route in the local routing table which says, well, to get to <IP_ADDRESS> please go through that v-th interface, okay? And then what happens is the BGP speaker for which we typically use bird notices that there's this new route in the kernel to <IP_ADDRESS>, then exports that to all of the other it's all BGP pairs. And the result of this is that the BGP on host B ends up with a route that says <IP_ADDRESS> slash 32 via <IP_ADDRESS>. So that's how calico works. But the kind of the fundamental routing idea is the same. Now the interesting thing about this is that, how are we doing for time by the way, do we need to? Okay, so the thing about these route approaches is that you need to know where you're going at every hop. So basically we've got all of these IP addresses associated with containers and at every point where you have an IP routing operation in your data path you need to know where the next hop is for a particular container address. And so if you, sometimes that's tricky because sometimes as kind of indicated by this diagram there are no intermediate routers between host A and host B but sometimes they're all. And if you've got intermediate routers, you know fabric then you either need to, if you have the option of programming those intermediate routers or peering with them, then you can arrange that they all have those container routes as well or else you need to do something to skip over those and skipping over them is essentially introducing some other form of little tunnel or another little bit of overlay networking in this particular section of the network. And so what we then, and this takes on the funnel because what we then move on to is a kind of a kind of a big picture in which sometimes you're doing routing but then sometimes you're kind of using a little bit of overlay or tunneling to get between two places. And Flannel has some interesting, so Flannel's a different project originated from CoroS. And they, as I said, they do have this mode where they do routing and they assume that every host corresponds to a slash 24 prefix. They can also do the bridging as Anthony showed. So basically they can bridge onto a device which performs a UDP encapsulation or a VXLAN encapsulation and those are both forms of bridge networking that Flannel can do. Or they can, but they also have a couple of nice options for running on AWS and GCE. So both AWS and GCE, GCE always has routers in between any two nodes, but it does allow you to program some routes into the routing table which GCE uses. And so you can make use of that facility in order to traverse those intermediate GCE routers. That's an option and Flannel provides that. And AWS, of course, if you're running on the same subnet in a VPC on AWS, then you won't have intermediate routers, but if you have hosts in different subnets, then you will. And again, AWS gives you the option of programming the VPC routing table. And that's another thing that Flannel can allow you to do. So in other words, the upshot is you can have containers and multiple hosts on AWS and Flannel will let you connect between them. So a brief mention, this is a bit tiger centric to my company. So my company originated Calico. We kind of, Calico kind of started off with this kind of very flat IP based connectivity model that I've showed you. Later on, we kind of realized that security was very important. So we added a lot of kind of quite interesting layer for describing the security that you needed a data center and then implement mapping that down onto IP tables. And that has really become, if anything, a more important part of what Calico does now than the basic connectivity. And we also were speaking to CoreS. And CoreS said, well, sometimes the flat layer free connectivity doesn't completely work on its own. You need to kind of add these methods for getting across intermediate routers, say in GCE. And so we actually came up with this combined project called Canal, which is fundamentally the idea of that is to say, we would like to provide a system which provides all of these different connectivity options for getting wherever you need to between your hosts combined with the Calico security model for securing those connections. That's basically what Canal is. But fine, let's skip that because I don't want to spend too long on that. So those are the routing-based approaches. So for completeness, let me just touch on all of the overlay approaches that are available for containers. And there are quite a few of these. So Docker itself provides an overlay method. So all of these fundamentally, what is happening is that you're adding some encapsulation for getting between the hosts. And in cases where there are multiple scopes for the addressing for knowing which scope you're kind of, which scope the encapsulation corresponds to. And so Flannel, as I've already said, has UDP-based and VXLan-based ways of doing that encapsulation and providing those overlays. Weave is another important project which does that. And Docker itself provides a native overlay. I don't actually know full details of those myself. So if you have questions about that, I hope my colleagues will be able to answer at the end of the talk. But I do want to talk about career at this point. And so career is the project which basically says that what if you're already really familiar with the Neutron API and what in particular if you, Neutron provides various forms of basic connectivity, overlay and rooted-based, as we've been talking about itself, what if you also really like some of the things in the Neutron API which are built on top of that, couldn't you just use that same abstraction, that same API to connect all of your containers together? And that's essentially what career does. So the first kind of phase of career, and Anthony will correct me if I get only this wrong, the first phase of career delivered that integration for Docker. So basically making a lib plugin, a lib network plugin, I mean, which connects to the Neutron API. And it means that anything, any kind of connectivity you can configure in Neutron then becomes the way that your containers are connected together. And the next phase of a career is looking at extending that to Kubernetes and also to multi-level connectivity so that you can kind of connect both to VMs and containers and containers, containers running bare metal and containers running VMs. So what that means is that any kind of form of either overlay networking or root networking that you can do in Neutron by using career to connect to your containers, you can actually do those same forms of connectivity or for containers via career as well. Fine, and I think I've probably covered this slide already. So yes, I mentioned the VMs, containers and containers and VMs and essentially whatever form of networking you choose, you can connect kind of hybrid forms of workloads together using this approach. So fine, so I'm gonna come to the end of my part here. This is just a quick summary or comparison of rooting and overlay networks. From a rooting point of view, perhaps they have better performance than overlay. I made this point about them being a little bit easier to troubleshoot and that wherever you look in your fabric, a rooted approach will, the packet will look the same. On the other hand, there are kind of typically points within an infrastructure where you don't have complete control over every intermediate router. So either you need to tunnel that part or you need to, or maybe if you do have control but then you need to do something extra in order to kind of peer with those intermediate routers so they know those routes. And that also means that in overlay networking because essentially you're always tunneling from one host to another, it's not a very big step to go from there to traversing multiple clouds, to adding into cloud as well. Whereas if you kind of like starting from a rooted networking implementation where you're generally speaking or perhaps not at all tunneling anywhere, then it's a bit more of a thing to add on there. So fine, I think that's pretty much what that size says. So I will kind of rest and talk to Flavio. Okay, thanks a lot. So you might think that now that we have connectivity, everything is done, everything is settled. In fact, there are still some challenges that are specific to this distributed environments that you still have to face. So first of all, there is the problem of service discovery. So to define the problem of service discovery, let's introduce some concept. So you have a producer who is a container which is running a service, and then you have a set of consumers who are clients of this service. So now you need to find a way to put the consumers in contact with the producer. So the consumers have to find where the producers are located. So for example, here we have a web application running on host A, which is looking for a radius database which is running inside of another container this time on a different host, on host B. So you can solve that problem and have the two of them in touch. But then what happens when, for example, the radius database is suddenly moved from host B to another host. Like what happens if there is a failure on host B and all the containers running on host B are automatically relocated to somewhere else. Now the web application is going to be broken. This is something that we don't want to happen. Also, what happens if, for example, you have multiple producers? So like here we have multiple containers running on different host, each one of them providing radius database. Now which one of these radius entry points we should use from the web point of view? So to solve this problem, there can be different approaches. You might be tempted to do things like, let's say the old way, so like to use DNS. But now you have introduced different problems. First of all, containers are really fluid. They keep moving everywhere. So you cannot assume that the entry returned by your DNS server is still valid over time. So you don't want your clients to cache these results. So you have to configure your DNS server to return replies with a really short time to leave, maybe zero time to leave. And now you will think you're set, but that's not true, because unfortunately you realize that there are lots of broken clients out there that do not respect the time to leave. So they will keep caching this result and they won't react to sudden changes of infrastructure. So you will end up with something which is broken in an inconsistent way and it's really hard to debug. So this was the approach which was used in the beginning with Docker when distributing containers. So initially they decided to update, et cetera, host, dynamically then they introduced an integrated server. Now we've won the 12 things for a bit different. So I'm going to talk about that later on. The approach used by a lot of people is to just rely on a key value store. So something like at CD or console or zookeeper. So the producer as soon as it starts, it will register itself into these yellow pages and it will say, hey, I'm here with this IP address and this port number and then the consumers will either look up manually into the yellow pages or in most of the cases it's up to the orchestration engine to just automatically inject this kind of information into the application. So for example, there could be environment variables or configuration files that are created with this kind of information. The other problem we saw before was how to react to changes, how to handle multiple choices and a new one which is handling ingress traffic. So to solve the problem of multiple changes and the problem of handling failures, orchestration engine like Kubernetes or Swarm starting from version 1.12 of Docker, they have this concept of service. So as soon as you create a container which is a producer, so it's offering a service orchestration engine will also create a virtual IP address. So now this virtual IP address will automatically redirect all the requests to any of the containers which are providing the service. So what you have to do is just to point or your consumers or your clients to this virtual IP address and that will solve the problem of figuring out which radius database we have to use like in this picture and you can also figure out what happens if one of the nodes goes down. The nice thing about that, the last thing is that given that this virtual IP address is stable, you can just add DNS on top of it to just make legacy application work because now the IP address doesn't change so there is no risk of caching an IP address which is not persistent. So the ingress problem is about exposing an application which is running inside of your container to traffic from the outer. So what you can do, I'm going to show you a picture, you can just ask Kubernetes or ask Docker's worm to just publish the service on each worker node of your cluster. So a port number on each node of cluster is going to be reserved. So all the traffic which is directed toward this port is automatically redirected to one of the containers which is actually running the service.  It's really important to notice that like in this chart, it can happen for example that the load balancer redirects the traffic toward a node which doesn't have, like host C, doesn't have any instance of the gas book container but that doesn't matter because from this public port on the node, everything is redirected to the virtual IP address of the gas book which automatically finds out where the gas book is running. So to recap and leave some space for your question, there are several approaches when it comes to networking in the container world. You can have approaches that are either using an overlay or a routing approach that can be implementing the CNI or the CNM specification but most important of all, it's not just about connectivity, it's more about that, it's about security. As we have seen before, it's about handling changes and handling ingress traffic and all of that. So with that, I think we can start a Q&A session. If anybody has a question, like, I'm sorry, I didn't realize this was so short. I can bring the microphone over, any question? All right, so thank you all for joining the presentation and if you have any question that you don't want to voice now, you can meet us later. Thank you.


There are lots of different workplaces in construction sites, offices, and farms. But the most dangerous workplace is your vehicle. Because driving is a job all on its own, your mind has to take in speed conditions, pedestrians, and more. So adding other tasks like making calls or eating meetings, can divert your attention from the road and have serious consequences. Today we're going to cover three important aspects of safe driving for work-basic safety, avoiding distractions, and creating safety policies. Let's get started. Lots of Montanans drive for work, even if it's just going across town for a meeting. In all cases, safety matters. Start by looking your vehicle over to make sure everything's in good working order. If your car is a rental or a fleet vehicle that's unfamiliar to you, take a minute and locate the controls for lights, wipers, and cruise control, and adjust the seat and mirrors. Looking good. Now, what next? You're so smart. In Montana, more than half of all fatalities and serious injuries from crashes involve people not buckled in properly. So be sure to buckle up. There are a few more safety tips. Follow speed limits, and watch for changing conditions. Pull over if you feel drowsy, and never drive under the influence of drugs or alcohol. Now, on to distractions. I said on to distractions. Multitasking may be part of your job, but not when that job includes driving. Any kind of distraction on the road increases your odds of being in a crash by 2, 3, or even 9 times. That's because there are three basic reaction components to driving that can be affected by distractions the time it takes you to perceive a situation, the time it takes you to act on that information, and the time it takes for your vehicle to complete the response. Put the distraction down, because even a split second delay in your reaction time could be bad for all involved. In many communities, you can be ticketed for distracted driving, but being attentive starts with you pulling over before using your phone or typing on navigational tools. On longer trips, allow time in your travel plans to stop and eat, and keep items that might tempt you in the trunk and the things you may need, like sunglasses. Handy cool. The last thing to remember about driving safety like any safety issue, it needs to become part of your culture. Develop specific policies around wearing seatbelts, phone use, and eating. Orient new employees to those policies specifically, and hold coworkers and employees accountable by speaking out when you see an infraction. Do all that and it won't matter where you are.


Hi everyone, Joe for Jaspy's casewrakes.com coming at you with another random number block randomize that's gonna unlock Playbook pick your team six coming up in the next video. This number block group features those teams That's how this format works right here. There are chance There's a possibility of some non numbered cards right there. We'll randomize that to To one person in this number block group if any big thanks to this group right here. Thanks for making it happen There are the numbers and let's roll it and randomize it one and a three four times each one two three and Four at David down to Jason Parker two different Jason's in this one one and a three four times for the numbers one two three and Once more right up fourth and final time After four we got three down to seven All right, good luck. Here's how it shakes out for you David with three gram with six Mike with nine Jason Parker with one Jason waters with eight Jason Parker with zero Ed with two Allen with five Jason waters with four and Jason Parker with seven Let's alphabetize alphabetize sort numerically by number so I would give you the spiel about zero getting all any and all redemptions Jason P, but You've got both zero and one so your bases are covered All right. Thanks everyone. We'll see you in the next video for the break jazzy's case breaks.com


Welcome back to the Laura Martin show presented by Buffalo Wild Wings. I'm Sam Murray joined now with Stevenson field hockey head coach Laura Martin and coach before we wrap up the season. Let's talk about the regular season Or season finale on the road at HUD 3-0 victory. Don't allow a shot Talk about talk about that win. Well, I mean it was an important last game of the season We knew three things going into that game is that we hadn't qualified for playoffs that Hood was struggling and that it was indeed our last game. So Knowing that we divvied up the lineup and we were able to allow every single player on the team to play and And to hold them to zero shots and playing the bench I thought was was a wonderful way to kind of put an end to the season One person that I have to mention. Maybe I'm a little biased because she works for me. Carrie bright out Super cool. Yeah. Yeah, talk about that moment set the it's at the end of the first half times expired on a penalty corner So I know you drew up a great play there. Oh, yeah We I The past game I did actually call a timeout to win us in overtime with a great play But not necessarily for this one This was just great reactions and a super super thing for Carrie as a senior Always accepting her role not not actually being able to play that often and getting in the lineup and sure enough Scoring her first goal on a crazy corner. The ball was shot It was deflected off of a stick and Carrie just put her stick up and tapped it in and the bench went crazy As they often talk about so yeah, the timer went off bench was yelling scream and go into hug Carrie so it was a beautiful way for her to and her senior year. That's awesome. Yeah Now as we kind of recap the season here Maybe not the record you want it, but you guys fought through a lot of adversity throughout the year right on and off the field Your team never hung their heads. They never got down on themselves. They fall all the way till the end Yeah, talk about talk about the team and talk about this season Tough group of kids adversity. We did we handled a lot of different things both on the field off the field injuries Just different scenarios that happened and we just keep going and I think that's something that I'm very proud of with these kids So yeah, I mean we've had some brilliant wins and some games where we're you know loving life We started with Barbados and what a great opportunity to play some wonderful You know strong athletes there and then had some had some tough losses where we know deep down inside that we could have played better So the as a saying goes, you know, you win some you lose some but all in all good season great kids and I'm a young squad. So looking forward to the years to come. I'm looking forward to it as well I thank you for coming here weekend and week out. Yeah sitting down and talking with me Working working our kinks out on the Laura Martin show.  Well, we'll get it We'll make it happen. We'll have Joe. Well, Joe, make sure it happens. Sure, but thank you very much Thank you. Good luck in the offseason and we'll see you back here next year. Sounds good For coach Laura Martin, I'm Sam Murray and this has been the Laura Martin show


appreciate you. Thank you. If I decide I want to. Okay. Okay. Yeah, I was going to call and check the availability of the vehicle. Okay. Yeah. It's a let's see right here. 2018 Honda Civic Sport 57,000 miles. Okay. No, he's not asking my name or anything like that. Okay. Is this going to give me information? Okay. Cool. Yeah. Where are you located? Okay. I got you know, I'm about three hours away. I'm just a little bit too far away. I think I'm going to look I like the car, but I'm going to look for one a little bit closer. Okay. Well, I really appreciate you. Okay. Wow. Is that what happens when someone says they're a couple hours away? We just say, Hey, have a nice day. Let's call another one. Yeah, Danny, I was going to check the availability of the vehicle. Maybe Danny's taking a nap. Yeah, it's a Dodge Challenger. I got a stock number if you like. 2018 charcoal grade C 31 41 Ford. Now, Dan, watch. He hasn't got my name yet. Okay. See any word taken? Let me ask you this. If I was going to check it on a vehicle. Hey, by the way, where you calling from today? Who might have the pleasure of speaking with? How you doing? Right? Do you agree Dan? We have to build relationships on the phone. Yeah.  If he gets back on the phone and he tells me, Hey, Andy, I still have this thing. He doesn't even know my name yet. Okay. But let's just say he gets back on there and he says, Yeah, it's still available. What time can you make it? He is an order taker. Let's just call it out like it is. Okay. And I have no idea why he said, What are you calling about? And then he puts me on hold. To me, that's he doesn't know what to do. Let me try. Wait. Okay. Awesome. Well, I actually want to ask a question. What's your best price? Yes. Yes. So what would be your best price? Okay. So are you saying you can't get me a better deal? Well, so the internet was created so I could just kind of gather some general information over the phone. And that was kind of my goal. He could have put this to bed in two seconds. However, he could have put it to bed. Now, do you think it's hard for him to overcome the price objection with no relationship with me? He's talking about technological age. Okay, totally appreciate it. Look, if I decide I want to come in, I'll let you know. Thank you so much. Okay. Alright, bye bye. Now, I want to say this, he didn't get my name, didn't get my number, didn't get any information. He did what? He was an order taker. He said, What are you looking for? He said, It's still available. What time can you make it? If you look like your competition, if you sound like your competition, you get treated like your competition every single time. Yeah, I was going to call and check the availability of a vehicle. Yeah, someone in cells. Okay, hey, this is just for you. Right? Hey, how you doing today? I was going to check the availability of the vehicle please. Yeah, the 2018 GMC Sierra. And I got the stock number if you like. Black one. Now I want you to notice he didn't even ask me my name. Okay, didn't ask me my name. He's not building a relationship with me. He's just handing out information. Okay. Yes, sir. The black Denali. Now, here's my main deal. At this point, you should be building a relationship Yes, you're still have that one out there. Okay, watch. Okay, awesome. Beautiful. Okay, so you still have it. What would be your best price? Okay, so you're saying I can't get a better deal at all? We have to negotiate with the managers. Okay, best prices, the price a lot. You know, I'm not saying that they're not going to sell it to you, it's cheaper. I mean, they're probably, probably will. So they will or they got to come and sit in, go through the process of the way things have been the last 20 years. Okay. Okay, well, listen, I really appreciate you. Okay. By the way, he hasn't got my name doesn't know who I am doesn't know if I've been in the market for a while. If I just started wearing them out. No, man, I'm good.  Obviously, I don't want to go sit on the show and for for a long time. I really appreciate you. Thank you.   Now, listen to me. If the training you have in place right now is working. Here you go. Yeah, I was calling to check the availability of a pre-owned vehicle. Yeah, John has called to check the availability of a vehicle. It's going to be the 2019 Cadillac CTS black. Now, if you notice, you haven't got my name yet. Okay. Okay. Now, I want to say this real fast. He told me that the Cadillac CTS that I'm calling about is parked around the back and he wants to see if there's something going on with it. Now, my deal is is that we paid how much money to get this lead? How much money? 500 bucks? Whatever? Right? $200. It doesn't matter to me. The fact is, is that this may not be the only car that this customer is going to buy, but this customer is calling just to check the availability. The answer is, yes, it's still available. Hey, by the way, who am I speaking with? Where you calling from today? Oh my gosh, it's so great meeting you. Have you had the chance to drive one of these? These are super nice cars. None of that's happened. And by the way, he's already put me on hold and he doesn't even know my name. I'm going to ask you this, what kind of connection is made? Yes, I am still here. I don't think the customer needed to know that. Okay, awesome. Okay, and what's going to be your best price on it? Okay, so you're saying I can't get a better deal at all? Okay, well, I guess I'll keep shopping. Thank you so much. Alright, bye bye. Guess what? All I asked was, is that your best price? And guess what? He said, yeah, that is our price. We don't put our second best price up and put our first best price just like everybody else in the world said. By the way, he didn't get my name. He doesn't have a connection with me. He doesn't know how my day is going. He doesn't know how long I've been shopping for a car. He doesn't know where I'm at in the buying funnel. You know why? Because he doesn't care. He's a nice person who's an order taker and should be working at McDonald's because he's never been trained. And at the end of the day, why would we give somebody the information that we're putting a tire on the car and the car's pulled in the back? Do you think that's that's sexy? You think that makes me really want this one? Or you think that makes me feel in my gut that maybe this is in the right car for me. I'm not going to go any further with this. You know where I'm at.


we had in the last lecture we had tried to find out the inductance the mutual inductance between the rotor coil and the stator coil for a cylindrical rotor salient pole cylindrical stator salient pole rotor arrangement and in order to see how that expression for that can be derived we had a look at how the flux distribution inside this kind of machine would look like. We have then understood that the flux distribution inside the machine for the rotor angle equal to 0 the rotor angle equal to 0 was the case where this rotor is positioned horizontally you have a coil on the stator here one single coil on the stator the rotor position horizontally and you have coils found on the rotor and for that location of the rotor if you travel around the air gap around this inner circumference of the stator and try to find out how the flux density variation would look like we saw that the flux density variation looks like this the flux density is almost 0 for some time when the pole phase arrives you have a large value of flux density and once you cross the pole phase the flux density is again 0 and the next pole phase the flux density is negative and so on that is the kind of waveform that you have if the rotor is going to move we find that this flux density waveform has bodily shifted along the x axis but the wave shape remains the same the first waveform is drawn for an angle ? r equal to 0 the second waveform is drawn for an angle ? r equal to 30 degrees the waveform has moved by 30 degrees at 60 degrees we find that the waveform has moved further compared to this and the wave shape essentially remains the same except for the small dip and when the rotor has moved by 90 degrees we find that the position of the dip is same but the waveform has moved by another 30 degrees so this essentially how the flux density around the air gap this x axis denotes the flux density variation as you travel around the air gap of the machine this dip that occurs is due to the slot which is present here you see that there is a slot present if you start from the circumference angle 0 here and then you travel all the way here so at an angle equal to 180 degrees you find that there is a slot and because of that slot the flux density therefore dips and when the waveform moves further the position of the dip remains the same this in effect is due to the slotting and we said that we are going to neglect slotting in this evaluation and therefore the flux density waveform is approximated as a square wave like this with an intervening 0 intervals now this waveform is again drawn for the case of rotor angle equal to 0 degrees as the rotor angle moves this waveform is going to shift along the x axis as we had seen earlier so now the issue is having known that the flux density waveform is going to look like this quasi square wave with 0 intervening intervals how do we go about deriving an expression for the mutual inductance now we note here that the flux density waveform that we have drawn is the flux density that arises due to excitation in the rotor so the rotor is being excited and for a given position in the rotor one can determine what the flux density waveform is as you travel around the circumference of the air gap we want to find the mutual inductance therefore the mutual inductance m between stator and rotor is defined as the flux linkage in the stator coil per unit current flowing in the rotor so that is what we need to find out so now the question is flux density around the air gap is a function of which is to say is dependent on the circumferential angle by circumferential angle what we mean is the angle that you would traverse if you travel along the inner circumference of the stator that is your circumferential angle we start with 0 here and then travel around reach 180 here and then back to 360 here that is a circumferential angle and we have seen that it is dependent on the circumferential angle for some place it is 0 then maximum flux then 0 and so on right so if this is a case how do we find out what is the flux linkage of this coil on the stator so to find out flux linkage flux linkage is defined as the number of turns in the stator coil multiplied by the flux passing through passing through an area spanned by the coil now the area spanned by the coil what we can conveniently take we know that flux lines are going from the rotor and going to cross into the stator and therefore the area spanned by the coil could be taken as the area along the inner circumference of the stator from one side of the coil to the other side of the coil this entire inner circumferential area is what we can consider what we mean by the circumferential area is that this machine is extending along the axis of itself which lies perpendicular to the plane of the drawing and therefore it is basically a cylindrical structure which rises from which goes out of this plane and if it is going to be a cylinder then there is a circumferential area of the cylinder inside flux is passing from the rotor into the stator along the circumferential area and therefore that is a circumferential area which we are going to consider in order to determine the flux that is being linked by this loop and so how does one do that we know that flux is given by the flux density multiplied by da that is flux density into area is going to give you flux that is passing through that area so if you now consider an elemental area let us say that we are looking at a small area here from the center let us say that this area this arc subtends an angle d a and which lies at some angle a from your reference 0 degrees so if you want to find out the flux that is passing through this elemental area that is obtained by the expression b at this value of a b as a function of a multiplied by d a that is at this point and this will then if you multiply this elemental flux linkage that is the flux linkage arising due to the flux passing through this elemental area we can call it as d ? s this d ? s is then equal to the number of turns in the stator multiplied by b.da okay. Now in order to work out this example let us consider a small modification which will help us to understand winding better in the drawing that is shown here you have one coil side that is placed here and the other coil side lies exactly 180 degrees away now in some cases this may not be the situation the other coil side may not lie 180 degrees away but it may lie in a slot that is probably less than 180 degrees away may be a slot lying here you would have this other coil side here in which case we call this angle this angle let us call this as ? we call ? as the coil span in other words the coil spans an angle of ? so let us say that this coil that we are considering is now spanning an angle of ? which is likely to be less than 180 degrees and we want to find out the flux linkage in this loop. So as we said we are now trying to find out how much flux is linked by this coil by finding out how much flux is going to cross the circumferential surface of the stator inner circumferential surface this surface area how much flux is going to cross so in order to do that we have started considering an elemental area we have found out the flux linkage now this expression this approach can be used but we first have to have an expression for B and B as you know we have approximated the wave form of B to look like this it is a quasi square wave which is going here and we have this coil which is now situated one side of the coil is here another side of the coil is somewhere here which is less than 180 degrees okay. So in order to do this what we can do since we need to have a functional form describing the variation of B with respect to a we can try to resolve the wave form of B the spatial distribution of B into Fourier series into its Fourier series expansion then we will have B of a is equal to some sigma of let us say a n cos n a plus bn sin n a sigma going from n equal to 1 to 8 and then one can use this expression to substitute in this value of B and derive an expression for d ?s so how does one go about doing this so we have seen that this wave form of B is this wave form is going to be an odd function of this angle in the sense if you now extend this wave form to the left of 0 degrees then this wave form is going to look like this which means it is an odd function of the circumferential angle and therefore if we try to derive the Fourier series expression for this expression will contain only the sinusoidal terms the cos sinusoidal terms which are a n terms will not be there therefore all a n are equal to 0 in this wave form we need to determine only the terms corresponding to bn and further we note that this wave form has half wave symmetry in the sense the wave form becomes negative after every half a cycle and therefore we have the condition f of a is equal to – of f of a plus ? that is your half wave symmetric wave form and therefore if this is the case we also know that only odd harmonics exist right and therefore we can now write an expression for bn is equal to 2 by 2 ? integral 0 to 2 ? b of a sin n a d a and since this wave form is half wave symmetric one can simplify this as 4 by 2 ? into integral 0 to ? b of a sin n a d a and further this wave form also has a symmetry about 90 degrees you find that if you draw the angle draw the line corresponding to 90 degrees the wave form on either side are equal this forms a line of symmetry and therefore you can further simplify this expression as 8 by 2 ? integral 0 to ? by 2 b of a sin n a d a now in doing the integration from 0 to ? by 2 we further note that this wave form is 0 over some angle let us call this angle for which it is 0 from 0 degrees let us call this angle as ? then what you have is this integral reduces to 8 by 2 ? integral from ? to ? by 2 b of a sin n a d a and in the range ? to ? by 2 b has a certain maximum value which is constant and therefore we can write it as b hat divided by 2 ? integral ? to ? by 2 sin n a d a and so let us simplify this expression this is nothing but 8 b hat by 2 ? integral of sin n a is cos n a by n limits going from ? to ? by 2 and this is therefore 8 b hat by 2 n ? cos n ? by 2 – cos n ? by n ? that is your expression that you have now note that we have already observed that this expression in this expression you will have only odd values of n because this has only odd ordered harmonics even ordered harmonics do not exist in the wave form so it is enough if you consider this for odd values of n and if you put odd values of n here let us say n equal to 1 then this expression that is b1 is then 8 b hat by 2 ? into cos of ? by 2 is 0 so you have – cos ? and then for n equal to 3 you have b3 equals 8 b hat by 6 ? into cos of 3 ? by 2 is again 0 so you have – cos 3 ? and then you have n equal to 5 you have b5 equals 8 b hat by 10 ? cos of 5 ? by 2 is cos of 5 ? by 2 is equal to cos of 2 ? plus ? by 2 which is equal to cos ? by 2 and therefore that is 0 so you have – cos 5 ? and therefore 1 can see that b of a can then easily be written as 8 b hat by 2 ? – cos ? into sin a plus 8 b hat by 6 ? into – cos 3 ? into sin 3 a plus 8 b hat by 10 ? into – cos 5 ? into sin 5 a plus so on this is the series that you get now one can simplify this put it in a more simpler notation for b hat by ? into ? n equals 1 to 8 we will take the – sign also outside then you have cos of 2n – 1 into ? into sin of 2n – 1 into a divided by 2n – 1 so for n equal to 1 you have 2 into 1 – 1 that is cos ? for n equal to 2 you have cos 3 ? for n equal to 3 you have cos 5 ? and the denominator also appropriately vary. So this is the expression for b of a note that in this expression n goes from 1 to 8 we have taken care of the odd harmonics by putting 2n – 1 here so this is then your expression for b a and what we want to do is to substitute this expression for b a in this expression for d ? and therefore what we get is d ? s is nothing but – 4 b hat by ? multiplied by ns n equal to 1 to 8 cos of 2n – 1 ? sin 2n – 1 a by 2n – 1 this is n into b a you have to multiply this by d a. Now in this machine geometry that you have what would happen with the flux lines is that these flux lines would go from the stator from the rotor to the stator we are exciting the stator and trying to find out what is the flux linkage in the rotor at this interface we would find that the flux lines enter the stator in such a manner that flux lines are perpendicular to stator surface stator inner surface which means that the flux density vector b is normal to the area at the inner circumference flux lines are perpendicular to the stator inner surface and therefore the flux density vector is normal to the area at the inner circumference and therefore b ? d a will simply reduce to b multiplied by d a and what is this d a d a is the elemental area around the inner circumference of the stator which means it is basically the arc length here multiplied by the length along the axis and therefore if we say that the length along the axis is L the total area of that elemental segment is L into r d a this is nothing but your d a that is there. So if you substitute this expression for d a then what you have is L r d a so this is now an expression for the elemental flux linkage due to flux passing over this elemental area only through this area but actually the area through which flux is going to pass which links this coil is this entire area and therefore in order to find out what is the flux linkage due to all the flux passing through this area we then need to integrate so the flux linkage ? s is integral of d ? s and the limits of the integral are from 0 a equal to 0 to a equal to the other end of this coil of the stator note that the other end of the coil lies at an angle ? and therefore you integrate over a going from 0 to ? and so this is a going from 0 to ? so let us do this integration now in this obviously this 4 b ns they are all constant so you have – 4 b hat ns multiplied by L x r divided by ? x integral a going from 0 to ? cos I forgot the summation so let us put the summation also there ? n equal to 1 to ? you have cos of 2n – 1 ? by 2n – 1 and integral a equal to 0 to ? sin of 2n – 1 a sorry that is a d a so that is the integration that we need to do so that can be written as – 4 b hat ns L x r by ? x ? n equal to 1 to ? cos 2n – 1 into ? by 2n – 1 integral of sin is again – cos so you get a – sin here and then you have cos of 2n – 1 into ? by 2n – 1 this going from 0 to ? and therefore this expression is – 4 b hat ns x L x r divided by ? n equal to 1 to ? – cos of 2n – 1 ? by 2n – 1 whole square and now you have cos of 2n – 1 ? – cos of 2n – 1 into 0 and 2n – 1 into 0 is 1 so you have basically – 4 b hat ns L r by ? n equal to 1 to ? – cos of 2n – 1 ? by 2n – 1 whole square cos of 2n – 1 into ? so this is the expression that we land up with for the flux linkage now note that this expression is however valid only for one particular position of the rotor that is the rotor having ? r equal to 0 if ? r equal is not equal to 0 what do we do how do we describe the flux density waveform for the case where ? r is not equal to 0 now if ? r is not equal to 0 what we have seen earlier is that the flux density waveform is going to bodily shift along the x axis so you have ? r equal to 0 and then ? r equal to 30, 60, 90 the waveform is shifting so essentially therefore if you want to have the flux density waveform at which is going to vary as a function of a but not only as a function of a it is also going to vary as a function of the rotor angle this is nothing but the waveform shifting as the rotor angle moves and this is therefore the same as b a – ? r you say that if you have a waveform f of x and you want to shift it by some unit then what you have is f of x – ? that is the same thing we are doing here and this is a – ? r therefore if you want to describe it like this what you have to do is in these expressions instead of a you will have to put a – ? r and therefore now the flux density expressions would become b of a, ? r will be – 4 b hat ns x l x r divided by ? multiplied by ? going from n equal to 1 to 8 – cos 2n – 1 ? 2n – 1 ? x sin 2n – 1 x now a – ? r divided by 2n – 1 this would then be your flux density distribution if you include ? r also this is therefore a 2 variable expression now this would then give us the variation of flux linkage as the rotor angle also is going to change right this expression earlier we had derived a simpler form of the expression so that we get to grips with the integration process that is involved and here we had fixed the rotor at a particular position the particular position was ? r equal to 0 so if ? r equal to 0 one obviously sees that there is no ? r here the expression becomes the same as earlier case right so what we really have to do is now to get do the same integration with this expression and therefore what you have is integral 0 to ? d ? s is your expression for ? s and this is then equal to – 4 b hat ns x l x r divided by ? x s n equal to 1 to 8 cos 2n – 1 x ? by 2n – 1 x integral 0 to ? of sin 2n – 1 x ? r multiplied by d ? so that is the integration that we would have to do if you want to consider the rotor angle variation also and this integration therefore is – 4 b hat ns x l x r divided by ? s n equal to 1 to 8 cos 2n – 1 x ? by 2n – 1 x from sin you would get a – cos so you get a – and then this is cos of 2n – 1 x a – ? r divided by 2n – 1 so we put the square here and this part goes from 0 to ? so let us simplify the notation a little we will call as k 2n – 1 as 4 times ? hat ns x l x r divided by ? x cos of 2n – 1 x cos of 2n – 1 ? divided by 2n – 1 whole square so that it is easier for us to deal with so this is then ? of n equal to 1 to 8 k 2n – 1 x cos of 2n – 1 x ? – ? r – cos of 2n – 1 x 0 – ? r that is – ? r which therefore reduces to ? n equal to 1 to 8 k 2n – 1 x cos 2n – 1 x ? – ? r – cos of 2n – 1 ? so let us expand the first term and that would give us cos of 2n – 1 x ? x cos of 2n – 1 x ? r – sin of 2n – 1 x ? x sin of 2n – 1 x ? r this is an expansion for the first 2 terms and then you have – cos of 2n – 1 x ? r so one can group the first and last terms together this is nothing but cos of 2n – 1 x ? r x cos 2n – 1 x ? – 1 x sin of 2n – 1 x ? sin 2n – 1 x ? r okay so what we essentially see from this expression is that let us maybe it would be of it would be instructive to write down the first few expression of the sequence the first few terms of the sequence would then be for n equal to 1 what we have arrived at is the flux linkage for n equal to 1 k 2n – 1 is nothing but 4 ? hat ns so 4 ? hat ns x l x r by ? this is the constant term and then for n equal to 1 what we have from here is cos ? by 1 square so you have cos ? and then this term would give us cos of ? r into may be good to use the earlier expression itself perhaps cos of ? – ? r – cos of ? r is the first expression and then you would have cos of 3 ? x cos of cos of 3 ? x cos of 3 times ? – ? r – cos 3 ? r and then you will have cos of 5 ? of course this would be divided by 9 this would be divided by 25 cos of 5 ? x cos of 5 times ? – ? r – cos 5 ? r and so on this would be see it now one can see that this expression contains a fundamental term which corresponds to the variation with respect to ? itself and then it contains a third harmonic which means there is a variation with respect to 3 times ? and then there is a fifth harmonic which contains variation with respect to 5 times ? and so on there will be many more harmonics. And however we find that the harmonic amplitudes go down rather fast the third harmonic is one ninth of what would have been the first the fifth harmonic is one 25th of what would have been the first and therefore in the flux linkage expression the harmonic terms are going to contribute less and less as the harmonic order increases and because of this reason it is most in most situations sufficient to look at the fundamental component alone right and there also we have derived this expression for a certain angle ? now let us look at harmonic number 3 that has a variation as cos of 3 times ? – ? r – cos 3 ? r. Now supposing you choose ? equal to 2 ? x 3 then what happens to this term is it becomes cos of 3 times 2 ? x 3 – ? r – cos 3 ? r which is the same as cos of 2 ? – 3 ? r – cos 3 ? r which is the same as cos of 3 ? r – cos 3 ? r which is 0 so it means that you can choose a value of ? in such a way that a specific harmonic in the flux linkage is eliminated. So this is one of the advantages of having ? not equal to 180 degrees okay so appropriately one can choose an angle of ? so having understood that even if you do not choose an angle of equal to 2 ? x 3 the amplitudes are going to diminish as 1 x n2 so in most cases for our analysis where we encounter non-sinusoidal distributions which are typically going to be the case what we would do is consider only the fundamental of the distribution. Therefore if you consider the fundamental component of the flux linkage that can then be written as 4 b hat x ns x l x r x ? x cos ? x cos of ? – ? r – cos ? r this is in most cases this expression would be sufficient for us to get reasonably good result. Having understood that let us now look at the case where ? is equal to ? if ? is equal to ? it means that the other end of the coil other side of the loop that we are considering lies 180 degree away and these kind of arrangements is this is called as a full pitched coil. So for a full pitched coil then the flux linkage expression would be ? s is equal to 4 ? hat ns x l x r divided by ? cos ? cos of ? – ? r is – cos ? r so this results in this is x – 2 times cos ? r so you end up with – 8 b hat ns x l x r divided by ? cos ? cos ? r which is some maximum value multiplied by ? maximum or ? hat as per our notation x cos ?. So having derived this expression then let us look in the next lecture session how to deal with this and how to get the mutual inductance out of it should be fairly easy to do that b hat is a function of is and therefore if you divide this by is you get an expression for the mutual inductance we will look at that in the next lecture session.


Hello, I'm John Furrier with theCUBE here for CUBE Conversation with Devan Reed, Senior Director of Apex Offer Product Management Dell Technologies. Devan, great to see you. Congratulations on Apex on the momentum and the big news. Yeah, thank you for having me here, John. It's a pleasure to be here with you and I can't wait to talk to you about the stuff. So we chatted last Dell Technologies World about Apex in great length. First, give an update on what's the new news and two, where's it come from since Dell Tech World? What's the big update on the product and the news you're launching today? Yeah, so it's been a fantastic journey here, John. And, you know, since Dell Technologies World, we've learned a ton from our customers and the reception has been extremely positive. We're seeing a ton of interest from our customers, we're building demand and we're learning a lot. But I think if we boil it down to what we're really learning here is that customers are living in a cloud-first world. And what that means is that customers want to move, you know, to the public cloud because the public cloud brings simplicity, agility, the ability to pay for only what they use and they don't need to manage their infrastructure. However, what we're hearing from our customers as well is that they're a little hesitant to move all of their workloads to the public cloud because there are certain performance requirements, latency requirements and security requirements that are still held from on-prem infrastructure vendors. And that's the beauty of Apex, to bring that the simplicity of the public cloud and the security and the performance of the private cloud in one with Apex. You know, I want to get your thoughts real quick before I move on to the news because this comes up a lot in conversation. In fact, I just had a conversation this morning on camera and also off camera around virtualization of data, right? So, and how on-premises, the bare metal growth is there, right? So you're starting to see from a performance standpoint, I mean, security, we get that. There's a lot of on-premises reasons why to be on-premises for the security reasons. But performance, you brought that up. Talk more about that real quick because I think this is really becoming quite more traction than people thought. There's a performance gain on-premise with some of the new tech. What's your reaction to that? Yeah, exactly. I think that's a, it's a great call-out, John. And especially as you get into some of these new applications where the computation needs to be directly next to the data in which it's processing, latency and performance is extremely important. We hear that day in and day out from our customers. And that's why it's really, it's really important to focus on, not only on public cloud environments, but on-premise infrastructure. And that's what Apex really, really helps customers bridge that gap. Awesome. For the folks watching, there's a great interview, search is name, Devon's name, and look at last year's announcement. We covered it in detail with Apex. So some great content there, go check that out. I got to ask about the news. You had some new announcements at VMworld earlier today. What can you tell us about the news? Yeah, yeah, we did, John. This is an amazing year for Dell at VMworld in general. There's a ton of announcements that have come out with collaboration with VMware and Dell. But for Apex specifically, and that's what I'm here to talk to you about, is that we're introducing a new offer to the Apex portfolio. And this offer we call Apex Cloud Services with VMware Cloud. And what this really is, is it's a full infrastructure as a service stack, and it's utilizing Dell's hyper-converged infrastructure. So it's integrated storage, networking, compute, and we combine that with the virtualization stack from VMware, the virtualization stack in the services. It's a solution that's managed by Dell. It's designed for six nines of availability. And again, going back to what customers are asking for, it allow customers to performance the security, and it also provides those consistent operations across their multi-cloud environments. What's the driver behind the customer requirements on this? Is there a specific use case that jumps out off the page on the managed service? Could you share why the traction? Yeah, you know, this space is growing really rapidly. And it's the new space. And as we talk to more and more customers, we learn there's a ton of different use cases, a ton of different deployments that are really coming to the forefront. But if I really boil it down, there are a few that are kind of rising to the top here. And I think first and foremost, we see a lot of deployments in VDI. And really the driver behind that is some of those environments are complex. And what the customers are trying to do is really offload those IT administrative tasks and have companies like Dell manage it. And that's what we're doing for them. Another one is really around that latency and security, really trying to drive applications to not suffer from that latency and security kind of benefits. Now, what we've seen is we have a lot of interest from very large enterprises that actually want to build and modernize their data centers. So they're either consolidating their data centers or they're trying to move to a fully automated hybrid cloud situation, right? And I'm talking very large deployments of VMware based private cloud capabilities. And I'd say one other place that we're seeing a lot of interest in these sort of capabilities is large distributed kind of edge use cases. So think use cases where you have hundreds of remote office locations or thousands of retail locations that is very difficult for customers to manage. And we take that burden away from our customers. Thanks for laying out the customer scenarios and the use case, good stuff. I got to ask you about the solution now. Appears that it was jointly developed with VMware. Is that right? And if so, can you tell me more about that? Yeah, yeah, exactly, John. This is amazing. The amount of collaboration that has gone into this solution with VMware is incredible. And really it's based on customer feedback. And we saw, based on this feedback we saw a real need to basically take the best of VMware software and their services capabilities and our Dell's world leading infrastructure capabilities and really combine it with the simplicity and agility that Apex provides. So we've been working with VMware very tightly over the past year and more to really develop the solution. It's been a great journey, been spending a ton of time with the VMware team building this. And customers really love what VMware cloud enables and customers love Apex. So it's a really powerful combo. And we think it's really the next kind of rocket ship for the combined companies here. Yeah, and I think the VDI piece in these use cases you mentioned only get more relevant and complex at the same time with the whole shifting and the working environments. The work from home, the future of work, you have the blurring of the lines between private home versus corporate network. It's like, I mean, we thought it was hard before it's going to get even more complicated. So the pressure's on to abstract away the complexity. So totally relevant. Yeah, and demand for these kinds of solutions we're seeing, you know, the interest is doubling. Seems like almost every six months, you know, there's a lot more interest, especially as we progress through this pandemic and this environment that we're living in here. So. Okay, so I got to ask you going forward again, great progress from our last time we chatted at Dell Technology World's last year, 2021. What's ahead for Dell and the VMware partnership? Tell us more, how does that look extending? What's the trajectory look like? Can you share any specifics? What can we expect? What's the headroom? What should customers expect?  And really, you know, nothing is really, although we're going to be separating as different entities, you know, the collaboration and the level of joint development that we have between the two companies couldn't be stronger now. And we do not expect that to change. And we're just getting started on this thing and there's a lot more to come for sure. What's the biggest thing that you're excited about? Obviously Apex has been a good trajectory. The progress has been great. The market's in your favor. What's exciting for you right now? Where do you see the action? You know, where's the fun for you in this? What's your take? You know, it always, for me, the fun always comes down to customers and understanding what the customers want, understanding where the solution works, where the solution doesn't work, really working with our customers to really understand their problems and really try to work. So that's where I get my energy in this whole thing. And to see the pipeline grow and the sales coming in, that's just, it's really exciting for me, you know, as we're kind of embarking on this new, as a service world for the multi-cloud world. It's just, it's fantastic, John. You know, the one click, buy as you go, consumption-based, this is the trend and infrastructure as code, which is a cloud ethos, and you may be on-premises with security and now performance. It seems like we're seeing this second wave of virtualization kick in on-premises where now that you're in a cloud operating model from storage, compute, networking, kind of almost a reboot, almost a reset or extension or a relife, it seems like it's another second life of innovation. What's your reaction to that? Yeah, I definitely agree with you, John. And, you know, from a vision perspective, we're just starting to, you know, we're just starting out there. And we, you know, if we think about the power in the breadth of the portfolio that Dell has, it is unmatched in the industry. So first and foremost, you know, there's a lot more from a solution perspective that we can bring to the floor. So I think that's really exciting. I like the position that we have there. And in terms of collaboration with VMware, we're just getting started there too. And I spend almost half of my day with VMware employees, which is an incredible amount of collaboration. And there's so much more that we've talked about in our roadmap to really build out this vision when you start thinking about not just virtualization, but you start to talk about, you know, these new operating environments, including Kubernetes and Tanzu capabilities. And, you know, how do you hit different use cases with not only hyperconverged infrastructure, but different types of infrastructure as well. And then you start to span not only the prem, but the co-location facilities and the edge. And you bring this all together under the Apex console and I like our future. Yeah, console-based provisioning, easy. Congratulations on the big news, Apex cloud services with VMware cloud for the folks watching that's going to come in and maybe adopt the solution, the managed service. What can they expect from Dell? Oh, what you can expect is a very simple experience. So everything starts and ends with what we call our Apex console. So a customer from the time they want to learn about our services to, you know, getting quotes on them to actually transacting the service, to operating the infrastructure from that. And then we provide a full set of services under the cover where a customer doesn't need to worry about the actual infrastructure management. And we provide customer success managers for every account. So we are there with you along every step of the journey to make this as seamless and easy as possible. So it's a fantastic experience for our customers. And that's one of the things that they really love about the Apex is that, you know, kind of white glove service that we're providing. Devon, great to see you. Devon, I mean, Senior Director of Dell Apex Offer Product Management. He's our new product. Great to see you. Congratulations on your success. Apex Cloud Services with VMware Clouds. The big news here at VMworld with Dell Technologies. I'm John Furrier, CUBE Conversation. Breaking it down, bringing the news to you. Thanks for watching.