Dev Ops Flashcards

1
Q

Com’é cambiata formazione dei teams di sviluppo

A

Inizialmente teams differenti responsabili di development , release e supporto
Dev team passava final version a release team
Release team buildava testa e preparava documentazione, per poi passare ai clienti
Team di supporto responsabile per customer support

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Fattori responsabili delle modifiche alla tipologia di sviluppo

A

Agile che riduce tempi di sviluppo
Amazon che ridusse dimensioni dei service
Ora gestibili in dev e support da singolo team
Saas release possibile

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Key changes nella metodologia di sviluppo

A

Tutti responsabili di tutto
Ogni cosa che può essere automatizzata va automatizzata
Bisogna collezionare dati continuamente sullo stato del sistema

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Dev ops benefici

A

Deployment faster
Rischi ridotti
Riparazioni velocizzate
Team diventano più produttivi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Team differenziati

A

Designer
Software eng
Security eng
Infrastrutture en
Customer interaction

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Responsabilitá ogni membro del team

A

Tutti nel team devono essere coinvolti nei meeting e metodologie
Ogni membro deve condividere proprie conoscenze
Developers sempre pronti a gestire problemi anche nel weekend

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Programma per gestire il codice, cosa permettono.

A

Utilizzo di code management software
Semplificazione nella creazione di eseguibili e run dei test automatici

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Continuos integration cos’é, come funziona versione integrativa sistema?

A

Ogni volta che dev commit dei changes una build é bulidata e testata
Tante operazioni da effettuare system building
Una versione integrativa del sistema viene creata e testa ogni volta che un change é pushed nella repository shared

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Vantaggi e pericoli continous integration

A

Vantaggi:
Veloce, versione sempre funzionante del sistema disponibile, ogni membro del team non vuole rompere la build
Incremental build esegue test solo se file collegati a quei test sono stati modificati
Pericoli:
Non rompere build, testa sulla tua versione locale prima che le tue modifiche non vadano in conflitto con quelle degli altri devs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Continuos reasoning cos’é

A

Possibile analisi statica del codice per verificare quali cambiamenti potrebbero aver portato errori

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Continuos delivery cos’é

A

Creazione di una versione eseguibile del sistema e dei test
Effettuata con containers per replicare nel modo migliore possibile production environment
Per deliver vengono effettuati test una volta bulinato sistema
Per deployare software e dati sono trasferiti ai server di produzione e si può switchare a nuova versione

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Vantaggi Continous delivery

A

Costi ridotti
Velocità nel problem solving
Miglior feedback dei clienti
Versione di prova per una cerchia stretta di utenti
Non va deployato ogni singolo change:
Versione incompleta
Continue modifiche UI

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cos’é infrastruttura as code

A

Automatizzare il processo di update del software sui server utilizzando una definizione leggibile dalla macchina di modello di infrastruttura

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Vantaggi Infrastruttura as Code

A

Infrastruttura disponibile per tutto il DevOps team
Riproducibile in modo semplice da ogni membro del team
Reliability automatizzazione evita errori umani
Recovery semplice tornare a versione precedenti dell’infrastruttura

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Parametri misurabili durante DevOps

A

Misurare processi per collezionare e analizzare dati dev/test/deployment
Misurare dati su performance, affidabilità e accettabilità dei customer
Misurare utilizzo dei customer del prodotto
Misurare successo che prodotto crea per business

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Tipologie di dati raccolti con deployment

A

Tramite Jenkins dati relativi a deployment
Monitoraggio services
Dati dei customer con problemi del servizio
Strumenti per verificare performances

17
Q

Come code managment software evitano problemi di lavoro in parallelo

A

Creazione di shared repository che contengono code files, configuration files, build scripts, librerie condivise
Features
Identificazione della versione e della release, ad ogni versione del codice sono associati degli identificativi
Registrata history delle versioni
Più devs possono lavorare indipendentemente
Efficienti nel manage di più copie differenti con poche differenze

18
Q

Come viene managed il source code decentralizzato, comandi anche

A

User effettua check in e check out dei file
Attenzione quando file nel check out già in uso
Quando effettuiamo il check in sistema si assicura che le copie del file non vadano in conflitto
Più conosciuto oggi git
Partiva dal kernel linux
Master branch quella principale
Nuove versioni con nuovi branches possono essere create
Quando user effettua un git clone crea propria copia del master branch dove può lavorare indipendentemente

19
Q

Vantaggi managed source code decentralizzato

A

Resilienza:
Ognuno ha propria copia, si può lavorare offline anche in caso di problemi alla versione centrale

Velocità: commit delle operazioni immediato essendo versione locale

Flessibilità: più facile testing locale

20
Q

Branch cos’é

A

Versione stand alone creata quando un dev vuole effettuare dei cambiamenti
Ogni dev crea proprio branch
Semplice revert

21
Q

Source code managment centralizzato

A

Utenti fanno check in e check out dei files, warning se file già in uso, al check in viene creata nuova versione del file, system si accerterà assenza di conflitti.

22
Q

Perchè confronti su git convenienti

A

Vengono confrontati i files riga per riga, quindi senza modifiche stessa riga non avremo conflitti. Altrimenti vengono evidenziate righe problematiche.

23
Q

Perchè git si presta bene open source?

A

Github, permette a ciascun dev di lavorare su propria copia locale, committare modifiche che sono alla fine saranno accettate dai gestori della versione centrale.

24
Q

Differenza tra continous deployment e continous delivery

A

Per continous deployment ad ogni modifica effettuata viene creata una versione funzionante del sistema, che viene poi testata ed è pronta per la messa in prod.
Per continous delivery, intendiamo continous deployment durante il quale il sistema viene automaticamente messo in produzione

25
Q

Cos’è separation logic?

A

Partendo da logica di Hoare, abbiamo precondizione, data una trasformazione, otteniamo una postcondizione.
Permette di analizzare tramite logica di Hoare i programmi.

26
Q

Software per continous deployment

A

Jenkins

27
Q

Software per infrastructure as code

A

Puppet

28
Q

Programma per verificare performance applicazione?

A

New Relic

29
Q

Cos’é Web hooks ?

A

Utilizzo di meccanismo chiamato Web hooks per triggerare DevOps operations in risposta agli update della repository del progetto

30
Q

Come si scrive una pipeline per Jenkins?

A

pipeline {
agent none
stages {
stage(‘Build’) {
agent {
docker {
image ‘python:2-alpine’
}
}
steps {
sh ‘python -m py_compile
sources/add2vals.py
sources/calc.py’
stash(name: ‘compiled-results’,
includes:
‘sources/.py’)
}
}
}
}

31
Q

Come aggiungo una linea per il testing ?

A

stage(‘Test’) {
agent {
docker {
image ‘qnib/pytest’
}
}
steps {
sh ‘py.test –junit-xml test-reports/results.xml
sources/test_calc.py’
}
post {
always {
junit ‘test-reports/results.xml’
}
}
}