Skip to content

Commit e287a05

Browse files
mlenkeitandreasschlosserArkadiyPonomarovfmuimirzakopic
committed
Release 1.3.0
Co-authored-by: Andreas Schlosser <andreas.schlosser@sap.com> Co-authored-by: Arkadiy Ponomarov <arkadiy.ponomarov@sap.com> Co-authored-by: Florian Mueller <florian.mueller02@sap.com> Co-authored-by: Maximilian Lenkeit <maximilian.lenkeit@sap.com> Co-authored-by: Mirza Kopic <mirza.kopic@sap.com> Co-authored-by: Simon Heimler <simon.heimler@sap.com> Co-authored-by: Vasu Chandrasekhara <vasu.chandrasekhara@sap.com> Co-authored-by: Vyshnavi Gadamsetti <v.gadamsetti@sap.com> Co-authored-by: VyshnaviGadamsetti <v.gadamsetti@sap.com>
1 parent d5cd7c4 commit e287a05

File tree

169 files changed

+7617
-2539
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

169 files changed

+7617
-2539
lines changed

RELEASE.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Release
2+
3+
Here's some unstructured release process notes for publishing this to GitHub.com:
4+
5+
```bash
6+
PREVIOUS_TAG=v1.1.1
7+
CURRENT_TAG=v1.2.2
8+
9+
# TODO: checkout CURRENT_TAG as branch
10+
git reset --soft v1.1.1
11+
git log --reverse --pretty=format:"%s%n%b%n" v1.1.1..v1.2.2 | grep -i 'co-author' > co-authors.txt
12+
git commit -m "Release 1.2.2
13+
14+
$(git log --reverse --pretty=format:'%s%n%b%n' v1.1.1..v1.2.2 | grep -i 'co-author')"
15+
# TODO: keep commit id
16+
17+
# TODO: checkout published branch
18+
# TODO: cherry-pick commit from above
19+
# TODO: push
20+
```
File renamed without changes.

blog/2025-03-05-lcm-configuration-installation-reconsidered.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ Typical applications of this pattern are operating system level packages handled
186186

187187
In many cases, frameworks are able to handle multiple specialized installers or functions for different kinds of installation steps. The configuration may describe multiple, often typed elements. Every type is then associated with special code, which is responsible for mapping the described elements of this type to associated real-world elements in the target environment[^4].
188188

189-
[^4]: The [control, data plane concept](/control-planes/kid) of *Kubernetes* is an example for this pattern.
189+
[^4]: The [control, data plane concept](/best-practices/control-planes/kid) of *Kubernetes* is an example for this pattern.
190190

191191
<ApeiroFigure src="/lcm/img/installation-extensible-framework.svg"
192192
alt="Installation with extensible framework"
@@ -324,7 +324,7 @@ It is able to handle multiple, potentially different installations by
324324
explicit general-purpose coding able to execute any manipulation of a target
325325
environment.
326326

327-
A modern implementation of such a framework is the [Kubernetes Resource Model](/digital-twins/krm) architecture, which also provides a runtime for controllers or operators, whose code can be written in general-purpose programming languages. *KRM* allows to describe the *what* in simple configuration formats with pure data. The controllers then are responsible for the *how*.
327+
A modern implementation of such a framework is the [Kubernetes Resource Model](/best-practices/digital-twins/krm) architecture, which also provides a runtime for controllers or operators, whose code can be written in general-purpose programming languages. *KRM* allows to describe the *what* in simple configuration formats with pure data. The controllers then are responsible for the *how*.
328328

329329
Controllers also have access to the data plane. They can evaluate references and access appropriate other configuration resources. Following the reconciliation approach, dynamic dataflow can be achieved among different kinds of resources/configurations.
330330

@@ -358,7 +358,7 @@ With product-specific operators and by adhering to the below four principles it
358358
**4. Data and Metadata in Data Plane**
359359

360360
Support emergence by ensuring that all configuration data and metadata is queryable via API (with a consistent model). This empowers others to develop APIs and controllers on top of existing functionality in unforeseen ways.
361-
361+
362362
:::
363363

