Patrick Foxhoven9:07
Yeah, I'd be happy to. And I'll do that in kind of two ways. So I'll start with some diagrams, some diagrams that I'll walk through a couple builds just to kind of tell the story to illustrate it. And then I'm happy to break out a PowerPoint anytime that I get a chance to and I can give you some live views or demos of what some of the... Later on we'll dive into more specific questions about secure web gateway, but for now let's just start from high level architecture and dive in. Yeah, sure. So let me walk you through a little bit of the journey and what I think it takes to deliver SASE correctly. So we knew when we were starting from the very beginning that to do a service like this in the cloud in a way that you're not slowing users down and you're not introducing choke points or bottlenecks is you have to be as massively distributed at the edge as you can be. And another way of saying that is no one can go faster than the speed of light. So that means we have to be as physically close to the end user that we're serving as they go out to the internet. You don't want, you know, I'm sitting here in the San Francisco area today, I forgot what this feels like to get on an airplane to travel anymore, but so let's say I got on an airplane and I traveled to London, you don't want a user that's in London all of a sudden now to have to backhaul back through San Francisco or even the east coast. You want to be as physically close to the end user as you can. So what that means is you want to be as close from a latency perspective as you can, you want to be less than 50 milliseconds usually to wherever the user is. And so the way the internet is architected today, I think the right number of sites that you need to do that is probably a little over a hundred. We think now it's a little, we're at about 150 data centers. That's what in my mind is one of the prerequisites to even start talking about being a true SASE player because it's the E word is edge. I mean, it's a service's edge, it's you have to have a massive network at the edge and the edge has to do 100% of your inspection capabilities. Otherwise if the edge is just backhauling you to a more centralized region, it's just a little bit better but it's accentuating the same problem around no one is going to go faster than the speed of light. You're going to, even if you have an edge site at one location, you're backhauling 300 miles to another site where you actually have compute to do the inspection. That's going to be not an ideal end user experience. It's going to break localization, it's going to not be great from a latency perspective to do this service right. You've got to be massively distributed at the edge. You have to be in essence just a transparent pop or two on the user's way to the internet wherever they're going. And so that's why when you look at our architecture, we knew from the beginning we had to be massively distributed at the edge. That's the map I'm showing here, we're at over 150 sites at the edge. And you don't again do things like service chaining or backhauling when you're introducing more and more capability. Everything that you run has to happen at the edge that is real time. Naturally there's certain things that by definition are not real time like sandboxing. If you're going to download a file that a user is downloading and detonate it in a VM and watch it for two minutes, that doesn't need to be done at the edge. But if you're in line inspecting SSL traffic or applying malware scanning or applying bandwidth optimization or throttling or shaping or all those things that are real time and very latency sensitive, they have to happen at the edge. And so when we started building this architecture, let me advance to the next diagram. We said we had to come up with an architecture that would accommodate that, meaning be massively distributed at the edge, but then there's certain parts of the service that you don't want to be as distributed at the edge. And so we kind of had the luxury of doing a clean slate architecture where we basically said we're going to come up with three planes to our architecture and then we're going to build them ourselves. And you don't have the luxury of building an architecture like this again if you're trying to retrofit a single tenant appliance version of your service and create a VM of that and call that a cloud. We went so clean slate that quite literally we went solo level, we designed the TCP stack from scratch, we wrote our own TCP stack and built multi-tenancy in at that level. And so when you go that low level and then you build everything else out, you have an architecture I think that looks a lot like this. And so there's kind of three planes to our architecture. The top plane here, which is what we call the control plane, this is where customers define policy and configure how we're going to authenticate their users and what they want to have happen. And so that's somewhat centralized, that needs to be within regions, within major theaters, US, EMEA, APAC, but it doesn't need to be massively distributed at the edge. Then you have the middle piece which is what we call the enforcement plane, and this is those 150 sites. This is the inline piece of how we do what we do, which is basically another way of saying the proxies or the things that are in line, brokering or proxying traffic. Massively distributed at the edge, they get their policy from the control plane, but they need to get that and be able to operate with cached policy and update when things change. And we had to build real-time protocols to make that happen. And then last but not least the bottom piece is the logging plane. You want to aggregate your logs back to particular regions or theaters. And that is a big reason why is because you don't want as a customer when they start adopting a service like ours, they don't want the liability of worrying about their data being potentially sharded or stored in 150 sites around the world. They want to make sure that it's more aggregated back. And so when we come in line to the traffic in the enforcement plane, we never touch the drive with any pieces of customer data, we don't cache it, would only benefit us and we don't want the liability of that. We never write logs to local disks, they basically stream the logs in real time back to the logging plane. And by the way the logging plane can be, we can guarantee if you're a customer in the US, we'll store your logs in the US. We guarantee if you're in the EU, we'll store in the EU. If you're a large financial institution, let's say one of the largest Swiss financial institutions in the world is a customer of ours, we can guarantee the logs are stored in the borders of Switzerland, or we can even store it in private logging clusters on-prem if there's data sovereignty privacy requirements, if it's a government use case. And so then what happens is when a user is roaming through this infrastructure, there's no marriage of a user to a data center or even a stack of VMs or services. It's a multi-tenant design from the scratch architecture. So if the user's here in New York today, they're going to get their policy delivered on demand and 100% of their inline traffic will stay in New York, never service chained. And then if they travel to London tomorrow, the policy will migrate, we'll follow that user wherever they go. But ultimately it's a transparent experience to the end user where they basically roam throughout these 150 sites anytime, anywhere around the world. And again because we built it to be multi-tenant from scratch, there's no marriage of infrastructure to tenants so to say. That's a very different architecture than I think a lot of other approaches in the industry where they're trying to not do the hard work and they're doing this with VMs. They have the ability to provision a VM for a tenant in every site that they want to have service in and then they'll try to do some kind of loose orchestration to keep these VMs in sync. And that's a totally different model than designing this from scratch.