算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
btp-best-practices【设计与创意】SAP BTP enterprise architecture best practices — runtime selection (CF vs Kyma), CAP project setup, MTA structure, XSUAA security, destination management, resilience patterns, CI/CD pipeline design, observability, cost optimization. Use when designing BTP solutions or implementing deployment pipelines.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: btp-best-practices description: SAP BTP enterprise architecture best practices — runtime selection (CF vs Kyma), CAP project setup, MTA structure, XSUAA security, destination management, resilience patterns, CI/CD pipeline design, observability, cost optimization. Use when designing BTP solutions or implementing deployment pipelines. trigger:
cf CLI with MultiApps plugin: cf install-plugin multiappsnpm install -g @sap/cds-dknpm install -g mbtRule: Default to CF unless you need custom containers, sidecars, or K8s-native features.
cds init my-project
cd my-project
cds add mta # generates mta.yaml
cds add app # adds UI (SAP Fiori elements)
cds add xs-security # adds xs-security.json
cds add hana # adds HANA persistence
mbt build
cf deploy mta_archives/my-project_1.0.0.mtar
_schema-version: "3.1"
ID: my-project
version: 1.0.0
modules:
- name: my-project-srv
type: nodejs
path: gen/srv
requires:
- name: my-project-hdi
- name: my-project-xsuaa
parameters:
memory: 512M
resources:
- name: my-project-hdi
type: com.sap.xs.hdi-container
- name: my-project-xsuaa
type: org.cloudfoundry.managed-service
parameters:
service: xsuaa
service-plan: application
config: xs-security.json
{
"xsappname": "my-project",
"tenant-mode": "dedicated",
"scopes": [
{ "name": "$XSAPPNAME.User" },
{ "name": "$XSAPPNAME.Admin" }
],
"role-templates": [
{ "name": "User", "scope-references": ["$XSAPPNAME.User"] },
{ "name": "Admin", "scope-references": ["$XSAPPNAME.User", "$XSAPPNAME.Admin"] }
]
}
{
"Name": "s4hana-backend",
"Type": "HTTP",
"URL": "https://s4hana.internal.corp:443",
"ProxyType": "OnPremise",
"Authentication": "PrincipalPropagation",
"sap-client": "100"
}
Requires Cloud Connector installed and configured with trust to BTP subaccount.
For CAP: cds require @sap/cds-feature-resilience (Node.js) or resilience4j (Java).
stages:
- build: mbt build
- test: cds test
- lint: eslint && cds lint
- deploy-dev: cf deploy mta_archives/*.mtar
- smoke: curl -sf https://dev.app.example.com/health
- deploy-prd: manual approval gate
cf scale to right-size memory (start 256M, increase on OOM)data_volume_limit sized to actual usageDeploy fails: "service instance not found"
name in mta.yaml matches cf services output exactlyXSUAA token expires mid-session
oauth2-configuration.token-validity in xs-security.jsonOn-premise destination returns 403
App crashes with "memory exceeded"
cf scale my-app -m 1G or optimize memory leaks; monitor via cf app my-appService quota exceeded on deploy
MTA ID mismatch causes XSUAA conflict
ID differs from xsappname in xs-security.jsonID and xsappname identical to avoid scope registration errors# Verify deployment
cf apps
cf services
# Health check
curl -sf https://<app-route>/health
# Verify XSUAA scopes
cf env my-project-srv | grep -A20 xsuaa
# Check destination connectivity
cf curl "/v3/service_instances/<destination-guid>/parameters"
Confirm:
cf deploy completes with zero errorscf services show "create failed" status