Skip to content

Commit e2b8a7e

Browse files
committed
Adding WIP announcement
1 parent 907e89f commit e2b8a7e

File tree

28 files changed

+206
-33
lines changed

28 files changed

+206
-33
lines changed

docs/artifact-storage/introduction.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 1
44

55
# What is an Artifact?
66

7-
An artifact is a deployable component of your application. It can be a compiled binary, a library, a Docker image, or any other file that is part of your application. Artifacts are stored in an artifact repository, which is a collection of all the artifacts that are part of your application.
7+
An artifact is a deployable component of your application. It can be a compiled binary, a library, a Docker image, or any other file that is part of your application. Artifacts are stored in an artifact repository, which is a collection of all the artifacts that are part of your application.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/chaos-engineering/introduction.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 1
44

55
# What is Chaos Engineering?
66

7-
Chaos engineering is the practice of intentionally introducing failure into a system in order to test its resilience and reliability. It is a way to proactively identify and address weaknesses in a system, and it is used to ensure that a system can continue to function in the face of unexpected events and conditions.
7+
Chaos engineering is the practice of intentionally introducing failure into a system in order to test its resilience and reliability. It is a way to proactively identify and address weaknesses in a system, and it is used to ensure that a system can continue to function in the face of unexpected events and conditions.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/ci-cd/continuous-integration.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 1
44

55
# Continuous Integration
66

7-
Continuous Integration (CI) is a software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run. The key goals of CI are to find and address bugs quicker, improve software quality, and reduce the time it takes to validate and release new software updates.
7+
Continuous Integration (CI) is a software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run. The key goals of CI are to find and address bugs quicker, improve software quality, and reduce the time it takes to validate and release new software updates.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/cloud/cloud-native.md

+34-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,39 @@
22
sidebar_position: 4
33
---
44

5-
# Cloud-Native
5+
# Cloud Native
66

7-
## What is Cloud-Native?
7+
## What is Cloud Native?
88

