WEBINARS

DevChat: Aerospike Cloud

Video cover
You can view it at https://vimeo.com/886560102

Stacey Kruczek:

We have a community we'd love for you to join. One of the easiest ways to join our community is just to hop on our Discord channel. You can use your personal email, work email, whatever, anything that you want to use to get on there. We would appreciate it, and we would love to see you on there to talk more about this. I can post links to this webinar as well on the Discord channel, and then we're sharing information there about upcoming events. Anything that you want to share with us, or if you have any questions for our developer relations team, we're on there 24/7. We're able to help you as much as we can, and then we've also got our community forums. If there's any technical questions, you can post them there as well. So, a lot of different avenues and paths to get to us. Really easy to get to the Aerospike Cloud. With that, I am going to go ahead and turn this over to Art and to Eric to introduce themselves and tell you what we're going to learn about today.

Art Anderson:

Yeah, thanks, Stacey. Just a quick introduction to myself. My name's Art Anderson. I'm a Senior Developer Experience Engineer here at Aerospike, so just working on tools and applications that make learning and using Aerospike hopefully easier. If you've used our Developer Hub, I work a lot with the content on there and all that good stuff. I'm going to be kind of taking you through some of the new Aerospike Cloud stuff today. Along with me is our Director of Product, Eric Shriner. So, Eric, if you want to give a little introduction as well.

Eric Schreiner:

Yeah, thanks, Art. Yeah, so I'm Eric Schreiner. I'm Aerospike's Director of Product for our Cloud product family. It's included our managed service product, which we've been running for our enterprise customers for just about four years, and then our Aerospike Cloud product, which Art will be running through today, that has free trials available, which is really the easy mode. We've tried to take all of our learnings from the enterprise customers that we work with and the mission-critical applications and try and make it as easy as possible for anyone who wants to get started with Aerospike.

Art Anderson:

Cool. And then, we'll have Stacey as kind of a, I guess, MC today. She might be popping in with questions here and there, again, if you're throwing those out in the chat. Stacey, did you want to do a quick introduction as well?

Stacey Kruczek:

Yeah, I guess it would be helpful to introduce myself. I work with both Art and Eric quite extensively. I'm running the DevRel team and strategy here at Aerospike. I've been here for almost a year, I can't even believe it. We're really excited that you all are joining us today and looking forward to hearing your feedback as well, because that's always beneficial for our team, and you know that we're here to listen to that. So, please, I encourage you to do that either here or through our Discord channel or even through our email, developer@aerospike.com. So, with that, I'll turn it over to you two, and take it away.

Art Anderson:

Awesome. All right, so Aerospike Cloud. Aerospike on easy mode. Really, this dev chat is designed to just kind of be like an open conversation. We're going to look at the Aerospike Cloud interface, so we've got a dashboard and some other stuff. And then, we'll go through some things that are available to you out on the Developer Hub as far as tools and code samples and stuff and talk a little bit more about the road ahead for these things and trying to get input on what helps other folks learn and use these things as well. It should be pretty casual, and really, honestly, the story here about Aerospike Cloud is that there really isn't a story, and that's kind of the fun part here, is it's really just abstracting away operational complexities in deploying an Aerospike database.

So, as we go through this, you'll see that there's not a lot of difference between working with the client. If you're familiar with working with Aerospike already, how you do this with the Cloud is going to be very familiar. Really, it's just getting rid of that part of the setup and getting Aerospike up and running and all that good stuff. We're not going to sit here and look at a PowerPoint. We're going to just kind of jump in and start playing around with the Cloud and the Developer Hub and just give you an idea of what exists out there and what you can use.

So, let me... Oops, jumping ahead there. I am out here on my dashboard, but for you all, you probably haven't set up your Aerospike Cloud account. So this is out at control.aerospike.cloud. I believe if you go to just cloud.aerospike.com, it'll also redirect you over here, but this is where you can come and set up your free trial. Right now, we are really only doing free trials to get people introduced to Aerospike Cloud and give you 14 days to play around with it, experience it, maybe build a little sample app or whatever you need to do to get a feel for how you can start working with this.

And then, we'll talk a little bit more at the end next steps and the future of where this is going as well with Eric as we close things out. But if you go to that control.aerospike.cloud, you can sign up with your Google account, or you can just create an account with email and password and all that jazz. Very simple to set up, and then once you're in, you're able to deploy your first Aerospike Cloud database. I've already gone through that...

