Transcript from the "Automation Providers" Lesson
>> Automation providers. [LAUGH] So yeah, like I said, I was just about to talk about Pulumi Cloud and all these other ones. I do think this is a pretty accurate image [LAUGH] for it because this is a scenario where you want to do this, where you want to say hey, shut up and take my money, help me.
[00:00:19] Just save me, make my life easier. So, should you use an automation provider, right? We talked about should you run a shell script over and over and over, should I actually pay the money to do this? Because I am somebody who had servers in his garage. [LAUGH] I have run stuff on-prem to pinch every penny I can, but over the past, I would say a few years, I've wanted to sleep more.
[00:00:47] [LAUGH] I've wanted to do actually go out and do things more. And this is where, going back here, this helps, right? Because what you can do is you can just say, take my money and solve my problem for me, right? Out-of-the box with automation providers, they're gonna have standardized practices already built in, right?
[00:01:06] So Terraform Cloud, Pulumi Cloud, they already know how they run their pipelines. They already know how you can review the pipelines, it's already built there. You don't have to think about it, it's a turnkey solution, right? So if you're in a scenario where we don't have any automation, or we have no way of managing our automation.
[00:01:23] Well, an automation provider could actually be super helpful for you and get a bunch of other stuff out of the box that you might not even expect, right? Another one that you've seen a lot, collaboration features, right? You do not want a single person managing all of your infrastructure, that is a fail point.
[00:01:42] [LAUGH] And if they leave or anything like that, you are in trouble, right? So including collaboration in your automation provider means I can make changes, but then somebody else can approve and apply them, right? So, if you have different time zones, you have different teams, they can work together and you don't have to be worried about, is it gonna go safely to where it needs to go?
[00:02:08] And then there's also additional features like cost management. Some providers can look at your AWS resources, tell you how much your cost-effectiveness is and stuff like that. So there's a lot of value there. Do you need to spend money on providers? As I said before, no. And again, this is the biggest takeaway, but it will help you focus money on other problems, right?
[00:02:32] So if you say, okay, here is money towards this, you don't have to worry about those problems. Yes, that money is allocated to that, but it's not a problem. It's just a financial thing, right? That's easier to solve in a lot of ways. Whereas when you go to another situation and you need to solve it, well, that money has been allocated.
[00:02:52] We don't have to worry about it. I don't have to be concerned about it. And now I can say, hey, can I take some other money and put it towards this, right? That argument becomes a lot easier to convey and make possible. The reality of it is the decision is up to the organization, right?
[00:03:07] The whole company should be able to say what they think is, or at least the people involved, right? What if I don't want to spend money on automation providers? And this goes back to the whole, what if I just want to run a for loop over and over and over again, right?
[00:03:25] Sure, you can build your own solutions. Sure, you can use open source solutions, and you can even pay engineers to build solutions, employers, or contractors. However, and again, this is where technology separates itself, you have to also look at this from a business standpoint. No matter what, in pretty much any of these solutions, or let me ask you this, in any of these solutions are you not spending money?
>> Always at least opportunity cost.
>> Yeah, is time valuable to you, right? Do you wanna spend eight hours in the trenches of automation? No, [LAUGH] so no matter what, you're gonna spend money on automation. So where do you wanna spend it? How can you make that easier, right?
[00:04:15] So what are some automation providers? Terraform Cloud, which is the one we'll end up using, right? There's Pulumi Cloud. There's the Env0, Spacelift, and other ones, right? There are many more, but these are probably the most common ones that you're used to seeing or hearing about. Terraform Cloud is, again, because Terraform is the industry standard, they were able to lean on top of that and make Terraform Cloud an industry standard.
[00:04:40] And this is, again, what makes Terraform so great. Not only can you use the CLI locally, but then you can also go to their cloud platform and everything works automatically out of the box. It maintains state of the infrastructure. So, if you are creating resources, well, where does that actual state go, right?
[00:05:00] They take care of it for you, their platform will actually just host the state for you. You don't have to be worried about that. It provides access control features. So out of the box, you get teams, you get the ability to allow people to approve or deny workflows.
[00:05:14] And you don't have to be worried if they can or can't do that, you can build that into the platform, and it also includes infrastructure. So with Terraform Cloud, you don't have to figure out, well, what's gonna run my pipelines? Terraform Cloud can actually do that for you.
[00:05:27] They have runners, they have infrastructure there. So out of the box, you really just have to run code. And I think that was their goal with Terraform Cloud, was to be able to just say, okay, I was working locally, now let me move all this to the cloud, right?
[00:05:42] And get all those benefits. So Terraform Cloud is really a great choice for small or large companies that are collaborating on infrastructure. We use Terraform Cloud at Hippo. I think it's awesome. I really do love using it because I can have somebody go make some changes, and then they'll just copy and paste me a link to the plan.
[00:06:01] Then I can go look at that plan when I want, and even if I want to, I can approve it if I'm allowed to. So it really allows you to kind of keep moving and keep collaborating well together. Okay, Pulumi Cloud. So Pulumi Cloud for starters is an [LAUGH] alternative to Terraform Cloud, it is.
[00:06:21] It does the same thing. It maintains state of infrastructure just like Terraform Cloud does. So you do get that benefit. You don't have to figure out, do I upload it to a bucket or stuff like that. However, and please, Pulumi Cloud, if you're out there, change this, there's no pipelines.
[00:06:41] So with Pulumi Cloud, they don't actually give you the ability to run pipelines for you. You have to go into your CI/CD, have Pulumi run for you, and then have that whole process. So there is no real massive collaborative value here. Again, I hope that changes, but when we talk about what Terraform can do in collaboration versus right now what Pulumi can do, I would say Pulumi Cloud is much more.
[00:07:10] If you just want something that maintains your state and you have existing pipeline, you've already got a lot of this already built, you just wanna plug in Pulumi, right? It can run in the CI and it's really easy. So it's great with existing pipelines and hosting and things like that.
[00:07:30] Env0, Spacelift, and others. So why I separated Terraform and Pulumi Cloud from these is because, yes, they are alternative to Terraform Cloud. But on the third line is the most important one, which is normally these providers can actually run both. So what's really interesting about this is these providers can say, all right, run some Terraform and then after that run some Pulumi code, or after that, go do something else.
[00:08:01] So we actually evaluated Env0 at Hippo. It's a really good platform, I think. We didn't end up using it just because, again, it didn't fit our use cases, right? But if we were using both Terraform and Pulumi and we wanted to glue those two together, Env0, Spacelift, these providers actually really do a good job of gluing those two together, which is really nice.
[00:08:25] [LAUGH] So how do I choose, right? This is always the problem, it is, this is always the problem. How do I choose? I get this question so much in chat when I'm streaming. You seem to know all of this, how can I know this, right? Well, I'm gonna show you.
[00:08:42] First one, like always, focus on the problems you're actually trying to solve. What does that mean? Well, if you create an account with Terraform Cloud, is that gonna get you to your resources faster or slower? If it gets you slower, don't do it, [LAUGH] focus on the problem you're trying to solve.
[00:09:04] Don't create new problems in the way for you. And that's something that devs do a lot, which is, we're all, I would say, a little bit distractible. [LAUGH] And everyone here I think can agree to I started something, and then I got sidetracked, I went a completely different direction, and then I forgot where I originally came from.
[00:09:24] And then I came back to it and then I was able to fix it, right? Just keep your focus on what you're trying to solve so you don't have to deal with other things to investigate. Focus on the tools that you're already using. So if you get to the first one and you're just like, you can still focus on the tools that you're already using.
[00:09:44] So if your house, it's really, really single tool use case and some of those other specific, or require, what's it called? Aspects that I mentioned earlier, then that can help you. Your previous tools and how you build things before can help you decide how you wanna build things going forward, right?
[00:10:04] And that can help you choose. And then focus on the features you need first, right? This is a big one. A lot of people, like I said before, will look at providers and things like that and just see a shiny light or something, and they'll be like, look at all these.
[00:10:21] But you're not gonna use most of those things. [LAUGH] Most of the time people don't. Most of the time people will go to a provider and be like, it's so awesome, but it's almost more of a braggability thing than the actual practical use of what the provider does.
[00:10:34] It's okay to just use a provider for a simple use case. It's totally fine, just focus on what you need.