Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PL-Doc] SMP Doc update 1. #9311

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
211 changes: 100 additions & 111 deletions docs/self-managed-enterprise-edition/reference-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,22 @@ redirect_from:
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

Harness Self-Managed Enterprise Edition brings a robust and flexible software delivery platform to organizations seeking control over their deployment infrastructure. This topic describes user profiles and reference architectures, outlining the key components and best practices for implementing Harness Self-Managed Enterprise Edition. Organizations can optimize their software delivery platform with these architectures, ensuring reliability, scalability, and consistent software deployments.
Harness Self-Managed Enterprise Edition brings a robust and flexible software delivery platform to organizations seeking control over their deployment infrastructure. This topic describes user profiles and reference architectures, outlining the key components and best practices for implementing Harness Self-Managed Enterprise Edition.

## User profiles
Organizations can optimize their software delivery platform with these architectures, ensuring reliability, scalability, and consistent software deployments.

There are four user profiles for Harness Self-Managed Enterprise Edition.
## Environment Profiles

- **Demo:** This profile for up to 10 users is for demonstration purposes to allow you to test Harness Self-Managed Enterprise Edition before onboarding. This profile enables you to run up to four simultaneous executions across two modules, CI and CD.
- **Small:** This profile for up to 200 users requires a licensed version of Harness Self-Managed Enterprise Edition. This profile enables you to run up to 100 simultaneous executions across two modules, CI and CD.
- **Medium:** This profile for up to 1000 users requires a licensed version of Harness Self-Managed Enterprise Edition. This profile enables you to run up to 500 simultaneous executions across two modules, CI and CD.
- **Large:** This profile for up to 3000 users requires a licensed version of Harness Self-Managed Enterprise Edition. This profile enables you to run up to 1000 simultaneous executions across two modules, CI and CD.
Harness Self-Managed Enterprise Edition offers four environment profiles based on team size and execution capacity:

### Profile size and module execution details
| **Environment** | **Users** | **Parallel Executions (CI)** | **Parallel Executions (CD)** |
|-----------------|------------|------------------------------|------------------------------|
| **Demo** | Up to 10 | 2 | 2 |
| **Small** | Up to 200 | 50 | 50 |
| **Medium** | Up to 1000 | 250 | 250 |
| **Large** | Up to 3000 | 500 | 500 |

| **Size** | **# of users** | **Parallel executions (CD)** | **Parallel executions (CI)** |
| :-- | :-- | :-- | :--
| Demo|Up to 10|2|2
| Small|Up to 200|50|50
| Medium|Up to 1000|250|250
| Large|Up to 3000|500|500
The **Demo** environment is for testing, while **Small, Medium, and Large** require a licensed version.

### Demo user requirements