Eric Schreiner:

And sorry, Art, I'll just mention, no credit card required to get access to that trial. It's just enough information to be able to create an account. Put a name in there, and then you'll be able to spin up the trial database that Art's going to show you here in just a minute.

Art Anderson:

Yeah, thank you, Eric. Yes, so very important, it's frictionless and free. This is really our goal, is to make this as easy as possible to get up and running with this trial so that you can start playing around as soon as possible and not have to jump through a bunch of hoops or any of that other stuff. Yeah, very, very important piece there. When I jump into my account, I'm looking at a dashboard, and within this dashboard, I can see my database list down at the bottom here. And then, really, we're going to focus on this Getting Started area, because this is where a lot of links to some of the documentation and things that we have for Aerospike Cloud are and some things that allow you to start interacting with your database without having to write any code. Again, some things that we've created on the Developer Hub that kind of let you play around and get a feel for how this stuff works.

Now, if we go over real quick and take a look at our databases, the real goal of this is to, like I said earlier, abstract away all that operational complexity, so your database really just turns into an API endpoint that we're sending data to. So, within this, I've actually created for my database some keys and just API keys available to connect, send data with the Aerospike clients, and so on. The way that this works, if you're familiar with Aerospike just in general, if you've used us before, then you're probably familiar with our Smart Clients. And if you're not familiar with Aerospike, we utilize what we call Smart Clients. Those clients do more than just send data to the database. They're constantly talking to the server and tending to all of the nodes within your cluster, and so on, so there's a lot that's happening within that.

And so, we actually do have what we call our Aerospike proxy clients, which are the ones that you would use to be able to interact with this database. Right now, we have a proxy client for Java and for Go, and so you'll see some of the code samples and stuff are in both languages, or some, like Go, coming soon, and so on. But these are going to be effectively very much the same as our regular smart clients, except they're going to be utilizing a gRPC connection to a proxy server that's then connecting to your Aerospike Cloud database. So, things that you don't necessarily need to know but might be interested in understanding a little bit more about, so feel free to ask questions on that front as well. Now, if we...

Eric Schreiner:

Art?

Art Anderson:

Yeah?

Eric Schreiner:

Yeah, I was going to say, I think it's a good point, especially for those who are familiar with the Smart Clients. One of the big shifts, as Art mentioned, just removing all those operational burdens from the developers. The clients themselves, Art mentioned, do a lot of administrative functions as well. Part of the design goal here was to have the client just focus on database operations and have the client cloud focus on that. And then, this dashboard they're providing here is really that place where the administrative functions will live for most developers. Just trying to simplify those aspects as much as possible so that you can just focus on the client API for database operations and remove all the other complexity associated with actual management of the database.

Art Anderson:

Yeah, that's a great point, Eric. It's really designed for developers. Like I said before, it's an API endpoint that you point your client to and just let go as far as any of that housekeeping and really just reading and writing data as quickly as you can. You can see with the free trial here, you get a pretty decent database to start testing with. You've got up to 12,000 reads per second, 4,000 writes per second, and then storage and objects, up to 20 million objects, and so on. So, as far as a free trial just to get started, there's quite a bit of power behind this, so you can definitely push some things and try some more kind of maybe high-end applications to push to this if you wanted to.

There's configurations and things in here as well for your database, things like private link within AWS, setting up consumers, and then secondary indexes, which is kind of an important thing when you're working with the database. So, we'll be looking at filter expressions in a little bit when we get to the Developer Hub, and one of the things that we could utilize in there instead of an expression might be a secondary index. Again, if you're familiar with setting up secondary indexes, this is really an admin housekeeping thing, and so now this moves into the dashboard as opposed to going through something like asadm or info calls within my client. We've moved, again, all of that into this dashboard here for you to be able to mess around with.

Eric Schreiner:

