|
1 | 1 | # A1. Annex {.page_break_before}
|
2 | 2 |
|
3 | 3 | 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. |
6 | 6 |
|
7 | 7 | This annex describes an implementation approach to help service developers and operators, cover the
|
8 | 8 | Quality Criteria detailed in this document.
|
9 | 9 |
|
10 | 10 | ## A1.1. Code workflow
|
11 | 11 |
|
12 |
| -{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 | +{height="700px"}{#fig:workflow} |
13 | 34 |
|
14 | 35 | ## A1.2. Services
|
15 | 36 |
|
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. |
19 | 57 |
|
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. |
21 | 61 |
|
22 | 62 | | Service | Usage | Criteria | Repo URL or documentation | Comment |
|
23 | 63 | |-----------------------------|-------------------------------|---------------|------------------------------------------|------------------------------------------|
|
| 64 | +| Github | VCS | **SvcQC.Dep** | <https://docs.github.com/> | Source code repository - git | |
24 | 65 | | Ansible, Galaxy | Install, Config | **SvcQC.Dep** | <https://docs.ansible.com/> | Automated deployment and configuration |
|
25 | 66 | | SQAaaS platform | Pipeline composition | **All** | <https://sqaaas.eosc-synergy.eu> | Pipeline composition for automatic tests |
|
26 | 67 | | SQAaaS platform | Assessment & awarding | **All** | <https://sqaaas.eosc-synergy.eu> | Badge awarding |
|
|
0 commit comments