tweet #tarabica14
DIZAJN CLOUD-BASED APLIKACIJA KORIŠĆENJEM PATTERN-A
Ivan Lazarević - BudaSolution Architect, S&T [email protected], [email protected]
tweet #tarabica14
Agenda• Arhitektura sistema• Evolucija• Tradicionalni IT• Cloud• Moguća mesta otkaza• Nova pravila• Loša arhitektura• Paterni u Cloud-u• Health Endpoint Monitoring• Circuit Breaker• Runtime Configuration• Sharding• Priority Queue
tweet #tarabica14
Arhitektura sistema• Struktura i međusobna zavisnost između
komponenti• Osnovna organizacija sistema koja obuhvata
njegove komponente, njihove relacije,okruzenje i principe dizajna i razvoja
• Veza između biznis zahteva i tehničkih zahteva• Trenutne potrebe i budući razvoj• Zavisi od mnogo faktora: broj korisnika, alati, složenost
korisničkih zahteva, razvojno okruženje, baze itd.• Overengineering
tweet #tarabica14
Evolucija
Mainframe
Klijent/server- Thick client
Multi-tier (3-tier, n-tier)
SOACloud
Evolucija Revolucija
tweet #tarabica14
Evolucija
Promene u arhitekturu nastaju usled promena u hardware-u, alatima, tehnologiji
Zahtevi klijenata utiču na promene u tehnologiji, samim tim i u arhitekturi
tweet #tarabica14
Tradicionalni IT
Data centriSkup hardware
Sprečavanje otkaza
U vlasništvu klijenta
tweet #tarabica14
Cloud servisi
Nepoznata infrastrukturaOporavak
Prihvatiti otkaze
Povezane komponente
tweet #tarabica14
Moguća mesta otkazaInterakcija između komponenti
Konekcije ka bazi
Interni servisi
Eksterni servisi
Pristup klijenata
U okviru komponenti
Baza podatakaMemorijaProcesor
Disk
Podešavanja aplikacije Programski kod
tweet #tarabica14
Cloud – nova pravilaCloud ≠ Tradicionalni IT
Iskoristiti prednosti
Obratiti pažnju na zamke
Razvoj za Cloud ≠ Razvoj tradicionalni IT
tweet #tarabica14
Cloud – nova pravila
Većina Cloud sistema nema dobru arhitekturuPodržati funkcije cloud infrastrukture
tweet #tarabica14
Loša arhitektura• Loša iskorišćenost resursa• Brzo iskorišćavanje svih resursa • Nedovoljan nivo sigurnosti• Loša fleksibilnost i mogućnost proširenja• Česti otkazi i prekidi u radu• Loša kontrola nad sistemom
tweet #tarabica14
Obratiti pažnju• Opterećenja• Razdvojiti delove sistema sa različitim
opterećenjem• Funkcionalnosti• Razdvojiti delove sistema po funkcionalnostim
• Definisati životni ciklus • Po mesecima, danima, sezonama, satima,
nedeljama• Definisati plan dostupnosti• Proceniti potrebne resurse kroz vreme• Definisati jedinice mere
tweet #tarabica14
Obratiti pažnju• Izbegavati P2P komunikaciju• Koristiti queue
• Traffic Management• Pristup najbližem centru
• Keširanje podataka• Particionisati podatke (horizontalno, vertikalno,
hybrid)• Asinhrono programiranje• Praćenje rada sistema• Proširivost
tweet #tarabica14
Paterni• Rešenje nekog problema u nekom kontektstu koje se
ponovo može iskoristiti za rešavanje nekih novih problema
• Problem, kontekst, rešenje• Razdvajanje generalnih od specifičnih delova koda• GOF• Cloud design patterns
tweet #tarabica14
Cloud design paternihttp://msdn.microsoft.com/en-us/library/dn568099.aspxhttp://shop.oreilly.com/product/0636920023777.do
tweet #tarabica14
Cloud design paterni• Availability (Health Endpoint Monitoring, Throttling
Pattern, Queue-based Load Leveling Pattern)• Data management (Cache-aside Pattern, CQRS
Pattern, Event Sourcing Pattern, Index Table Pattern, Materialized View Pattern, Sharding Pattern, Static Content Hosting Pattern, Valet Key Pattern)
• Design and implementation (Compute Resource Consolidation Pattern, CQRS Pattern, External Configuration Store Pattern, Leader Election Pattern, Pipes and Filters Pattern, Runtime Reconfiguration Pattern, Static Content Hosting Pattern)
tweet #tarabica14
Cloud design patteni• Management and monitoring (External
Configuration Store Pattern, Health Endpoint Monitoring Pattern, Runtime Reconfiguration Pattern)
• Messaging (Competing Consumers Pattern, Pipes and Filters Pattern, Priority Queue Pattern, Queue-based Load Leveling Pattern, Scheduler Agent Supervisor Pattern)
• Performance and scalability (Cache-aside Pattern, Competing Consumers Pattern, CQRS Pattern, Event Sourcing Pattern, Index Table Pattern, Materialized View Pattern, Priority Queue Pattern, Queue-based Load Leveling Pattern, Sharding Pattern, Static Content Hosting Pattern, Throttling Pattern)
tweet #tarabica14
Cloud design patteni• Resiliency (Circuit Breaker Pattern, Compensating
Transaction Pattern, Leader Election Pattern, Retry Pattern, Scheduler Agent Supervisor Pattern)
• Security (Federated Identity Pattern, Gatekeeper Pattern, Valet Key Pattern)
tweet #tarabica14
Health Endpoint Monitoring paternProblemKasno otkrivanje problema u radu aplikacije.
RešenjeMehanizam koji će omogućiti da se u određenim vremenskim intervalima proveri status sistema.
tweet #tarabica14
Circuit Breaker paternProblemProblemi u radu sa eksternim resursima, servisima, storage, file sistem, timeout, veliki broj korisnika otkaz sistema
RešenjeSprečiti pokušaj da se nešto izvrši što će sigurno vratiti grešku tako da aplikacija dobije brzo negazivan odgovor i nastavi sa radom
tweet #tarabica14
Runtime Reconfiguration paternProblemPrimena promene konfiguracije aplikacije tako da se najmanje utiče na rad aplikacije
RešenjeReagovanje na promene koje se jave u konfiguraciji i na taj način obezbediti mehanizam koji će imati najmani impact
tweet #tarabica14
Valet Key PatternProblemObezbediti pristup resursu van sistema za autenfirikaciju samo određeno vreme i po određenim pravilima
RešenjeObezbediti token ili ključ preko koga sistem koji sadrži resurs može da proveri token
tweet #tarabica14
Sharding paternProblemZbog ograničenih resursa (prostor na storage-u, geografska lokacija, prostor na mreži itd.) nije uvek moguće imati jedinstvenu bazu podataka za ceo sistem.
RešenjePodeliti bazu podataka u horizontale particije (shard-ove) gde sve particije imaju istu šemu, a različite podatke.
tweet #tarabica14
Priority Queue paternProblemPrilikom rada sa queue-vima, ponekad je potrebno obezbediti različite prioritete porukama prilikom obrade.
RešenjeObezdediti više queue-eva sa različitim prioritetom, tako da će se queue-u sa višim prioritetom obezbediti više resursa za rad.
Top Related