Yeah, and just one quick note on the private link. I think, as maybe people are aware, as Art mentioned, we're making the endpoint available. Again, trying to simplify the setup needed. You can hit that endpoint, it's public, that's great for testing and just getting going, but we do allow you to test using the private link. So, if you do deploy an app in AWS, you can set up the private link and really get a feel for what the latency could look like if you're deploying this app on AWS and connecting directly and avoiding going out to public internet for that connection. We do really want to give you all the tools to see how performant the database can be. If you want to go to those extra steps to deploy an app in AWS and connect it directly to the database over private link, that's all there and available for you to experience as well, if that's something you're interested in.

Art Anderson:

Awesome, great point. API keys, like I said, I've created one already that we'll play around with in a little bit here, but this again is just creating those keys to be able to access this. We'll talk a little bit more as we get into the client, but we're really just passing these as username passwords. This is your just general access control type client setup piece. We'll see that in a little bit here. We do have some code samples right here on the website as well. We wrote these simple "Hello, worlds" just to read and write real quickly, or really write, then read, real quickly into the database. These exist here in Java and Go, and so you can kind of get a feel for what that setup looks like. And then again, like I said, we have some stuff out on the Developer Hub that we'll be looking at as well as our doc site.

And then, there's of course some metrics. I might want to see how things are actually going, and so we'll be able to see transactions, errors, latency. I have not done any reading or writing to this database yet, so I don't have any sort of latency or anything like that to look at. But this is a great spot for you to be able to come in and monitor your database as well. We want to make sure that things are working the way intended, and we give you access to this kind of metrics set up here as well.

All right, so I want to go back up to my dashboard here, because this is where we had a lot of these cool Getting Started links. Once you've created your account, you'll have all of these links ready and available to you to start playing around with. This is where I like to start, though if you're already familiar with the docs or Developer Hub from Aerospike, you can just go straight out to there and start messing around with these things as well. But we have some documentation that just exists, docs.aerospike.com, and feel free to head out there and see some of this basic stuff about working with Aerospike as well as getting familiar with Aerospike Cloud and how things work. There's a whole section out here called Aerospike Cloud. So, getting started, developing, talking about our Java and Go clients, and so on. Lots of great code samples and just things to start being able to work with here.

Now, I want to go back, and what we're really going to do is focus on our Developer Hub and some of the things that we've put out there. There's really kind of two major documentation lifts that we've put out there. One, a quick start example, and then another, which is a user profile store kind of interactive tutorial. So, we'll start real quickly with that quick start. This is out on the Developer Hub. Again, it's just top level here. Oops, lost my mouse. There we go. Aerospike Quick Start. And this does exist for a good majority of the languages that we do support. Outside of the cloud, we do have C# and Node and Python and Ruby, Rust, and C and all of that good stuff. But if you were to look at Java or Go specifically, these do come with the option to look at setting up for Aerospike Cloud. There's also a quick start for getting you up and running just with a self-managed... deploying a Docker container real quick. But because we're talking about Aerospike cloud, this will give you a little bit of info.

Again, this will walk you through. If you haven't already set up your API keys, we've got some steps here to take care of that for you. And then, kind of the basics for getting started with potentially exporting these things to environment variables. Your cloud host name, API keys, and secrets, and so on. And then, just looking at dependencies for working with Aerospike Cloud and then the basics. This is really, again, that "Hello, world" application that we had set up within the Cloud dashboard, but now you can kind of break it down a little bit more and see some of this stuff and so how we're working with this.

Like I said before, the API keys, we're really just passing these along as username and password within our client policies. So, as we go in, we set up our client, we'll pass these along. You can see here from the Java client, I've got a new client policy that I'm creating here where I'm just passing along my API key, my API secrets, and then we're utilizing TLS for this as well. Pretty straightforward, and if you're, again, familiar with the Aerospike clients already, so you've been working with Aerospike maybe on your own, not as part of this Cloud environment, this actually is pretty much where the differences end in the code that you'll write. Here, we're setting up this new Aerospike client proxy as opposed to just a new Aerospike client. Once we've defined that Aerospike client interface using the client proxy, that then client that I've created here is going to work very much the same as the client that I might create in a self-managed environment.

So, once I've done this instantiation of a new Aerospike proxy client, I'm good to go. I can actually reuse a lot of code that I might already have if I've already been working with these things. That's really, I think... The big difference is just how I get my clients set up, how I interact on that part. But then from there, there's really not much that you'll see or really anything that you'll see that's different. For our Java client, we do have a Maven dependency here. If I scroll back up, you'll see this Aerospike proxy client. For Go, however, the proxy client is just part of the Go package, so I just call that. I'm not even using a different client than if I was going to be working with the Cloud versus the self-managed thing. Again, it's one of those things where there's really not a lot of difference there. It's just understanding how you create that client, and that's what a lot of this stuff is designed to help us work with.

