IBM Terraform (formerly Hashicorp Terraform) is a cloud infrastructure automation tool used to create, change, and improve production infrastructure, and it allows infrastructure to be expressed as code. It is available Open Source, and via Cloud and Self-Hosted editions.
$0
VMware vSphere
Score 8.0 out of 10
N/A
An enterprise workload platform, vSphere is used to improve the performance for a data center. It is used to boost operational efficiency, supercharge workload performance, and accelerate innovation.
Anything that needs to be repeated en masse. Terraform is great at taking a template and have it be repeated across your estate. You can dynamically change the assets they're generating depending on certain variables. Which means though templated assets will all be similar, they're allowed to have unique properties about them. For example flattening JSON into tabular data and ensuring the flattening code is unique to the file's schema.
vSphere is well suited for multiple VMWare hosts and can be very useful in larger enterprises where vMotion is used to load balance and failover running virtual machines. In smaller businesses with one or two hosts then the features can be overkill. The addition of virtual TPM support is a very nice addition to provide vm security in a more Microsoft supported methodology.
The language itself is a bit unusual and this makes it hard for new users to get onboarded into the codebase. While it's improving with later releases, basic concepts like "map an array of options into a set of configurations" or "apply this logic if a variable is specified" are possible but unnecessarily cumbersome.
The 'Terraform Plan' operation could be substantially more sophisticated. There are many situations where a Terraform file could never work but successfully passes the 'plan' phase only to fail during the 'apply' phase.
Environment migrations could be smoother. Renaming/refactoring files is a challenge because of the need to use 'Terraform mv' commands, etc.
More detail in recent tasks. Instead of just showing a task called "Reconfigure virtual machine" also have a link to more detailed information as to what was reconfigured, changed or removed.
We are constantly looking for change that will benefit our company. We are not ones to stick with a product simply because it is what we know, but rather looking for what fits us best. We can't imagine another product on the market today doing a better job of handling our infrastructure than vSphere.
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
Very useful for environments where space and energy consumption are issues and management is not very keen on upfront spending on hardware every time whenever requirement comes from any dept for provisioning a machine for their occasional use, easily can be done in case of VMware vSphere in few clicks. Backup, security, monitoring and management everything is covered but at additional cost.
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.
I have yet to have an opportunity to reach out directly to HashiCorp for support on Terraform. However, I have spent a great deal of time considering their documentation as I use the tool. This opinion is based solely on that. I find the Terraform documentation to have great breadth but lacking in depth in many areas. I appreciate that all of the tool's resources have an entry in the docs but often the examples are lacking. Often, the examples provided are very basic and prompt additional exploration. Also, the links in the documentation often link back to the same page where one might expect to be linked to a different source with additional information.
I rarely ever have to contact support and when I do need to resolve an issue, there is always an abundance of kb articles and research information available that can help quickly resolve the issue. Depending on the type of support contract you have, you may get support from some offshore group in another country and this could be a little challenging because of the language barrier.
Just make sure that when you implement, that the person implementing truly knows what they are doing and has a plan of action coming in. Since our initial implementation using a consulting service, I have implemented a few vSphere just from what I learned at the initial implementation and use over time, and the person implementing really needs to know what they are doing or you will miss out on features that may help you down the line
Terraform is the solid leader in the space. It allows you to do more then just provisioning within a pre-existing servers. It is more extensible and has more providers available than it competitors. It is also open source and more adopted by the community then some of the other solutions that are available in the market place.
vSphere has a lot more feature sets than Hyper-V but at a much higher cost of entry versus MS Hyper-V. I have not been able to play with Hyper-V as much as I would have liked, but the setup and ongoing maintenance seems to be easier in vSphere than with Hyper-V
The contract terms are very clear and can be updated as per the project requirement. Customer support is also included in the contract which help us to troubleshoot critical issues very easily. Training included in contract will really help the client team to empower and hands-on on the latest updates and enhancements
As I said earlier, they're always ready to understand our issues and propose the best and most appropriate solution for issues all the time. The security patches solution is accordingly to the business needs. Another scenario is their Knowledge Base where they're many articles that help you in order to solve something which is wrong.
we are able to deploy our infrastructure in a couple of ours in an automated and repeatable way, before this could take weeks if the work was done manually and was a lot of error prone.
having the state file, you can see a diff of what things have changed manually out side of Terraform which is a huge plus
if state file gets corrupted, it is very hard to debug or restore it without an impact or spending hours ..
writing big scale code can be very challenging and hard to be efficient so it's usable by the whole team
Having vSphere helped my business quickly recover from a ransomware attack which would have crippled us for weeks if we were not virtualized. I think the ROI on something like that is immeasurable.
vSphere has allowed my company to purchase bigger server hardware to host 3 or 4 virtual servers, which was at a cost much lower than buying 3 or 4 server hardware boxes, saving us thousands each time we need to upgrade hardware.