Skip to content

Commit ea396ca

Browse files
committed
annex complete, issue #49
1 parent 413e0be commit ea396ca

File tree

1 file changed

+48
-7
lines changed

1 file changed

+48
-7
lines changed

content/09.annex.md

Lines changed: 48 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,67 @@
11
# A1. Annex {.page_break_before}
22

33
The Quality Criteria described in this document follows a technology-agnostic approach, as such the
4-
choice of tools and services to implement the code workflow, followed by the verification &
5-
validation processes, is up to the team or community developing or operating a given service.
4+
choice of tools and services to implement the workflow for service quality assessment process, is up
5+
to the team or community developing or operating a given service.
66

77
This annex describes an implementation approach to help service developers and operators, cover the
88
Quality Criteria detailed in this document.
99

1010
## A1.1. Code workflow
1111

12-
![Workflow](images/service-qa-workflow.png){height="700px"}{#fig:workflow}
12+
The workflow for service quality assessment, is shown in Figure @fig:workflow. It depicts a real
13+
case example, Github is used in particular to host the Dockerfiles to build the service docker
14+
image, it also hosts the ansible role for the service deployment and configuration, thus the
15+
IaC (Infrastructure as Code).
16+
17+
The SQA as a Service (SQAaaS), is used to create the Jenkinsfile (pipeline) to be executed in the
18+
Jenkins service.
19+
20+
Before the Jenkins pipeline execution phase, the figure depicts the build and upload/publish of the
21+
service docker image in the Dockerhub.
22+
23+
The Jenkins service is the main service used to execute he pipeline. The figure show a simple
24+
pipeline with automated deployment of the service, execution of functional tests and dynamic
25+
security tests, but in general the pipeline can be more complex and execute other tools to assess
26+
the other service quality criteria.
27+
28+
The bottom part of the figure shows the services, tools and infrastructures that are actuated by the
29+
Jenkins pipeline execution: The IM (Infrastructure Manager) is the service that is used to deploy
30+
the service in cloud resources, fetching the corresponding ansible role from Ansible Galaxy to
31+
instantiate and configure it.
32+
33+
![Workflow for service quality assessment](images/service-qa-workflow.png){height="700px"}{#fig:workflow}
1334

1435
## A1.2. Services
1536

16-
As it can be seen in Figure 1, multiple services take part in the execution of the CI/CD pipelines.
17-
Table 1 shows the list of services used for the service Verification and Validation of the Quality
18-
Criteria detailed in this document.
37+
As it can be seen in Figure @fig:workflow, multiple services take part in the execution of the CI/CD
38+
pipelines. Table 1 shows the list of services used for the service for the Quality Criteria
39+
assessment detailed in this document.
40+
41+
One of the most popular services for Software source code management is Github. It is uses Git
42+
as the Version Control System, branching and tag management.
43+
44+
Ansible and Ansible-Galaxy are used in many software frameworks as deployment and configuration
45+
tools.
46+
47+
The software is packed/built into executable artifacts that can be RPMs (case of RedHat and
48+
derivative OS), DEBs (case of Debian/Ubuntu and derivatives) and in many cases containers such as
49+
Docker images.
50+
51+
The artifacts are provided, in general, by public repositories and most notably Docker Hub
52+
[@url:https://hub.docker.com/] in the case of Docker images.
53+
54+
Regarding the CI/CD automation, Jenkins pipelines can be easily composed through the SQAaaS platform
55+
and put into the git repositories to be used by the Jenkins CI service to perform the tests. The
56+
tools used in the CI automation are shown in section A1.2.
1957

20-
Ansible and Ansible-Galaxy are used be many services as deployment and configuration tool.
58+
Kubernetes is a container management service where services or platforms can be deployed while the
59+
IM (Infrastructure Manager) can also be used to automatically deploy services both in cloud
60+
resources or kubernetes clusters.
2161

2262
| Service | Usage | Criteria | Repo URL or documentation | Comment |
2363
|-----------------------------|-------------------------------|---------------|------------------------------------------|------------------------------------------|
64+
| Github | VCS | **SvcQC.Dep** | <https://docs.github.com/> | Source code repository - git |
2465
| Ansible, Galaxy | Install, Config | **SvcQC.Dep** | <https://docs.ansible.com/> | Automated deployment and configuration |
2566
| SQAaaS platform | Pipeline composition | **All** | <https://sqaaas.eosc-synergy.eu> | Pipeline composition for automatic tests |
2667
| SQAaaS platform | Assessment & awarding | **All** | <https://sqaaas.eosc-synergy.eu> | Badge awarding |

0 commit comments

Comments
 (0)