Skip to content

Commit

Permalink
Merge branch 'master' into docs/building-components
Browse files Browse the repository at this point in the history
  • Loading branch information
andriitserkovnyi committed Oct 4, 2023
2 parents 77d1b96 + 3b6399a commit a7b348f
Show file tree
Hide file tree
Showing 14 changed files with 1,100 additions and 18 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/build-changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Build changelog
on:
push:
tags:
- "08.2023"
- "09.2023"

jobs:
release:
Expand Down Expand Up @@ -31,6 +31,8 @@ jobs:
}
]
}'
fromTag: "08.2023"
toTag: "09.2023"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand Down
18 changes: 14 additions & 4 deletions _data/sidebars/scos_dev_sidebar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1004,9 +1004,9 @@ entries:
- "202307.0"
nested:
- title: How to send a request in Data Exchange API
url: /docs/scos/dev/glue-api-guides/dynamic-data-api/how-to-guides/how-to-send-request-in-data-exchange-api.html
url: /docs/scos/dev/glue-api-guides/data-exchange-api/how-to-guides/how-to-send-request-in-data-exchange-api.html
- title: How to configure Data Exchange API endpoints.
url: /docs/scos/dev/glue-api-guides/dynamic-data-api/how-to-guides/how-to-configure-data-exchange-api.html
url: /docs/scos/dev/glue-api-guides/data-exchange-api/how-to-guides/how-to-configure-data-exchange-api.html
- title: Feature integration guides
url: /docs/scos/dev/feature-integration-guides/feature-integration-guides.html
include_versions:
Expand Down Expand Up @@ -1378,8 +1378,8 @@ entries:
url: /docs/scos/dev/feature-integration-guides/glue-api/decoupled-glue-infrastructure/glue-api-documentation-generation.html
include_versions:
- "202204.0"
- title: Data Exchange API integration
url: /docs/scos/dev/feature-integration-guides/glue-api/dynamic-data-api/data-exchange-api-integration.html
- title: Install the Data Exchange API
url: /docs/scos/dev/feature-integration-guides/glue-api/data-exchange-api/install-the-data-exchange-api.html
include_versions:
- "202307.0"
- title: Agent Assist
Expand Down Expand Up @@ -3440,13 +3440,21 @@ entries:
url: /docs/scos/dev/front-end-development/oryx/architecture/oryx-server-side-rendering.html

- title: Marketplace
url: /docs/scos/dev/front-end-development/marketplace/marketplace-frontend.html
include_versions:
- "202204.0"
- "202212.0"
- "202307.0"
nested:
- title: Extend the Marketplace frontend
url: /docs/scos/dev/front-end-development/marketplace/extend-the-marketplace-frontend.html
include_versions:
- "202204.0"
- "202212.0"
- title: Extend the Merchant Portal frontend
url: /docs/scos/dev/front-end-development/marketplace/extend-the-merchant-portal-frontend.html
include_versions:
- "202307.0"
- title: "Table design"
url: /docs/scos/dev/front-end-development/marketplace/table-design/table-design.html
nested:
Expand Down Expand Up @@ -4819,6 +4827,8 @@ entries:
url: /docs/scos/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/spryker-security-checker.html
- title: Single plugin argument
url: /docs/scos/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/single-plugin-argument.html
- title: Spryker dev packages checker
url: /docs/scos/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/spryker-dev-packages-checker.html
- title: Ignore evaluation errors
url: /docs/scos/dev/guidelines/keeping-a-project-upgradable/ignore-evaluation-errors.html
- title: Performance guidelines
Expand Down
3 changes: 2 additions & 1 deletion _scripts/sidebar_checker/excludelist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ drafts-dev
# Documents to exclude:
docs/scos/user/overview-of-features/202204.0/overview-of-features.md
docs/scos/user/overview-of-features/202212.0/overview-of-features.md
index.md
index.md
docs/scos/dev/feature-integration-guides/202307.0/glue-api/dynamic-data-api/data-exchange-api-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Unlike in cloud, in a local environment, these commands are executed by a CLI co

## Memory management

