Skip to content

Commit 7884715

Browse files
EdifyContentyhakbarZachGoldberg
authored
Overview-edify2: Changes only to Overview / Concepts files (#2304)
* Update developer-self-service.md * Update devopsfoundations.md * Update iac-modules.md * Update iac-platform.md * Update infrastructure-live.md * Update labels-tags.md * Update labels-tags.md * Update custom-dictionary.txt * Update docs/2.0/docs/overview/concepts/developer-self-service.md Co-authored-by: Yousif Akbar <[email protected]> * Update docs/2.0/docs/overview/concepts/devopsfoundations.md Co-authored-by: Yousif Akbar <[email protected]> * Update docs/2.0/docs/overview/concepts/devopsfoundations.md Co-authored-by: Yousif Akbar <[email protected]> * Update docs/2.0/docs/overview/concepts/iac-platform.md Co-authored-by: Yousif Akbar <[email protected]> * Update docs/2.0/docs/overview/concepts/infrastructure-live.md Co-authored-by: Yousif Akbar <[email protected]> * Update docs/2.0/docs/overview/concepts/infrastructure-live.md Co-authored-by: Yousif Akbar <[email protected]> * Update docs/2.0/docs/overview/concepts/infrastructure-live.md Co-authored-by: Yousif Akbar <[email protected]> * Update docs/2.0/docs/overview/concepts/infrastructure-live.md Co-authored-by: Yousif Akbar <[email protected]> * Update docs/2.0/docs/overview/concepts/infrastructure-live.md Co-authored-by: Yousif Akbar <[email protected]> * Update docs/2.0/docs/overview/concepts/infrastructure-live.md Co-authored-by: Yousif Akbar <[email protected]> * Update docs/2.0/docs/overview/concepts/infrastructure-live.md Co-authored-by: Yousif Akbar <[email protected]> * Update labels-tags.md * Update docs/2.0/docs/overview/concepts/infrastructure-live.md Co-authored-by: Yousif Akbar <[email protected]> * Update devopsfoundations.md * Update docs/2.0/docs/overview/concepts/infrastructure-live.md * Update docs/2.0/docs/overview/concepts/infrastructure-live.md * Update docs/2.0/docs/overview/concepts/infrastructure-live.md * Update docs/2.0/docs/overview/concepts/labels-tags.md * Update labels-tags.md * Update docs/2.0/docs/overview/concepts/infrastructure-live.md --------- Co-authored-by: Yousif Akbar <[email protected]> Co-authored-by: Zach Goldberg <[email protected]>
1 parent 4f18b95 commit 7884715

File tree

7 files changed

+184
-167
lines changed

7 files changed

+184
-167
lines changed

custom-dictionary.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ mimecast
4444
slugified
4545
dlist
4646
DEPENDENCYID
47+
subfolders
4748
MTTR
4849
terrapatch
4950
Terrapatch
Lines changed: 43 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,77 @@
1-
# Developer Self Service
1+
# Developer Self-Service
22

3-
Developer Self-Service lets developers deploy and manage their apps and infrastructure themselves, without always needing help from the platform team.
3+
Developer self-service enables developers to deploy and manage their applications and infrastructure independently, without constant reliance on the platform team.
44

5-
Effective developer self-service then requires a set of patterns, practices, rules, constraints and governance pre-baked into the modules that engineers use to represent their infrastructure. Some teams call these modules "approved blueprints" or "blessed modules". At Gruntwork we generally refer to this as the **Infrastructure Catalog** that lives in a repository we call `infrastructure-catalog` (previously `infrastructure-modules`).
5+
Effective self-service requires patterns, practices, rules, constraints, and governance to be embedded within the modules developers use to define their infrastructure. These modules are often referred to as "approved blueprints" or "blessed modules." At Gruntwork, we call this the **Infrastructure Catalog**, which resides in a repository named `infrastructure-catalog` (formerly `infrastructure-modules`).
66

7-
Inside the `infrastructure-catalog` we recommend following the [infrastructure-live pattern](https://docs.gruntwork.io/2.0/docs/overview/concepts/infrastructure-live#separating-modules-from-live-infrastructure) and storing catalog module code in a folder called `modules`.
7+
Within the `infrastructure-catalog`, we recommend following the [infrastructure-live pattern](https://docs.gruntwork.io/2.0/docs/overview/concepts/infrastructure-live#separating-modules-from-live-infrastructure) and organizing catalog module code in a folder named `modules`.
88

99
## Why self-service
1010

11-
### Benefits to Developers
11+
### Benefits to developers
1212

13-
Developers benefit by avoiding "reinventing the wheel". They're able to leverage pre-built, tested, and secure modules that have already been approved for use at your organization. Handoffs between platform and development teams are reduced resulting in faster delivery and fewer bottlenecks.
13+
Self-service allows developers to avoid "reinventing the wheel" by using pre-built, tested, and secure modules that are already approved for use. This reduces handoffs between platform and development teams, speeding up delivery and minimizing bottlenecks.
1414

15-
### Benefits to Platform Teams
15+
### Benefits to platform teams
1616

17-
Platform teams are able to operate effectively at scale. They retain centralized control of reusable modules, and are able to focus on standardizing testing, security, compliance, and governance. The day to day workload of assisting Developers with infrastructure code is reduced, while retaining oversight.
17+
Self-service enables platform teams to operate efficiently at scale. By centralizing control over reusable modules, platform teams can focus on standardizing testing, security, compliance, and governance. The workload of assisting developers with infrastructure code is reduced, while maintaining oversight and control.
1818

19-
## Terragrunt Catalog
19+
## Terragrunt catalog
2020

21-
Terragrunt has [native support](https://terragrunt.gruntwork.io/docs/features/catalog/) for an interface that allows developers to browse modules using a terminal based UI, and then [scaffold](https://terragrunt.gruntwork.io/docs/features/scaffold/) out new modules using [boilerplate](https://github.com/gruntwork-io/boilerplate). All repositories vended as part of Devops Foundations include a `catalog` configuration in the root `terragrunt.hcl` file that points to a starter `infrastructure-catalog` repository that provides examples on how to further build out the catalog.
21+
Terragrunt provides [native support](https://terragrunt.gruntwork.io/docs/features/catalog/) for an interface that allows developers to browse modules using a terminal-based UI and [scaffold](https://terragrunt.gruntwork.io/docs/features/scaffold/) new modules with [boilerplate](https://github.com/gruntwork-io/boilerplate). Repositories vended through DevOps Foundations include a `catalog` configuration in the root `terragrunt.hcl` file, pointing to a starter `infrastructure-catalog` repository with examples for expanding the catalog.
2222

23-
### Using Catalog
23+
### Using catalog
2424

25-
Within a DevOps Foundations repository, create a new directory to contain your new terragrunt unit, then navigate to this directory.
25+
In a DevOps Foundations repository, create a new directory for the new Terragrunt unit, then navigate to this directory.
2626

27-
Running `terragrunt catalog` will open an interactive terminal UI allowing you to browse the available units from your `infrastructure-catalog`.
27+
Running `terragrunt catalog` opens an interactive terminal UI to browse available units in the `infrastructure-catalog`.
2828

29-
When browsing your catalog, you can select a unit, and hit **S** to scaffold it out.
30-
The scaffold command does the following automatically:
29+
To scaffold a unit, select it and press **S**. The scaffold process automatically:
3130

32-
- Download and template the unit into the current directory.
31+
- Downloads and templates the unit into the current directory.
32+
- Determines the module URL and latest version (tag), populating the source URL.
33+
- Parses the module’s input variables and generates placeholders in the `inputs = { }` block for easy configuration.
3334

34-
- Figures out the module URL and the latest version (tag) available, and fills that into the source URL.
35+
After replacing the placeholders, commit the new unit and push it to a new Pull Request for [Gruntwork Pipelines](/2.0/docs/pipelines/concepts/overview) to begin planning the changes.
3536

36-
- Parse all of the module’s input variables and generate placeholders in the inputs = { } block to make it easy to fill those variables in.
37-
38-
Once you've replaced these placeholders, commit the new unit, and push it to a new Pull Request for [Gruntwork Pipelines](/2.0/docs/pipelines/concepts/overview) to being planning the changes.
39-
40-
## Self-Service Best Practices
37+
## Self-service best practices
4138

4239
### Versioning
4340

44-
Implement a consistent versioning strategy, such as [semantic versioning](https://semver.org/), for all modules in your infrastructure catalog. This allows you to:
41+
Adopt a consistent versioning strategy, such as [semantic versioning](https://semver.org/), for all modules in the infrastructure catalog. This approach helps:
42+
43+
- **Track changes:** Maintain a clear history of updates and modifications.
44+
- **Enable rollbacks:** Revert to previous versions if issues arise.
45+
- **Ensure clarity:** Use semantic versioning (e.g., v1.2.3) to communicate the scope of changes (major, minor, patch).
4546

46-
* **Track Changes:** Maintain a clear history of module updates and modifications.
47-
* **Enable Rollbacks:** Revert to previous versions in case of issues or errors.
48-
* **Ensure Clarity:** Use semantic versioning (e.g., v1.2.3) to communicate the nature of changes (major, minor, patch).
47+
Leverage [Gruntwork Patcher](/2.0/docs/patcher/concepts/) to roll out breaking changes efficiently while minimizing disruptions.
4948

50-
Use [Gruntwork Patcher](/2.0/docs/patcher/concepts/) to efficiently roll out breaking changes across your infrastructure and minimize disruption.
49+
### Infrastructure tagging and labeling
5150

52-
### Infrastructure Tagging and Labeling
51+
A centralized catalog facilitates consistent tagging and labeling across infrastructure components, enabling:
5352

54-
A central catalog allows core teams to implement a consistent tagging and labeling strategy across all infrastructure components. This enables:
53+
- **Cost tracking and allocation:** Assign costs to specific teams or projects using tags.
54+
- **Access control:** Manage and control resource access with tags.
55+
- **Automation:** Automate tasks such as provisioning, termination, and reporting based on tags.
56+
- **Monitoring and alerting:** Group and filter resources for effective monitoring and alerting.
5557

56-
* **Cost Tracking and Allocation:** Assign costs to specific teams or projects based on tags.
57-
* **Access Control:** Use tags to manage and control access to resources.
58-
* **Automation:** Automate tasks like provisioning, termination, and reporting based on tags.
59-
* **Monitoring and Alerting:** Filter and group resources for monitoring and alerting purposes.
58+
### Wrapper modules / services
6059

60+
Use wrapper modules or services to simplify deployments and configurations. Wrappers can:
6161

62-
### Wrapper Modules / Services
62+
- **Encapsulate best practices:** Integrate security, compliance, and operational standards into reusable modules.
63+
- **Reduce boilerplate:** Eliminate repetitive code for developers.
64+
- **Standardize deployments:** Ensure consistency and reduce errors across deployments.
65+
- **Abstract complexity:** Hide infrastructure complexity, allowing developers to focus on application logic.
6366

64-
Create wrapper modules or services to simplify complex deployments and configurations. These wrappers can:
6567

66-
* **Encapsulate Best Practices:** Bundle security, compliance, and operational best practices into reusable units.
67-
* **Reduce Boilerplate:** Minimize repetitive code and configuration for developers.
68-
* **Standardize Deployments:** Ensure consistency and reduce errors across different deployments.
69-
* **Abstract Complexity:** Hide the underlying complexity of infrastructure from developers, allowing them to focus on application logic.
68+
### Using stacks to keep developer code DRY
7069

70+
Organize infrastructure into [stacks](https://terragrunt.gruntwork.io/docs/features/stacks/) to enhance reusability and maintainability. Terragrunt Stacks enable you to:
7171

72-
### Using Stacks to keep developer code DRY
72+
- **Group related resources:** Manage interconnected units as a single entity.
73+
- **Reduce code duplication:** Avoid repeating code across environments or projects.
74+
- **Promote modularity:** Break complex infrastructure into manageable components.
75+
- **Simplify management:** Deploy, update, and destroy stacks with ease.
7376

74-
Organize infrastructure into stacks to promote code reusability and maintainability. Terragrunt Stacks allow you to:
7577

76-
* **Group Related Resources:** Manage interconnected units as a single entity.
77-
* **Reduce Code Duplication:** Avoid repeating the same code across different environments or projects.
78-
* **Promote Modularity:** Break down complex infrastructure into smaller, manageable components.
79-
* **Simplify Management:** Deploy, update, and destroy entire stacks with ease.

docs/2.0/docs/overview/concepts/devopsfoundations.md

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,40 @@
11
# Overview of Devops Foundations
2+
3+
**Gruntwork DevOps Foundations provides a collection of _DevOps components_ that serve as foundational building blocks for constructing best-practice infrastructure.**
24

3-
**Gruntwork DevOps Foundations is a collection of _DevOps components_ that you use as building blocks to assemble your own best-practice infrastructure.**
5+
Modern cloud infrastructure involves numerous components, spanning areas such as infrastructure pipelines, secrets management, FinOps, and application deployment. Establishing and managing each component independently requires a deep understanding of core infrastructure needs, the development of strategies to address them, the implementation of solutions, and ongoing maintenance. Gruntwork’s DevOps components addresses these challenges by offering:
46

5-
In a modern cloud infrastructure there are many component parts, ranging from the infrastructure pipeline to secrets management to FinOps to how you deploy apps. Setting up and managing each component requires that you understand the core infrastructure need, develop a strategy for addressing it, implement a solution, and then maintain it forever. Doing this on your own is expensive and error-prone, so Gruntwork DevOps components are designed to "pre-solve" all of these issues by including:
7+
- Pre-defined strategic recommendations
8+
- A curated collection of Infrastructure-as-Code (IaC) modules with comprehensive documentation
9+
- Tools that directly meet underlying infrastructure needs
10+
- A streamlined method for integrating components into your environment
11+
- Ongoing updates to ensure alignment with the latest best practices
612

7-
- Pre-written recommendations on strategy
8-
- A collection of pre-written IaC modules with extensive documentation
9-
- A tool that directly solves the underlying need
10-
- A streamlined approach to implementing the component in your environment
11-
- A commitment by Gruntwork to update the component to match the latest best practices
12-
13-
When you set up a new DevOps component, you also have access to guidance from Gruntwork subject matter experts to make sure the component is applied correctly in your environment, and grows in capability as your needs evolve.
13+
When setting up a new DevOps component, customers also have access to guidance from Gruntwork subject matter experts. Their support ensures correct implementation within your environment and adaptability to meet evolving needs.
1414

1515
## Available components
1616

17-
There are several DevOps components available today:
17+
Gruntwork currently offers several DevOps components:
18+
19+
* [Infrastructure-Live](/2.0/docs/overview/concepts/infrastructure-live.md): An opinionated structure for IaC repositories that incorporates best practices for organizing OpenTofu code to maintain DRY principles at an enterprise scale.
20+
* [Pipelines](/2.0/docs/pipelines/concepts/overview.md): A comprehensive CI/CD pipeline for infrastructure code, including guidelines for structuring OpenTofu code and scripts to manage pipeline operations.
21+
* [Account Factory](/2.0/docs/accountfactory/concepts/): Automated workflows for provisioning new AWS accounts, applying compliance and security baselines, and enforcing infrastructure business rules across multiple accounts.
22+
* [Patcher](/2.0/docs/patcher/concepts/): Tools for identifying outdated modules in repositories, creating pull requests to update versions, and automatically refactoring code to handle breaking changes without developer intervention.
23+
* [Library](/2.0/docs/library/concepts/overview): A robust collection of over 300,000 lines of OpenTofu/Terraform code modules, providing foundational components such as VPCs, ECS clusters, and S3 buckets for building infrastructure.
1824

19-
* [Infrastructure-Live](/2.0/docs/overview/concepts/infrastructure-live.md): An opinionated structure for IaC repositories that includes a set of best practices for how to structure your OpenTofu code to keep things DRY at enterprise scale.
20-
* [Pipelines](/2.0/docs/pipelines/concepts/overview.md): A complete CI/CD pipeline for infrastructure code, a set of best practices for how to structure your OpenTofu code, and a set of scripts for managing the pipeline.
21-
* [Account Factory](/2.0/docs/accountfactory/concepts/): A set of automated workflows to provision new AWS accounts and apply compliance, security and infrastructure baselines to enforce business rules across many accounts.
22-
* [Patcher](/2.0/docs/patcher/concepts/): Identify out of date modules across your repositories and create pull requests that both updates versions and automatically refactors code to get through breaking changes without developer intervention.
23-
* [Library](/2.0/docs/library/concepts/overview): Over 300,000 lines of terraform code modules that are designed to be used as building blocks for your infrastructure. From VPCs to ECS clusters to S3 buckets, the library has you covered.
2425
<!-- * [Catalog] -- see DEV-628 -->
25-
<!-- Something about networking / transit gateway? -->
26+
<!-- Placeholder for networking/transit gateway details -->
2627

27-
All DevOps components are focused on Terragrunt, OpenTofu/Terraform, GitHub and AWS. We may add support for additional technologies in the future.
28+
All components are designed with a focus on Terragrunt, OpenTofu/Terraform, GitHub, and AWS. Support for additional technologies may be introduced in the future.
2829

2930
## Building your own components
3031

31-
The Gruntwork DevOps components implement a meaningful portion of a modern cloud infrastructure, but not 100% of it. We expect you to build on top of the Gruntwork DevOps components by adding your own solutions to build out your full infrastructure.
32+
Gruntwork DevOps components provide a substantial foundation for modern cloud infrastructure but are not intended to cover every possible need. Customers are encouraged to expand upon these components by integrating their own solutions to develop a comprehensive infrastructure.
33+
34+
Each component in DevOps Foundations is purposefully designed for extensibility and customization. Recognizing that many customers are developers, Gruntwork empowers customers to create tailored solutions that address their unique requirements, rather than rely solely on pre-built components. Collaboration is a key focus, and Gruntwork actively welcomes customer feedback and contributions to continually refine and enhance its offerings.
35+
36+
37+
38+
39+
3240

33-
All of the components in DevOps Foundations are designed to be extensible and customizable. We recognize that most of our customers are developers, and we want to make sure you are empowered to easily build the solutions you need instead of relying exclusively on Gruntwork to have them pre-built in every circumstance. We encourage collaboration with our customers, and are always looking for feedback, and contributions to improve our components.

0 commit comments

Comments
 (0)