Preaload Image
Back
Akcija!

Razvoj softvera orijentisanog na procese (DevOps mikroservisi kontejneri)

Originalna cena je bila: 1,430.00 RSD.Trenutna cena je: 1,000.00 RSD.

Predmet analize i izlaganja gradiva u ovom udžbeniku je razvoj softvera orijentisanog na procese. Gradivo uključuje teorijske osnove, metode koje se koriste u projektovanju softvera, implementaciona okruženja, kao i alate i metode za upravljanje razvojem softvera. Cilj je da se u okviru knjige predstave najznačajniji procesi softverskog inženjerstva i njihova primena, počev od korisničkih zahteva koji se danas postavljaju pred informacione sisteme velikih preduzeća: distribuiranost, linearna skalabilnost i pouzdanost. Zatim, pregled teorijskih koncepata koji to omogućuju: paralelni procesi, servisi, događaji i metode za njihovo upravljanje, kao i metode za upravljanje softverskim procesom, gde je posebna pažnja posvećena DevOps-u.

S obzirom na to da je softversko inženjerstvo u najvećoj meri okrenuto praksi i konkretnoj primeni, deo ove knjige posvećen je implementacionim okruženjima i alatima za upravljanje životnim ciklusom kontejnera kao i njihovom orkestracijom. Udžbenik i praktikum laboratorijskih vežbi, koji je u pripremi, čine celinu nastavnih materijala za savlađivanje izloženog gradiva.

Izdavači: Računarski fakultet i Fakultet organizacionih nauka

-
+
ISBN: 978-86-82826-00-2 Kategorije: , ,
Autor: Miloš Radenković, Zorica Bogdanović Broj strana: 204 Pismo: ćirilica Povez: broš Format: B5 Godina izdavanja: 2023

SADRŽAJ
PREDGOVOR……………………………………………………………………………………………………..xv
I. UVOD………………………………………………………………………………………………………………………1
1. Softversko inženjerstvo………………………………………………………………………………..4
2. Paradigme razvoja softvera……………………………………………………………………………7
3. Paradigma razvoja proceduralnog softvera…………………………………………………..8
4. Paradigma razvoja objektno-orijentisanog softvera………………………………………8
5. Paradigma razvoja softvera orijentisanog na procese…………………………………..8
II. UPRAVLjANjE SOFTVERSKIM PROCESOM…………………………………………………….1
6. Model vodopada……………………………………………………………………………………………..4
7. Spiralni model……………………………………………………………………………………………..7
8. Iterativni model…………………………………………………………………………………………..8
9. Agilni modeli i Skram…………………………………………………………………………………..8
10. DevOps…………………………………………………………………………………………………………..8
10.1. Planiranje (Plan)………………………………………………………………………………………………21
10.2. Kodiranje (Code)……………………………………………………………………………………………….22
10.3. Konstrukcija softvera (Build)…………………………………………………………………………22
10.4. Testiranje softvera (Test)……………………………………………………………………………….22
10.5. Izdavanje nove verzije softvera (Release)………………………………………………………..22
10.6. Postavljanje softvera u produkciono okruženje (Deploy)………………………………..22
10.7. Eksploatacija i operativni rad softvera (Operate)………………………………………22
10.8. Nadgledanje i praćenje (Monitor)………………………………………………………………………22
11. Evaluacija softverskog procesa………………………………………………………………23
12. Otvorene inovacije i softver otvorenog kôda………………………………………….39
III. ANALIZA I PROJEKTOVANjE…………………………………………………………………………..1
13. Prikupljanje zahteva i analiza poslovnog sistema……………………………………42
13.1. Pregled tradicionalnih tehnika za analizu zahteva…………………………………….43
13.2. Analiza zahteva pomoću UML-a………………………………………………………………………..44
13.3. Modelovanje poslovnih procesa i BPMN……………………………………………………………45
13.4. Izvršna specifikacija poslovnih procesa………………………………………………………45
14. Projektovanje softvera…………………………………………………………………………..45
14.1. Apstrakcija i modelovanje u projektovanju softvera……………………………………..47
14.2. Modularnost……………………………………………………………………………………………………47
14.2.1 Sprega između modula…………………………………………………………………………….180
14.2.2 Kohezija………………………………………………………………………………………………….180
14.2.3 Razdvajanje nadležnosti……………………………………………………………………….180
14.2.4 Moduli u softveru orijentisanom na procese………………………………………180

