Unlocking The Potential Of Hybrid Cloud With Cory O'Daniel
Unlocking The Potential Of Hybrid Cloud With Cory O'Daniel
In this episode Chris Hill asks Cory O’Daniel, CEO and co-founder of Massdriver, to explain the concept and benefits of hybrid cloud, including the use of multiple cloud providers and container services for scalability and flexibility. The discussion also addresses the security and networking challenges that using hybrid cloud implies.
Chris Hill, COO and co-founder of Massdriver here and I'm chatting with Cory O'Daniel, CEO and co-founder of Massdriver, and we're going to be talking about hybrid cloud and if it fits for early-stage companies. So to start us off, why don't you tell us what is hybrid cloud?
Hybrid cloud is using multiple cloud providers to build your product, right? It might be AWS and Azure, AWS, GCP, or it could even be vercel for your Jamstack frameworks and using AWS for data and storage.
Now this seems pretty mature or complex. Is this something that startups should even be looking at or early-stage companies?
I think startups are doing it and they don't realize it. Let's say I'm running some API services on Heroku and I'm using Vercel and I decide I want to use Supabase for my Postgres, I'm doing hybrid cloud. We don't really tend to think of it that way. We tend to think of hybrid cloud as the big three. But you're already using multiple cloud providers and you're traversing the public Internet to move data around between these services.
So what are the benefits then of companies going like, why would somebody go down this route of exploring that? I mean, it seems a lot easier just to stay in, pick your cloud and stay within it.
Yeah, I think there's two big benefits, particularly with the big three cloud services for startups. One is the credit programs, right? We’ve got a $100,000 credit program through AWS, which we've consumed in a year, but we also have $125,000 or $150,000 through Azure, $100,000 through GCP. I think we recently got like $120,000 through IBM. Right? And so you can really get a big bag of credits. And if you're developing services on Kubernetes, it makes it easy to kind of move your traffic around or use different services. Picking the right tool for the job, right? So let's say you have 100 grand of AWS credits and that's where you're running your Kubernetes containers. And maybe you're running your transactional databases there, but you want to get an AI. AI is a hot thing, it's where everybody wants to go. And OpenAI is a great option. It's run managed on Azure. You can go through the Azure Founders hub program, get some credits there as well. Now you're running hybrid, you're doing your AI through Azure, you're doing all your transactional and containers on AWS. I think it's a very good fit. We know that OpenAI is moving very quickly, developing a lot of tooling, and I think that is the kind of stuff that engineers should be looking at very early on. Right. It's not just for AI. I mean, if you look at Kubernetes, I'd say that GKE has a much better Kubernetes offering than EKS or AKS. But maybe you want to run your containers there and you want to run some other services like S3 blob storage which has so many integrations on AWS. I think those are fine considerations. And you shouldn't simply use a tool or a service because that's the one that's in your cloud.
We know that OpenAI is moving very quickly, developing a lot of tooling, and I think that is the kind of stuff that engineers should be looking at very early on.
Now, if companies are looking at this, it seems like having to learn multiple clouds or manage deployments across them is going to impact scalability or things like that as you're doing development. So how does going hybrid cloud affect scalability or flexibility in your infrastructure?
Yeah, I think as far as developing your applications, using container services is one of the best ways to ensure that you can run your workload almost anywhere. You can run a container in Lambda, you could run that container also in Kubernetes, but you have to change the way it executes. But focusing on containerized services that make it easier to develop locally and then reproduce those things in the cloud. As far as flexibility, I'd say you get more flexibility with hybrid cloud because you can get the services that you need. Let's say that you are running on AWS and wanted to run on Google's AI platform, which is a fantastic choice, right? You would actually have that ability to use services in the different clouds. I think it gives you more flexibility. Now, there are the downsides to that, which is more cloud, more tertiary services, IAM security networks, et cetera. And I think that's where it becomes a bit more difficult and has a bit more overhead for engineers.
So let's dig into that. What are the issues then that you have to address if you want to go down this route? Yeah. How do you deal with the cloud security if your data is now moving across the public Internet, cloud to cloud, or figuring out IAM is usually one of the most difficult parts of any cloud that you're operating in, it's one of the first hurdles. So how do you figure out, how do companies figure out how to navigate that landscape?
Yeah, it's probably one of the more difficult parts. If you're looking at some of the services that are fully managed, things like S3 or things that have endpoints like Dynamo. Being able to use those are a bit easier because you can kind of skirt around dealing with networking. You still have the IAM problem. That's one of the bigger hurdles is learning how the permission systems work of all of these clouds. So as far as the networking goes, when you get into containerized services, transactional databases and whatnot, there are plenty of great tools out there to kind of peer your networks together. AWS and GCP both offer tools to do so, but also third party tools like Tailscale I think are a great option there.
You still have the IAM problem. That's one of the bigger hurdles is learning how the permission systems work of all of these clouds. So as far as the networking goes, when you get into containerized services, transactional databases and whatnot, there are plenty of great tools out there to kind of peer your networks together.
We've been talking about a lot of the cloud services. Do you recommend companies look at platforms like Kubernetes that give you a unified experience for deploying and managing your application, or it doesn't really matter which cloud that you're running in terms of actually executing?
Yeah, absolutely. I'm a Kubernetes fanboy. I'm a fanatic. I develop on Kubernetes locally. I think Kubernetes is one of those things that people look at and they consider it to be a lot to learn, but it is knowledge and experience that you can actually leverage between the clouds and leverage between jobs, right? Sitting around building some bespoke stuff to run containers on VMS or whatnot. That might be easier for you to do quickly, but it's not easier to onboard your team, it's not easier for people to learn how it works besides you. And if you leave, it's not easier for the person that takes it over. I think Kubernetes is a real game changer in how we develop and how we can empower engineers to learn something once and replay that from cloud to cloud or job to job.
Yeah, it seems to really allow you to avoid some of the vendor lock in, particularly with the clouds and perhaps their proprietary systems for running applications like ECS in Amazon or Cloud Run in GCP or App services in Azure. How do you deal with all of these other services though? You're going to still run into the vendor lock-in problem. How do you deal with that?
Yeah, vendor lock-in is a thing when you start using proprietary services. If you're using something like Kubernetes, you can start looking at open-source alternatives. You can use something like Scala DB instead of Dynamo DB to give you that flexibility. You can use things like MinIO for abstracting any object store to make it feel like AWS S3. So there are some obvious open-source tools that you can use to mitigate that. But I think vendor lock-in is one of these things that when you start looking at some of these services like it's just a necessary evil, right? And we can try to get away from vendor lock-in as much as possible by leaning into tools like Kubernetes, where we know that that information is portable or even starting to run some of our own data services. Right. That sounds like a very scary thing to do for a lot of engineers to be able to run postgres yourself. But there are a lot of great operators, typically built by vendors that run very well. There's KubeDB, CockroachDB has a very great helm chart. So we can look at running some of our own data services to just give us that true portability between clouds.
So you're the CEO of Massdriver. Talk to me about how Massdriver could help any of these companies that may be considering looking at hybrid cloud, but it just seems way too complex or scary to be able to take on.
Yeah, so we kind of take on that, that nitty-gritty part that's the tedious part, the networking and the IAM, KMS, like all the parts that people aren't super excited to work on in cloud infrastructure. We have a very intention-based design to how we provision and manage infrastructure. You get to focus on your use cases and the services you want, not how they're configured and routed and connected to the rest of the cloud. So if you want to run, let's say, AI platform on GCP and you want to run your transactional and EKS on Amazon, you can simply drag those onto your canvas. And Massdriver is taking care of all the IAM stuff behind the scenes. You get to focus on the service that you want, not how to operate the service that you want.
Well, thanks, Corey, for taking the time to talk to us about hybrid cloud. Really appreciate the conversation.
Thanks for having me.