Skip to content

Commit 557d478

Browse files
committed
add metrics section, issue #14 and #16
1 parent 29b2a72 commit 557d478

File tree

1 file changed

+92
-51
lines changed

1 file changed

+92
-51
lines changed

content/06.quality_criteria.md

Lines changed: 92 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ functionality.
5252

5353
* **[SvcQC.Int01]** Whenever a new functionality is involved, integration
5454
testing MUST guarantee the operation of any previously-working interaction
55-
with external **Services**. [SQA-QC.Int01]
55+
with external **Services**. [SQA-QC.Int01].
5656
* When using APIs, contract testing MUST detect any disruption in the
5757
communication between provider and consumer endpoints, through the validation
58-
of the API specification [SvcQC.Api01]
58+
of the API specification [SvcQC.Api01].
5959

6060
* **[SvcQC.Int02]** Integration testing SHOULD be automated.
6161

@@ -74,14 +74,14 @@ design analysis or side-effects to external systems.
7474
**Service** claims to provide. [SQA-QC.Fun01].
7575
* **[SvcQC.Fun01.1]** When using APIs, contract testing MUST detect any
7676
disruption in the features exposed by the provider to the consumer, through
77-
the validation of the API specification. [SvcQC.Api01]
77+
the validation of the API specification. [SvcQC.Api01].
7878
* **[SvcQC.Fun01.2]** Functional tests SHOULD include the Web interface of
7979
the **Service**.
8080

8181
* **[SvcQC.Fun02]** Functional tests SHOULD be checked automatically.
8282

83-
* **[SvcQC.Fun03]** Functional tests SHOULD be provided by the developers of the underlying
84-
software. [SQA-QC.Fun04].
83+
* **[SvcQC.Fun03]** Functional tests SHOULD be provided by the developers
84+
of the underlying software. [SQA-QC.Fun04].
8585

8686
### Performace tests [SvcQC.Per]
8787

