Skip to content

Commit 5f28066

Browse files
Add Gruntwork Way! (#2852)
* Add Gruntwork Way! Take the contents of https://github.com/gruntwork-io/way and add it to the main docs site. * Bold first section names * Remove old repo reference * Apply suggestions from CodeRabbit All typo fixes. Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update cspell config * Rename folders, fix relative links * Make a few polish improvements to catalog, runbooks, and components * Add husky to enforce spellcheck as a pre-commit hook. * Intentional spelling error to test pre-commit hook * Attempt to fix Husky config * Remove husky; fix spellcheck Hit my time limit for getting it working. * Trivial wording tweak --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent 56e6de9 commit 5f28066

File tree

70 files changed

+2358
-101
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+2358
-101
lines changed

cspell.json

Lines changed: 150 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,151 @@
11
{
2-
"dictionaries": [
3-
"custom-dictionary"
4-
],
5-
// Tell CSpell about your dictionary
6-
"dictionaryDefinitions": [
7-
{
8-
// The name of the dictionary is used to look it up.
9-
"name": "custom-dictionary",
10-
// Path to the custom word file. Relative to this `cspell.json` file.
11-
"path": "./custom-dictionary.txt",
12-
// Some editor extensions will use `addWords` for adding words to your
13-
// personal dictionary.
14-
"addWords": true
15-
}
16-
]
17-
}
2+
"version": "0.2",
3+
"language": "en",
4+
"words": [
5+
"Gruntwork",
6+
"gruntwork",
7+
"GitOps",
8+
"Docusaurus",
9+
"runbooks",
10+
"terraform",
11+
"terragrunt",
12+
"Terragrunt",
13+
"kubernetes",
14+
"kubectl",
15+
"autoscaling",
16+
"monorepo",
17+
"microservices",
18+
"infra",
19+
"DevOps",
20+
"OpenTofu",
21+
"opentofu",
22+
"Tofu",
23+
"prebuilt",
24+
"repo",
25+
"repos",
26+
"serverless",
27+
"cloudformation",
28+
"elasticache",
29+
"cicd",
30+
"gitignore",
31+
"cursorrules",
32+
"npmignore",
33+
"lockfile",
34+
"lockfiles",
35+
"docstrings",
36+
"codebase",
37+
"codebases",
38+
"runbook",
39+
"dockerfile",
40+
"dockerfiles",
41+
"orchestrator",
42+
"orchestrators",
43+
"customizable",
44+
"composability",
45+
"scalability",
46+
"observability",
47+
"linter",
48+
"linters",
49+
"linting",
50+
"Yousif",
51+
"Oreoluwa",
52+
"Agunbiade",
53+
"Yevgeniy",
54+
"Brikman",
55+
"Rahul",
56+
"Vohra",
57+
"Nana",
58+
"Pulumi",
59+
"pulumi",
60+
"Rego",
61+
"Sonatype",
62+
"Pgvector",
63+
"karpenter",
64+
"Karpenter",
65+
"MTTR",
66+
"MTTP",
67+
"inhouse",
68+
"SOURCER",
69+
"mydomain",
70+
"terratest",
71+
"Terratest",
72+
"terratests",
73+
"tailscale",
74+
"sdlc",
75+
"acmecorp",
76+
"envcommon",
77+
"tada",
78+
"codeowners",
79+
"jsonencode",
80+
"chdir",
81+
"rulesets",
82+
"controltower",
83+
"awscli",
84+
"passwordless",
85+
"coolapp",
86+
"acmeco",
87+
"grunty",
88+
"yamldecode",
89+
"mgmt",
90+
"tfstate",
91+
"baselining",
92+
"baselined",
93+
"clickops",
94+
"terrascan",
95+
"steampipe",
96+
"infracost",
97+
"kubergrunt",
98+
"terraformrc",
99+
"tfvars",
100+
"fargate",
101+
"keypair",
102+
"mimecast",
103+
"slugified",
104+
"dlist",
105+
"DEPENDENCYID",
106+
"subfolders",
107+
"terrapatch",
108+
"Terrapatch",
109+
"KodeKloud",
110+
"preconfigured",
111+
"projectprefix",
112+
"GOVCLOUD",
113+
"rollouts",
114+
"myvars",
115+
"myfile",
116+
"minamijoyo",
117+
"tfupdate",
118+
"hcledit",
119+
"infrachanges",
120+
"Entra",
121+
"GLMU",
122+
"myprodsa",
123+
"azuread",
124+
"mysa",
125+
"deinterlaced",
126+
"rolename",
127+
"ACCOUNTNAME"
128+
],
129+
"ignoreWords": [],
130+
"ignorePaths": [
131+
"node_modules",
132+
"build",
133+
"dist",
134+
".git",
135+
"*.lockb",
136+
"bun.lockb",
137+
"yarn.lock",
138+
"package-lock.json",
139+
".cspell.json",
140+
"tsconfig.json",
141+
"*.min.js",
142+
"*.map"
143+
],
144+
"ignoreRegExpList": [
145+
"/https?:\\/\\/[^\\s]+/g",
146+
"/```[\\s\\S]*?```/g"
147+
],
148+
"allowCompoundWords": true,
149+
"dictionaries": ["typescript", "node", "npm", "bash", "markdown"],
150+
"enableFiletypes": ["markdown", "mdx", "typescript", "javascript", "json"]
151+
}

