DIZAJN CLOUD-BASED APLIKACIJA KORIŠĆENJEM PATTERN-A

40
tweet #tarabica14

description

DIZAJN CLOUD-BASED APLIKACIJA KORIŠĆENJEM PATTERN-A. Ivan Lazarevi ć - Buda Solution Architect, S&T Serbia [email protected] , [email protected]. Agenda. Arhitektura sistema Evolucija Tradicionalni IT Cloud Moguća mesta otkaza Nova pravila Loša arhitektura Paterni u Cloud -u - PowerPoint PPT Presentation

Transcript of DIZAJN CLOUD-BASED APLIKACIJA KORIŠĆENJEM PATTERN-A

tweet #tarabica14

tweet #tarabica14

DIZAJN CLOUD-BASED APLIKACIJA KORIŠĆENJEM PATTERN-A

Ivan Lazarević - BudaSolution Architect, S&T [email protected], [email protected]

tweet #tarabica14

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

Health Endpoint Monitoring patern

tweet #tarabica14

Health Endpoint Monitoring patern

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

Circuit Breaker patern

tweet #tarabica14

Circuit Breaker Pattern

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

Runtime Reconfiguration patern

tweet #tarabica14

Runtime Reconfiguration patern

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

Valet Key Pattern

tweet #tarabica14

Valet Key Pattern

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

Sharding patern – Lookup

tweet #tarabica14

Sharding patern – Range

tweet #tarabica14

Sharding patern – Hash

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.

tweet #tarabica14

Priority Queue patern

tweet #tarabica14

Priority Queue patern

tweet #tarabica14

Pitanja?