364364
With these four principles, the actual controller implementation behind a versioned API contract can be exchanged without breaking changes. This is a key feature to future-proof investments in lifecycle management.
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
title: 'Open Resource Discovery (ORD): A New Open Standard for Discovering Services, Events, and Data Products'
3+
authors:
4+
- Simon-Heimler
5+
- Vyshnavi-Gadamsetti
6+
draft: true
7+
---
8+
{/* truncate */}
9+
10+
## Open Resource Discovery (ORD): Driving Industry Wide Benefits Through Standardization
11+
12+
In complex enterprise environments, knowing which digital services, events, and data products are available — and how to integrate with them — is a well-known challenge. As businesses evolve, the ability to discover, understand, and consume digital offerings becomes increasingly critical.
13+
[Open Resource Discovery (ORD)](https://open-resource-discovery.github.io/specification/), now an independent open standard under the [Linux Foundation](https://www.linuxfoundation.org/) (via the [NeoNephos Foundation](https://neonephos.org)), was designed to solve this challenge. It provides a standard, automated way for industries to describe and publish services, events, and data products directly from their source systems, making it an ideal foundation for digital collaboration and integration across platforms.
14+
15+
## Why ORD Matters for Industries
16+
Modern enterprises operate across fragmented landscapes — diverse platforms, microservices, APIs, events, and data products. Without a common way to describe and discover these offerings, teams waste time searching, aligning, and re-validating information.
17+
18+
ORD creates a decentralized and open method for making these resources discoverable and actionable across ecosystems. Its benefits for industries include:
19+
20+
**Standardization:** Enables seamless discovery and integration across internal and external landscapes.
21+
22+
**Automation:** Enables tools and platforms to read service metadata and configure connections automatically.
23+
24+
**Trust:** Provides services, events, and data descriptions directly from the source, making them authoritative and up to date.
25+
26+
**Interoperability:** Supports common protocols and metadata formats, making it applicable across industries and platforms.
27+
28+
## ORD in Action: SAP’s Journey
29+
At SAP, ORD has been pivotal in addressing these very challenges across its own expansive ecosystem. It has enabled:
30+
- **Business Accelerator Hub / API Catalog:** By allowing SAP to publish service and API offerings in a standardized way, making it easy for customers and partners to discover and consume them.
31+
32+
- **BTP Service Landscape:** By supporting runtime introspection across SAP Business Technology Platform, making services, APIs, and events discoverable within complex landscapes.
33+
34+
- **Data Products in Business Data Fabric (BDC):** By providing a common approach to describing data products, making them more accessible and actionable for analytics, AI, and application development.
35+
36+
- **Automation and AI:** When metadata is published and connected via ORD it can help to aid automation and AI. Since many AI protocols are just APIs of specialized protocols, they can be described, catalogued and discovered via ORD, too.
37+
38+
- **Knowledge Graphs:** By making service and data's metadata discoverable, ORD contributes to building connected knowledge graphs, providing a holistic view of enterprise resources.
39+
40+
41+
## The Road Ahead for Industries
42+
With ORD now a fully independent open standard under the Linux Foundation, its potential goes far beyond any one company. Its open and collaborative nature positions it to become a cornerstone for integration, discovery, and automation across industries — from manufacturing and finance, to logistics, automotive, and beyond.
43+
44+
By adopting ORD, organizations can:
45+
46+
✅ Break down silos across their platforms and ecosystems.
47+
48+
✅ Accelerate the onboarding of services, APIs, and data offerings.
49+
50+
✅ Enable higher levels of automation and AI driven integration.
51+
52+
✅ Build a more resilient and future proof enterprise architecture.
53+
54+
55+

blog/authors.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,7 @@ mangirdas-judeikis:
66
name: Mangirdas Judeikis
77
maximilian-lenkeit:
88
name: Maximilian Lenkeit
9+
Simon-Heimler:
10+
name: Simon Heimler
11+
Vyshnavi-Gadamsetti:
12+
name: Vyshnavi Gadamsetti

docs/apeiro-terms.json

Lines changed: 286 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,286 @@
1+
{
2+
"cloud-edge continuum": {
3+
"description": "The cloud-edge continuum describes the seamless integration of edge and cloud computing, facilitating new methodologies and optimized data processing and storage within distributed networks.",
4+
"url": "https://www.8ra.com"
5+
},
6+
"platform mesh": {
7+
"description": "Enables diverse application development across the cloud-edge continuum by allowing service selection without vendor lock-in.",
8+
"url": "/:version/best-practices/platform-mesh"
9+
},
10+
"service": {
11+
"description": "A solution or active entity, which offers some API to its consumers.",
12+
"url": "/:version/best-practices/services#service"
13+
},
14+
"services": {
15+
"alias": "service"
16+
},
17+
"unmanaged service": {
18+
"description": "A service not set up and controlled by a service provider.",
19+
"url": "/:version/best-practices/services#managed-and-unmanaged-services"
20+
},
21+
"unmanaged services": {
22+
"alias": "unmanaged service"
23+
},
24+
"unmanaged": {
25+
"alias": "unmanaged service"
26+
},
27+
"managed service": {
28+
"description": "A service provided by a Managed Service Provider (MSP).",
29+
"url": "/:version/best-practices/services#managed-and-unmanaged-services"
30+
},
31+
"managed services": {
32+
"alias": "managed service"
33+
},
34+
"managed": {
35+
"alias": "managed service"
36+
},
37+
"capability": {
38+
"description": "A concrete incarnation of a service that has been created and configured for a specific application or service.",
39+
"url": "/:version/best-practices/services#capability"
40+
},
41+
"capabilities": {
42+
"alias": "capability"
43+
},
44+
"service instance": {
45+
"alias": "capability"
46+
},
47+
"service instances": {
48+
"alias": "capability"
49+
},
50+
"managed capability": {
51+
"description": "A concrete incarnation of a service that has been provided by a Managed Service Provider (MSP).",
52+
"url": "/:version/best-practices/services#managed-and-unmanaged-services"
53+
},
54+
"managed capabilities": {
55+
"alias": "managed capability"
56+
},
57+
"digital twin": {
58+
"description": "A virtual representation of a physical object, system, or process that is continuously updated with real-time or near-real-time data to mirror its real-world counterpart.",
59+
"url": "/:version/best-practices/digital-twins"
60+
},
61+
"digital twins": {
62+
"alias": "digital twin"
63+
},
64+
"service consumer": {
65+
"description": "An organization or individual that orders, utilizes, and manages the lifecycle of a service.",
66+
"url": "/:version/best-practices/services#service-suppliers-and-service-consumers"
67+
},
68+
"service consumers": {
69+
"alias": "service consumer"
70+
},
71+
"consumer": {
72+
"alias": "service consumer"
73+
},
74+
"consumers": {
75+
"alias": "service consumer"
76+
},
77+
"service supplier": {
78+
"description": "An organization or individual that offers and manages one or more services.",
79+
"url": "/:version/best-practices/services#service-suppliers-and-service-consumers"
80+
},
81+
"service suppliers": {
82+
"alias": "service supplier"
83+
},
84+
"supplier": {
85+
"alias": "service supplier"
86+
},
87+
"suppliers": {
88+
"alias": "service supplier"
89+
},
90+
"service provider": {
91+
"description": "A service provider offers services to consumers.",
92+
"url": "/:version/best-practices/services#service-provider"
93+
},
94+
"service providers": {
95+
"alias": "service provider"
96+
},
97+
"Service providers":{
98+
"alias": "service provider"
99+
},
100+
"provider": {
101+
"alias": "service provider"
102+
},
103+
"providers": {
104+
"alias": "service provider"
105+
},
106+
"managed service provider": {
107+
"alias": "service provider"
108+
},
109+
"managed service providers": {
110+
"alias": "service provider"
111+
},
112+
"msp": {
113+
"alias": "service provider"
114+
},
115+
"kubernetes resource model": {
116+
"description": "A framework used in Kubernetes to define and manage the various entities or resources.",
117+
"url": "/:version/best-practices/digital-twins/krm"
118+
},
119+
"krm": {
120+
"alias": "kubernetes resource model"
121+
},
122+
"controller": {
123+
"description": "A control loop that watch the for state changes and makes or requests changes where needed.",
124+
"url": "/:version/best-practices/digital-twins/controller"
125+
},
126+
"controllers": {
127+
"alias": "controller"
128+
},
129+
"resource": {
130+
"description": "A document defining the desired state of a capability and capturing its actual state. See also Kubernetes Resource Model (KRM).",
131+
"url": "/:version/best-practices/services#resource"
132+
},
133+
"resources": {
134+
"alias": "resource"
135+
},
136+
"service runtime": {
137+
"description": "A runtime environment that hosts one or more capabilities.",
138+
"url": "/:version/best-practices/services#service-runtime"
139+
},
140+
"service runtimes": {
141+
"alias": "service runtime"
142+
},
143+
"service coordinator": {
144+
"description": "A central component of a service provider, containing the service scheduler and the service runtime manager.",
145+
"url": "/:version/best-practices/services/managed-service-provider-pattern#service-coordinator"
146+
},
147+
"service scheduler": {
148+
"description": "A controller that identifies and assigns an service runtime to unscheduled capabilities.",
149+
"url": "/:version/best-practices/services/managed-service-provider-pattern#service-scheduler"
150+
},
151+
"service runtime manager": {
152+
"description": "A component that manages service runtimes for a service provider.",
153+
"url": "/:version/best-practices/services/managed-service-provider-pattern#service-runtime-manager"
154+
},
155+
"servicelet": {
156+
"description": "A component managing capabilities on a service runtime.",
157+
"url": "/:version/best-practices/services/managed-service-provider-pattern#servicelet"
158+
},
159+
"servicelets": {
160+
"alias": "servicelet"
161+
},
162+
"service provisioners": {
163+
"alias": "service provisioner"
164+
},
165+
"service marketplace": {
166+
"description": "A place where service providers offer various services, and consumers can discover these services.",
167+
"url": "/:version/best-practices/services#service-marketplace"
168+
},
169+
"service marketplaces": {
170+
"alias": "service marketplace"
171+
},
172+
"marketplace": {
173+
"alias": "service marketplace"
174+
},
175+
"marketplaces": {
176+
"alias": "service marketplace"
177+
},
178+
"service orchestration environment": {
179+
"description": "The central component of the ApeiroRA Platform Mesh, in which service consumers can order and manage digital twins.",
180+
"url": "/:version/best-practices/platform-mesh/service-provider-control-planes"
181+
},
182+
"service orchestration environments": {
183+
"alias": "service orchestration environment"
184+
},
185+
"security posture": {
186+
"description": "The overall security strength and readiness of an organization, reflecting its ability to protect against, detect, and respond to cyber threats through implemented policies, processes, and technologies.",
187+
"url": "/:version/best-practices/security/security-compliance-automation"
188+
},
189+
"account model": {
190+
"description": "A hierarchical structure that serves as the foundational fabric for managing interactions between service providers and consumers, enabling sophisticated service management while maintaining clear organizational boundaries and operational control.",
191+
"url": "/:version/best-practices/platform-mesh/account-model"
192+
},
193+
"account": {
194+
"alias": "account model"
195+
},
196+
"accounts": {
197+
"alias": "account model"
198+
},
199+
"micro frontend": {
200+
"description": "An architectural style where independently deliverable frontend applications are composed into a larger whole.",
201+
"url": "/:version/best-practices/micro-frontends"
202+
},
203+
"micro frontends": {
204+
"alias": "micro frontend"
205+
},
206+
"Micro Frontends": {
207+
"alias": "micro frontend"
208+
},
209+
"microfrontends": {
210+
"alias": "micro frontend"
211+
},
212+
"microfrontend": {
213+
"alias": "micro frontend"
214+
},
215+
"Apeiro Frontend": {
216+
"description": "The primary user interface for managing cloud-edge services provided by the Apeiro Reference Architecture, built on open-source principles and leveraging a microfrontend architecture.",
217+
"url": "/:version/best-practices/micro-frontends"
218+
},
219+
"frontend": {
220+
"alias": "Apeiro Frontend"
221+
},
222+
"workspace": {
223+
"description": "A concept in kcp that creates additional isolation for resources and APIs, serving as a basis for a technical account model in OpenMFP.",
224+
"url": "/:version/best-practices/platform-mesh/account-model#account-structure"
225+
},
226+
"workspaces": {
227+
"alias": "workspace"
228+
},
229+
"ord": {
230+
"description": "A protocol that allows applications and services to self-describe resources and interfaces.",
231+
"url": "https://github.com/open-resource-discovery"
232+
},
233+
"Open Resource Discovery": {
234+
"alias": "ord"
235+
},
236+
"kms": {
237+
"description": "Key Management Service (KMS) is a secure cloud service that manages cryptographic keys for data encryption, enabling users to easily create, control, and use encryption keys across various applications and services.",
238+
"url": "/:version/best-practices/security/key-management"
239+
},
240+
"hsm": {
241+
"description": "A physical computing device that safeguards and manages digital keys for strong authentication and provides cryptoprocessing to enhance the security of sensitive data.",
242+
"url": "/:version/best-practices/security/key-management"
243+
},
244+
"hardware security module": {
245+
"alias": "hsm"
246+
},
247+
"otel": {
248+
"description": "OpenTelemetry, also known as OTel, is a vendor-neutral open source Observability framework for instrumenting, generating, collecting, and exporting telemetry data such as traces, metrics, and logs.",
249+
"url": "/:version/best-practices/observability"
250+
},
251+
"actuator": {
252+
"description": "Controllers that map real-world capabilities into the virtual-world.",
253+
"url": "/:version/best-practices/control-planes/cat#actuators"
254+
},
255+
"actuators": {
256+
"alias": "actuator"
257+
},
258+
"control plane": {
259+
"description": "Central management system responsible for orchestrating and managing a target environment.",
260+
"url": "/:version/best-practices/control-planes#control-plane"
261+
},
262+
"control planes": {
263+
"alias": "control plane"
264+
},
265+
"data plane": {
266+
"description": "Persistency part of the management or control plane that hosts the shared repository for all digital twin resources.",
267+
"url": "/:version/best-practices/control-planes#data-plane"
268+
},
269+
"data planes": {
270+
"alias": "data plane"
271+
},
272+
"work plane": {
273+
"description": "Operational heart of a target environment.",
274+
"url": "/:version/best-practices/control-planes#work-plane"
275+
},
276+
"work planes": {
277+
"alias": "work plane"
278+
},
279+
"ums": {
280+
"description": "A service that gathers metadata and offers a graph-based API for easy discovery, querying, and selection of metadata across different business contexts and providers.",
281+
"url": "#"
282+
},
283+
"Unified Metadata Service": {
284+
"alias": "ums"
285+
}
286+
}

0 commit comments

Comments
 (0)