AWS OpsWorks is a configuration management service that provides managed instances of Chef and Puppet.
N/A
HashiCorp Terraform
Score 8.5 out of 10
N/A
Terraform from HashiCorp is a cloud infrastructure automation tool that enables users to create, change, and improve production infrastructure, and it allows infrastructure to be expressed as code. It codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned. It is available Open Source, and via Cloud and Self-Hosted editions.
$0
Pricing
AWS OpsWorks
HashiCorp Terraform
Editions & Modules
No answers on this topic
Open Source
$0
Team & Governance
$20/user
per user/per month
Enterprise
Contact sales team
Offerings
Pricing Offerings
AWS OpsWorks
HashiCorp Terraform
Free Trial
No
No
Free/Freemium Version
No
Yes
Premium Consulting/Integration Services
No
No
Entry-level Setup Fee
No setup fee
No setup fee
Additional Details
—
—
More Pricing Information
Community Pulse
AWS OpsWorks
HashiCorp Terraform
Features
AWS OpsWorks
HashiCorp Terraform
Configuration Management
Comparison of Configuration Management features of Product A and Product B
AWS Opsworks is good for linking AWS services and setting up and maintaining webservers using Chef. However, it will become EOL soon so we would not recommend starting new projects using it and instead go for the recommended Systems Manager setup
8 because it's currently best-in-class and is completely essential to use in contrast to not expressing your infrastructure as code. That said, new contenders are nipping at its heels, and I expect stronger tools to emerge in the coming years. Hopefully the Terraform team is able to keep pace.
The interface is quite intuitive and allows you to discover and easily find what you want to do and what other features are within OpsWorks.
Chef integration is pretty seamless and there are a good set of options and operating systems to choose from
It makes things like auto scaling set up, either via load or time, more straight forward and intuitive than what you'd typically see via the EC2 console
The errors generated by the plan and preview commands are pretty cryptic, it can be hard for newcomers to the scripting language to understand how to address problems.
Access controls around workspaces is limited which makes it harder to secure reduce the scope of teams ability.
Analytics around user usage, applies and plans would be helpful for managemenet.
I love Terraform and I think it has done some great things for people that are working to automate their provisioning processes and also for those that are in the process of moving to the cloud or managing cloud resources. There are some quirks to HCL that take a little bit of getting used to and give picking up Terraform a little bit of a learning curve, thus the rating
Terraform's performance is quite amazing when it comes to deployment of resources in AWS. Of course, the deployment times depend on various parameters like the number of resources to deploy and different regions to deploy. Terraform cannot control that. The only minor drawback probably shows up when a terraform job is terminated mid way. Then in many cases, time-consuming manual cleanup is required.
Unless you pay for a pricey support package getting support on OpsWorks will be pretty slow. Documentation is also relatively limited and sometimes hard to follow when compared to competitors. Generally, we've been able to get the answers we need from OpsWorks support when we run into problems but don't expect rapid responses.
Terraform is community driven but does offer support for it's Enterprise product. When contacting the team at HashiCorp we have always gotten resolution to our issues. They have been very responsive in returning our calls and answering our questions as they come up. We are currently using the open source model.
OpsWorks isn't really a direct competitor to Terraform/Cloudformation, but it does allow you to do some of the more simple things on offer quite quickly and effectively. Opsworks was used for this reason, along with existing internal knowledge of Chef. Along with some of the other services on offer from AWS, it is good to use as a stepping stone along the way when building your systems - or perhaps it would be entirely suitable for a fairly simple project.
dbt was fine, but you end up with an extremely bloated repo/project. Often where all of the models are the same, named similarly, and generally just doesn't adhere to the concept of DRY coding. In Terraform we're able to template a lot of this work and dynamically generate assets based on variables instead.
OpsWorks allowed us to access the AWS infrastructure with a considerably lower time investment than we would have otherwise needed when we first implemented it.
Since we've been running with OpsWorks we've experienced very little downtime and it's required relatively little maintenance.
The main downside of using OpsWorks for us is that it has locked us into a very specific infrastructure that doesn't have the flexibility of many of the newer infrastructure management tools, this may lead to a painful migration down the road. We also run a risk of long outage if it ever does introduce breaking changes as the skillset needed to work with the OpsWorks tooling is very specific not widely available in our company.
Using code, we are able to build and deploy cloud resources faster and more consistently than producing the same resources in the console manually.
For applications that share architectures, we can reuse code to expedite development. We can also do the same with modules that are shared across the organization.
By defining all of our resources as code, we can deploy complete environments with "batteries included." For example, we can use code that spins up servers in a cloud provider and at the same time, creates monitors with in our monitoring provider. Likewise, when the servers are decommissioned, the monitors are decommed along with them. In the past, the creation and decom of the monitors would have been a disjointed, manual step. With Terraform we get it all with one "terraform apply."