Transcript
Page 1: Diekime į produkciją kasdien – kaip tai pasiekti

Continuous DeploymentTitas Norkūnas / @varsketiz

Page 2: Diekime į produkciją kasdien – kaip tai pasiekti
Page 3: Diekime į produkciją kasdien – kaip tai pasiekti

Assembla – Produktas

~ 350.000 Projektų

~ 350.000 Kodo repozitorijų

~ 850.000 Registruotų vartotojų

~ 5.000.000 Valdomų užduočių

Page 4: Diekime į produkciją kasdien – kaip tai pasiekti

Assembla – Komanda

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

● 20 Šalių

● 15 Laiko zonų

● 163 Diegimai į produkciją balandį

Page 5: Diekime į produkciją kasdien – kaip tai pasiekti

Assembla – Komanda

Page 6: Diekime į produkciją kasdien – kaip tai pasiekti

Assembla – Komanda

Daugiausia dirbu su šiuo kolega

Page 7: Diekime į produkciją kasdien – kaip tai pasiekti

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

Page 8: Diekime į produkciją kasdien – kaip tai pasiekti

Kaip dažnai diegiate į produkciją?

Page 9: Diekime į produkciją kasdien – kaip tai pasiekti

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: Diekime į produkciją kasdien – kaip tai pasiekti

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: Diekime į produkciją kasdien – kaip tai pasiekti

Agile manifestas #7:

"Pagrindinis progreso įvertinimas yra

veikianti programinė įranga."

Kodėl verta

Page 12: Diekime į produkciją kasdien – kaip tai pasiekti

Agile manifestas #10:

"Paprastumas – menas mažinti

nereikalingus darbus – yra būtinas."

Kodėl verta

Page 13: Diekime į produkciją kasdien – kaip tai pasiekti

"Minimalus veikiantis produktas - tai

toks produktas, kuris leidžia išmokti

maksimalų kiekį patvirtintos

informacijos įdedant mažiausiai

pastangų."

Kodėl verta

Page 14: Diekime į produkciją kasdien – kaip tai pasiekti

Ar norėtum čia dirbti?

● Github

● Amazon

● Heroku

● Linkedin

● Etsy

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

Kodėl verta

Page 15: Diekime į produkciją kasdien – kaip tai pasiekti

Kodėl verta

Ar norėtum čia dirbti?

● Github

● Amazon - diegimai kas 11 sek.● Heroku

● Linkedin

● Etsy

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

Page 16: Diekime į produkciją kasdien – kaip tai pasiekti

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: Diekime į produkciją kasdien – kaip tai pasiekti

Nerimauti nereikėtų

● Ar tai nėra pavojinga?

● Kainuos daug daugiau!

● Suprastės kokybė.

● Tai kaubojiškas procesas.

Page 18: Diekime į produkciją kasdien – kaip tai pasiekti

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: Diekime į produkciją kasdien – kaip tai pasiekti

Kainuos daug daugiau! – Ne.

● Automatizuoti reikės tik kartą

● Greitai išbandysi naujas idėjas

● Nebereikės jokių aplinkelių

Page 20: Diekime į produkciją kasdien – kaip tai pasiekti

Suprastės kokybė. – Ne.

● Slėpk kas neparuošta -

atskirk diegimą nuo

pristatymo

● Nebeskubėk, kad

spėtum į sprintą

Page 21: Diekime į produkciją kasdien – kaip tai pasiekti

Kaubojiškas procesas! - Ne.

● Reikės standartizuoti aplinkas

● Reikės standartizuoti migracijas

● Reikės standartizuoti procesą

Page 22: Diekime į produkciją kasdien – kaip tai pasiekti
Page 23: Diekime į produkciją kasdien – kaip tai pasiekti

Kaip tai pasiekti

● Continuous mentalitetas

● Tinkama nuolatinė integracija

● Diegimo automatizavimas

● Metrikos ir įspėjimai

Page 24: Diekime į produkciją kasdien – kaip tai pasiekti

Vienintelė taisyklė norintiems diegti nuolatos – laikyk

pagrindinę šaką diegtiną.

Page 25: Diekime į produkciją kasdien – kaip tai pasiekti