One of the most common issues encountered with Jenkins is excessive memory usage. In a local development environment, Docker containers are usually set up to use as much RAM as they need as long as they stay within the RAM limit configured in Docker. This limit often corresponds to the total RAM available on the machine. However, when deployed to cloud, the Jenkins container is deployed to its own dedicated server, which limits the available RAM based on the server's configuration. Non-production environments have different RAM configuration tiers, which can be found in our Service Description. Standard environments typically assign 2 GB of RAM to Jenkins. This means that the server running Jenkins has a total of 2%nbspGB of RAM. Considering some overhead for the operating system, Docker, and Jenkins itself, around 1-1.5 GB of memory is usually available for PHP code execution. This shared memory needs to accommodate all console commands run on Jenkins. Therefore, if you set `php memory_limit` to 1 GB and have a job that requires 1 GB at any given time, no other job can run in parallel without risking a memory constraint and potential job failures. The `php memory_limit` does not control the total memory consumption by any PHP process but limits the amount each individual process can take.
One of the most common issues encountered with Jenkins is excessive memory usage. In a local development environment, Docker containers are usually set up to use as much RAM as they need as long as they stay within the RAM limit configured in Docker. This limit often corresponds to the total RAM available on the machine. However, when deployed to cloud, the Jenkins container is deployed to its own dedicated server, which limits the available RAM based on the server's configuration. Non-production environments have different RAM configuration tiers, which can be found in our Service Description. Standard environments typically assign 2 GB of RAM to Jenkins. This means that the server running Jenkins has a total of 2 GB of RAM. Considering some overhead for the operating system, Docker, and Jenkins itself, around 1-1.5 GB of memory is usually available for PHP code execution. This shared memory needs to accommodate all console commands run on Jenkins. Therefore, if you set `php memory_limit` to 1 GB and have a job that requires 1 GB at any given time, no other job can run in parallel without risking a memory constraint and potential job failures. The `php memory_limit` does not control the total memory consumption by any PHP process but limits the amount each individual process can take.

We recommend profiling your application to understand how much RAM your Jenkins jobs require. A good way to do this is by utilizing XDebug Profiling in your local development environment. Jobs that may have unexpected memory demands are the `queue:worker:start` commands. These commands are responsible for spawning the `queue:task:start` commands, which consume messages from RabbitMQ. Depending on the complexity and configured chunk size of these messages, these jobs can easily consume multiple GBs of RAM.

Expand All @@ -24,3 +24,7 @@ We recommend profiling your application to understand how much RAM your Jenkins
Jenkins executors let you orchestrate Jenkins jobs and introduce parallel processing. By default, Jenkins instances have two executors configured, similar to local environment setups. You can adjust the executor count freely and run many console commands in parallel. While this may speed up processing in your application, it increases the importance of understanding the memory utilization profile of your application. For stable job execution, you need to ensure that no parallelized jobs collectively consume more memory than what is available to the Jenkins container. Also, it is common practice to set the number of executors to the count of CPUs available to Jenkins. Standard environments are equipped with two vCPUs, which means that configuring more than the standard two executors risks jobs "fighting" for CPU cycles. This severely limits the performance of all jobs run in parallel and potentially introduces instability to the container itself.

We recommend sticking to the default executor count or the concurrent job limit recommended in the Spryker Service Description for your package. This will help ensure the stability of Jenkins, as configuring more Jenkins Executors is the most common cause of Jenkins instability and crashes.

## Queue worker configuration

If you have configured multiple queue workers per queue, keep in mind that the comments made above regarding memory management also apply in this scenario. Each configured queue worker can consume up to PHP's max_memory, causing a significant increase in total memory demand as they are spawned. Another crucial factor to take into consideration is CPU utilization. If you have configured more workers than the number of available cores, it becomes increasingly likely that processes will need to wait for CPU resources. This can ultimately lead to suboptimal performance and potentially even stability issues. We recommend avoiding resource contention of this nature by adjusting the number of workers in a manner that aligns with your environment package. Our service description specifies the number of CPU cores available to you in each package.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ Before integrating Vertex, ensure the following prerequisites are met:
- The Vertex app catalog page lists specific packages that must be installed or upgraded before you can use the Vertex app. To check the list of the necessary packages, in the Back Office, go to **Apps**-> **Vertex**.
Ensure that your installation meets these requirements.

- Make sure that your deployment pipeline executes DB migrations.

## 1. Integrate ACP connector module for tax calculation

To enable the Vertex integration, you need to integrate the [spryker/tax-app](https://github.com/spryker/tax-app) ACP connector module first.
Expand Down Expand Up @@ -51,13 +53,13 @@ $config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [
$config[MessageBrokerConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [
// ...

'tax-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT,
'tax-commands' => MessageBrokerAwsConfig::SQS_TRANSPORT,
];

$config[MessageBrokerConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [
// ...

'payment-tax-invoice-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT,
'payment-tax-invoice-commands' => 'http',
];
```

Expand Down Expand Up @@ -203,7 +205,7 @@ Add the config to `src/Pyz/Zed/Oms/OmsDependencyProvider.php`:
```php
// ...

use Spryker\Zed\TaxApp\Communication\Plugin\Oms\Command\SendPaymentTaxInvoicePlugin;
use Spryker\Zed\TaxApp\Communication\Plugin\Oms\Command\SubmitPaymentTaxInvoicePlugin;

// ...

Expand All @@ -218,7 +220,7 @@ use Spryker\Zed\TaxApp\Communication\Plugin\Oms\Command\SendPaymentTaxInvoicePlu

// ...

$commandCollection->add(new SendPaymentTaxInvoicePlugin(), 'TaxApp/SubmitPaymentTaxInvoice');
$commandCollection->add(new SubmitPaymentTaxInvoicePlugin(), 'TaxApp/SubmitPaymentTaxInvoice');

// ...

Expand Down
Loading

0 comments on commit a7b348f

Please sign in to comment.