6 ms·
Infrastructure Manager: Provision Google Cloud Resources with Terraform
- varun_chopra 3y agoTerraform's license change suddenly makes sense.
- time0ut 3y agoI wish AWS would do this and deprecate CloudFormation.
- klooney 3y agoI haven't used Cloudformation in three years, how's it doing these days?
- anyoneamous 3y agoI see a roughly even split of people using CFn, Terraform and (Python) CDK. AWS shot themselves in the foot by making the Python version of CDK second-tier after Typescript; IaC is still done by DevOps people far more often than application people, and DevOps people use Python. Another gripe is the number of services and new features which launch without CFn support, which also blocks CDK support; when Terraform supports a new platform feature before the vendors own tools do, that's a sign the product teams are being driven by the wrong metrics.
- likeabbas 3y agoIdk if I buy this. I’m mostly a backend service developer, but my team manages our own infra using CDK and we love it. And we’re glad they used typescript as it’s a fantastic language.
- scarface_74 3y agoEvery version of the CDK uses an interop layer and runs on top of the Typescript version https://github.com/aws/jsii https://github.com/aws/jsii And as far as TF supports services before CFT. Guess which is easier for an AWS employee to do - getting the CF service team to support a new service or just contribute to Terraform’s open source project? I know of at least one service where the service team introduced the needed APIs and then an employee of AWS wrote the TF provider and contributed to the project before AWS’s own internal team added it to CFT. Source: former AWS ProServe employee. I am not referring to myself as the author.
- jen20 3y agoTerraform really drove CFN to even pretend to care about resource support. It’s typically day 1 now, but only because NAT Gateways took so long it was embarrassing for AWS.
- deleted 3y ago[deleted]
- Demiurge 3y ago> Python version of CDK second-tier after Typescript What? It's not second-tier at all, every single feature in Python is in sync with TypeScript, the library versions are in sync, and the docs for all the languages are auto-generated. They're not second-tier, they're 100% single tier.
- anyoneamous 3y agoIME quite a few of those auto-generated docs (mostly the examples) have slight incorrectness, where the code snippet is a mangled mix of Python and TS. Also, the tooling you need to drive CDK is all TS-based, which means I now need to think about NPM and Node versions occasionally, which are not relevant in any other part of my workflow. Admittedly as someone in scientific computing I am unusually far from the JS/TS ecosystem - but all I can tell you is that it feels second tier as a user.
- paulddraper 3y agoCDK has kept it very alive. (But there's CDKTF, FYI.)
- slavetologic 3y agoCDK is amazing, you shouldn't be writing cloud formation anymore
- deleted 3y ago[deleted]
- shepherdjerred 3y agoJust use CDK. By far it's the best way to manage AWS infra; AWS also uses it internally.
- x86x87 3y agoCDK uses CloudFormation under the hood.
- shepherdjerred 3y agoIs that really relevant? CloudFormation is just another primitive at this point. It's not much different from high-level code compiling down to machine code. The benefit of writing high level code isn't that machine code is entirely gone. The benefit is instead that as a user you can mostly forget that machine code exists.
- hughesjj 3y agoSometimes it does appear as a leaky abstraction. I want to say for example secrets storage support as a parameter
- deleted 3y ago[deleted]
- tpmx 3y agoOr just buy Pulumi... j/k (I'd hate for such an awesome tool to get AWS-ized.)
- pm90 3y agoWonder if they have to pay licensing fees to hashicorp for using terraform this way. It’s essentially replacing terraform cloud for GCP resources.
- emptysongglass 3y agoWhich is why it's all the more puzzling Google didn't spring for OpenTF here. They single-handedly could have proven it as the fork of choice but instead they're paying into HashiCorp's bad decision?
- kevindamm 3y agoProbably because development was already well under way several months ago. But I agree, explicit support for OpenTF here would have been really nice to see, even if it delayed launch a little.
- x86x87 3y agoHashicorp is still not out of the woods. If Microsoft or AWS gets behind openTF they are fucked.
- Jka9rhnDJos 3y agoGoogle has a history of welcoming the product on their platform without taking ownership or responsibility for maintaining it. It does the same thing with Elastic, Confluent, and Redis. I’m guessing Hashicorp is deploying infrastructure on Google cloud on the customers’ behalf. It’s not costing Google anything because they’re not reselling it. AWS does something similar with it’s Marketplace, but customers prefer the AWS full-service product rather than adding it to their environment by network peering or deploying templates in their account.
- stilwelldotdev 3y agoI figured something like this is what drove Hashicorp's licensing decision, but thought it would be Amazon.
- type_Ben_struct 3y agoLicensing decision aside, I don’t feel a lot of sympathy for Hashicorp here. I think this is different than other scenarios where big MSP’s sell tools based 99% or open source software. This service will largely be used for deployments on Google Cloud, for which Google invests a lot of development effort in maintaining their own provider. It’s not like there’s not already significant contribution from Google to the code base.
- jen20 3y agoWhy would you assume that there is no license in place for this?
- type_Ben_struct 3y agoThey may well do, but to be honest my fundamental point extends beyond just Google. Hashicorp benefits extensively from third parties maintaining their own providers.
- Jka9rhnDJos 3y agoGoogle also wrote and maintains Go, which all of Hashicorp products are written in and use for free without contributing back.
- Jka9rhnDJos 3y agoThis isn’t really a service. All it does is deploy an infrastructure template into your GCP project. It won’t largely be for deployments on Google Cloud. It’s for automating Terraform, and whatever providers the customer wants to use. https://cloud.google.com/infrastructure-manager/docs/view-resources https://cloud.google.com/infrastructure-manager/docs/view-re... You, the customer, pay for everything deployed, and Google just pre-connects it to all their services for monitoring and maintenance. It would be like if Route53 on AWS was free, but it deployed a VM in your account, added gateways and nats, opened ports, etc., so that it all ran on discrete infrastructure for just you and you got charged for everything and had to do all the scaling. If you’ve used their Apache Airflow product (Cloud Composer), it’s basically the same thing. With Cloud Composer, they are setting up an Airflow node and cluster on your behalf, in your account, that you pay for, and connecting it to their services. This is no different than going to a consulting company and asking them to setup and maintain a Terraform automation platform in your account., which Hashicorp said was allowed. Google isn’t reselling it as a product. They’re setting it up on their platform on your behalf and giving it to you. And there’s no reason you couldn’t switch it out to OpenTF.
- dilyevsky 3y agoSo from a product perspective they basically manage tfstate, you get to use “pre-packaged and recommended” providers (not clear if say aws provider is allowed) and they slapped iam to it? Seems like another one of those frankenstein cloud designs…
- candiddevmike 3y agoThis is definitely half baked IMO. Not a whole lot of benefits over running TF with Cloud Build and a storage bucket. Definitely have more control and better UX than the weird hoops you jump through to set this up.
- holografix 3y agoSo Deployment Manager is finally dead?
- candiddevmike 3y agoIt's still in the console, this one is not (yet)
- mkl95 3y agoIs there anything particularly painful about working with the Google Cloud Terraform provider? If there isn't, I would rather use OpenTF with that provider and manage state myself.
- cassianoleal 3y agoNo, it's fine. It works about as well as any other Terraform provider out there. Every tool I've seen that wraps Terraform in any way is just a solution looking for a problem.
- abatilo 3y agoIn my experience, running a plan is much less likely to catch a bad value than the AWS provider. Subjectively, the AWS provider will at least validate that fields have valid values during the plan step. The Google provider doesn't seem to validate actual values until apply, and then you get a failure
- diarrhea 3y agoI can’t help but feel… sad about this. I only recently picked up Terraform and am astounded that this is what goes as coding in the infrastructure world. I was coming from Ansible so there was only improvement to be had, but man did Terraform let me down so far. It (well, the provider) doesn’t validate fields until apply. That’s just so… sad. How is that acceptable? It’s like a car without a steering wheel, and people just go along with it.
- candiddevmike 3y agoDo you know how hard/tedious/pointless it is to write client side evaluations for everything you do on the server? The documentation for the Google Cloud provider is shit though and absolutely should be improved.
- cachvico 3y agoYou do a dry run first
- LVB 3y agoThere are numerous comments here about the licensing change and that this could be related, but HashiCorp announced this at Google Cloud Next (and on their own blog), so it seems like a fairly standard partnership arrangement.
- flurie 3y agoI’m curious how this compares to OCI’s Resource Manager. https://docs.oracle.com/en-us/iaas/Content/ResourceManager/Concepts/resource-manager-and-terraform.htm https://docs.oracle.com/en-us/iaas/Content/ResourceManager/C...
- scarface_74 3y agoAs someone who doesn’t have any experience with GCP. But I do have experience with AWS, I would have thought this would already be a thing. I know AWS doesn’t have managed TF support - and as a former AWS ProServe employee i know that they thought about it but didn’t do it because they didn’t want to step on Hashicorp’s business. AWS does have its own hosted IAC service that was introduced before TF was a thing with CloudFormation.
- pm90 3y agoYeah but cloudformation kinda sucked. As did its clones (Openstack heat).
- x86x87 3y agoThere is much more running on top of CloudFormation than meets the eye. CDK and SAM are both wrappers on top of CloudFormation. I wouldn't be shocked to hear that licence fuckeries were the reasom why we don't have managed TF support of AWS.
- scarface_74 3y agoI realize that and the SAM transformer is supported natively by the CloudFormation service.
- drabinowitz 3y agoI was really hoping this would come with rollback support for deployments. That, to me, would be the big advantage of having gcp manage the tfstate. It doesn’t look like that’s currently supported, but maybe that’s coming in the future.
- sieabahlpark 3y ago[dead]
- Karrot_Kream 3y agoAre you thinking of this as separate from a revert to the Terraform files and then a roll forward?
- drabinowitz 3y agoYeah if I have multiple terraform projects in one repo it would be helpful to have a UI show deployments for each project with a list of rollouts so I can see which one I want to go back to. For SREs it might not be as helpful but if you delegate some scoped terraform module creation to the developers themselves it’d help them to have a simple UI for rollbacks
- Karrot_Kream 3y agoAh yeah I see what you mean. At my last (big tech fwiw) shop as we were transitioning to GitOps, we ran into this issue a lot. My current gig we're too small for this to be a big issue for us but I remember the pain well.
- dantiberian 3y agoPresumably GitHub/GitLab support is coming, but this is quite a limited product at the moment. It doesn’t even support their own Cloud Source Repositories. You can version the Terraform configuration, either in a public Git repository or in a Cloud Storage bucket. Use Object Versioning to version configurations in a storage bucket. https://cloud.google.com/infrastructure-manager/docs/overview https://cloud.google.com/infrastructure-manager/docs/overvie...
- srsqsonyl 3y agoCan anyone explain the point of TF? I’m sure there’s some 100% subjective, hallucinated value statement but never felt a reason to bother. I’ve only ever used an AWS SDK and “saved state” to git in the form of my SDK scripts. Switched from Python+boto to Go+SDK a few years ago rather than learn some DSL the Lindy effect clock was ticking on.
- mef 3y ago- the situation: you build cloud infrastructure via CLI or console - the problem: if something gets deleted, or if you make a bunch of changes and want to undo them, or if you need to make a change to a lot of stuff at once, or if you want to copy what you've built to a new region, how do you do it? or, if you're on a team, how do you as a team make and track changes to your cloud infrastructure? - terraform as a solution: you describe your cloud infrastructure as yaml files. terraform can figure out what is different between what's in your cloud infrastructure and what your yaml files say it should look like. and, it can make changes to your cloud to e.g. build it from scratch, make wide-ranging changes, make a copy of it, etc. - since your yaml files are code, you can also create a repo and do PRs to make and track changes to your cloud infrastructure as it evolves over time
- erik_seaberg 3y agoSometimes the detected differences are manual changes (“drift”) that shouldn’t have happened, and terraform will offer to reverse them.
- srsqsonyl 3y agoAppreciate the answer. In hindsight my use of the word scripts was insufficient. Looked at the TF code; my solution implements similar functionality to handle AWS CRUD ops. What I avoid is all the DSL parsing and such. For me an AWS account is a struct with fields of AWS SDK resource types, which it seems is what TF resources map to (they handle a lot more so there’s more to it, but kind of sort of if I squint just right). Either going to duplicate the internal logic or DSL chunks per project, would rather avoid the context switch between syntax, “learning the TF ecosystem”. Thanks again, though.
- anuraaga 3y agoThis seems likely a partnership between Google and Hashicorp, from what I understand most GCP integrations like redis are actually partnerships rather than just running the OSS independently. Potential license and trademark implications seems like it would be a particularly bad time to try the latter with Terraform. As others have mentioned, this is not all that useful of a service - it doesn't seem to even have the concept of a "plan" let alone any approval system and seems to only allow for the most basic of workflows. Given that TF by default will store state in a bucket with true locking, I can't come up with any potential benefit this provides vs using Terraform directly. The main question is whether this will be improved in the future or is intentionally just "Terraform Trial Edition" with terms of partnership preventing anything encroaching on Terraform Cloud. Perhaps for the former, the trial is important to understand usage to better inform revenue sharing for a future improved product.
- fishnchips 3y agoCurious how long this one lasts.