You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/blog/why-is-redfish®-different-from-other-rest-apis-part-2.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,33 +14,33 @@ tags:
14
14
15
15
In <ahref="https://developer.hpe.com/blog/why-is-redfish-different-from-other-rest-apis-part-1"target="_blank">part 1</a> of this series, I presented the fundamentals of the Redfish® standard published by the Distributed Management Task Force (DMTF) consortium. This standard issued in 2015 aims to replace the aging Intelligent Platform Management Interface (<ahref="https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/ipmi-home.html"target="_blank">IPMI</a>) to manage the lower layers of the local server or remote servers using a modern REST-type API. The most representative fundamentals are the separation of the protocol from the data modeling, a <ahref="https://developer.hpe.com/blog/getting-started-with-ilo-restful-api-redfish-api-conformance/"target="_blank">self-describing model</a> and OEM extensions. Here in part 2, you will find other unique properties contributing to the massive adoption of this "hypermedia API" by equipment manufacturers.
16
16
17
-
## Actions
17
+
## The Redfish concept of "Actions"
18
18
19
-
Redfish resources support the GET request to retrieve their current state. Modifications or deletions can be performed to certain resources using POST, PUT, PATCH and DELETE requests. Until then, nothing exceptional in the world of REST APIs, except perhaps, that it is possible to retrieve the exhaustive list of possible requests on a given resource, by consulting the `Allow` header of GET request responses. Refer to the <ahref="https://developer.hpe.com/blog/why-is-redfish-different-from-other-rest-apis-part-1"target="_blank">Allowed requests</a> paragraph in part 1.
19
+
Redfish resources support the GET request to retrieve their current state. Modifications or deletions can be performed to certain resources using POST, PUT, PATCH and DELETE basic requests. Nothing exceptional in the world of REST APIs, except perhaps, that it is possible to retrieve the exhaustive list of possible requests on a given resource, by consulting the `Allow` header of GET request responses. Refer to the <ahref="https://developer.hpe.com/blog/why-is-redfish-different-from-other-rest-apis-part-1"target="_blank">Allowed requests</a> paragraph in Part 1.
20
20
21
-
However, other types of operations are difficult to model with classic HTTP requests. For example, it is impossible to "read" the server's power button to know its status! Asking for the "return to factory settings" of a storage controller may require additional parameters like the preservation (or not) of existing logical volumes.
21
+
However, some operations are difficult to model with the above classic HTTP requests. For example, it is impossible to "read" the server's power button to know its status. An other example that cannot be addressed by classic HTTP requests is the "return to factory settings" of a sub-system like a storage controller. This operation requires additional parameters like the preservation (or not) of existing logical volumes.
22
22
23
23
To address these cases and others, Redfish offers the concept of **Actions**. These are special POST requests including the operation(s) to be performed and an empty body or a body with parameters. The POST endpoint as well as the parameters and their possible values are described in an `Actions{}` object contained in the response to a GET. Figure 1 shows the retrieval of the list of possible actions on the `ComputerSystem` subsystem of a given server, as well as their description. In this specific case, it is possible to perform a single action (`#ComputerSystem.Reset`) with a parameter (`ResetType`) which can take several values.
24
24
25
25