9-
Cloud-Native is an approach to building and running applications that fully leverage the advantages of cloud computing. It is a set of practices and patterns that enable organizations to build scalable, resilient, and efficient applications in the cloud.
9+
Cloud native is a term that refers to the modernization of applications and infrastructure to take advantage of the cloud computing delivery model. It is a set of practices that empowers an organization to build and manage applications at scale. Cloud native technologies enable organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds.
10+
11+
Cloud-native is a set of practices and technologies used to develop applications built with services packaged in containers, deployed as microservices, and managed on elastic infrastructure through agile DevOps processes and continuous delivery workflows. When it comes to platform engineering in a cloud-native context, the focus is on creating a scalable and flexible infrastructure that supports the development, deployment, and management of these applications efficiently and securely.
12+
13+
:::note
14+
The [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io/) is a vendor-neutral home for many of the fastest-growing projects in the cloud-native ecosystem. The CNCF provides a comprehensive landscape of the cloud-native ecosystem, which can be found [here](https://landscape.cncf.io/).
15+
:::
16+
17+
## Overview
18+
19+
Platform engineering in a cloud-native ecosystem involves designing, implementing, and managing a platform that provides developers with the tools and capabilities they need to build and deploy applications quickly. This platform is typically based on cloud services and leverages containerization, orchestration, microservices, and CI/CD pipelines to streamline development processes and enable rapid iteration.
20+
21+
## Key Components
22+
23+
- **Containerization**: Containers package application code along with its dependencies, ensuring consistency across environments from development to production. Docker and containerd are popular tools for containerization.
24+
- **Orchestration**: Orchestration tools like Kubernetes manage the deployment, scaling, and operation of containerized applications, ensuring they run efficiently and resiliently across multiple computing environments.
25+
- **Microservices Architecture**: This architectural style structures an application as a collection of loosely coupled services, which makes it easier to develop, deploy, and scale parts of the application independently.
26+
- **CI/CD Pipelines**: Continuous Integration (CI) and Continuous Delivery (CD) pipelines automate the building, testing, and deployment of applications, facilitating rapid releases and updates.
27+
- **Infrastructure as Code (IaC)**: IaC tools like Terraform and CloudFormation allow teams to automate the provisioning and management of infrastructure using code, improving consistency and reducing manual errors.
28+
- **Observability and Monitoring**: Tools and practices that provide insights into the performance and health of applications and infrastructure, including logging, monitoring, and tracing. Prominent tools include Prometheus, Grafana, and Elastic Stack.
29+
30+
## Best Practices
31+
32+
- **Automate Everything**: Automation is key in a cloud-native platform. Automate deployment, scaling, recovery, and infrastructure provisioning to reduce manual intervention and increase efficiency.
33+
- **Security by Design**: Incorporate security at every stage of the development lifecycle. Use automated scanning for vulnerabilities, enforce security policies, and practice the principle of least privilege.
34+
- **Build for Scalability**: Design services and infrastructure to be scalable from the outset. Use scalable cloud services and design applications in a way that they can handle varying loads gracefully.
35+
- **Emphasize Observability**: Ensure that the system is observable from the outside, providing insights into its state and behavior. This is crucial for troubleshooting and understanding system performance.
36+
- **Foster a DevOps Culture**: Encourage collaboration between development and operations teams. A strong DevOps culture is essential for successful cloud-native platform engineering.
37+
38+
## Conclusion
39+
40+
Cloud-native platform engineering requires a shift in how organizations approach IT infrastructure and application development. By leveraging containerization, orchestration, microservices, and automation, teams can create more resilient, scalable, and efficient applications. The focus on automation, security, and DevOps practices ensures that the platform remains flexible and responsive to the needs of the business while minimizing risk.

docs/code-analysis/introduction.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 1
44

55
# What is Code Analysis?
66

7-
Code analysis is the process of analyzing source code to find bugs, security vulnerabilities, and other issues. It is an essential part of the software development process, as it helps to ensure that the code is of high quality and free from defects. Code analysis tools can be used to automate the process of finding and fixing issues in the code, which can help to improve the overall quality of the software.
7+
Code analysis is the process of analyzing source code to find bugs, security vulnerabilities, and other issues. It is an essential part of the software development process, as it helps to ensure that the code is of high quality and free from defects. Code analysis tools can be used to automate the process of finding and fixing issues in the code, which can help to improve the overall quality of the software.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/container-orchestrator/introduction.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 1
44

55
# What is Container Orchestration?
66

7-
Container orchestration is the process of managing the lifecycle of containers, especially in large, dynamic environments. It involves automating the deployment, scaling, and management of containerized applications. Container orchestration tools provide a platform for defining, deploying, and managing a set of interconnected containers.
7+
Container orchestration is the process of managing the lifecycle of containers, especially in large, dynamic environments. It involves automating the deployment, scaling, and management of containerized applications. Container orchestration tools provide a platform for defining, deploying, and managing a set of interconnected containers.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/disaster-recovery/backups.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 2
44

55
# What is a Backup?
66

7-
A backup is a copy of data that is stored separately from the original data. Backups are used to restore data to its original state after data loss or corruption. Backups are essential for disaster recovery and data protection. They are used to recover data in case of hardware failure, software failure, data corruption, accidental deletion, or other data loss events.
7+
A backup is a copy of data that is stored separately from the original data. Backups are used to restore data to its original state after data loss or corruption. Backups are essential for disaster recovery and data protection. They are used to recover data in case of hardware failure, software failure, data corruption, accidental deletion, or other data loss events.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/disaster-recovery/introduction.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 1
44

55
# What is Disaster Recovery?
66

7-
Disaster recovery is the process of recovering data and resuming business operations after a disaster.
7+
Disaster recovery is the process of recovering data and resuming business operations after a disaster.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/feature-flags/introduction.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 1
44

55
# What is Feature Flags?
66

7-
Feature flags are a way to manage the lifecycle of a feature in a software application. They are a way to control the visibility and behavior of a feature, and they are used to enable or disable a feature at runtime. Feature flags are a way to manage the release of new features, and they are used to control the rollout of new functionality to different groups of users.
7+
Feature flags are a way to manage the lifecycle of a feature in a software application. They are a way to control the visibility and behavior of a feature, and they are used to enable or disable a feature at runtime. Feature flags are a way to manage the release of new features, and they are used to control the rollout of new functionality to different groups of users.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/finops/cloud-finops.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 2
44

55
# What is Cloud FinOps?
66

7-
Cloud FinOps is a set of practices and techniques that enable teams to manage and optimize their cloud costs. It is a way to align the goals of the finance, engineering, and business teams, and to ensure that cloud resources are being used efficiently and effectively. FinOps is a way to manage cloud costs in a more incremental and iterative manner, allowing teams to monitor and optimize their cloud spending in real time.
7+
Cloud FinOps is a set of practices and techniques that enable teams to manage and optimize their cloud costs. It is a way to align the goals of the finance, engineering, and business teams, and to ensure that cloud resources are being used efficiently and effectively. FinOps is a way to manage cloud costs in a more incremental and iterative manner, allowing teams to monitor and optimize their cloud spending in real time.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/finops/greenops.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 3
44

55
# What is GreenOps?
66

7-
GreenOps is a set of practices and techniques that enable teams to build and operate sustainable and environmentally friendly software. It is a way to deliver software in a more sustainable and responsible manner, allowing teams to reduce the environmental impact of their applications and infrastructure.
7+
GreenOps is a set of practices and techniques that enable teams to build and operate sustainable and environmentally friendly software. It is a way to deliver software in a more sustainable and responsible manner, allowing teams to reduce the environmental impact of their applications and infrastructure.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/finops/introduction.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 1
44

55
# What is FinOps?
66

7-
FinOps is a set of practices and techniques that enable teams to manage and optimize their cloud costs. It is a way to align the goals of the finance, engineering, and business teams, and to ensure that cloud resources are being used efficiently and effectively. FinOps is a way to manage cloud costs in a more incremental and iterative manner, allowing teams to monitor and optimize their cloud spending in real time.
7+
FinOps is a set of practices and techniques that enable teams to manage and optimize their cloud costs. It is a way to align the goals of the finance, engineering, and business teams, and to ensure that cloud resources are being used efficiently and effectively. FinOps is a way to manage cloud costs in a more incremental and iterative manner, allowing teams to monitor and optimize their cloud spending in real time.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/gitops/introduction.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 1
44

55
# What is GitOps?
66

7-
GitOps is a way to do Kubernetes cluster management and application delivery. It works by using Git as a single source of truth for declarative infrastructure and applications. With Git at the center of your delivery pipelines, developers can make pull requests to accelerate and simplify application deployments and operations tasks to Kubernetes.
7+
GitOps is a way to do Kubernetes cluster management and application delivery. It works by using Git as a single source of truth for declarative infrastructure and applications. With Git at the center of your delivery pipelines, developers can make pull requests to accelerate and simplify application deployments and operations tasks to Kubernetes.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/infrastructure-as-code/alternatives.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ sidebar_position: 4
44

55
# Alternative IaC Tools
66

7-
Infrastructure as Code (IaC) is the process of managing and provisioning computing infrastructure through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools. IaC is a key DevOps practice and is used to manage and provision infrastructure in a safe, repeatable, and efficient manner.
7+
Infrastructure as Code (IaC) is the process of managing and provisioning computing infrastructure through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools. IaC is a key DevOps practice and is used to manage and provision infrastructure in a safe, repeatable, and efficient manner.
8+
9+
:::warning
10+
🚧 Work in progress 🚧
11+
:::

docs/infrastructure-as-code/infrastucture-as-code.md

+41-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,44 @@ sidebar_position: 1
44

55
# What is IaC?
66

7-
Infrastructure as Code (IaC) is the process of managing and provisioning computing infrastructure (processes, storage, networks, and other resources) through machine-readable files, rather than physical hardware configuration or interactive configuration tools.
7+
Infrastructure as Code (IaC) is a key practice within cloud-native platform engineering, enabling teams to manage and provision infrastructure through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools. IaC automates the setup of infrastructure, ensuring that environments are reproducible, scalable, and manageable. This documentation provides an overview of IaC concepts, tools, and best practices, with a particular focus on its role in platform engineering.
8+
9+
## Concepts and Principles
10+
11+
The process of managing and provisioning computing infrastructure (networks, virtual machines, load balancers, and connection topology) through scriptable definitions, rather than manual processes is known as Infrastructure as Code (IaC).
12+
13+
### Key Principles
14+
15+
- **Idempotency**: The ability to apply the same configuration multiple times without changing the result beyond the initial application, ensuring consistency and reliability.
16+
- **Immutability**: Infrastructure components are replaced rather than changed. New versions of infrastructure are built and deployed from a common image with changes.
17+
- **Declarative** Configuration: Specify what the desired state of the infrastructure should be, not how to achieve it, allowing the tooling to abstract the provisioning logic.
18+
- **Modularity**: Infrastructure is broken down into reusable components or modules that can be shared across teams and projects.
19+
20+
::::info
21+
Tools such as [Terraform](https://www.terraform.io/), [Pulumi](https://www.pulumi.com/), and [AWS CloudFormation](https://aws.amazon.com/cloudformation/) are popular choices for implementing IaC.
22+
23+
:::note
24+
[OpenTofu](https://opentofu.org) is a new IaC tool that is gaining popularity due Terraform's changes in their licensing model.
25+
:::
26+
27+
::::
28+
29+
## Role in Platform Engineering
30+
31+
In the context of platform engineering, IaC is pivotal for creating consistent, repeatable, and scalable environments that can support the development, deployment, and operation of applications. Platform engineers use IaC to:
32+
33+
- **Provision Development and Production Environments**: Automatically set up and manage environments that are identical, reducing the "it works on my machine" syndrome.
34+
- **Manage Configuration Changes**: Apply changes to infrastructure through code, ensuring that all modifications are version controlled and auditable.
35+
- **Automate Platform Operations**: Reduce manual tasks and errors, allowing platform teams to focus on adding value rather than maintaining infrastructure.
36+
37+
## Best Practices
38+
39+
- **Version Control**: Store IaC configurations in a version control system to track changes, collaborate on development, and roll back when necessary.
40+
- **Continuous Integration and Continuous Deployment (CI/CD)**: Integrate IaC into CI/CD pipelines to automate the testing, validation, and deployment of infrastructure changes.
41+
- **Immutable Infrastructure**: Use immutable infrastructure principles to replace rather than update existing infrastructure, minimizing drift and ensuring consistency.
42+
- **Documentation and Commenting**: Maintain comprehensive documentation and comments within IaC configurations to ensure clarity and maintainability.
43+
- **Security and Compliance**: Embed security practices into the IaC lifecycle, including automated compliance checks and vulnerability scanning.
44+
45+
## Conclusion
46+
47+
Infrastructure as Code is an essential practice in modern platform engineering, facilitating the automated, consistent, and secure management of infrastructure resources. By adopting IaC, platform engineering teams can improve efficiency, reduce manual errors, and ensure that infrastructure deployments are repeatable and scalable. Embracing IaC tools and following best practices allows organizations to fully leverage the benefits of cloud-native technologies and methodologies, paving the way for more agile and responsive IT operations.

0 commit comments

Comments
 (0)