Expand All @@ -44,49 +41,44 @@ Override files are available in the Harness [Helm chart repo](https://github.com
- Medium: `override-medium.yaml`
- Large: `override-large.yaml`

#### Example installation and upgrade commands
### Installation and Upgrade commands

You can use the following commands to upgrade/install via Helm for each profile. For complete Helm installation instructions, go to [Install using Helm](/docs/self-managed-enterprise-edition/install/install-using-helm).

##### Demo
As shown below, you can replace the file name `<OVERRIDE-FILE>` placeholder with one of the override files listed above.

<Tabs>
<TabItem value="custom-install" label="Install">

```
helm install my-release harness/harness-prod -n <namespace> -f your-override.yaml -f <OVERRIDE-FILE>.yaml
```
</TabItem>
<TabItem value="custom-upgrade" label="Upgrade">

```
helm upgrade my-release harness/harness-prod -n <namespace> -f your-override -f <OVERRIDE-FILE>.yaml
```
</TabItem>
</Tabs>

**For Example**, Let's use the **`Demo`** override file.

<Tabs>
<TabItem value="Demo install" label="Install">

```
helm install my-release harness/harness-prod -n <namespace> -f your-override.yaml -f override-demo.yaml
```

</TabItem>
<TabItem value="Demo Upgrade" label="Upgrade">

```
helm upgrade my-release harness/harness-prod -n <namespace> -f your-override -f override-demo.yaml
```
</TabItem>
</Tabs>

##### Small

```
helm install my-release harness/harness-prod -n <namespace> -f your-override -f override-small.yaml
```

```
helm upgrade my-release harness/harness-prod -n <namespace> -f your-override -f override-small.yaml
```

#### Medium

```
helm install my-release harness/harness-prod -n <namespace> -f your-override -f override-medium.yaml
```

```
helm upgrade my-release harness/harness-prod -n <namespace> -f your-override -f override-medium.yaml
```

##### Large

```
helm install my-release harness/harness-prod -n <namespace> -f your-override -f override-large.yaml
```

```
helm upgrade my-release harness/harness-prod -n <namespace> -f your-override -f override-large.yaml
```

## Customer reference architectures

Expand All @@ -106,71 +98,68 @@ Achieving high availability and fault tolerance is paramount for mission-critica

Recognizing that each organization has unique requirements, this reference architecture explores customization options and extensibility features. It empowers users to tailor the Harness platform to specific workflows and integrations, ensuring a personalized and efficient continuous delivery pipeline.

![](./static/smp-ref-arch-dt.png)

<Tabs>

<TabItem value="Demo mode" label="Demo mode">

The demo mode reference architecture is designed for demonstration and learning purposes and includes an in-cluster database, but doesn't include backup and restore.

</TabItem>
<TabItem value="Prod 1 replica mode w/in-cluster DB and Backup and Restore" label="Prod 1 replica mode w/in-cluster DB and Backup and Restore">

Prod 1 replica mode w/in-cluster DB and Backup and Restore is designed for organizations that use Harness Self-Managed Enterprise Edition in production but do not require HA.

</TabItem>
<TabItem value="Prod 3 replica mode w/in-cluster DB and Backup and Restore" label="Prod 3 replica mode w/in-cluster DB and Backup and Restore">

Prod 3 replica mode w/in-cluster DB and Backup and Restore is designed for organizations that:

- Use Harness Self-Managed Enterprise Edition in production
- Require HA
- Do not have the ability to manage external DBs

</TabItem>
<TabItem value="Prod 3 replica mode w/self-managed external DB" label="Prod 3 replica mode w/self-managed external DB">

Prod 3 replica mode w/self-managed external DB is designed for organizations that:

- Use Harness Self-Managed Enterprise Edition in production
- Require HA
- Have the need and ability to manage external DBs

## Database options

You can configure any of the following external databases with Harness Self-Managed Enterprise Edition:

- [Cloud-based MongoDB](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-mongodb-database)
- [Self-managed MongoDB](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-self-managed-mongodb)
- [Self-managed PostgreSQL](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-postgres-database)
- [Self-managed Redis](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-redis-database)
- [Self-managed TimescaleDB](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-sm-timescaledb)

</TabItem>
<TabItem value="Prod 3 replica mode w/external cloud-based DBs" label="Prod 3 replica mode w/external cloud-based DBs">

Prod 3 replica mode w/external cloud-based DBs is designed for organizations that:

- Use Harness Self-Managed Enterprise Edition in production
- Require HA
- Don't need self-managed external DBs.

</TabItem>
<TabItem value="Disaster recovery w/warm standby" label="Disaster recovery w/warm standby">

Disaster recovery w/warm standby is designed for organizations that:

- Use Harness Self-Managed Enterprise Edition in production
- Require HA
- Have the expertise to manage external DBs
- Require self-managed external DBs
- Require DR when a Kubernetes cluster or cloud region fails

For more information, go to [Set up disaster recovery](/docs/self-managed-enterprise-edition/advanced-configurations/set-up-disaster-recovery).

</TabItem>
</Tabs>
![](./static/smp-ref-arch-dt.jpg)

<details>
<summary>
Demo mode
</summary>
The demo mode reference architecture is designed for demonstration and learning purposes and includes an in-cluster database, but doesn't include backup and restore.
</details>

<details>
<summary>
Prod 1 replica mode w/in-cluster DB and Backup and Restore
</summary>
Prod 1 replica mode w/in-cluster DB and Backup and Restore is designed for organizations that use Harness Self-Managed Enterprise Edition in production but do not require HA.
</details>

<details>
<summary>
Prod 3 replica mode w/in-cluster DB and Backup and Restore
</summary>
Prod 3 replica mode w/in-cluster DB and Backup and Restore is designed for organizations that:

- Use Harness Self-Managed Enterprise Edition in production
- Require HA
- Do not have the ability to manage external DBs
</details>

<details>
<summary>
Prod 3 replica mode w/self-managed external DB
</summary>
Prod 3 replica mode w/self-managed external DB is designed for organizations that:

- Use Harness Self-Managed Enterprise Edition in production
- Require HA
- Have the need and ability to manage external DBs

## Database options

You can configure any of the following external databases with Harness Self-Managed Enterprise Edition:

- [Cloud-based MongoDB](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-mongodb-database)
- [Self-managed MongoDB](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-self-managed-mongodb)
- [Self-managed PostgreSQL](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-postgres-database)
- [Self-managed Redis](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-redis-database)
- [Self-managed TimescaleDB](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-sm-timescaledb)
</details>

<details>
<summary>
Disaster recovery w/warm standby
</summary>
Disaster recovery w/warm standby is designed for organizations that:

- Use Harness Self-Managed Enterprise Edition in production
- Require HA
- Have the expertise to manage external DBs
- Require self-managed external DBs
- Require DR when a Kubernetes cluster or cloud region fails

For more information, refer [Set up disaster recovery](/docs/self-managed-enterprise-edition/advanced-configurations/set-up-disaster-recovery).
</details>

## Benefits of the reference architectures

Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,35 @@
The following table lists the major supported features for Harness Self-Managed Enterprise Edition offerings.

Solution| Supported Platform| Connected | HA | Monitoring| Disaster Recovery |
| :-----------------------------------------------------------------: | :----------------------------: | :-----------: | :----------------: | :-------------------: | :-----------------: |
| Kubernetes Cluster| Kubernetes - GKE - AKS - EKS | Yes| Yes | Prometheus, Grafana | Yes
| Feature | Supported |
|------------------------|----------------------------------------------------------------|
| Cloud Platform | <li>EKS</li><li>GKE</li><li>AKS</li> |
| Databases | <li>[Mongo](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-self-managed-mongodb)</li><li>[Postgres](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-postgres-database)</li> <li>CloudSQL</li> <li>RDS [Learn more](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/configure-external-databases#database-options).</li> |
| High availability(HA) | [Yes](/docs/self-managed-enterprise-edition/advanced-configurations/external-db/use-an-external-postgres-database/#high-availability) |
| Disaster Recovery (DR) | [Active-Passive](/docs/self-managed-enterprise-edition/advanced-configurations/set-up-disaster-recovery/) |
| Backup and Restore | Yes ([Velero](/docs/self-managed-enterprise-edition/back-up-and-restore-helm)) |
| Networking | <li>Istio/Nginx</li><li>[ALB/NLB/GCLB](/docs/self-managed-enterprise-edition/install/install-using-helm/#add-a-load-balancer).</li> |
| Monitoring | <li>[Prometheus](/docs/self-managed-enterprise-edition/monitor-harness-on-prem#set-up-prometheus-in-cluster).</li><li>[Grafana](/docs/self-managed-enterprise-edition/monitor-harness-on-prem#view-metrics-on-the-grafana-dashboard).</li> |
| Air-gapped | [Yes](/docs/self-managed-enterprise-edition/install/install-in-an-air-gapped-environment/) |

### Self-Managed Enterprise Edition Release cadence
Harness releases Self-Managed Enterprise Edition on a monthly basis. Additionally, periodic hot-fixes are released as needed. Self-Managed Enterprise Edition takes a branch cut of Harness SaaS release and creates a Release Candidate which goes through the iteration of testing and bug fixing process after which the release candidate is released.

### Supported Kubernetes versions
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add which cloud providers we have tested and add them

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


| Kubernetes Version | Supported | Notes |
|--------------------|-----------|--------------------------------------------------------------------------------------------------------------|
| 1.30 | Yes | Starting with EKS 1.30 (AWS), the support for default annotation on the storage class has been removed. For Harness to work, please update your overrides to include the `storageClassName` (gp2, gp3, etc) by updating the following values: <br /><br /> global: <br /> &nbsp;&nbsp;&nbsp;&nbsp;storageClass: "gp3" <br /> &nbsp;&nbsp;&nbsp;&nbsp;storageClassName: "gp3" |
| 1.29 | Yes | |
| 1.28 | Yes | |
| 1.27 | Yes | |
| Kubernetes Version | Supported | Notes |
|-------------------------------------------|-----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| <li>1.30</li> | Yes | Starting with EKS 1.30 (AWS), the support for default annotation on the storage class has been removed. For Harness to work, please update your overrides to include the `storageClassName` (gp2, gp3, etc) by updating the following values: <br /><br /> global: <br /> &nbsp;&nbsp;&nbsp;&nbsp;storageClass: "gp3" <br /> &nbsp;&nbsp;&nbsp;&nbsp;storageClassName: "gp3" |
| <li>1.29</li> <li>1.28</li> <li>1.27</li> | Yes | |


* Effective October 7, 2022, with the release of version 76918, Self-Managed Enterprise Edition no longer supports Kubernetes open-source versions 1.18 and earlier.
* Self-Managed Enterprise Edition supports the other versions of Kubernetes you use on a best-effort basis.

### Terms of support

The support policy is 12 months of full support, followed by 6 months of limited support for critical security fixes only.

Harness Self-Managed Enterprise Edition does not introduce changes that break compatibility with supported versions of Kubernetes. For example, Self-Managed Enterprise Edition does not use features from Kubernetes version n that do not work in Kubernetes version n-2.
The Harness Self-Managed Enterprise Edition ensures compatibility with supported Kubernetes versions and does not introduce changes that could break this compatibility. For instance, it does not utilize features from Kubernetes version n that are incompatible with version n-2.

Installation and upgrade preflight checks provide warnings when you use unsupported Kubernetes versions.

In cases where you encounter a problem related to an incompatibility issue, you must upgrade your cluster. Harness does not issue a patch to accommodate the use of unsupported Kubernetes versions.
In cases where you encounter a problem related to an incompatibility issue, you must upgrade your cluster. Harness does not issue a patch to accommodate the use of unsupported Kubernetes versions.
Loading