26
26
27
27
Figure 1: Computer system actions
28
28
29
-
Figure 2 shows the graceful restart action of a server with its destination (target URI), its payload as well as the payload of the response (`Success`).
29
+
Figure 2 shows the graceful restart action of a server with its destination (target URI) and its payload as well as the payload of the response (`Success`).
The precise description of possible actions in the main body of GET responses allows Redfish clients to carry out checks to avoid sending erroneous requests, therefore creating unwanted network traffic.
35
+
The precise description of possible actions in the main body of GET responses allows Redfish clients to carry out checks to avoid sending erroneous requests, thereby avoiding the creating of unwanted network traffic.
36
36
37
37
## The Redfish event service
38
38
39
-
The Baseboard Management Controller (BMC) of modern servers communicates with almost all the server's subsystems. This privileged role allows it to be notified of events occurring in the system such as errors appearing in the memory, in the storage controllers or elsewhere. These events are stored in "log" files and SNMP traps can be triggered if the BMC has been configured beforehand.
39
+
The Baseboard Management Controller (BMC) of modern servers communicates with almost all the server's subsystems. This privileged role allows it to be notified of events occurring in the system, such as errors appearing in the memory, in the storage controllers or elsewhere. These events are stored in "log" files. Note that SNMP traps can be triggered if the BMC has been configured beforehand.
40
40
41
41
SNMP is an aging protocol that, due to its design, can saturate a network during an event storm. The processing of events by Network Management Systems (NMS) can also constitute a bottleneck in terms of CPU load or storage. Furthermore, the security linked to SNMP is often mentioned as insufficient.
42
42
43
-
An alternative to SNMP is the Redfish Event Service which is based on the subscription principle. The major advantage of this principle is that events are sorted at source according to subscription criteria and sent only to subscribers. Thus, the risk of network saturation is reduced. The security of these messages is based on the Transport Layer Security (TLS) protocol used by HTTPS, and which is unanimously considered as secure.
43
+
An alternative to SNMP is the Redfish Event Service which, is based on the subscription principle. The major advantage of this principle is that events are sorted at the source according to subscription criteria and sent only to subscribers. Thus, the risk of network saturation is reduced. The security of these messages is based on the Transport Layer Security (TLS) protocol used by HTTPS, which is unanimously considered as secure.
44
44
45
45
### Event model
46
46
@@ -52,7 +52,7 @@ The exhaustive list of registers that can be used to subscribe to events is retu
52
52
53
53
Figure 3: Enumeration of prefixes available for event subscriptions
54
54
55
-
### How to subscribe to events?
55
+
### How to subscribe to events?
56
56
57
57
Subscription to events is done by a POST request to the standard URI `/redfish/v1/EventService/Subscriptions` that includes, in its body, the IP address of the listening service and the list of events to send to it.
58
58
@@ -70,15 +70,15 @@ The collection of subscriptions received by the BMC can be found at the URI: `/r
70
70
71
71
Figure 5: Subscription collection
72
72
73
-
The event service also allows you to easily test the subscriptions by creating an test action to `/redfish/v1/EventService/Actions/EventService.SubmitTestEvent` with, in its body, the first part of the `MessageId` property correctly populated so that the test event is sent to the correct system (Figure 6).
73
+
The event service also allows you to easily test the subscriptions by creating a test action to `/redfish/v1/EventService/Actions/EventService.SubmitTestEvent` with, in its body, the first part of the `MessageId` property correctly populated so that the test event is sent to the correct system (Figure 6).
Supervising a server fleet involves retrieving indicators such as the temperature of certain components, the energy consumed by power supplies, CPUs or fans, in order to create metric reports, graphs or generate alerts. The most obvious recovery method is to locate the URI of the desired indicators and retrieve them on demand. There is an alternative to this "pull" type method: a "push" of indicators from the BMC towards subscribers. This alternative is possible thanks to the Redfish telemetry service.
81
+
Supervising a server fleet involves retrieving indicators such as the temperature of certain components and the energy consumed by power supplies, CPUs or fans, in order to create metric reports, graphs or generate alerts. The most obvious recovery method is to locate the URI of the desired indicators and retrieve them on demand. There is an alternative to this "pull" type method: a "push" of indicators from the BMC towards subscribers. This alternative is possible thanks to the Redfish telemetry service.
82
82
83
83
The telemetry entry point is at `/redfish/v1/TelemetryService` and has the following resources:
84
84
@@ -135,15 +135,15 @@ Thus, the components of a server powered on but without an operating system can
135
135
136
136
## Swordfish® integration
137
137
138
-
Very quickly after the publication of the first version of Redfish in 2015, the SNIA, which develops data standards, created an extension of Redfish dedicated to storage and called Swordfish®. Figure 10 shows the headers of a response to a request on a logical volume. The Link header points to a subdirectory dedicated to Swordfish® on the DMTF site. Most storage-related schemes are developed by the Storage Networking Industry Association (<ahref="https://www.snia.org/"target="_blank">SNIA</a>) and hosted by the DMTF. A great example of cooperation between standardization organizations!
138
+
Very quickly after the publication of the first version of Redfish in 2015, the SNIA, which develops data standards, created an extension of Redfish dedicated to storage and called Swordfish®. Figure 10 shows the headers of a response to a request on a logical volume. The Link header points to a sub-directory dedicated to Swordfish® on the DMTF site. Most storage-related schemes are developed by the Storage Networking Industry Association (<ahref="https://www.snia.org/"target="_blank">SNIA</a>) and hosted by the DMTF. A great example of cooperation between standardization organizations!
139
139
140
140

141
141
142
142
Figure 10: Link to Swordfish® URL
143
143
144
144
## Security and component integrity
145
145
146
-
The majority of computer manufacturers have implemented secure production methods that guarantee all the components constituting a server do not contain viruses or other malware when leaving the factory or even when leaving the truck at final destination. Indeed, a lot can happen during intercontinental transport of electronic goods!
146
+
The majority of computer manufacturers have implemented secure production methods that guarantee all the components constituting a server do not contain viruses or other malware when leaving the factory or even when leaving the truck at its final destination. Indeed, a lot can happen during intercontinental transport of electronic goods!
147
147
148
148
However, this warranty does not necessarily apply to additional components purchased on the Internet or at a local electronics store.
149
149
@@ -157,9 +157,9 @@ Figure 11: SPDM configuration
157
157
158
158
## What about the future ?
159
159
160
-
While the first part of this introduction to Redfish® focused on the architectural specifics of the API, this second part goes deeper in the server data model and its smooth integration with additional components using powerful internal communication standards helping the improvement of security and firmware update.
160
+
While the first part of this introduction to Redfish focused on the architectural specifics of the API, this second part goes deeper in the server data model and its smooth integration with additional components using powerful internal communication standards helping the improvement of security and firmware update.
161
161
162
-
Overall, the Redfish API has sufficiently solid foundations to handle future long term developments; on the protocol side, everything is stable with HTTPs and JSON. On the other hand, there are new technologies that are starting to arrive on the market and their modeling by Redfish is in progress. I am particularly thinking of the "Compute Express Link" (<ahref="https://computeexpresslink.org/"target="_blank">CXL</a>) which will change the internal architecture of the servers and which will therefore have to be modeled. The current <ahref="https://www.dmtf.org/standards/wip"target="_blank">project</a> can be consulted on the DMTF website.
162
+
Overall, the Redfish API has sufficiently solid foundations to handle future long term developments; on the protocol side, everything is stable with HTTPs and JSON. On the other hand, there are new technologies that are starting to arrive on the market and their modeling by Redfish is in progress. I am particularly thinking of the "Compute Express Link" (<ahref="https://computeexpresslink.org/"target="_blank">CXL</a>), which will change the internal architecture of the servers and which will therefore have to be modeled. The current <ahref="https://www.dmtf.org/standards/wip"target="_blank">project</a> can be consulted on the DMTF website.
0 commit comments