continuous deployment (lithuanian)

59
Continuous Deployment Titas Norkūnas / @varsketiz

Upload: titas-norkunas

Post on 28-May-2015

107 views

Category:

Technology


0 download

DESCRIPTION

Slides for Continuous Deployment talk on agileday 2013 in Vilnius - tak (in lithuanian) here - http://www.youtube.com/watch?v=ti1Pfu9dnYY

TRANSCRIPT

Page 1: Continuous Deployment (Lithuanian)

Continuous DeploymentTitas Norkūnas / @varsketiz

Page 2: Continuous Deployment (Lithuanian)
Page 3: Continuous Deployment (Lithuanian)

Assembla – Produktas

~ 350.000 Projektų

~ 350.000 Kodo repozitorijų

~ 850.000 Registruotų vartotojų

~ 5.000.000 Valdomų užduočių

Page 4: Continuous Deployment (Lithuanian)

Assembla – Komanda

● 40 Žmonių (20 Inžinierių)

● 20 Šalių

● 15 Laiko zonų

● 163 Diegimai į produkciją balandį

Page 5: Continuous Deployment (Lithuanian)

Assembla – Komanda

Page 6: Continuous Deployment (Lithuanian)

Assembla – Komanda

Daugiausia dirbu su šiuo kolega

Page 7: Continuous Deployment (Lithuanian)

Kiek iš Jūsų esate girdėję apie Continuous Deployment?

Page 8: Continuous Deployment (Lithuanian)

Kaip dažnai diegiate į produkciją?

Page 9: Continuous Deployment (Lithuanian)

Apie ką čia bus:

● Kodėl verta

● Dėl ko nerimauti nereikėtų

● Kaip tai pasiekti

● Svarbu (bet nebūtina) ir dažnos

problemos

● Kaip sekėsi mums

Page 10: Continuous Deployment (Lithuanian)

Kodėl verta

Agile manifestas #1:

"Mūsų aukščiausias prioritetas yra

patenkinti kliento poreikius, anksti ir

nuolat pristatant vertę kuriančią programinę įrangą."

Page 11: Continuous Deployment (Lithuanian)

Agile manifestas #7:

"Pagrindinis progreso įvertinimas yra

veikianti programinė įranga."

Kodėl verta

Page 12: Continuous Deployment (Lithuanian)

Agile manifestas #10:

"Paprastumas – menas mažinti

nereikalingus darbus – yra būtinas."

Kodėl verta

Page 13: Continuous Deployment (Lithuanian)

"Minimalus veikiantis produktas - tai

toks produktas, kuris leidžia išmokti

maksimalų kiekį patvirtintos

informacijos įdedant mažiausiai

pastangų."

Kodėl verta

Page 14: Continuous Deployment (Lithuanian)

Ar norėtum čia dirbti?

● Github

● Amazon

● Heroku

● Linkedin

● Etsy

● ... <ir taip toliau> ...

Kodėl verta

Page 15: Continuous Deployment (Lithuanian)

Kodėl verta

Ar norėtum čia dirbti?

● Github

● Amazon - diegimai kas 11 sek.● Heroku

● Linkedin

● Etsy

● ... <ir taip toliau> ...

Page 16: Continuous Deployment (Lithuanian)

Nauda

● Pristatysi vertę kaip galima greičiau

● Kasdien matysi pažangą

● Būsi informuotas visada

● Gausi greitą grįžtamąjį ryšį

● Dirbsi aukščiausios klasės aplinkoje

Page 17: Continuous Deployment (Lithuanian)

Nerimauti nereikėtų

● Ar tai nėra pavojinga?

● Kainuos daug daugiau!

● Suprastės kokybė.

● Tai kaubojiškas procesas.

Page 18: Continuous Deployment (Lithuanian)

Ar tai nėra pavojinga? – Ne.

● Neliks "žmogiškojo faktoriaus"

● Bus mažiau pakeitimų diegimuose

● Galėsi greit rasti ir ištaisyti problemą

Page 19: Continuous Deployment (Lithuanian)

Kainuos daug daugiau! – Ne.

● Automatizuoti reikės tik kartą

● Greitai išbandysi naujas idėjas

● Nebereikės jokių aplinkelių

Page 20: Continuous Deployment (Lithuanian)

Suprastės kokybė. – Ne.

● Slėpk kas neparuošta -

atskirk diegimą nuo

pristatymo

● Nebeskubėk, kad

spėtum į sprintą

Page 21: Continuous Deployment (Lithuanian)

Kaubojiškas procesas! - Ne.

● Reikės standartizuoti aplinkas

● Reikės standartizuoti migracijas

● Reikės standartizuoti procesą

Page 22: Continuous Deployment (Lithuanian)
Page 23: Continuous Deployment (Lithuanian)