Now, I want to show, again, if I go back, there's this user profile store example. Again, this is out on our Developer Hub. So, if I go ahead and open this up. This is a more interactive kind of way for you to start actually reading and writing to your Cloud database if you want to. Again, this one is only in Java currently. Still working to get the Go application out there to be able to start messing around with as well, but what this allows us to do is actually plop in our database information and our API keys, and then we can actually see the code and interact with a real front end that's just kind of mocking a user profile. So, signing up for a website, updating your profile, deleting your profile, and then we even have a little bit of querying and things that you can do on the back end as well.

But again, I want to show really the difference here in if I'm doing this locally or with my own Aerospike database versus Aerospike Cloud. And so, if we scroll down, you can see the back end piece here, and each of these is kind of a different stage within the profile profile and where I might be. So, creating, reading, updating, deleting, and then querying. But if I open up this application setup, I can see here the dependencies that I'm working with. I've got my Aerospike client, and then if I look at the imports and so on, this is everything that I would be doing in the basic setup and connection or client instantiation if I was doing this in a self-managed setup. Right? Now, if I go back up to the top here, though, and I want to use my Aerospike Cloud instance, I'm going to go ahead and grab my database. So, give me a second while I copy and paste a few things in here.

Eric Schreiner:

Yeah, one thing I know, while Art drops that in here, is how we are actually authenticating to the database. The Smart Clients typically are relying on additional network security, and then they're using a username and password in most instances to authenticate and access the database. With this external interface that we've provided, the key ID and secret are actually used to receive a short-lived token, and so once that token gets shared, then the token is what's getting passed back and forth. The proxy client handles... We're getting the initial token and refreshing it on a regular basis for you. So, more of a behind the scenes of how it's actually working, but just some additional detail there in terms of what we've implemented and how you can use this more securely over the public internet, if you do choose to go that route for your testing. Of course, certainly for any apps that would go into production on Aerospike Cloud, ultimately, we'd recommend using private link, but this just makes it so much easier to test and not have to deal with the extra headache of the network configuration.

Art Anderson:

Exactly. So, once I've thrown those pieces of info in, this actually will change for me, and you can see that I'm utilizing my proxy client here, and then my imports have slightly changed, in that I'm bringing in my proxy client. And then, the actual setup again has changed a bit, because I need to bring in the API key and so on. So, setting up that client policy, passing along the API information for my user and password and whatnot. Again, very simple changes on that front, but that's again where that pretty much stops, because all of this code below that, we'll see as we kind of go through using this app, all of this is the same, how I create read, update, delete, query. Once I have that client, nothing really changes down Below.

What's real fun about this though is we can actually connect. If you're familiar with the sandbox that we have out on the homepage, this is just utilizing that same connection. What I'm doing here is I'm actually creating a pod in a Kubernetes server cluster that we have, and this pod is going to kind of work as a intermediary. So this will be like my client, if you will, sending this data back and forth to our database. Now that I've put the keys in and so on, effectively, the code that we've got down here is what's being run against that server. It says that... Well, I've initialized the client and connected to the cluster, so I'm ready to go and actually start messing around.

So, I can look at signing up, and so I'll go ahead and put in my name, and we'll just do art@art.com. Obviously, we're not creating accounts for anything. This is just kind of mocking a user profile, so no passwords or any of that kind of jazz. This is all your data, and this is all going into your database, so you don't need to worry about... I mean, I wouldn't put any personal info in here, but this is just for playing around and understanding how this stuff works.

And so, if I go ahead and I hit sign up, then we should see, hey, I've got a profile now. And down at the bottom here... Let me close this back end application setup piece. We're changing the code you see down below based on what step you happen to be at within the application, so when I created that, we've moved from create to being able to then go to this profile where I'm updating. Again, I'm updating data, and basically, I'm just sending a JSON object from a web form, or really a string, parsing that in my Java here, and then I'm going to be updating that data within the database.

