Skip to content

Commit

Permalink
Release 1.0 (sap-architecture#5)
Browse files Browse the repository at this point in the history
Change Log

2020-09-06

[Tomas Krojzl] Updated final content for following sections:
- Platform Specific Architecture
     - Cloud IaaS: AWS
     - Cloud IaaS: Azure

[Tomas Krojzl] Removed following sections (will be published in next release):
- Platform Specific Architecture
     - Cloud IaaS: IBM Cloud
- Operational Procedures
     - High Availability (HA) Operation
     - Disaster Recovery (DR) Operation
     - SAP HANA Instance Move
     - SAP HANA Tenant Move

2020-05-13

[Tomas Krojzl] Written initial content for following sections (Ready for Review):
- Platform Specific Architecture
     - IaaS Cloud: AWS
     - IaaS Cloud: Azure

[Tomas Krojzl] Updated initial content for following sections (Ready for Review):
- Generic SAP HANA Architecture
     - Module: Data Tiering Options

2020-05-12

[Vladimir Kovarik] Updated sections Azure: Virtual Hostname/IP in pages/platform_specific_architecture/cloud_iaas_azure.md

2020-04-23

[Vladimir Kovarik] Updated sections AWS: Virtual Hostname/IP in pages/platform_specific_architecture/cloud_iaas_aws.md

2019-12-19

[Tomas Krojzl] Written initial content for following sections (Ready for Review):
- Requirements
- Architectural Decisions
- Generic SAP HANA Architecture
     - Overall Architecture and Modularity
     - Module: Basic Architecture
     - Module: Virtual Hostname/IP
     - Module: High Availability
     - Module: Disaster Recovery
     - Module: Data Tiering Options
     - Module: SAP XSA
     - Alternative Implementations

[Tomas Krojzl] Created basic structure for following sections
- Platform Specific Architecture
     - IaaS Cloud: AWS
     - IaaS Cloud: Azure
     - IaaS Cloud: IBM Cloud
- Operational Procedures
     - High Availability (HA) Operation
     - Disaster Recovery (DR) Operation
     - SAP HANA Instance Move
     - SAP HANA Tenant Move

[Tomas Krojzl] Updated content of CONTRIBUTING.md file
  • Loading branch information
krojzl authored Aug 7, 2020
1 parent 9ef2612 commit be6fc3e
Show file tree
Hide file tree
Showing 48 changed files with 3,547 additions and 48 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@

# Visual Studio 2015/2017 cache/options directory
.vs/
.vscode/
.DS_Store

69 changes: 69 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,74 @@
# Change Log

## 2020-09-06

- [Tomas Krojzl] Updated final content for following sections:

> 4) Platform Specific Architecture
> - Cloud IaaS: AWS
> - Cloud IaaS: Azure
- [Tomas Krojzl] Removed following sections (will be published in next release):

> 4) Platform Specific Architecture
> - Cloud IaaS: IBM Cloud
> 5) Operational Procedures
> - High Availability (HA) Operation
> - Disaster Recovery (DR) Operation
> - SAP HANA Instance Move
> - SAP HANA Tenant Move
## 2020-05-13

- [Tomas Krojzl] Written initial content for following sections (Ready for Review):

> 4) Platform Specific Architecture
> - IaaS Cloud: AWS
> - IaaS Cloud: Azure
- [Tomas Krojzl] Updated initial content for following sections (Ready for Review):

> 3) Generic SAP HANA Architecture
> - Module: Data Tiering Options
## 2020-05-12

- [Vladimir Kovarik] Updated sections _Azure: Virtual Hostname/IP_ in `pages/platform_specific_architecture/cloud_iaas_azure.md`

## 2020-04-23

- [Vladimir Kovarik] Updated sections _AWS: Virtual Hostname/IP_ in `pages/platform_specific_architecture/cloud_iaas_aws.md`

## 2019-12-19

- [Tomas Krojzl] Written initial content for following sections (Ready for Review):

> 1) Requirements
> 2) Architectural Decisions
> 3) Generic SAP HANA Architecture
> - Overall Architecture and Modularity
> - Module: Basic Architecture
> - Module: Virtual Hostname/IP
> - Module: High Availability
> - Module: Disaster Recovery
> - Module: Data Tiering Options
> - Module: SAP XSA
> - Alternative Implementations
- [Tomas Krojzl] Created basic structure for following sections

> 4) Platform Specific Architecture
> - IaaS Cloud: AWS
> - IaaS Cloud: Azure
> - IaaS Cloud: IBM Cloud
> 5) Operational Procedures
> - High Availability (HA) Operation
> - Disaster Recovery (DR) Operation
> - SAP HANA Instance Move
> - SAP HANA Tenant Move
- [Tomas Krojzl] Updated content of `CONTRIBUTING.md` file

