· 2019-07-28 · software distributed in docker container unit testing with continuous...

20
Bryan Brancotte, Thomas Menard and Hervé Ménager Poster #212 + + @

Upload: others

Post on 26-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

Bryan Brancotte, Thomas Menard and Hervé MénagerPoster #212

+ + @

Page 2:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

2 | Brancotte Bryan | DevOps bioinformatics services

Page 3:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

3 | Brancotte Bryan | DevOps bioinformatics services

Page 4:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

Why DevOps for bioinformatics services ?

Software reliability is critical for adoption.

● Tested, with unit tests● Documented (user and dev)● Reproductible● Highly available

DevOps practices help tackle these issues.

Code versioning with gitSoftware distributed in Docker containerUnit testing with Continuous integration with GitLab(Automated) Continuous deployment with Kubernetes

4 | Brancotte Bryan | DevOps bioinformatics services

Page 5:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

5 | Brancotte Bryan | DevOps bioinformatics services

Page 6:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

6 | Brancotte Bryan | DevOps bioinformatics services

Docker

Page 7:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

7 | Brancotte Bryan | DevOps bioinformatics services

Page 8:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

●●

●○

●○○○○

8 | Brancotte Bryan | DevOps bioinformatics services

GitLab

Page 9:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

9 | Brancotte Bryan | DevOps bioinformatics services

Page 10:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

10 | Brancotte Bryan | DevOps bioinformatics services

Kubernetes

Page 11:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

Developer’s perspective

11 | Brancotte Bryan | DevOps bioinformatics services

Page 12:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

gitpush

CI/CD : Developer’s perspective Test (CI)

(1)*

Build(2)*

* Only when previous step ok

use

use

App

user

dev

Takeway: Press enter once, 2 minutes later your user has the new version ready to use !

Deploy

(3)*

12 | Brancotte Bryan | DevOps bioinformatics services

Page 13:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

13 | Brancotte Bryan | DevOps bioinformatics services

Page 14:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

Namespace: MyApp

Deployment

Deployment

Serviceport 8080, frontend

The world

Ingresshttps://abc.pasteur.cloud

FrontendBackend

Serviceport 5432backendPersistent

VolumeClaim

Scalable

web-app #1(replicat)

web-app #2(replicat)

web-app #3(replicat)

Postgres

Kubernetes concepts

● Containersrun in pods

● DeploymentHow to run containers

● ServiceHow to reach Deployments

● IngressExpose Service

● Persistent VolumeStore data

14 | Brancotte Bryan | DevOps bioinformatics services

Page 15:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

with YAML files

* or should be considered as is15 | Brancotte Bryan | DevOps bioinformatics services

Page 16:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

YAML for the DB apiVersion: extensions/v1beta1kind: Deploymentmetadata: name: postgresspec: template: metadata: labels: app: postgres-app role: backend spec: containers: - image: "postgres:10.1" name: postgres envFrom: - configMapRef: name: postgres-config-map ports: - containerPort: 5432 name: postgres volumeMounts: - name: postgres-data-pv mountPath: /var/lib/postgresql/data volumes: - name: postgres-data-pv persistentVolumeClaim: claimName: postgres-data-pv-claim

● Deployment known as

● Use pgsql container

(already exist, maintained

by the community)

● User, pwd, stored in a

ConfigMap

● Mount a volume

● Volume is a Persistent

Volume Claim

16 | Brancotte Bryan | DevOps bioinformatics services

Page 17:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

17 | Brancotte Bryan | DevOps bioinformatics services

Page 18:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

● Up since November 2018

● Open to the whole Institut Pasteur since January 2019

● 4 projects at the HUB○ Bacteriophage infection, CRISPR screen browser,

human protein database, Time tracking

● 10 servers, 320 cores, 2,5 TB of RAM

● 1 « GPU » Nvidia DGX1, 40 cores, 512 GB of RAM

18 | Brancotte Bryan | DevOps bioinformatics services

Page 19:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

-

Why going DevOps?

19 | Brancotte Bryan | DevOps bioinformatics services

●⇒

●⇒⇒

●⇒

Poster 212

Page 20:  · 2019-07-28 · Software distributed in Docker container Unit testing with Continuous integration with GitLab ... CI/CD : Developer’s perspective Test (CI) (1)* Build (2)* *

● https://bit.ly/2K3Clhu

Questions ?20 | Brancotte Bryan | DevOps bioinformatics services