So, I could go up here, and I could say, "Hey, I want to edit this," and maybe I change the color of my background, and I add in my work as Aerospike, and maybe I want to check that box that I never checked before. And I can go ahead and I can save that, and I've updated the profile. Maybe I sign out, right? Now, I'm back on the signup, and I can see the create code, so the code that I need to be able to create this user within my database. And so, I can also say, "Hey, maybe I've already signed up," so maybe I'll just type in art@art.comm and then I'll sign in again, and now I can see that I've signed in with my profile with that updated information about what I've changed within there. Maybe I want to delete my profile. I can go to the delete, and you can see what that code looks like to go in and actually confirm and delete my account.

If I want to go back, though, let's sign all the way out and pretend that now we're on the admin side of things. I can actually go in and I can query stuff. On the query end, we can see down at the bottom the code that we're messing around with, and then I can actually kind of create a little query statement if I want. So, maybe I want to bring back just the name, email, and work for this from users where maybe consent is true, so only those that have consented. What's really fun about this is now down at the bottom in that query, I can actually see what that code would look like. Updating the statement here, so we're telling it what bin names that we want to send, and then also we've got our new query policy filter expression so we're only looking for the consent that's been set to true, and so on.

This is a fun little just query builder that you can mess around with. And this is what I was talking about a little bit earlier, where something like this might make sense for utilizing a secondary index instead. So, depending on cardinality and how many of the records that I want to look at, a filter expression here... I only have one record in my database, so this isn't going to be too taxing, but a filter expression would need to basically look at either metadata or the record for everything that I'm looking at, whereas the secondary index can kind of narrow things down for me ahead of time utilizing that index instead. Note that I can't set these up through info calls with the proxy clients, but I can go into my dashboard and create those secondary indexes in there, which is really where you would want to be doing that anyway as an admin-type function.

But so, we can run this query, and then we can see, hey, here's my name, email, and my work, and we get that back there. Again, just a fun little interactive way for you to actually start reading and writing to your Aerospike Cloud database without really having to write any code. You can just drop your stuff in, start messing around, and you can see what that code looks like. And then from there, you could actually take all of this if you wanted to deploy your own application and then start changing the way that some of this stuff works. One of the things that we're working on is really creating examples within our GitHub repositories where you could actually clone a full deployment that has this front end, back end that you could play with locally if you don't want to have to go through the setup that we have here as well.

Those are the kind of things to come. Like I said, more client languages as well, so Go, and then as we add more clients available to our proxy setup as well, so what we're able to use with the Aerospike Cloud. We'll be adding more examples and things like that down the road. Yeah, so like I said, there's really not a lot to talk about other than the fact that there's kind of less to do on the ops side, and it makes things slightly simpler, I think, on the developer side, where again, we're just kind of pointing to an API, and Aerospike is really taking care of all of that operational complexity. Cool.

Stacey Kruczek:

Yeah, this is great, Art. There's no questions right now, and if you guys are online here, anybody, and you have a question, please let me know. But I know there was a question that I had received externally in, actually, our community about the data migration tools that we have available for transitioning to Aerospike Cloud. I know that we're working on some things, but what are the recommendations?

Art Anderson:

Yeah, so right now, if you have an existing application that you would want to test in Aerospike Cloud, because again, right now, you're looking at a 14-day free trial, so you wouldn't really want to migrate an entire application into this. It's really more for testing and kind of seeing what you can do and what you'll be able to do with Aerospike Cloud. But generally, writing a loader function within the clients, so utilizing our batch abilities and that kind of stuff to create your own bulk loader, if you will, into the database would be where we're at right now. But going forward, we might have more tools and things like that that allow us to do more with that.

Stacey Kruczek:

Oh, that's good.

Eric Schreiner:

Yeah. One thing I'll just add there, I think to Art's point, we've tried to, from the product side, really handle the operations, and now the next step is, how do we build from there? And so, these first tools that Art is showing off is just understanding the basics. How do I see it working? How do I see it in code? I think we have lots of ideas within this expanding on this use case model. Providing sample data sets that'll work with this is fairly common and things like that. So, for more of these examples and for someone who's going through a trial and wants to see things working, having a sample dataset or providing other tools for loading some data so that there is a little bit more in there if you want to pull some sample or representative data for your application and load that up.