@@ -121,6 +121,10 @@ to variable demand or workload for those service(s) [@doi:10.1186/s13677-019-013
121121

122122
### Documentation [SvcQC.Doc]
123123

124+
Documentation is an integral part of any Software or Service. For example,
125+
it describes how and what users can use and interact with it, or how operators can
126+
deploy, configure and manage a given Software or Service.
127+
124128
* **[SvcQC.Doc01]** Documentation MUST be available online, easily
125129
findable and accessible. [SQA-QC.Doc03].
126130

@@ -159,23 +163,6 @@ The identified types of documentation and their RECOMMENDED content are:
159163
* Public API documentation (if applicable).
160164
* Command-line (CLI) reference (if applicable).
161165

162-
### Policies [SvcQC.Pol]
163-
164-
* **[SvcQC.Pol01]** The **Service** MUST include the following policy documents:
165-
* **[SvcQC.Pol01.1]** Acceptable Usage Policy (AUP): Is a set of rules applied
166-
by the owner, creator or administrator of a network, website, or service, that
167-
restrict the ways in which the network, website or system may be used and sets
168-
guidelines as to how it should be used. The AUP can also be referred as: Acceptable
169-
Use Policy or Fair Use Policy,
170-
* **[SvcQC.Pol01.2]** Access Policy or Terms of Use: represent a binding legal
171-
contract between the users (and/or costumers), and the Provider of the **Service**.
172-
The Access Policy mandates the users (and/or costumers) access to and the use of
173-
the Provider’s **Service**.
174-
* **[SvcQC.Pol01.3]** Privacy Policy: Data privacy statement informing the users
175-
(and/or costumers), about which personal data is collected and processed when they
176-
use and interact with the **Service**. It states which rights the users (and/or costumers)
177-
have regarding the processing of their data.
178-
179166
### Security [SvcQC.Sec]
180167

181168
Security assessment is essential for any production **Service**. While an
@@ -243,46 +230,49 @@ good practices.
243230

244231
* **[SvcQC.Sec07]** IaC testing, from [SvcQC.Aud02] criterion, MUST cover the
245232
security auditing of the IaC templates (aka _Security as Code_ or _SaC_) in
246-
order to assure the deployment of secured **Services**.
247-
* For all the third-party dependencies used in the IaC templates (including
248-
all kind of software artefacts, such as Linux packages or container-based
249-
images):
250-
* **[SvcQC.Sec07.1]** SaC MUST perform vulnerability scanning of the
251-
artefact versions in use.
252-
* **[SvcQC.Sec07.2]** SaC SHOULD verify that the artefacts are trusted and
253-
digitally signed.
233+
order to assure the deployment of secured **Services**. For all the third-party
234+
dependencies used in the IaC templates (including all kind of software artefacts,
235+
such as Linux packages or container-based images):
236+
* **[SvcQC.Sec07.1]** SaC MUST perform vulnerability scanning of the
237+
artefact versions in use.
238+
* **[SvcQC.Sec07.2]** SaC SHOULD verify that the artefacts are trusted and
239+
digitally signed.
254240
* **[SvcQC.Sec07.3]** SaC MUST scan IaC templates to uncover misalignments
255241
with widely-accepted security policies from [SvcQC.Sec06] criteria, such as
256242
non-encrypted secrets or disabled audit logs.
257243
* **[SvcQC.Sec07.4]** SaC MAY be used to seek, in the IaC templates, for
258244
violations of security requirements outlined in the applicable regulations
259245
from criterion [SvcQC.Sec05].
260246

261-
### Automated Deployment [SvcQC.Aud]
262-
263-
The automated deployment of **Services** implies the use of code to install and
264-
configure them in the target infrastructures. Infrastructure as Code (IaC)
265-
templates allow operations team to treat service provisioning and deployment in
266-
a similar fashion as developers manage the software code.
267-
268-
Consequently, IaC enables the paradigm of immutable infrastructure deployment
269-
and maintenance, where **Services** are never updated, but deprovisioned and
270-
redeployed. An immutable infrastructure simplifies maintenance and enhances
271-
repeteability and reliability.
247+
### Policies [SvcQC.Pol]
272248

273-
* **[SvcQC.Aud01]** A production-ready **Service** SHOULD be deployed as a
274-
workable system with the minimal user or system administrator interaction
275-
leveraging IaC templates.
276-
* **[SvcQC.Aud01.2]** Any future change to a deployed **Service** SHOULD be
277-
done in the form of a new deployment, in order to preserve immutable
278-
infrastructures.
249+
Policy documents describe what are the users expected behaviour when using the
250+
**Service**, how they can access it and what they can expect regarding privacy
251+
of their data.
279252

280-
* **[SvcQC.Aud03]** IaC SHOULD be validated by specific (unit) testing
281-
frameworks for every change being done.
282-
* IaC (unit) tests MUST be idempotent.
253+
* **[SvcQC.Pol01]** The **Service** MUST include the following policy documents:
254+
* **[SvcQC.Pol01.1]** Acceptable Usage Policy (AUP): Is a set of rules applied
255+
by the owner, creator or administrator of a network, website, or service, that
256+
restrict the ways in which the network, website or system may be used and sets
257+
guidelines as to how it should be used. The AUP can also be referred as: Acceptable
258+
Use Policy or Fair Use Policy.
259+
* **[SvcQC.Pol01.2]** Access Policy or Terms of Use: represent a binding legal
260+
contract between the users (and/or costumers), and the Provider of the **Service**.
261+
The Access Policy mandates the users (and/or costumers) access to and the use of
262+
the Provider’s **Service**.
263+
* **[SvcQC.Pol01.3]** Privacy Policy: Data privacy statement informing the users
264+
(and/or costumers), about which personal data is collected and processed when they
265+
use and interact with the **Service**. It states which rights the users (and/or costumers)
266+
have regarding the processing of their data.
283267

284268
### Support [SvcQC.Sup]
285269

270+
Support is the formal way by which users and operators of the **Service**
271+
communicate with other operators and/or developers of the **Service**,
272+
in case of problems, be it operational problems or bugs in the
273+
**Service** or underlying Software. Reporting of enhancements, improvements
274+
and even documentation issues.
275+
286276
* **[SvcQC.Sup01]** The **Service** MUST have a tracker or helpdesk
287277
for operational and users issues.
288278

@@ -311,18 +301,69 @@ where the **Service** is foreseen to be integrated.
311301
functional tests of criteria [SvcQC.Fun01.2].
312302
* **[SvcQC.Mon01.3]** The **Service** Web interface MAY be monitored. Use
313303
functional tests of criteria [SvcQC.Fun01.3].
304+
314305
* **[SvcQC.Mon02]** The **Service** MUST be monitored for security-related
315306
criteria:
316307
* **[SvcQC.Mon02.1]** The **Service** MUST be monitored for public endpoints
317308
and APIs secured and strong ciphers for encryption. Use Security tests of
318309
criteria [SvcQC.Sec02] and [SvcQC.Sec05].
319310
* **[SvcQC.Mon02.2]** The **Service** SHOULD be monitored with DAST checks.
320311
Use Security tests of criteria [SvcQC.Sec06].
312+
321313
* **[SvcQC.Mon03]** The **Service** MUST be monitored for infrastructure-related
322314
criteria:
323315
* **[SvcQC.Mon03.1]** IaC (unit) tests [SvcQC.Aud02] SHOULD be reused as
324316
monitoring tests, thus avoiding duplication.
325317

318+
### Automated Deployment [SvcQC.Aud]
319+
320+
The automated deployment of **Services** implies the use of code to install and
321+
configure them in the target infrastructures. Infrastructure as Code (IaC)
322+
templates allow operations team to treat service provisioning and deployment in
323+
a similar fashion as developers manage the software code.
324+
325+
Consequently, IaC enables the paradigm of immutable infrastructure deployment
326+
and maintenance, where **Services** are never updated, but deprovisioned and
327+
redeployed. An immutable infrastructure simplifies maintenance and enhances
328+
repeteability and reliability.
329+
330+
* **[SvcQC.Aud01]** A production-ready **Service** SHOULD be deployed as a
331+
workable system with the minimal user or system administrator interaction
332+
leveraging IaC templates.
333+
334+
* **[SvcQC.Aud02]** Any future change to a deployed **Service** SHOULD be
335+
done in the form of a new deployment, in order to preserve immutable
336+
infrastructures.
337+
338+
* **[SvcQC.Aud03]** IaC SHOULD be validated by specific (unit) testing
339+
frameworks for every change being done.
340+
* **[SvcQC.Aud03.1]** IaC (unit) tests MUST be idempotent.
341+
326342
### Metrics [SvcQC.Met]
327343

328-
* **[SvcQC.Met01]** The **Service** SHOULD have metrics.
344+
A metric is a quantifiable measure that is used to track and assess
345+
the status of a specific process.
346+
347+
In the case of **Services**, some relevant metrics are the number
348+
of users registered in the **Service**, or using it actively. Also
349+
accounting is important to track resource usage per user or group
350+
of users, either or both computing and storage resources.
351+
352+
Although the the metrics maybe published in external services, this
353+
is a common case in federated infrastructures such as EOSC.
354+
355+
* **[SvcQC.Met01]** The **Service** SHOULD implement the collection
356+
of metrics.
357+
* **[SvcQC.Met01.1]** The collection of metrics SHOULD be comulative
358+
over time and timestamped, so that the values can be queried per
359+
time interval.
360+
* **[SvcQC.Met01.2]** The metric *Number of registered users* SHOULD
361+
be collected.
362+
* **[SvcQC.Met01.3]** The metric *Number of active users over a given period of time*
363+
MAY be collected.
364+
* **[SvcQC.Met01.4]** The metric *Amount of computing resources per user or per group*
365+
MAY be collected. The metric unit depends on the type of service and infrastructure.
366+
An example is CPU x hours.
367+
* **[SvcQC.Met01.5]** The metric *Amount of storage resources per user or per group*
368+
MAY be collected. The metric unit depends on the type of service and infrastructure.
369+
An example is GByte x hours.

0 commit comments

Comments
 (0)