14.3. Aktivnosti i zadaci u projektovanju softvera……………………………………………..47
15. Metode razvoja softvera orijentisanog na procese…………………………………..48
15.1. Razvoj softvera vođen podacima……………………………………………………………………..53
15.2. Razvoj softvera vođen modelom……………………………………………………………………….54
15.3. Fabrike softvera……………………………………………………………………………………………54
16. Arhitektura softvera……………………………………………………………………………..55
16.1. Paterni arhitekture softvera…………………………………………………………………….56
16.2. Antipaterni…………………………………………………………………………………………………..56
16.3. Arhitekturni stilovi u projektovanju softvera…………………………………………..56
16.4. Taksonomija paterna i arhitekturnih stilova………………………………………………56
16.5. Arhitekturni paterni opšte namene……………………………………………………………56
16.5.1 Patern klijent-server arhitekture…………………………………………………….180
16.5.2 Paterni višeslojne arhitekture…………………………………………………………180
16.5.3 Patern master-worker…………………………………………………………………………….180
16.5.4 Patern peer-to-peer arhitekture………………………………………………………….180
16.5.5 Patern posrednika – broker arhitektura…………………………………………….180
16.5.6 Patern virtuelizovanog srednjeg sloja…………………………………………………180
16.5.7 Patern filtriranja toka podataka…………………………………………………….180
16.5.8 Patern arhitekture u formi mikrokernela…………………………………………180
16.6. Paterni projektovanja korisničkog interfejsa……………………………………………..56
16.6.1 Model View Controller……………………………………………………………………………….180
16.6.2 Model View Presenter……………………………………………………………………………….180
16.6.3 Model View View Model……………………………………………………………………………180
17. Paterni arhitekture orijentisane na procese………………………………………….56
17.1. Domenom vođeno projektovanje softvera………………………………………………………..58
17.1.1 Domen…………………………………………………………………………………………………….180
17.1.2 Rečnik termina u okviru domena……………………………………………………………180
17.1.3 Povezan kontekst………………………………………………………………………………….180
17.1.4 Domenski model……………………………………………………………………………………..180
17.1.5 Upotreba domenskog modela…………………………………………………………………..180
17.2. Koncepti modelovanja softvera orijentisanog na procese……………………………59
17.2.1 Agregacije u modelima softvera orijentisanog na procese………………….180
17.2.2 Događaj…………………………………………………………………………………………………..180
17.2.3 Servis…………………………………………………………………………………………………….180
17.2.4 Proces……………………………………………………………………………………………………180
17.2.5 Interakcija procesa – aplikacija…………………………………………………………180
17.2.6 Informacioni sistem…………………………………………………………………………..180
17.2.7 B2B mreže………………………………………………………………………………………………180
17.3. Informacioni model softvera orijentisanog na procese……………………………..59
17.3.1 Metapodaci i podaci događaja………………………………………………………………180
17.3.2 Metapodaci i podaci procesa……………………………………………………………….180
17.4. Paterni skladištenja događaja………………………………………………………………………59
17.4.1 Event store……………………………………………………………………………………………….180
17.4.2 Informaciono jezero…………………………………………………………………………….180