Those are all things that we're definitely thinking about. Would love to get feedback from folks about what you'd like to see and what sort of testing you'd like to do, because that's really the name of the game. As Art mentioned, we've really tried to target developers with Aerospike Cloud. We're at the beginning of the journey in terms of the database is there now. We want people to utilize it and find how they can leverage it, and a lot of enablement left to do, so definitely let us know what would be helpful, what things you'd like to test, and we definitely want to pull that in and fold that into our plan. So, a lot more to come in this area, and so it's exciting to see things starting to move and more to come on that front.

Stacey Kruczek:

No, I appreciate you saying that, Eric, because it's been really important of the... some devs that we've pulled to do some trials and stuff on this. We've gotten some really important feedback and recommendations or thoughts on features and moving forward. So, we really encourage you... I don't know if you have that slide available, Art, to join our community, because if you're on that Discord community, we're all on there, and we all have full visibility to it, so it's one way for you to jump on quickly and join us. You just can scan that QR code, or if you need an invite, again, email me developer@aerospike.com, and we can get that out to you.

This has been really beneficial and really easy to do this walkthrough. We'd love to get your feedback on this, too, to see if this is something that you like. I think one things that we're also going to explore is having some live streams and just get on and start coding and walking through some samples and examples. We feel that this format might be beneficial to a lot of you, so if you have any feedback on that, we'd love to hear it. That's our Discord community, and then in the slide before, we have all of our tools and resources, so all our docs on GitHub, AeroLab, and then the Developer Hub where you can start your journey.

And then, just a quick note, if we're going to be wrapping up here, I just wanted to let you know we are going to have another dev chat coming on board here. Tim Faulkes, who's also on our team, he's going to be talking about the five best things that Aerospike client you may not know, so this should be really interesting. Again, we're trying to do a casual format here where we open this up to you and open up the floor to try and get your feedback and your information and recommendations, so please join us for that as well. QR code, and then we'll promote it again in the Discord community and stuff like that as we get closer.

But really appreciate everybody attending. Mostly appreciate Eric and Art taking the time to walk through all of this for us today. Please get ahold of us if you need to talk, and know that this is going to be recorded and we'll have this up so you can watch this again so you can do it step by step on your own. Jump on. Join us on the trial. Let us know what you think. I think that's really important. And then, Eric's going to be at AWS re:Invent for anybody who's there. You can meet him in person, you can talk all the Cloud and dev stuff that you want to talk about with him and some of our team.

Eric Schreiner:

Absolutely. Just a couple quick plugs in terms of what's coming up as well. As Art mentioned, we have the Java and Go clients available today. C# is coming very, very soon, so we'll have that client available as well and similarly expanding the resources around that as well with more coming next year. And then, we'll have... We've mentioned the 14-day trial is available now. Purchasable databases are coming here in a couple of weeks. We'll be starting with some smaller general-purpose databases. Again, just to get going. We do have options. If that is not enough, and you need more, you can certainly reach out, but those are going to be available for self-service purchase with a credit card through Aerospike Cloud just to get going. And then again, we'll be gathering feedback from developers to decide what other options we make available there.

Again, it's the start of the journey. We want to be informed by the developer community in terms of what we're adding, what shapes of databases and workloads are going to be of most interest, so definitely looking forward to bringing more options there. But really, like I said, I think our main goal is, how do we make it easier for developers to learn about Aerospike? And what sort of resources we can bring to bear. So, please send that along in Discord. Come chat at re:Invent if you're there. Be happy to talk to anyone. Thank you.

Stacey Kruczek:

Yeah, that's great.

Art Anderson:

And again, if you have any questions, feel free to throw them in the Q&A, but otherwise, I think that was all we had.

Stacey Kruczek:

It's a wrap. All right, thanks, all. Have an awesome day.

About this webinar

In this interactive walkthrough learn how easy it is to spin up an Aerospike cluster using Aerospike Cloud. We dig into some tutorials to help you along the way. This webinar is for all skill levels, but especially for anyone looking to abstract away operational complexities. You’ll walk away knowing how to:

  • Create an Aerospike Cloud account

  • Use the Aerospike proxy clients (Java and Go)

Speakers

profile-headshot
Art Anderson
Developer Advocate
Eric Schreiner
Eric Schreiner
Director of Product, Cloud