 Hello, everyone. So we're going to get started. Today, we're going to talk about how can you really get Elastic Cloud Storage running as a true cloud storage in your environment that supports S3 Swift services. And as I start just to take a look at what we're going to discuss, we're going to give an overview of ECS for you who don't know what's Elastic Cloud Storage. We're going to talk about our OpenStack integration. Give a demo with Keystone. It's a big integration we're doing today with Keystone, and talk about some core capabilities as well, and then what's next. So the first thing is, when you look at OpenStack, we have Swift Storage. That's the object storage. Glance, of course, uses Swift. And of course, we have Sahara for Hadoop. So ECS can really serve as your replacement of a Swift storage. It's coming with a Keystone identity, so it actually supports identity services for Keystone, but also Active Directory and LDAP as well. So before I go into discussing the Keystone integration and how ECS works in that environment, it's important for us to look at what is actually ECS and what does it provide. The first thing is, when we looked at storage in general, there is unstructured data and structured. And ECS focuses really about how can I manage unstructured data at scale. And it has developed a way that all unstructured data is stored under a single engine. And that engine is unique, unique in the sense that it does the things like indexing, transaction, partitioning, but also it does persistence, like erasure codes, the data, spreads the data across the cluster, and does persistence. What's unique about it is that it is uniform across all of the access methods that we're going to talk about. And on top of the storage engine, we've actually added storage services. And these storage services provide you things like geo-replication, data retention, encryption, and also we've added inside those storage services metadata search. We believe this is a key capability of ECS that's coming new within a month, and that allows you to actually search user-level metadata and system metadata. And then we provide authentication services on top. Now, ECS runs all of that with object storage, so you can access that data regardless with S3 or Swift. But also we've been able to do HDFS as a first class citizen with object storage. So imagine you can write data as object through S3 or Swift, and then you can access that data back through HDFS. We've also added NFS. So any unstructured data type, whether it's file, whether it's object, or analytics, it can be accessed across all these methods uniform across a unified storage services. So encryption applies to all, metadata search can apply to all, and also the capabilities that the storage engine provides applies to all. It's very unique that it's not just a file on top of object or HDFS on top of object. It's actually a first class citizen with object. And then we've added all that on white box commodity. So as we talk about ECS, this is a software-only solution that also can be provided as an appliance or can be deployed on the customer hardware. For us, the appliance is just white box commodity, x86 servers with some J-Bot disks. On top of that, of course, you have the customer apps running on top. So that's really in a nutshell what ECS is. And that's what we're going to talk about today. And we're going to talk about the Keystone integration, the first thing. We believe this is the key aspect of integration with OpenStack. So a few things to know about the anatomy of ECS that makes it also a cutting edge. First of all, we've built it with a common unstructured engine that supports all of these storage services that you've seen, HDFS and object. We've made sure that we do the key value store inside ECS to be massive. So any object storage today, the problem we suffer from is metadata and data are stored separately and treated separately. In ECS, we have actually an internal key value store that actually stores all the metadata, user and system, stores the diagnostics and metering, and then we actually store the metadata and data in the same way. So it scales to billions of files. We've actually had customers who were storing more than a few billion files. So it's built from the ground up to both small and large file. Object systems in general are associated with a large file. In ECS, we actually don't differentiate between both. You could actually go through tens of billions of files or a large file could be in terabytes. A petabyte doesn't even make a difference. For us, it's just unstructured data. And then it supports both strong and eventual consistency. Something most object storage talk about, eventual consistency, but when you come to file, it's more of a strong consistency. So when ECS does the way between file and object, it can actually understand, OK, this is file. I can do the strong consistency object. It can actually allow the option of eventual consistency as well. And then one other thing it is built to run as a microservice. Actually, ECS, the whole ECS runs in a Docker container. It's very unique so that we can take it in a modular approach in the future and run it even on OpenStack as we move forward. But the thing is, it runs really as a microservice and runs in a Docker container. Now, when you talk about ECS and OpenStack, key thing is, how can you integrate it with Keystone? How does it actually work? And then having it as a Swift object storage. So the key thing we're coming with is ECS is becoming really a drop-in replacement for OpenStack Swift. If you have OpenStack today, how can I bring it in? Have a reliable object storage there. Integration with Keystone. We integrate with the latest API, v3. And the way we said we're going to do the mapping is, Keystone has projects. And ECS has something called a namespace. It's very similar where you've actually segregated your access across a namespace. You gave the customer the namespace, go ahead and use it. And then you have users and groups mapping to both. And then we actually mapped our buckets to the container and, of course, the same object underneath. So that's the way we did the mapping. I'm going to show a demo of, OK, what does it mean Keystone and ECS working together? We're going to integrate it with Keystone. And that's the basis of the demo. So actually, I had the demo live, but I lost my environment today. So let's do it in a recorded manner. So basically what's happening here, we're logging into DevStack. And as we log in, actually, let me expand this one. So we log into DevStack. The first thing we're going to do is look at the different projects that are available. We're going to create a new project and basically map that project to ECS and basically go back to ECS at Keystone and be able to do that. So first of all, we add the project. And once you add the project, it actually creates ID, which is a good. And then you can actually associate groups, users to that project, just regular OpenStack. Once we do that, the next thing is, how can I map that to ECS? So ECS understands something called the namespace. In OpenStack, it's called projects. So we copy that. And the first thing is, we go back to ECS and start integrating it or adding the OpenStack Keystone as an authentication provider. So before we go here, we support multiple authentication providers. One of them is Keystone. You could have Active Directory, you could have LDAP, but one of them is Keystone. So the first thing is, we're going to create a new authentication provider. So we're going to enter the name of the authentication provider. And here you can see, I'm just going to pause here, Keystone LDAP Active Directory. And Keystone has been recently added to support that. And it's V3. We just enter the name, give the admin username password, the endpoint, IP, and port. And once we do that, ECS starts registering in OpenStack. And that means we start mapping all of that information back and forth. So we're going to enter that. Just going to fast forward this stuff. Once that we save, ECS starts registering into the system. It's registered with Keystone. And the next step is starting creating namespaces. So a namespace is very similar to an OpenStack project. So the first thing we do is go and create a namespace. The way we map it, if you take this, the copy the ID and actually start mapping, OK, I want that namespace to live within ECS. And from now on, that namespace authentication is all happening at Keystone. So we go back to Keystone whenever we want to authenticate users and groups. OK? Now we're going to go back to DevStack. And what we're going to do is we're going to start creating containers. Any container now created in that project will automatically show up in ECS. So ECS now understand that this project longs to open to Keystone. It will go and authenticate back to Keystone whenever there's a request for that namespace. We're going to create a container. Let's go here. Yeah. So we're going to go to the Object Store containers, find the actual project. And we're going to create a new container for that project. So this is just a demo container. And once it's created, it's going to be reflected back in ECS. And basically what's happening here, you're creating an actual open stack container. It goes back and creates a bucket ECS, which is very similar to a container. OK? So this is just going back to ECS. So ECS has the concept of a bucket, very similar to S3. You go back here. It's created here. And now the next thing is uploading objects. Uploading objects could be done through multiple forms. One thing, you could just go through horizon upload it. I think in this demo, we use just Curl uploading the object. Automatically, you can access the objects that are uploaded in Horizon actually as well. So there's deep integration between Horizon also and ECS. So I'm going to jump just to the part where the object is being created. The first thing is we're authenticating here. So the first thing we're doing authenticating. And when you're authenticating, you're just entering the username and password of the user in open stack. And once you do that, we get a token back. And then we send that token to the requests for ECS. And ECS starts writing to the bucket. Now the token is quite large. So it's quite long actually. So I'm just going to skip through the part where I'm actually trying to write to the object. So what I'm doing here is just copying the token, writing the object. And then we're going to access that object after that once it's written. Now, once we've done with that, you can just go back to Horizon and actually access the object. You could also upload and download objects from the Horizon interface. For that purpose of the demo, you just use curl. And basically, you have the object that has been created over here. So it just shows the deeper integration between open stack and ECS and how we actually integrate it with Keystone V3. So switching back to the slides, now I want to talk about what are the core capabilities then of ECS? Now that you have your object store, what are the key capabilities that differentiates it from any other object store? So the first thing, it's true multi-protocol access. It supports S3 and Swift API. It actually allows you to simultaneously access data from HDFS, NFS, and object. So that's very unique. You could actually write an object data, access it as an NFS, or a vice versa through HDFS. Another thing we're doing is GU. GU is a very core capability of the product. We manage actually multiple sites. So you could go actually up to eight sites. You can actually do active-active, read-write. So you can actually read and write data from any location. We also handle both full site disasters as well as temporary outages. Something very unique to the product is that when there's a network outage, we give you the eventual consistency model. However, you can also choose strong consistency when you actually have the system fully functional so you get the benefit of always getting the latest version of the data. We support multiple erasure coding policies. So we have a choice if you want to go cold archive with 1.2 policy or if you want to go with a choice of 1.33. So all these are available choices for the customer when he actually deploys ECS. The other thing is we support multi-tenancy. So you create the namespace. We've seen the namespace as we created the Keystone integration. You could actually meet your customer data at the namespace level or the bucket level. So imagine scenarios where you're doing charge back and you're actually trying to understand how much usage each customer is doing. You could do quota management and you can integrate the namespace with OpenStack, Keystone, or Active Directory, or LDAP. So this enables you to do actually service provider scenarios at a very large scale. Key capability that's coming and released this month, actually next month, is metadata search. How can you actually search user level and system level metadata is becoming more and more a trend on the market? We've just been a session yesterday about OpenStack metadata search API. So definitely that's something on our horizon. But you can enable actually search at the bucket level. And you can do scenarios like, hey, give me data that has changed in the past 24 hours. Or actually give me data that has actually been created in the past timeline. And then you can do user level metadata. So you can tag data with certain aspects like city. And then give me all the objects with the city equal to Tokyo, something like that. And we support those predicates. And then we can actually sort capabilities. You have on top of that also ability to specify attributes to be returned. And we also added pagination support. So we know that customers will return a lot of data and then they want to paginate and actually be able to specify what needs to be returned. We come with the concept of something called global file. It's not just file, but also the ability to have file across multiple locations. So imagine you have four or five locations and then you want to export an NFS export and be able to access that data from any location but get the ability of having global locks. So when you open a file in one location, the other location, there is a lock. Or if you change actals, it's actually reflected. And that's the beauty of ECS. It actually gives you that capability. It really eliminates the need if you have a file gateway where that only requires NFS. You could also use just ECS for that and gives you the file gateway capabilities out of the box. Encryption at rest in banking industry and life sciences, sorry, in healthcare, encryption becomes more and more important. And we've added actually server side encryption. So there's no change in the application. It's low touch. All the key management is happening in ECS. So it has the automated key management and it's compatible with the S3-based API. We're also going to add in the future OpenStack Swift. And the user experience, this is the actual UI of ECS. It actually gives you the system level information, dashboard, all that is available in a one-shot view which is the dashboard of ECS. So I urge you definitely to try it out and if you have any feedback that would be great. And then finally, ECS provides everything as a REST-based API. We have actually bindings, for example, for folks who want to develop against Java, .NET, Python, all that is available, as well as all the management functionality is accessible through REST-based API. So the actual UI is built on that REST-based API so that customers can actually take advantage of that and actually integrate with it. So this is my last slide. And really what's coming next is how can we support metadata search at the API level for OpenStack? So that's something we're now definitely put on our horizon. We're going to look at the metering service and basically support ECS to push the metering data, integrate with Celiometer here, and be able to actually integrate the metering and monitoring data as well. And then given that we have file services, ECS is definitely going to look at Manila as well. So you can actually integrate with Manila and get the benefit of that. So this is, I would say, the view of the next version of ECS, looking at it with OpenStack. And we're very excited about it. I want to thank everyone for coming and just give some time for questions if you guys have any questions or things we can definitely help with. I'm sorry. Yeah, go ahead. If you can repeat the question again, so others? So I have a question on your search. So let's say, a simple use case, you've got a billion object. And I would like to have a range search. So what is the performance of this query on your system? Have you eluded that? Because you've got this problem. Good. So I'll talk about how actually the search capability work. As we write any object in ECS, we write actually the data. And then we write the index. The third thing we added is, at the same time, we write the inverted index, which is actually the whole search is happening there. And the way we do it is we, it's within the bucket. So in the bucket, of course, you don't have a limit. You could put whatever objects you want. And then after that, once you do the search, we just go and run that against the inverted index. As of today, we don't have the performance data out of how much it will cost you to do actually that. However, we know that the CPU cycles definitely would be consumed by that. So it really depends on the server you're going to use and how much memory you're also going to have. So as of today, we use a 64 gig RAM with a dual proc, almost eight core each. But however, we might actually up that requirement a little bit when it comes to folks who want to do more and more on the search criteria. So you can give order number, you know, order of, it's order of, it's order one or order, and we're going to search your subject, support in this. What is the complexity of search? What is the complexity of our search? As of today, I don't have that information on top of my mind, but definitely we can take it offline. I'll give you the order of search and all that. But I want to give you the right answer, definitely. So I'll sync back with engineering and give you the right answer. Any more questions? We'll do it once, twice. Thank you, everyone. Thanks for coming.