17.5. Paterni obrade događaja…………………………………………………………………………………59
17.5.1 Patern osnovne obrade događaja……………………………………………………………180
17.5.2 Komunikacija i sinhronizacija procesa – Pub/Sub patern……………………..180
17.5.3 Obrada tokova događaja…………………………………………………………………………180
17.5.4 Obrada kompleksnih događaja…………………………………………………………………180
17.5.5 Lambda i Kappa arhitekture…………………………………………………………………180
18. Servisno-orijentisane arhitekture…………………………………………………………65
18.1. REST API…………………………………………………………………………………………………………….56
18.1.1 Preporuke i ograničenja za REST API……………………………………………………….180
18.1.2 REST API za veb servise……………………………………………………………………………180
18.1.3 Model zrelosti za REST API……………………………………………………………………180
19. Mikroservisi………………………………………………………………………………………..65
19.1. Aplikacioni programski interfejs mikroservisa…………………………………………..56
19.2. Komunikacija mikroservisa s okruženjem…………………………………………………………56
19.3. Aplikaciona logika mikroservisa……………………………………………………………………56
19.4. Primena mikroservisa u razvoju softvera orijentisanog na procese……………..56
19.5. Koreografija i orkestracija mikroservisa……………………………………………………..56
19.6. Raspodela opterećenja u mikroservisnim arhitekturama………………………………56
19.6.1 Reverzni proksi……………………………………………………………………………………..180
19.6.2 API proksi……………………………………………………………………………………………….180
19.7. Upravljanje podacima u mikroservisnim arhitekturama…………………………………56
19.7.1 CAP teorema………………………………………………………………………………………….180
19.8. Upravljanje transakcijama u mikroservisnim arhitekturama………………………..56
19.8.1 Dvofazni protokol izvršavanja transakcija – 2PC………………………………180
19.8.2 Saga patern…………………………………………………………………………………………..180
19.9. Upravljanje transakcijama u mikroservisnim arhitekturama………………………..56
19.9.1 Postavljanje više instanci servisa na jedan server…………………………….180
19.9.2 Postavljanje jedne instance servisa na jedan server…………………………….180
19.9.3 Postavljanje jedne instance servisa po virtuelnoj mašini…………………180
19.9.4 Postavljanje jedne instance servisa u jedan kontejner…………………………180
19.9.5 Postavljanje mikroservisa u serverless okruženje…………………………………..180
20. Softverske platforme i ekosistemi……………………………………………………….65
IV. INFRASTRUKTURA……………………………………………………………………………………………..1
21. Virtuelizacija……………………………………………………………………………………….67
21.1. Evolucija i istorija razvoja virtuelizacije……………………………………………………67
21.2. Tipovi virtuelizacije……………………………………………………………………………………..68
21.2.1 Potpuna virtuelizacija……………………………………………………………………….180
21.2.2 Virtuelizacija podržana kernelom………………………………………………………180
21.2.3 Virtuelizacija podržana hardverom…………………………………………………….180
21.2.4 Paravirtuelizacija………………………………………………………………………………180
21.3. Virtuelizacija računarskih mreža…………………………………………………………………67
21.4. Virtuelizacija skladištenja podataka…………………………………………………………68
21.4.1 Izbor hipervizora i tipa virtuelizacije…………………………………………….180
22. Kontejneri……………………………………………………………………………………………..67
22.1. Koncepti Linux kernela u kontejnerskoj virtuelizaciji………………………………….67
22.1.1 Linux procesi………………………………………………………………………………………….180
22.1.2 Kreiranje procesa…………………………………………………………………………………..180
22.1.3 Organizacija procesa…………………………………………………………………………….180
22.1.4 Međuprocesna komunikacija…………………………………………………………………..180
22.1.5 Kontrola i ograničavanje resursa – kontrolne grupe (cgroups)………………180
22.1.6 Izolacija resursa – oblasti imenovanja (namespaces)……………………………180
22.2. Ekosistem kontejnera……………………………………………………………………………………..68
22.3. Životni ciklus kontejnera…………………………………………………………………………….67
22.4. Umrežavanje kontejnera…………………………………………………………………………………..68
22.5. Fajl sistemi kontejnera…………………………………………………………………………………67
22.6. Upravljanje volumenima u kontejnerskom okruženju…………………………………………68
22.7. Registar kontejnera………………………………………………………………………………………..67
22.8. Standardizacija kontejnerskog ekosistema……………………………………………………68
22.8.1 OCI Image-spec………………………………………………………………………………………..180
22.8.2 OCI Runtime-spec……………………………………………………………………………………..180
22.9. Container runtime i container engine……………………………………………………………………67
22.10. Cloud native pristup razvoju softvera……………………………………………………………68
22.11. Orkestracija kontejnera……………………………………………………………………………….68
22.11.1 Single host orkestracija – Docker Compose…………………………………………….180
22.11.2 Multi-node orkestracija……………………………………………………………………….180
23. Kubernetes………………………………………………………………………………………………67
23.1. Kubernetes arhitektura…………………………………………………………………………………..67
23.1.1 API server……………………………………………………………………………………………….180
23.1.2 Etcd skladište………………………………………………………………………………………180
23.1.3 Scheduler…………………………………………………………………………………………………180
23.1.4 Controller Manager…………………………………………………………………………………..180
23.1.5 Kubelet……………………………………………………………………………………………………180
23.1.6 Kube-proxy………………………………………………………………………………………………180
23.1.7 Container runtime…………………………………………………………………………………….180
23.1.8 Interakcija i sinhronizacija komponenti Kubernetes-a……………………….180
23.2. Pôd…………………………………………………………………………………………………………………..67
23.3. Kontroleri………………………………………………………………………………………………………67
23.3.1 ReplicaSet………………………………………………………………………………………………..180
23.3.2 Deployment Controller………………………………………………………………………………180
23.3.3 StatefulSet……………………………………………………………………………………………….180
23.4. Umrežavanje u Kubernetes-u……………………………………………………………………………….67
23.4.1 Kubernetes mrežni servisi aplikacionog nivoa……………………………………..180
23.5. Funkcionalnosti Kubernetes klastera…………………………………………………………….67
23.5.1 Generisanje i raspoređivanje pôdova………………………………………………………180
23.5.2 Balansiranje opterećenja……………………………………………………………………..180
23.5.3 Skaliranje performansi………………………………………………………………………..180
23.5.4 Obrada neplaniranih prekida i oporavak………………………………………………180
23.5.5 Bezbednost…………………………………………………………………………………………….180
23.5.6 CI/CD………………………………………………………………………………………………………180
24. Paterni postavljanja softvera u produkciono okruženje………………………….69

Recenzije

Još nema komentara.

Budite prvi koji će napisati recenziju za „Razvoj softvera orijentisanog na procese (DevOps mikroservisi kontejneri)“

Vaša adresa e-pošte neće biti objavljena. Neophodna polja su označena *