custom-dictionary.txt

Lines changed: 0 additions & 71 deletions
This file was deleted.

docs/2.0/way/authorship.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
sidebar_position: 10
3+
sidebar_class_name: way-top-level-item
4+
---
5+
6+
# Authorship
7+
8+
The Gruntwork Way was originally authored by [Josh Padnick](https://joshpadnick.com) with input from fellow Grunts Yousif Akbar, Lewis Christie, Oreoluwa Agunbiade, Brian Torres, [Yevgeniy Brikman](https://ybrikman.com) through his book [The Fundamentals of DevOps and Software Delivery](https://www.fundamentals-of-devops.com/), and especially Eben Eliason.
9+
10+
It is intended to be a living, evolving knowledge set, so it is our hope that if you find something you believe can be improved that you will [open a Pull Request](/2.0/way/intro/share-your-feedback) suggesting it!

docs/2.0/way/intro/_category_.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"label": "Introduction",
3+
"position": 1,
4+
"className": "way-top-level-item"
5+
}
6+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: How To Use This
3+
sidebar_position: 3
4+
---
5+
6+
To get the most out of the Gruntwork Way, start by making sure you understand the big picture.
7+
8+
## The Gruntwork Way Big Picture
9+
10+
First, a **developer platform** is the product your platform team builds to balance three essential concerns: enabling developers to move fast ([velocity](/2.0/way/why/velocity)), meeting business needs like security, cost, and compliance ([governance](/2.0/way/why/governance)), and avoiding unsustainable technical debt ([maintainability](/2.0/way/why/maintainability)).
11+
12+
To build a successful platform, you need to combine three types of building blocks: [patterns](/2.0/way/platform/patterns/overview) (pre-built solutions to common infrastructure problems), [platform components](/2.0/way/platform/components/overview) (the machinery for deploying and managing infrastructure), and [interfaces](/2.0/way/platform/interfaces/overview) (how developers interact with your platform).
13+
14+
Finally, everything in this framework is based on the [guiding principles](/2.0/way/principles/overview) we've discovered through years of building and refining developer platforms.
15+
16+
## Using the Gruntwork Way
17+
18+
Once you understand these foundational concepts, there are two primary ways to use the Gruntwork Way.
19+
20+
### Option 1: Read it comprehensively
21+
22+
You can work through this framework from start to finish to build a complete mental model of developer platforms. This approach works well if you're just getting started or want to strengthen your overall understanding.
23+
24+
### Option 2: Use it as a reference
25+
26+
Alternatively, you can jump directly to the sections most relevant to your current challenges. This approach works well once you understand the fundamentals (which you just read above!) and need guidance on a specific aspect of your platform.
27+
28+
## Next
29+
30+
Alright, let's dive into the framework that helps you build platforms developers actually want to use!
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
title: Share your feedback
3+
sidebar_position: 4
4+
---
5+
6+
- This framework is useful because it's opinionated.
7+
- Our opinions are based on nearly a decade of experience across hundreds of customers and thousand of customer conversations
8+
- But maybe your mileage varies, or maybe we got it wrong. If so, tell us!
9+
- To give feedback, go to https://github.com/gruntwork-io/docs and create a GitHub Issue or Pull Request. Alternatively click on the "Edit this page" link at the bottom of each page.
10+
11+
### Next
12+
13+
Alright, let's dive into the framework that helps you build platforms developers actually want to use!

