Continuous Deployment (Lithuanian)

Preview:

DESCRIPTION

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

Citation preview

Continuous DeploymentTitas Norkūnas / @varsketiz

Assembla – Produktas

~ 350.000 Projektų

~ 350.000 Kodo repozitorijų

~ 850.000 Registruotų vartotojų

~ 5.000.000 Valdomų užduočių

Assembla – Komanda

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

● 20 Šalių

● 15 Laiko zonų

● 163 Diegimai į produkciją balandį

Assembla – Komanda

Assembla – Komanda

Daugiausia dirbu su šiuo kolega

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

Kaip dažnai diegiate į produkciją?

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

Kodėl verta

Agile manifestas #1:

"Mūsų aukščiausias prioritetas yra

patenkinti kliento poreikius, anksti ir

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

Agile manifestas #7:

"Pagrindinis progreso įvertinimas yra

veikianti programinė įranga."

Kodėl verta

Agile manifestas #10:

"Paprastumas – menas mažinti

nereikalingus darbus – yra būtinas."

Kodėl verta

"Minimalus veikiantis produktas - tai

toks produktas, kuris leidžia išmokti

maksimalų kiekį patvirtintos

informacijos įdedant mažiausiai

pastangų."

Kodėl verta

Ar norėtum čia dirbti?

● Github

● Amazon

● Heroku

● Linkedin

● Etsy

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

Kodėl verta

Kodėl verta

Ar norėtum čia dirbti?

● Github

● Amazon - diegimai kas 11 sek.● Heroku

● Linkedin

● Etsy

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

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

Nerimauti nereikėtų

● Ar tai nėra pavojinga?

● Kainuos daug daugiau!

● Suprastės kokybė.

● Tai kaubojiškas procesas.

Ar tai nėra pavojinga? – Ne.

● Neliks "žmogiškojo faktoriaus"

● Bus mažiau pakeitimų diegimuose

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

Kainuos daug daugiau! – Ne.

● Automatizuoti reikės tik kartą

● Greitai išbandysi naujas idėjas

● Nebereikės jokių aplinkelių

Suprastės kokybė. – Ne.

● Slėpk kas neparuošta -

atskirk diegimą nuo

pristatymo

● Nebeskubėk, kad

spėtum į sprintą

Kaubojiškas procesas! - Ne.

● Reikės standartizuoti aplinkas

● Reikės standartizuoti migracijas

● Reikės standartizuoti procesą

Kaip tai pasiekti

● Continuous mentalitetas

● Tinkama nuolatinė integracija

● Diegimo automatizavimas

● Metrikos ir įspėjimai

Vienintelė taisyklė norintiems diegti nuolatos – laikyk

pagrindinę šaką diegtiną.

Continuous mentalitetas

● Nebandyk sutaupyti pusvalandžio

pažeisdamas diegtinumo principą

● Nemanyk, kad žinai viską, kas

vyksta tavo projekte

Ką reiškia - diegtiną?

Automatiniai testai sėkmingi

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

ištestuotas QA

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

ištestuotas QA bei dalies vartotojų

Nuolatinė integracija

Šaka →

Pagr. Šaka →

2?1

Pagr. Šaka →

Šaka →

Nuolatinė integracija

Pagr. Šaka →

1 ?

3

Šaka →

2

Pagr. Šaka →

Šaka →

Nuolatinė integracija

Per ankstyva integracija yra blogis.

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

Lengva – vienu paspaudimu

Jokios rizikos

Nuoseklu – be staigmenų

Atsekama – kas, ką, kada

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

Verslo metrikos

Aplikacijos metrikos

Anomalijos

Svarbu (bet nebūtina)

● Greiti testai ir diegimai

● Automatizuota konfigūracija

● Greitas inžinierių įvedimas

● Vieninga migracijos strategija

Greiti testai ir diegimai

Automatizuota konfigūracija

Greitas inžinierių įvedimas

Vieninga migracijos strategija

Continuous keičia žaidimo taisykles. Kaip tai paveikia

kitus komandos narius?

Kaip sekėsi mums?

Diegimų evoliucija

Frustration

Diegimų evoliucija

Diegimų evoliucija

Diegimų evoliucija

LOL Atostogos

Diegimų evoliucija

Diegimų evoliucija

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"

Recommended