.Stat Suite documentation

.Stat DevOps implementation

Table of Content

open-source development business requirements

quality assurance QA environment

functional pre-production STAGING environment

technical stack

The following technologies and cloud services are used for the DevOps implementation:

gitlab: open-source code repository and automation pipelines
npmjs: public JS libary repositories nuget: public .Net Core library repositories docker-hub: public JS & .Net Core application container image repositories gcp: hosting public qa & staging infrastructure kubernetes: container deployment orchestration

technical environment (cloud)


graph TB id0[gitlab repositories] id1[gitlab pipelines] id2[docker registry] id4[kubernetes cluster] id5[dotstatsuite-kube-rp] id6[kubectl] id7((developer)) id9((admin)) id7 --> id0 id0 -->|1. push code | id1 id1 -->|2. push image | id2 id1 -->|3. connect gcloud | id6 id6 -->|4. deploy image | id4 id9 -->|A. connect gcloud | id6 id6 -->|B. update topology | id4 id9 -->|C. push code | id5 id2 -. pull image .-> id4 id5 -. pull code .-> id4


graph TD; id0((peer-reviewer/code guard)); id1[gitlab application repository: dev branch]; id2[gitlab application repository: master branch]; id4[gitlab library repository: master branch]; id5[gitlab application repository: pipeline]; id6[gitlab library repository: pipeline]; id7[test environment]; id8[library registry npm/nuget]; id9[docker registry]; id10[kubernetes cluster: qa environment]; id14[kubernetes cluster: staging environment]; id11[gitlab dotstatsuite-kube-rp/dotstatsuite-kube-core-rp repositories: master branch] id12[kubectl] id13((admin)) id0 -->|A1. merge code| id4; id0 -->|B1. merge code| id1; id0 -->|C1. merge code| id2; id4 -->|A2. triggers launch| id6; id1 -->|B2. triggers launch| id5; id2 -->|C2. triggers launch| id5; id6 -->|A4. create & push package| id8; id6 -->|A3. build, test| id7; id5 -->|BC3. build, test| id7; id5 -->|BC4. create & push docker image| id9; id5 -->|BC5. connect gcloud| id12 id12 -->|B6. deploy image| id10 id13 -->|1. connect gcloud| id12 id12 -->|2. update topology| id10 id13 -->|3. push code| id11 id8 -. pull package .-> id10 id9 -. pull image .-> id10 id11 -. pull code .-> id10 id12 -->|C6. deploy image| id14 id12 -->|2. update topology| id14 id8 -. pull package .-> id14 id9 -. pull image .-> id14 id11 -. pull code .-> id14


env git branch cluster namespace
qa develop qa
staging master staging




graph LR subgraph CI all branches setup --> unit-tests unit-tests --> build end subgraph CD only develop & master build --> release release --> deploy end

npm/nuget package

graph LR subgraph CI all branches setup --> unit-tests unit-tests --> build end subgraph CD only tags* build --> publish end



list of webapps/services/packages

kind name status master status dev coverage
infra kubernetes de - - -
infra kubernetes core - - -
- - - - -
service config status status coverage
service sdmx-faceted-search status status coverage
service proxy status status coverage
service share status status coverage
- - - - -
service core-auth-management status status coverage
service core-transfer status status coverage
- - - - -
webapp data-explorer status status coverage
webapp data-viewer status status coverage
webapp data-lifecycle-manager status status coverage
- - - - -
package ui-footer status - coverage
package ui-header status - coverage
package components status - coverage
package ui-components status - coverage
package d3-charts status - coverage
package sdmxjs status - coverage
package visions status - coverage
- - - - -
package core-data-access status status coverage
package core-common status status coverage
package core-sdmxri-nsi-plugin status status coverage


name version status coverage demo note(s)
sdmxjs npm package status coverage sdmxjs :muscle: @RedPDRoncoli
visions npm package status coverage visions :sparkles: @mike.velluet
ui-footer npm package status coverage - will be included visions
ui-header npm package status coverage - will be included visions
components npm package status coverage - tests are scattered inside
ui-components npm package status coverage - will be merged with visions
d3-charts npm package status coverage - complex to test