20. The InterSystems Kubernetes Operator
In this episode, Product Manager Bob Kuszewski tells us about Kubernetes and the InterSystems Kubernetes Operator (IKO), which makes it easy to deploy InterSystems products in your Kubernetes clusters.
For more information about Data Points, visit https://datapoints.intersystems.com.
Derek Robinson 00:00:03 Welcome to Data Points, a podcast by InterSystems Learning Services. Make sure to subscribe to the podcast on your favorite podcast app. Links can be found at datapoints.intersystems.com. I'm Derek Robinson. And on today's episode, I'll chat with Product Manager Bob Kuszewski about Kubernetes and the InterSystems Kubernetes Operator.
Derek Robinson 00:00:39 Welcome to the Data Points podcast by InterSystems Learning Services. On today's episode, we're joined by Bob Kuszewski, Product Manager for the Developer Experience here at InterSystems. Now about a year and a half ago, we had Luca Ravazzolo on the podcast to talk about Kubernetes, the open-source container orchestration platform. Now, at that time, the InterSystems Kubernetes Operator wasn't even released, and lots of strides have been made in cloud technology ever since. Today, Bob will talk with us about Kubernetes and some of its common use cases, as well as how the InterSystems Kubernetes Operator, or IKO, helps deploy InterSystems IRIS applications in Kubernetes clusters. And additionally, he'll also tell us a little bit about how Kubernetes compares with InterSystems Cloud Manager, or ICM. So without further ado, here's my interview with Bob.
Derek Robinson 00:01:32 All right. And welcome to the podcast Bob Kuszewski, Product Manager for the Developer Experience here at InterSystems. Bob, How's it going?
Bob Kuszewski 00:01:38 Good. How are you?
Derek Robinson 00:01:39 Good. Your first time on the podcast?
Bob Kuszewski 00:01:41 It is!
Derek Robinson 00:01:42 …and we're finally back in the office here. I've been doing remote podcast interviews for a while now. So this is very refreshing to do one in person and be able to both be sitting here at the mics and have a good conversation.
Bob Kuszewski 00:01: It's exciting to be back.
Derek Robinson 00:01:54 So today we're going to be talking about Kubernetes, and specifically the InterSystems Kubernetes Operator and a few other cloud topics around the InterSystems technology stack. Over a year ago, we did a podcast episode with Luca Ravazzolo, who talked to us about Kubernetes and what it was. And in that episode, we maybe had a few hints toward the Kubernetes Operator, but it was much earlier and maybe not even released yet at that time, I think.
Bob Kuszewski 00:02:18 That's right. It wasn't out yet.
Derek Robinson 00:02:20 So we figured it was overdue to do another episode and have a good conversation about that. So, starting from the 10,000-foot view, tell us a little bit about what Kubernetes is and where its place is in the market today when it comes to cloud technologies.
Bob Kuszewski 00:02:31 Yeah. Kubernetes is this extensible open-source platform for maintaining and managing your workloads in the cloud. It is declaratively configured. It has a lot of automation built into it. This is how those websites that you go to that scale to infinity…this is how they all work. It's incredibly popular. It's really kind of taking over the world. One of the things that I love about it is that it's ubiquitous, and it's portable. So it runs on everything from edge cloud computing devices, like IOT devices—think of it that way—all the way up to giant…you know, Alibaba runs their whole website on it. You know Kelsey Hightower, who's a DevOps person, I think he's at Google Cloud now, you know, he describes it as it does all the things that the very best system administrators would do. It does automation, failover, centralized logging, monitoring, and it takes all the things that we've learned in the DevOps community and makes it default out of the box. So it's really easy to, once you get into it, it's really easy to build and grow on Kubernetes.
Derek Robinson 00:03:59 And that's also on top of, you know, we've had other podcast discussions and content where we talked about just containerization in general and the lightweight, efficient benefits of that. It's really taking that and then, like you said, taking a highly skilled system admin and everything that they would do with the deployment of those and kind of making it all work seamlessly.
Bob Kuszewski 00:04:20. Exactly. Yeah.
Derek Robinson 00:04:22 So going to the next step a little bit there of understanding what Kubernetes is and its value, tell us about how InterSystems technology works with that. You know, basically, what is the tool that's available to be able to make that happen?
Bob Kuszewski 00:04:38 Yeah, last year we released the InterSystems Kubernetes Operator. Kubernetes Operator is a controller that extends the functionality of Kubernetes to allow you to create, configure, and manage instances of complex applications on behalf of a Kubernetes user. So the way I like to think about it is: a Kubernetes Operator automates all the best practices of what a human operator would do to create, monitor, and update an application. So the InterSystems Kubernetes Operator—we call it IKO—encapsulates all of these best practices specifically for IRIS: for how to set up IRIS, how to update IRIS, how to grow your installation of IRIS from something that starts very simple to something that's very complex, and has a lot of different servers that work together to provide this application. It does so in the Kubernetes way, so we use all of those great Kubernetes tools that are part of it.
Derek Robinson 00:05:47 So Kubernetes Operators are a concept that can exist outside of the InterSystems one. So there are other Kubernetes Operators out there that basically automate these tasks for the environment in the situation that's required. This tool is the InterSystems-specific one that allows you to do those InterSystems-specific things that a system admin might do manually if they were managing InterSystems.
Bob Kuszewski 00:06:10 Yeah, that's exactly right. So there are Kubernetes Operators for almost any application that you can think of. You know, WordPress applications, for example, there's a Kubernetes Operator that lets you just say easily, "I have a WordPress application. Here's what I'd like it to look like." And it handles all of the setup and configuration of WordPress. What we have is we have one that extends the Kubernetes API so that you can say, "Oh, create IRIS cluster." And then you give it options. There's a lot of options, but ultimately, it's very easy. It's all YAML or JSON, depending on how you want to do it. And so you can create anything from a very simple cluster to a really very complex cluster if you want to.
Derek Robinson 00:07:05 Right. Nice. So looking at how that applies in the real world, right. What are some examples? Cause that's what it sounds like to me is that you can use Kubernetes without a specified operator, right? But using, for example, the InterSystems Kubernetes Operator for using InterSystems IRIS instances, right? What are some examples and use cases where customers in the real world would be well-served or have been well-served to use the Kubernetes Operator, as opposed to just trying to manage things without an operator, just using Kubernetes and the IRIS instances?
Bob Kuszewski 00:07:37 Right. What the Operator allows you to do, is it allows you to work with IRIS without having to have as many people involved. You don't have to think about it; it allows you to—how I like to describe it—fall into the pit of success, just make it really easy to be successful with it. So we have customers who are using it in a number of ways. One that I think is very interesting is a very simple IRIS application, dealing with FHIR® messages and HL7® messages, and it is built in as part of the software that gets delivered with medical equipment. So there's a medical equipment manufacturer who I can't name, that is going to be including it right there with it. And they're using Kubernetes to manage their whole stack of all of the software, the stuff that they wrote themselves, as well as our built-in tools. So in the past, you've had to like almost ship a human operator with sophisticated equipment like this. With Kubernetes and our Kubernetes Operator, you have the ability to have that all be automated, and you just need much, much less human oversight. We also have other customers who are building, for example, SAS offering that…is using our Kubernetes Operator to—whenever a new customer comes in of a certain size—spin up a right instance of IRIS for that customer.
Derek Robinson 00:09:22 Nice, yeah. So, all those benefits that you explained, just making that available for whatever their need is, whether that is for replacing the human administrator in the scenario or the elastic scaling that you're talking about, based on the user demand, things like that. So, yeah, that's really cool.
Bob Kuszewski 00:09:37 It also lets you handle some of the things that can be tricky with manually setting up IRIS. For example, mirroring—it's a very common technique to have two mirrors for disaster- recovery purposes. With a manual setup, that's not easy to configure. It takes time. With the Kubernetes Operator, you just say mirroring equals true and it goes off and deploys it. Same with sharding. So if you have a large data application, you could split that data up across multiple physical nodes. Again, it's kind of a pain to set up manually. It's definitely doable; it's not the end of the world…but have that be automated, or to have one of the secret-sauce pieces of InterSystems IRIS that I love to talk about is ECP. And if you have ECP for compute servers, so you're offloading some of the business logic work from your main database server. Those can scale up and scale down just by changing a number in your YAML file, and you're good to go. It makes it really very easy to manage small applications, large applications, and we handle things like the web gateway or external language servers, you know, the whole breadth of what a full-blown IRIS using all the bells and whistles application could look like.
Derek Robinson 00:11:12 Right. And really one of the terms with Kubernetes that I've seen before is declarative configuration, in that you're kind of flipping it on its head and that you can, like you just said, update your definition file and, you know, Kubernetes and the Operator in this case with the, you know, things like mirroring, sharding, stuff like that, will do those things that are manual and difficult—you know, it knows how to get to that state that you've told it you want to get to.
Bob Kuszewski 00:11:34 Exactly. You just tell Kubernetes, "Hey, where do I want to be at the end of the day?" And it will make it happen. It'll make it happen in kind of the right way.
Derek Robinson 00:11:46 That's very cool. So looking at that and seeing its use case in these containerized deployments and clusters, I'm going to backtrack a little bit to a couple of years ago when we first released InterSystems IRIS. And I remember in the learning group creating learning content around the launch of InterSystems IRIS, and one of the topics that was very popular at that time in the cloud space was InterSystems Cloud Manager, ICM. And so that is still an offering as well. And so I think one of the things that I've wondered before is the difference now with ICM and Kubernetes both in the picture, and also when customers would use one or the other. So talk a little bit about that comparison and where each one really has its sweet spot for customers.
Bob Kuszewski 00:12:28 Yeah. ICM is the cloud manager that's great for if you want to deploy onto VMs, and you're using one of the big cloud providers. So it's great…it works. It's beautiful. It does a lot of the same things. It lets you easily…through configuration….say, I want to set up a very small or very complex IRIS cluster, and it'll set all of that up. So this is great for organizations that are not able to, or not ready yet for embracing Kubernetes as a whole. For organizations that are using Kubernetes, it's a little bit different, right? You have to have a containerized application, which is actually a great thing. It makes it easy to move from dev to QA to production really easily, but it does take some time, and there's some learning involved there. So, you know, Kubernetes is great, and it does a lot of the same things, with IKO, that you can do with ICM.
Derek Robinson 00:13:41 Okay. So yeah, so there's, there's certainly sounds like there's some overlap there. And I know even from what I remember early in ICM, creating learning content there, you could have containerized applications there as well, but focusing on a VM-based architecture.
Bob Kuszewski 00:13:55 Yeah, exactly. You're still deploying VMs; it's just, those VMs would run in your container rather than something like Kubernetes, which is built around that.
Derek Robinson 00:14:07 Exactly, right. Cool. So to summarize and wrap up, you know, a lot of interesting and cool stuff, both having been released and still sounds like maybe on the way, what are some other cool things or notable things to look for in the future when it comes to these cloud developments in the InterSystems technology stack?
Bob Kuszewski 00:14:24 Yeah, we've got a lot of things going on right now, right? We're continuing to invest in ICM as well as IKO. You know, I believe that Kubernetes is really the future of how sophisticated applications get deployed, both in the cloud, but also an edge computing devices and, you know, in hybrid situations of all sorts and flavors. In addition to that, you know, we are expanding and investing in certain SAS offerings. We recently announced our FHIR Accelerator service, and we're building out our built-in interoperability features to make it easy to integrate with a wide range of cloud services like S3, KAFKA, those sorts of things. We're making these great investments and I'm really, really excited to share some of them with you in the future. Just not today!
Derek Robinson 00:15:22 Right, right. Got to leave little bit of intrigue always. So, what sounds like a lot of cool stuff. And of course, I assume this year at Virtual Summit as well, there'll probably be a lot of content around these different cloud areas. So definitely looking forward to it. So Bob, thank you so much for joining us. We'll have you on next time.
Derek Robinson 00:15:44 Thanks again to Bob for joining us to talk about Kubernetes. When it comes to learning Kubernetes, a lot of that learning curve is not so InterSystems-specific. There are lots of resources out there, including Kubernetes' own documentation from kubernetes.io, that does a great job laying out the foundation of Kubernetes knowledge. Once you have that foundation, you'll be more equipped to dive into using the InterSystems Kubernetes Operator to deploy InterSystems IRIS in your clusters. Of course, you can always reach out to your sales engineer for more information about trying the InterSystems Kubernetes Operator in your own deployments. That'll do it for Episode 20. We'll see you next time on Data Points.
Brought to you by InterSystems Learning Services of Data Points