## 2019-08-08

- [Tomas Krojzl] Written initial content of `CONTRIBUTING.md` file
Expand Down
81 changes: 49 additions & 32 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,28 @@

If you want to contribute to a project and make it better, your help is very welcome. Please see below instructions how to contribute.

## Table of Content

* [1. Initial Setup](#1-initial-setup)
* [2. Recurrent synchronization](#2-recurrent-synchronization)
* [3. Add new Content and Commit](#3-add-new-content-and-commit)
* [4. Upload to main project repository](#4-upload-to-main-project-repository)
<!-- TOC -->

- [How to Contribute](#how-to-contribute)
- [1. Initial Setup](#1-initial-setup)
- [1.1. Create GitHub user](#11-create-github-user)
- [1.2. Add SSH key](#12-add-ssh-key)
- [1.3. Fork the repository](#13-fork-the-repository)
- [1.4. Clone the forked repository](#14-clone-the-forked-repository)
- [1.5. Configure synchronization](#15-configure-synchronization)
- [2. Recurrent synchronization](#2-recurrent-synchronization)
- [2.1. Download new content from main project repository](#21-download-new-content-from-main-project-repository)
- [2.2. Upload merged content to your GitHub repository](#22-upload-merged-content-to-your-github-repository)
- [3. Add new Content and Commit](#3-add-new-content-and-commit)
- [3.1. Add or edit the documentation](#31-add-or-edit-the-documentation)
- [3.2. Commit the content to your local repository](#32-commit-the-content-to-your-local-repository)
- [3.3. Push changes to GitHub](#33-push-changes-to-github)
- [4. Upload to main project repository](#4-upload-to-main-project-repository)
- [4.1. Synchronize your content with main project](#41-synchronize-your-content-with-main-project)
- [4.2. Update CHANGELOG.md file](#42-update-changelogmd-file)
- [4.3. Create Pull Request](#43-create-pull-request)

<!-- /TOC -->

## 1. Initial Setup

Expand All @@ -25,9 +41,9 @@ Detailed instructions are here: <https://help.github.com/en/articles/adding-a-ne

### 1.3. Fork the repository

Forking the repository will create your own personal copy of the repository.
Forking the `devel` repository will create your own personal copy of the repository.

1. Navigate to the project repository: <https://github.com/sap-architecture/sap-hana>
1. Navigate to the project repository: <https://github.com/sap-architecture-devel/sap-hana>

2. Click on `Fork` button in upper-right corner of the page

Expand Down Expand Up @@ -87,16 +103,16 @@ Configure forked repository synchronization with main project repository.
origin [email protected]:<YOUR-USER>/sap-hana.git (push)
```

3. Add link to main project repository: `git remote add upstream [email protected]:sap-architecture/sap-hana.git`
3. Add link to main project repository: `git remote add upstream [email protected]:sap-architecture-devel/sap-hana.git`

4. List again defined remote repositories:

```bash
# git remote -v
origin [email protected]:<YOUR-USER>/sap-hana.git (fetch)
origin [email protected]:<YOUR-USER>/sap-hana.git (push)
upstream [email protected]:sap-architecture/sap-hana.git (fetch)
upstream [email protected]:sap-architecture/sap-hana.git (push)
upstream [email protected]:sap-architecture-devel/sap-hana.git (fetch)
upstream [email protected]:sap-architecture-devel/sap-hana.git (push)
```

Detailed instructions are here: <https://help.github.com/en/articles/fork-a-repo>
Expand All @@ -111,7 +127,7 @@ Download and merge new updates from main project repository into your local repo

1. Open Terminal and change directory to location of your local copy of the repository: `cd /path-to-your-repository/sap-hana`

2. Fetch the branchges and their content from the main project repository:
2. Fetch the branches and their content from the main project repository:

```bash
# git fetch upstream
Expand All @@ -120,7 +136,7 @@ Download and merge new updates from main project repository into your local repo
remote: Compressing objects: 100% (10/10), done.
remote: Total 11 (delta 0), reused 10 (delta 0), pack-reused 0
Unpacking objects: 100% (11/11), done.
From github.com:sap-architecture/sap-hana
From github.com:sap-architecture-devel/sap-hana
* [new branch] master -> upstream/master
```

Expand Down Expand Up @@ -187,10 +203,10 @@ The documentation is written in Markdown language.

Additional information about Markdown:

* [Basic writing and formatting syntax](https://help.github.com/en/articles/basic-writing-and-formatting-syntax)
* [Working with advanced formatting](https://help.github.com/en/articles/working-with-advanced-formatting)
* [Mastering Markdown](https://guides.github.com/features/mastering-markdown)
* [GitHub Flavored Markdown Spec](https://github.github.com/gfm)
- [Basic writing and formatting syntax](https://help.github.com/en/articles/basic-writing-and-formatting-syntax)
- [Working with advanced formatting](https://help.github.com/en/articles/working-with-advanced-formatting)
- [Mastering Markdown](https://guides.github.com/features/mastering-markdown)
- [GitHub Flavored Markdown Spec](https://github.github.com/gfm)

Images should be uploaded into subdirectory `images` below directory where the page referencing the image is located.

Expand All @@ -200,14 +216,15 @@ Make sure you name all images and files in clear way.

All links to pages, images or files located in this repository should be based on relative paths - avoid using absolute paths as this will break the link functionality in forked repositories.

Use your favorite editor to add new content. Use Linting function to deliver clean and well structured documentation.
Use your favorite editor to add new content. Use Linting function to deliver clean and well-structured documentation.

Recommended editors:

* [Visual Studio Code](https://code.visualstudio.com)
* plugin [Markdown All in One](https://github.com/yzhang-gh/vscode-markdown)
* plugin [Markdown Lint](https://github.com/DavidAnson/vscode-markdownlint)
* [Atom Editor](https://atom.io)
- [Visual Studio Code](https://code.visualstudio.com)
- plugin [Markdown All in One](https://github.com/yzhang-gh/vscode-markdown)
- plugin [Markdown Lint](https://github.com/DavidAnson/vscode-markdownlint)
- plugin [Auto Markdown TOC](https://github.com/huntertran/markdown-toc)
- [Atom Editor](https://atom.io)

### 3.2. Commit the content to your local repository

Expand Down Expand Up @@ -237,10 +254,10 @@ Use either your editor to commit the changes (recommended) or perform following

3. Add files that should be included in commit

* Add individual files: `git add <file_name>`
* Add directory: `git add <directory_name>`
- Add individual files: `git add <file_name>`
- Add directory: `git add <directory_name>`

In ordee to add all files perform `git add .`
In order to add all files, perform `git add .`

4. Check the status again

Expand Down Expand Up @@ -310,12 +327,12 @@ Follow procedure described in section [3. Add new Content and Commit](#3-add-new

Before you create Pull Request (PR) make sure that:

* you downloaded and merged latest content from main project repository
* you resolved all merge conflicts
* you pushed all changes from your local repository on your workstation to online GitHub repository
* you reviewed your content online in GitHub `https://github.com/<YOUR-USER>/sap-hana` and confirmed the content is rendering correctly - that includes:
* all images are properly displayed (and are relative)
* all links are working properly (and are relative is pointing to page in same repository)
- you downloaded and merged latest content from main project repository
- you resolved all merge conflicts
- you pushed all changes from your local repository on your workstation to online GitHub repository
- you reviewed your content online in GitHub `https://github.com/<YOUR-USER>/sap-hana` and confirmed the content is rendering correctly - that includes:
- all images are properly displayed (and are relative)
- all links are working properly (and are relative is pointing to page in same repository)

1. Navigate to the forked repository: `https://github.com/<YOUR-USER>/sap-hana`

Expand All @@ -341,6 +358,6 @@ Before you create Pull Request (PR) make sure that:

Note: Until your Pull Request is accepted all your commits that are pushed to your forked repository in GitHub will be automatically included in given Pull Request.

If you want to make commits that are not included in Pull Request consider using separate branch for your updates.
If you want to make commits that are not included in Pull Request, consider using separate branch for your updates.

Detailed instructions are here: <https://help.github.com/en/articles/creating-a-pull-request-from-a-fork>
59 changes: 43 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
# Reference Architecture for SAP HANA

<!-- TOC -->

- [Reference Architecture for SAP HANA](#reference-architecture-for-sap-hana)
- [Objective](#objective)
- [Approach](#approach)
- [Table of Content](#table-of-content)
- [Contributing](#contributing)

<!-- /TOC -->

## Objective

SAP HANA database is offering many different options how to design the infrastructure.

There are different ways how to implement High Availability (HA) and Disaster Recovery (DR) and there are many optional SAP HANA extensions (like Extension Nodes, Dynamic Tiering, XSA, etc.) that can be deployed.

There are various considerations that must be taken into account when designing infrastructure - for example ability to seamlesly move tenant (tenant portability) or whole instance (instance portability) without breaking external connectivity to the component.
There are various considerations that must be taken into account when designing infrastructure - for example ability to seamlessly move tenant (tenant portability) or whole instance (instance portability) without breaking external connectivity to the component.

Additional challenge is how to configure hostname resolution for individual virtual IPs to enable support for certificates and ensure their validity in relation to tenant or instance portability.

Expand All @@ -18,7 +28,7 @@ It is important to state that other architectures are still valid (as long as fo

## Approach

The approach taken by the team is driven by the opinion that it is more simple to remove the features rather than to add them and make them working in harmony with the rest of the design.
The approach taken by the team is driven by the opinion that it is simpler to remove the features rather than to add them and make them work in harmony with the rest of the design.

Basic steps are following:

Expand All @@ -30,20 +40,37 @@ Basic steps are following:

## Table of Content

* [Change Log](CHANGELOG.md)
* [How to Contribute](CONTRIBUTING.md)

1. Requirements
2. Architectural Decisions
3. Infrastructure Architecture
4. Simplified versions of Infrastructure Architecture
5. Platform specific implementations
* IaaS Cloud: AWS
* IaaS Cloud: Azure
* IaaS Cloud: GCP
* On-premise: VMware
* On-premise: Bare Metal
- [Change Log](CHANGELOG.md#change-log)
- [How to Contribute](CONTRIBUTING.md#how-to-contribute)

1. [Requirements](pages/requirements.md#requirements)
2. [Architectural Decisions](pages/architectural_decisions.md#architectural-decisions)
3. Generic SAP HANA Architecture
- [Overall Architecture and Modularity](pages/generic_architecture/overall_architecture.md#overall-architecture-and-modularity)
- [Module: Basic Architecture](pages/generic_architecture/module_basic_architecture.md#module-basic-architecture)
- [Module: Virtual Hostname/IP](pages/generic_architecture/module_virtual_hostname.md#module-virtual-hostnameip)
- [Module: High Availability](pages/generic_architecture/module_high_availability.md#module-high-availability)
- [Module: Disaster Recovery](pages/generic_architecture/module_disaster_recovery.md#module-disaster-recovery)
- [Module: Data Tiering Options](pages/generic_architecture/module_data_tiering.md#module-data-tiering-options)
- [Module: SAP XSA](pages/generic_architecture/module_xsa.md#module-sap-xsa)
- [Alternative Implementations](pages/generic_architecture/alternative_implementations.md#alternative-implementations)
4. Platform Specific Architecture
- [Cloud IaaS: AWS](pages/platform_specific_architecture/cloud_iaas_aws.md#platform-specific-architecture-for-aws-amazon-web-services)
- [Cloud IaaS: Azure](pages/platform_specific_architecture/cloud_iaas_azure.md#platform-specific-architecture-for-azure-microsoft-azure)
- Cloud IaaS: IBM Cloud
- Cloud IaaS: Google
- On-premise: VMware
- On-premise: IBM Power
5. Operational Procedures
- High Availability (HA) Operation
- Disaster Recovery (DR) Operation
- SAP HANA Instance Move
- SAP HANA Tenant Move
6. Additional Information
- SAP HANA: Network Latency Requirements
- SAP HANA: Stacking Options (MCOD, MCOS, MDC)
- SAP HANA: Certificate setup

## Contributing

Please refer to [How to Contribute](CONTRIBUTING.md) to understand how to contribute to this project.
Please refer to [How to Contribute](CONTRIBUTING.md#how-to-contribute) to understand how to contribute to this project.
41 changes: 41 additions & 0 deletions export/export.awk
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
BEGIN {
regex_nohttp = "[^!]\\[[^\\]]*\\]\\([^\\)]+#[^\\)]+\\)";
regex_http = "\\[[^\\]]*\\]\\(http[^\\)]+#[^\\)]+\\)";
regex_httpsub = "\\([^#(]+#";
regex_img = "!\\[[^\\]]*\\]\\([^\\)]+\\)";
regex_imgsub = "\\((\\.\\./)*images";
}

{
# fix links
line_sub = $0;
line_new = "";
after = line_sub;
while (match(line_sub, regex_nohttp)) {
before = substr(line_sub,1,RSTART);
pattern = substr(line_sub,RSTART+1,RLENGTH-1);
after = substr(line_sub,RSTART+RLENGTH);
if (pattern !~ regex_http) {
sub(regex_httpsub, "(#", pattern);
}
line_new = line_new before pattern;
line_sub = after;
}
line_new = line_new after;

# fix images
line_sub = line_new;
line_new = "";
after = line_sub;
while (match(line_sub, regex_img)) {
before = substr(line_sub,1,RSTART-1);
pattern = substr(line_sub,RSTART,RLENGTH);
after = substr(line_sub,RSTART+RLENGTH);
sub(regex_imgsub, "(../images", pattern);
line_new = line_new before pattern;
line_sub = after;
}
line_new = line_new after;

print line_new;
}
Loading

0 comments on commit be6fc3e

Please sign in to comment.