Kaip tai pasiekti

● Continuous mentalitetas

● Tinkama nuolatinė integracija

● Diegimo automatizavimas

● Metrikos ir įspėjimai

Page 24: Continuous Deployment (Lithuanian)

Vienintelė taisyklė norintiems diegti nuolatos – laikyk

pagrindinę šaką diegtiną.

Page 25: Continuous Deployment (Lithuanian)

Continuous mentalitetas

● Nebandyk sutaupyti pusvalandžio

pažeisdamas diegtinumo principą

● Nemanyk, kad žinai viską, kas

vyksta tavo projekte

Page 26: Continuous Deployment (Lithuanian)

Ką reiškia - diegtiną?

Page 27: Continuous Deployment (Lithuanian)

Automatiniai testai sėkmingi

Page 28: Continuous Deployment (Lithuanian)

Automatiniai testai sėkmingi, kodas peržiūrėtas ir

ištestuotas QA

Page 29: Continuous Deployment (Lithuanian)

Automatiniai testai sėkmingi, kodas peržiūrėtas ir

ištestuotas QA bei dalies vartotojų

Page 30: Continuous Deployment (Lithuanian)
Page 31: Continuous Deployment (Lithuanian)

Nuolatinė integracija

Šaka →

Pagr. Šaka →

Page 32: Continuous Deployment (Lithuanian)

2?1

Pagr. Šaka →

Šaka →

Nuolatinė integracija

Page 33: Continuous Deployment (Lithuanian)

Pagr. Šaka →

1 ?

3

Šaka →

2

Pagr. Šaka →

Šaka →

Nuolatinė integracija

Page 34: Continuous Deployment (Lithuanian)

Per ankstyva integracija yra blogis.

Page 35: Continuous Deployment (Lithuanian)

Diegimo automatizavimas

● Lengva – diek vienu paspaudimu

● Jokios rizikos – jei yra problemų,

grįžk prie veikiančios versijos

● Nuoseklu – be staigmenų

● Atsekama – kas, ką, kada, kur

Page 36: Continuous Deployment (Lithuanian)

Lengva – vienu paspaudimu

Page 37: Continuous Deployment (Lithuanian)

Jokios rizikos

Page 38: Continuous Deployment (Lithuanian)

Nuoseklu – be staigmenų

Page 39: Continuous Deployment (Lithuanian)

Atsekama – kas, ką, kada

Page 40: Continuous Deployment (Lithuanian)
Page 41: Continuous Deployment (Lithuanian)

Metrikos ir įspėjimai

● Realaus laiko

● Stebėk svarbiausias verslo metrikas

● Turėk aplikacijos metrikas vienoje

vietoje

● Būk įspėjamas pagal anomalijas, o

ne absoliučius skaičius

Page 42: Continuous Deployment (Lithuanian)

Verslo metrikos

Page 43: Continuous Deployment (Lithuanian)

Aplikacijos metrikos

Page 44: Continuous Deployment (Lithuanian)

Anomalijos

Page 45: Continuous Deployment (Lithuanian)

Svarbu (bet nebūtina)

● Greiti testai ir diegimai

● Automatizuota konfigūracija

● Greitas inžinierių įvedimas

● Vieninga migracijos strategija

Page 46: Continuous Deployment (Lithuanian)

Greiti testai ir diegimai

Page 47: Continuous Deployment (Lithuanian)

Automatizuota konfigūracija

Page 48: Continuous Deployment (Lithuanian)

Greitas inžinierių įvedimas

Page 49: Continuous Deployment (Lithuanian)

Vieninga migracijos strategija

Page 50: Continuous Deployment (Lithuanian)

Continuous keičia žaidimo taisykles. Kaip tai paveikia

kitus komandos narius?

Page 51: Continuous Deployment (Lithuanian)

Kaip sekėsi mums?

Page 52: Continuous Deployment (Lithuanian)

Diegimų evoliucija

Page 53: Continuous Deployment (Lithuanian)

Frustration

Diegimų evoliucija

Page 54: Continuous Deployment (Lithuanian)

Diegimų evoliucija

Page 55: Continuous Deployment (Lithuanian)

Diegimų evoliucija

Page 56: Continuous Deployment (Lithuanian)

LOL Atostogos

Diegimų evoliucija

Page 57: Continuous Deployment (Lithuanian)

Diegimų evoliucija

Page 58: Continuous Deployment (Lithuanian)

Dažnos problemos

● Kaip diegti duomenų bazės

schemos pakeitimus be trikdžių?

● Kokybės Užtikrinimo komanda

testuoja rankiniu būdu

● "Nepritaikoma dideliems

projektams"

Page 59: Continuous Deployment (Lithuanian)