DigitalOcean is an infrastructure-as-a-service (IaaS) platform from the company of the same name headquartered in New York. It is known for its support of managed Kubernetes clusters and “droplets” feature.
$5
Starting Price Per Month
IBM Terraform
Score 8.8 out of 10
N/A
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.
DigitalOcean's dead simple pricing and solid but basic feature set combine for a no-nonsense way to get your product shipped. Its API makes it nicely scriptable/automate-able compared to traditional shared hosting providers like Dreamhost. I think it compares most closely with …
DigitalOcean is perfect for hosting client websites, running marketing tools, and managing media storage with Spaces and CDN. The use of Droplets to quickly launch landing pages or WordPress sites for campaigns is a Godsend. It’s great for fast, cheap, and scalable solutions. But for complex microservices or projects needing strict compliance (like HIPAA), DigitalOcean may not always be the best fit, but that depends heavily on your project.
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.
Some products/services available on other Cloud providers aren't available, but they seem to be catching up as they add new products like Managed SQL DBs.
While they have FreeBSD droplets (VMs), support for *BSD OSs is limited. I.e. the new monitoring agent only works on Linux.
There are no regions available on South America.
They don't seem to offer enterprise-level products, even basic ones as Windows Server, MS SQL Server, Oracle products, etc.
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.
I honestly can't think of an easier way to set up and maintain your own server. Being able to set up a server in minutes and have fully control is awesome. The UX is incredibly intuitive for first-time users as well so there's no reason to be intimidated when it comes to giving DigitalOcean a shot.
The syntax itself is pretty straightforward. The documentation is well-maintained & easy to follow. Most cloud providers, even smaller ones, maintain official provider libraries, making discovery & learning a breeze. Some, like GCP, even provide high-level libraries on top of their own more primitive provider, making building complex infra much more manageable. The language itself is cloud-agnostic, so you can literally manage resources from multiple providers in a single Terraform repo.
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.
They have always been fast, and the process has been straight-forward. I haven't had to use it enough to be frustrated with it, to be honest, and when I have an issue they fix it. As with all support, I wish it felt more human, but they are doing aces.
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.
DigitalOcean is an inexpensive product as compared to other products available in the market. The UI is easy and the beginner can also understand the UI with the step by step guide. It provides a lot of custom features and the user needs to pay only for what they are using. Amazon has a complex UI and is on the expensive side. DigitalOcean is simple to use and is easily manageable and the servers can easily be set up without additional cost and such.
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.
Positive - Elastic computer instances make it possible to pay for only for what you need.
Positive - Competitive pricing - some of the products that DigitalOcean offers are much cheaper than those offered by competitors.
Negative - Having to go to other cloud computing platforms for more specific, advanced services like Computer Vision optimized services, GPU cloud compute instances, etc...
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