Continuous mentalitetas

● Nebandyk sutaupyti pusvalandžio

pažeisdamas diegtinumo principą

● Nemanyk, kad žinai viską, kas

vyksta tavo projekte

Page 26: Diekime į produkciją kasdien – kaip tai pasiekti

Ką reiškia - diegtiną?

Page 27: Diekime į produkciją kasdien – kaip tai pasiekti

Automatiniai testai sėkmingi

Page 28: Diekime į produkciją kasdien – kaip tai pasiekti

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

ištestuotas QA

Page 29: Diekime į produkciją kasdien – kaip tai pasiekti

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

ištestuotas QA bei dalies vartotojų

Page 30: Diekime į produkciją kasdien – kaip tai pasiekti
Page 31: Diekime į produkciją kasdien – kaip tai pasiekti

Nuolatinė integracija

Šaka →

Pagr. Šaka →

Page 32: Diekime į produkciją kasdien – kaip tai pasiekti

2?1

Pagr. Šaka →

Šaka →

Nuolatinė integracija

Page 33: Diekime į produkciją kasdien – kaip tai pasiekti

Pagr. Šaka →

1 ?

3

Šaka →

2

Pagr. Šaka →

Šaka →

Nuolatinė integracija

Page 34: Diekime į produkciją kasdien – kaip tai pasiekti

Per ankstyva integracija yra blogis.

Page 35: Diekime į produkciją kasdien – kaip tai pasiekti

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: Diekime į produkciją kasdien – kaip tai pasiekti

Lengva – vienu paspaudimu

Page 37: Diekime į produkciją kasdien – kaip tai pasiekti

Jokios rizikos

Page 38: Diekime į produkciją kasdien – kaip tai pasiekti

Nuoseklu – be staigmenų

Page 39: Diekime į produkciją kasdien – kaip tai pasiekti

Atsekama – kas, ką, kada

Page 40: Diekime į produkciją kasdien – kaip tai pasiekti
Page 41: Diekime į produkciją kasdien – kaip tai pasiekti

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: Diekime į produkciją kasdien – kaip tai pasiekti

Verslo metrikos

Page 43: Diekime į produkciją kasdien – kaip tai pasiekti

Aplikacijos metrikos

Page 44: Diekime į produkciją kasdien – kaip tai pasiekti

Anomalijos

Page 45: Diekime į produkciją kasdien – kaip tai pasiekti

Svarbu (bet nebūtina)

● Greiti testai ir diegimai

● Automatizuota konfigūracija

● Greitas inžinierių įvedimas

● Vieninga migracijos strategija

Page 46: Diekime į produkciją kasdien – kaip tai pasiekti

Greiti testai ir diegimai

Page 47: Diekime į produkciją kasdien – kaip tai pasiekti

Automatizuota konfigūracija

Page 48: Diekime į produkciją kasdien – kaip tai pasiekti

Greitas inžinierių įvedimas

Page 49: Diekime į produkciją kasdien – kaip tai pasiekti

Vieninga migracijos strategija

Page 50: Diekime į produkciją kasdien – kaip tai pasiekti

Continuous keičia žaidimo taisykles. Kaip tai paveikia

kitus komandos narius?

Page 51: Diekime į produkciją kasdien – kaip tai pasiekti

Kaip sekėsi mums?

Page 52: Diekime į produkciją kasdien – kaip tai pasiekti

Diegimų evoliucija

Page 53: Diekime į produkciją kasdien – kaip tai pasiekti

Frustration

Diegimų evoliucija

Page 54: Diekime į produkciją kasdien – kaip tai pasiekti

Diegimų evoliucija

Page 55: Diekime į produkciją kasdien – kaip tai pasiekti

Diegimų evoliucija

Page 56: Diekime į produkciją kasdien – kaip tai pasiekti

LOL Atostogos

Diegimų evoliucija

Page 57: Diekime į produkciją kasdien – kaip tai pasiekti

Diegimų evoliucija

Page 58: Diekime į produkciją kasdien – kaip tai pasiekti

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: Diekime į produkciją kasdien – kaip tai pasiekti

Top Related