docs/2.0/way/intro/welcome.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
title: Welcome!
3+
sidebar_position: 1
4+
---
5+
6+
# Welcome!
7+
8+
The **Gruntwork Way** is Gruntwork's official framework for how to build a world-class developer platform.
9+
10+
## What's a developer platform?
11+
12+
Nearly every company on the planet needs software, and when companies write their own software with more than a few developers, the same common needs arise:
13+
14+
1. Enable developers to move fast ([velocity](/2.0/way/why/velocity))
15+
2. ...while meeting the other needs of the business like security, cost, and compliance ([governance](/2.0/way/why/governance))
16+
3. ...without accumulating an unsustainable level of debt ([maintainability](/2.0/way/why/maintainability))
17+
18+
A **developer platform** is the product your platform team builds to balance these three concerns. It consists of three essential building blocks:
19+
20+
- [Patterns](/2.0/way/platform/patterns/overview) - pre-built solutions to common infrastructure problems
21+
- [Platform components](/2.0/way/platform/components/overview) - the machinery for deploying and managing infrastructure
22+
- [Interfaces](/2.0/way/platform/interfaces/overview) - how developers interact with your platform.
23+
24+
Together, these enable developers to move fast while meeting the needs of the business, and to do so in a way that incurs manageable levels of debt.
25+
26+
## Why read this framework
27+
28+
Making sense of developer platforms can be confusing. We've found bits and pieces of insights scattered across blog posts, vendor solutions, and industry talks, but none of these presents a holistic way to think about developer platforms.
29+
30+
This framework will help you build comprehensive clarity.
31+
32+
Ultimately, that clarity will empower you to build a successful developer platform.
33+
34+
## Why trust Gruntwork
35+
36+
We've spent years building expertise on how to deliver software effectively by serving as:
37+
38+
* **Authors** - We've written leading books and guides, including [Terraform Up & Running](https://www.terraformupandrunning.com/), [Fundamentals of DevOps and Software Delivery](https://www.fundamentals-of-devops.com/?ref=blog-post-series), ,[The Startup CTO's Handbook](https://github.com/ZachGoldberg/Startup-CTO-Handbook), and [A Comprehensive Guide to Scaling Apps on AWS](https://joshpadnick.com/posts/a-comprehensive-guide-to-scaling-apps-on-aws-part-1/).
39+
* **Makers** - We've created leading open source DevOps tooling like [OpenTofu](https://opentofu.org/) (co-founder), [Terragrunt](https://terragrunt.gruntwork.io/), [Terratest](https://terratest.gruntwork.io/), [Runbooks](https://runbooks.gruntwork.io), [Boilerplate](https://github.com/gruntwork-io/boilerplate), and [Cloud Nuke](https://github.com/gruntwork-io/cloud-nuke).
40+
* **Experts** - As a vendor, we've equipped over 500 companies and thousands of engineers with AWS, DevOps, and Platform Engineering best practices.
41+
42+
## Next
43+
44+
Now let's learn more about who we wrote the Gruntwork Way for.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
title: Who This Is For
3+
sidebar_position: 2
4+
---
5+
6+
We wrote The Gruntwork Way for anyone trying to balance velocity, governance, and maintainability in their quest to better deliver software.
7+
8+
## Roles
9+
10+
In practice, we expect users in these roles will find this useful:
11+
12+
- **Platform engineers** building or improving their developer platforms
13+
- **DevOps engineers** looking for best practices and patterns
14+
- **Engineering leaders** evaluating their developer platform and/or cloud strategy
15+
16+
## Maturity levels
17+
18+
As you build your developer platform, you will go through a series of maturity stages.
19+
20+
Actually, to be more precise, you will build maturity separately in your [patterns](/2.0/way/platform/patterns/overview), [platform components](/2.0/way/platform/components/overview), and [interfaces](/2.0/way/platform/interfaces/overview). Your collective maturity level for the "developer platform" is really just the collection of maturity levels for its component parts.
21+
22+
In general, the component parts track these maturity levels:
23+
24+
- **Ad hoc** - There is no standard, so your team does things manually with minimal automation.
25+
- **Building** - You've built something, but it's limited.
26+
- **Established** - This component does add value, but with lots of room for improvement.
27+
- **Mature** - This component performs its functions comprehensively and effectively.
28+
- **Self-improving** - This component has a systematic feedback loop that leads to ongoing improvements.
29+
30+
The Gruntwork Way is especially useful for organizations with many building blocks in the **ad hoc,** **building,** or **established** stages.
31+
32+
## Next
33+
34+
Let's close out the introduction by giving you some pointers on how to use this framework!
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"label": "Building Your Platform",
3+
"position": 4,
4+
"className": "way-top-level-item"
5+
}
6+
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"label": "Components",
3+
"position": 3
4+
}

0 commit comments

Comments
 (0)