Frequently Asked Questions.
- Gruntwork vs consulting companies
- Gruntwork vs Platform as a Service (PaaS) and Infrastructure as a Service (IaaS)
- Gruntwork vs open source modules (e.g. Ansible Galaxy, Terraform Module Registry, Puppet Forge, etc.)
- Gruntwork vs doing it yourself (DIY)
- What is the Gruntwork Client License?
- What happens to my code if I cancel my subscription?
- What if I want to use the code with my own customers?
Infrastructure as Code Library and Reference Architecture
Gruntwork vs consulting companies
Most consulting companies are focused on one thing: billable hours. They build everything from scratch for every customer, so the code is completely unproven, the timeline is unpredictable, projects stretch on for months, and costs spiral out of control. And when the whole thing is done, you're left with a bunch of code someone else wrote, typically with no documentation and tests, and no way to ask questions without paying even more money.
At Gruntwork, our focus is on creating reusable, high quality infrastructure code, such as the Infrastructure as Code Library and Reference Architecture. Because all the code is already written, we can get you up and running 10-100x faster than a consulting company (typically in just a single day!) on top of code that is thoroughly documented, tested, and has been proven in production at dozens of other customer deployments. We do all of this for a price that's a tiny fraction of what consultants charge, and we provide commercial support, maintenance, and updates for our work over the long term.
Gruntwork vs Platform as a Service (PaaS) and Infrastructure as a Service (IaaS)
A Platform as a Service (PaaS) such as Heroku or Docker Cloud can be a great way to get started, as they hide all the infrastructure details from you, and provide a simple API for deploying your code. Unfortunately, for this very same reason, a PaaS tends to be a big bottleneck as you try to grow: without the ability to see and control the underlying infrastructure details, it becomes difficult to debug, scale, customize your infrastructure, and keep costs under control.
As a result, most software companies eventually migrate to an Infrastructure as a Service provider (IaaS) such as AWS, Google Cloud, or Azure. This gives you full control over your infrastructure, but the downside is a massive increase in complexity. Suddenly, you have to deal with thousands of little infrastructure details—how to set up your network topology, how to run a highly available and scalable server cluster, how to set up CI/CD, how to configure monitoring & alerting, how to manage secrets, and so on—and very few companies have the time, resources, or expertise to do this well.
Our goal at Gruntwork is to allow you to take advantage of the full control and power of an IaaS while still having the ease-of-use of a PaaS. By using the Infrastructure as Code Library, you get a simple API for complicated infrastructure; for example, you can deploy a Kafka cluster or configure CI/CD or even deploy your entire Architecture in just a few lines of code. And since all of this infrastructure is backed by code, you can easily debug, scale, and customize things as much as you want.
Gruntwork vs open source modules (e.g. Ansible Galaxy, Terraform Module Registry, Puppet Forge, etc.)
You can find open source infrastructure code in registries such as Ansible Galaxy, Terraform Module Registry, Puppet Forge, and Chef Marketplace. So why use a paid, commercial product such as the Infrastructure as Code Library instead of this open source code?
First, we love open source at Gruntwork, and parts of our Infrastructure as Code Library actually are open source (e.g., look for our Consul, Nomad, and Vault modules in the Terraform Module Registry), so it's not an either-or-choice! Second, if your business depends on this infrastructure code, here are some reasons you should consider a commercial partner like Gruntwork in addition to using open source:
|Maintenance||Most of the open source modules are not well maintained. Technologies like Terraform, Docker, and AWS are changing constantly, and the creators of those modules rarely have any incentive to invest the large amount of time necessary to keep that code up to date. At Gruntwork, keeping up with these changes is the core of our business, so we regularly update and maintain all the code in the Infrastructure as Code Library.|
|Testing||The open source modules almost never have automated tests. As a result, many of them are buggy or don't work at all. Every module in the Infrastructure as Code Library is thoroughly tested. After every single commit, we kick off a suite of automated tests that deploy the code into a real AWS account and verify that it behaves as expected.|
|Integration||The modules in the Infrastructure as Code Library are all designed to be highly configurable, composable, and to work together. In fact, we even offer a Reference Architecture as a way to put all the modules together into an end-to-end, integrated tech stack in about a day. With open source code, all the integration work is up to you, and you'll find many of the modules are too inflexibile to fit your needs or incompatible with other modules.|
|Support||With Gruntwork Support, you get commercial support for all the code in the Infrastructure as Code Library. We're there to help you via email, chat, and phone/video call any time you need a bug fixed, or help with troubleshooting, or a code or design review. With open source code, if something goes wrong, you're typically on your own.|
Gruntwork vs doing it yourself (DIY)
DevOps is a classic case of "death by a thousand cuts." To ship software, there are a thousand little details you have to get just right—how to set up your network topology, how to run a highly available and scalable server cluster, how to set up CI/CD, how to configure monitoring & alerting, how to manage secrets, and so on—and very few companies have the time, resources, or expertise to do this well.
At Gruntwork, we've already created all the infrastructure you need. In fact, if you hired a team of DevOps experts and had them do nothing but work on your infrastructure for several years, you'd most likely end up with code that looks almost exactly like the Infrastructure as Code Library and Reference Architecture. But why waste all that time reinventing the wheel? For a fraction of the cost of a single full-time developer, you can get access to a library of proven, battle-tested code, as well as support, updates, and maintenance. You focus on your product; let us take care of the grunt work.
What is the Gruntwork Client License?
When you subscribe to the Infrastructure as Code Library, you get one Client License for the code. A Client License gives you access to 100% of the source code, allows you to fork and modify the code as much as you want, and is perpetual, so you can keep using the code even if you cancel your subscription.
A single Client License allows you to use the code up to the following limits (see the Infrastructure as Code Library for a description of each item):
|Network Topology||10 VPCs|
|Monitoring & Alerting||Unlimited|
|Docker Cluster||75 servers|
|AMI Cluster||75 servers|
|Relational Database||10 databases|
|Distributed Cache||10 caches|
|Stateful Server||75 servers|
|Static Assets||75 static websites|
A single Client License should be enough to run most small to medium deployments. If you exceed any of these limits, you must purchase another Client License. If your company has a non-standard usage pattern (e.g. you use many VPCs, but few servers), let us know, and we can try to work out a licensing arrangement that better fits your needs. Bulk discounts on Client Licenses are available for enterprises, resellers, and agencies.
What happens to my code if I cancel my subscription?
The Gruntwork Client License gives you perpetual rights to the code, so even if you cancel your subscription, you can keep using the code! You'll have one month to fork all the repos in the Infrastructure as Code Library into your own version control system, after which you'll no longer have access to the updates, additions, and fixes we make to the Infrastructure as Code Library, support from the Gruntwork team, security alerts, etc. However, your infrastructure will continue to work just fine and you'll still have all the code you were using up to that point, so there is no lock-in whatsoever.
What if I want to use the code with my own customers?
The Gruntwork Client License is valid for one company to use to manage its own infrastructure. If you are an agency or reseller that manages infrastructure for other companies, please contact us to discuss licensing options.
Infrastructure as Code Library and Reference Architecture
What do I do if I need infrastructure that isn't in the Infrastructure as Code Library?
If the infrastructure you need is something general-purpose that applies to many companies (i.e., isn't a custom, one-off project completely unique to your company), we'd be happy to build it, add it to the Infrastructure as Code Library, and provide support, maintenance, and updates for it long-term! For example, we're currently looking into adding ElasticSearch, Kubernetes, and DataDog to our Library and are looking for companies willing to fund those projects. We charge an hourly consulting rate for our work and if more than one customer is interested in the same project, we're happy to split the cost amongst all of you to make it cheaper for everyone! Please contact us to let us know what you're looking for!