You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/2.0/way/principles/governance-maintainability/offer-golden-paths.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Platform engineers face a fundamental tension: you want _consistency_ because it
9
9
10
10
What's the right balance? The answer lies in offering **golden paths,** which are well-supported, pre-built ways to accomplish the most common infrastructure problems that developers face. To solve a given problem, application developers can choose to use the golden path approach and enjoy a pre-built solution, ongoing maintenance, and support from the platform team, or they can go their own way knowing that development, support, and maintenance will now be their responsibility.
11
11
12
-
The golden paths concept was [first coined by Spotify](https://engineering.atspotify.com/2020/08/how-we-use-golden-paths-to-solve-fragmentation-in-our-software-ecosystem) back in 2020 and remains popular to today. It works because it aligns incentives. Platform engineers want to see their work used and have to make their patterns compelling enough to drive adoption. Application developers want to minimize their responsibilities so they can focus on building core features and not infrastructure.
12
+
The golden paths concept was [first coined by Spotify](https://engineering.atspotify.com/2020/08/how-we-use-golden-paths-to-solve-fragmentation-in-our-software-ecosystem) back in 2020 and remains popular today. It works because it aligns incentives. Platform engineers want to see their work used and need to make their patterns compelling enough to drive adoption. Application developers seek to minimize their responsibilities so they can focus on building core features and not infrastructure.
13
13
14
14
Once again, we see the need to [treat your platform as a product](/2.0/way/principles/core-philosophy/your-developer-platform-is-a-product). In this case, you are "competing" against the application developer's next best alternative of "I'll just do it myself." Sometimes your developer platform will lose because it's actually not the right fit for a particular use case, and that's okay. But once you create a golden path for a given use case, it should win most of the time.
Copy file name to clipboardExpand all lines: docs/2.0/way/principles/technical-foundations/represent-all-patterns-as-code.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ This approach leads to many issues:
31
31
32
32
Around 2014, these issues reached an inflection point and the idea of infrastructure-as-code was then a major paradigm shift. More than a decade later, we can now generalize the idea of representing all infrastructure as code to the idea that you should **represent all patterns as code,** and then [define all live infrastructure as pattern instances](/2.0/way/principles/technical-foundations/define-all-live-infrastructure-as-pattern-instances).
33
33
34
-
Representing patterns as code brings many benefits. To start, when anything is captured as code, it can be _stored in version control. That means that every change is now tracked, attributed, and can be reverted if needed. Code can be peer reviewed, and automated tests can run to immediately validate the newly committed code.
34
+
Representing patterns as code brings many benefits. To start, when anything is captured as code, it can be stored in version control. That means that every change is now tracked, attributed, and can be reverted if needed. Code can be peer reviewed, and automated tests can run to immediately validate the newly committed code.
35
35
36
36
More generally, when a pattern is represented as code, what were liabilities above now become key advantages:
Copy file name to clipboardExpand all lines: docs/2.0/way/resources/glossary.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ A Platform engineer builds internal developer platforms that provide standardize
30
30
31
31
### DevOps bankruptcy
32
32
33
-
When organizations wind up in some or all of these failure modes they may reach a breaking point we describe as **DevOps Bankruptcy**, a point at which starting fresh is often the better option because correcting the anti-patterns in their current infrastructure paradigm would be too costly.”
33
+
When organizations wind up in some or all of these failure modes they may reach a breaking point we describe as **DevOps Bankruptcy**: a point at which starting fresh is often the better option because correcting the anti-patterns in their current infrastructure paradigm would be too costly.
Copy file name to clipboardExpand all lines: docs/2.0/way/solution/patterns/overview.md
+1-3Lines changed: 1 addition & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,9 +17,7 @@ That definition might sound a little abstract, so here are some real-world examp
17
17
- Helm charts
18
18
19
19
The common theme among all patterns is that when a user goes to consume them, they are pre-built, they reflect the opinion of a subject matter expert, and they solve a common infrastructure problem.
20
-
21
-
Now let's bo back to the definition of a pattern so we can understand that more deeply.
22
-
20
+
Now let's go back to the definition of a pattern so we can understand that more deeply.
23
21
### Common infrastructure problems
24
22
25
23
_Patterns are pre-built, opinionated solutions to **common infrastructure problems.**_
Copy file name to clipboardExpand all lines: docs/2.0/way/solution/platform/deploy/runbooks.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ But creating a module instance can be complex! The developer may need to do any
22
22
- "Apply" the code they generated
23
23
- Validate that a pattern was created successfully
24
24
25
-
The breath and depth of these requirements impose a heavy burden on the humble developer who wishes only to deploy a pattern so they can get back to their real job of building their app.
25
+
The breadth and depth of these requirements impose a heavy burden on the humble developer who wishes only to deploy a pattern so they can get back to their real job of building their app.
26
26
27
27
### The solution
28
28
@@ -65,7 +65,7 @@ To be an _effective_ runbook, we need a few more requirements. Effective runbook
65
65
-**Easily authored.** It must be easy for runbook authors to capture their expertise.
66
66
-**Easily launched.** It must be easy for the runbook consumer to begin using the runbook.
67
67
-**Documented.** The runbook must teach the user about this particular area of subject matter expertise, intermixing documentation and interactivity.
68
-
-**Testable.** A runbook must be programmatically testable so that you can continually validate that it functions as expected.immediately see how that impacts the generated code.
68
+
-**Testable.** A runbook must be programmatically testable so that you can continually validate that it functions as expected.
69
69
-**Capture feedback.** The runbook must expose a way for runbook consumers to share feedback about their experience and request improvements.
70
70
71
71
#### Code execution
@@ -127,12 +127,12 @@ This improves on using static documentation because we offer the user a pre-set
127
127
Better yet, either the process of generating the code includes a step to configure variables, or the template itself can leave placeholders for users to enter variables (as it does above).
128
128
129
129
:::info
130
-
Gruntwork maintains an opensource template generator built specially for DevOps and platform engineering called **Gruntwork Boilerplate.** Learn more at https://github.com/gruntwork-io/boilerplate.
130
+
Gruntwork maintains an open-source template generator built specially for DevOps and platform engineering called **Gruntwork Boilerplate.** Learn more at [https://github.com/gruntwork-io/boilerplate](https://github.com/gruntwork-io/boilerplate).
131
131
:::
132
132
133
133
### Infrastructure module UI
134
134
135
-
You can build (or buy) a solution that renders a UI for a given infrastructure module. The UI lists the available parameter values, and users fill in those values directly through the UI. Ideally, the UI can allow users to fetch value from external data sources such as infrastructure-as-code state, a secrets manager, or a third-party cool.
135
+
You can build (or buy) a solution that renders a UI for a given infrastructure module. The UI lists the available parameter values, and users fill in those values directly through the UI. Ideally, the UI can allow users to fetch value from external data sources such as infrastructure-as-code state, a secrets manager, or a third-party tool.
136
136
137
137
The primary limitation of the infrastructure module UI is that, by definition, it is scoped to a single infrastructure module.
0 commit comments