Infrastruktura za moderne aplikacijeDragan Kešelj
2019 QUANTUM - AutoMARKET 2
Pre interneta…
Godine 1895, Nikola Tesla i Džordž Vestinghaus grade prvu hidroelektranu na svetu na Nijagarinim vodopadima baziranu na Teslinom pronalasku generatora i sistema prenosa naizmenične struje
Tomas Edison u to vreme vodeći američki pronalazač i industrijalac pokreće marketinšku kampanju kako bi promovisao jednosmernu struju.
Edison bi organizovao javnu egzekuciju životinja kako bi dočarao opasnosti naizmenične struje. Ova kampanja je kasnije dobila naziv "Rat struja"
2019 QUANTUM - AutoMARKET 3
Infrastruktura
Infrastruktura je za to vreme bila veoma komplikovana i sastojala se od: generatora, transformatora, visokonaponskog sistema za prenos, niskonaponskog sistema i konačno kućnih priključaka.
Na slici je prikazan model trofazne infrastrukture iz Muzeja Nikole Tesle.
2019 QUANTUM - AutoMARKET 4
Korisnička strana
• Samo dva elementa, sijalica i prekidač• Sa strane korisnika infrastruktura nije bitna
2019 QUANTUM - AutoMARKET 5
Arhitektura aplikacije
Zone interesa:• Korisnik
• Aplikacija
• Developer• Aplikacija
• Baza
• Korisnik?• OS
• Serveri
Server
Baza
OS
Aplikacija
2019 QUANTUM - AutoMARKET 6
Virtualizacija
Zone interesa:• Korisnik
• Aplikacija
• Developer• Aplikacija
• Baza
• Cloud usluga• VM
Baza
VM
Aplikacija
2019 QUANTUM - AutoMARKET 7
Virtualizacija
Problemi
Rešeni◦ Visoka dostupnost
◦ Izolacija
◦ Briga o infrastrukturi
Preostali◦ Aplikacije su se preselile na Internet
◦ Skalabilnost◦ Više instanci
◦ Geografska
◦ Izmena delova sistema po potrebi
◦ Ažuriranje bez prekida u radu (hotswap)
2019 QUANTUM - AutoMARKET 8
Struktura sistema
Statistics Module
Management Console
Buyers
Seller
SmartCAL
ERP
Odyssey ConnectERP Services
Odyssey
pri
ces,
ava
ilab
ility
, in
voic
es,
art
icle
s, u
pd
ate
s
orders orders
prices, availability,
invoices
prices, availability,
invoices
2019 QUANTUM - AutoMARKET 9
Korisnici
Colombia
South Africa
United KingdomSlovakia
Croatia
Bosnia and Herzegovina
Serbia
Greece
Macedonia
MontenegroEl Salvador
Ireland
· Premium support · Monitoring centre · 24/7 critical support ·
2019 10
Customer care
QUANTUM-AutoMARKET
Docker
Mikro servisi
2019 QUANTUM - AutoMARKET 11
Moderna infrastruktura
DB servis
Hardverski sloj
App 1
Softver kao servis SaaS
Redis / State Storage
X86Int/AMD
ARM GPU Risc V ASIC FPGA
Virtualizacija
Multicloud
AWS Azure VMWare LocalGoogle COMING
Login
Kubernetes
App 2
2019 QUANTUM - AutoMARKET 12
Moderna infrastruktura
2019 QUANTUM - AutoMARKET 13
Mikroservisi
Prednosti MS arhitekture
◦ Mali timovi
◦ Nezavisna od razvojnog jezika
◦ Lokalizacija problema
◦ Skalabilnost sistema
◦ Na nivou mikroservisa
◦ Mikroservisi mogu imati druge mikroservise kao izvor podataka
2019 QUANTUM - AutoMARKET 14
Netflix mikroservis arhitektura
2019 QUANTUM - AutoMARKET 15
Kubernetes
Hosting mikroservisa
◦ Najefikasniji hosting mikroservisa je u kontejneru
◦ Za automatizaciju, redudantnost i skalabilnost koristimo Kubernetes
2019 QUANTUM - AutoMARKET 16
Kubernetes
Šta je Kubernetes – K8s
Kubernetes predstavlja set gradivnih blokova koji zajedno obezbeđuju mehanizme za:
◦ Publikaciju (Depoyment)
◦ Održavanje
◦ Skaliranje aplikacija
Bazirano na potrebama za procesorskim vremenom, memorijom ili korisničkom metrikom
2019 QUANTUM - AutoMARKET 17
Kubernetes - Rečnik
◦ Pod◦ Pokreće jedan ili više kontejnera
◦ Kontejner sadrži kopiju mikroservisa
◦ Nod - Host◦ Komunicira sa masterom
◦ Pokreće i održava u životu podove
◦ Master◦ Kontroliše klaster i nodove na njemu
◦ Servis◦ Prihvata zahteve
◦ Tipično ima ulogu load balancer-a
◦ Deployment◦ Definiše željeno stanje aplikacije –
Kubernetes radi ostalo
2019 QUANTUM - AutoMARKET 18
Kubernetes
Hosting mikroservisa – K8s POD
◦ Najmanja jedinica za deployment
◦ Predstavlja grupu usko vezanih kontejnera
◦ Može sadržati jedan ili više kontejnera
◦ Dele mrežni i pristup podacima
◦ Imaju rutabilnu IP adresu
◦ Smrtni su!
2019 QUANTUM - AutoMARKET 19
Kubernetes
Hosting mikroservisa – Kada se sve spoji:Developer postaje hosting provajder!
2019 QUANTUM - AutoMARKET 20
Automatizacija
Primer – K8s deployment
Yaml skripta za kreiranje K8s klastera:
◦ Definiše “desired state”
◦ Pristupna adresa/port
◦ Broj instanci
◦ Verzija aplikacije
◦ Verzija okruženja
2019 QUANTUM - AutoMARKET 21
Automatizacija
Infrastructure as a Code - IaC
◦ Developer opisuje željeno stanjesistema
◦ K8s automatski obezbeđuje:◦ Load balancing
◦ Skalabilnost
◦ Redudantnost
◦ Zaštitu od otkaza
2019 QUANTUM - AutoMARKET 22
Kubernetes
2019 QUANTUM - AutoMARKET 23
Moderne baze podataka – DB as a Service
Hyperscale SQL◦
2019 QUANTUM - AutoMARKET 24
Strategije
◦Strategije za Deployment◦ CI/CD◦ Automatizovana distribucija (deployment)◦ Definisanje hardverskog okruženja kroz skripte
◦Strategije za aplikacije◦ Mikroservisi (nezavisni od OS - .NET Core)◦ Kubernetes (za orkestraciju)
◦Strategije za baze podataka◦ DB as a Service - Hyperscale DB◦ Kubernetes friendly DB – MongoDB, Elastic Search, Cassandra
2019 QUANTUM - AutoMARKET 25
Pouka
Perspektive se razlikuju!
2019 QUANTUM - AutoMARKET 26
Pouka
• Softver se više ne dizajnira
prema okruženju, već okruženje
prema potrebama softvera!
• Prvi put u istoriji smo došli do
infrastrukture stvorene baš za
developera - IaC.
• Ovo je početak nove ere u
razvoju softverskih rešenja.
Hvala na pažnji!
2019 27
QUANTUM – AutoMARKET d.o.o.Toše Jovanovića 7
11030 Beograd / Belgrade
Srbija / Serbia
Tel: +381 (0)11 2310 145
+381 (0)11 2310 182
Email: [email protected]
[email protected]: www.AutoMARKET.rs