1 / 40

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

DIZAJN CLOUD-BASED APLIKACIJA KORIŠĆENJEM PATTERN-A. Ivan Lazarevi ć - Buda Solution Architect, S&T Serbia ivan.lazarevic@snt.rs , buda81@gmail.com. Agenda. Arhitektura sistema Evolucija Tradicionalni IT Cloud Moguća mesta otkaza Nova pravila Loša arhitektura Paterni u Cloud -u

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DIZAJN CLOUD-BASED APLIKACIJA KORIŠĆENJEM PATTERN-A Ivan Lazarević - Buda SolutionArchitect, S&T Serbia ivan.lazarevic@snt.rs, buda81@gmail.com

  2. 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

  3. Arhitekturasistema • Strukturai međusobna zavisnost između komponenti • Osnovnaorganizacijasistemakojaobuhvatanjegovekomponente, njihoverelacije,okruzenjeiprincipedizajnairazvoja • Veza između biznis zahteva i tehničkih zahteva • Trenutne potrebe i budući razvoj • Zavisi od mnogo faktora: brojkorisnika, alati, složenost korisničkih zahteva, razvojno okruženje, baze itd. • Overengineering

  4. Evolucija Evolucija Revolucija

  5. Evolucija Promene u arhitekturunastajuusledpromena u hardware-u, alatima, tehnologiji Zahteviklijenatautiču na promene u tehnologiji, samim tim i u arhitekturi

  6. Tradicionalni IT U vlasništvuklijenta Data centri Skuphardware Sprečavanje otkaza

  7. Cloud servisi Povezane komponente Nepoznata infrastruktura Oporavak Prihvatiti otkaze

  8. Moguća mesta otkaza

  9. Cloud– nova pravila Cloud ≠ Tradicionalni IT Iskoristiti prednosti Obratiti pažnju na zamke Razvoj za Cloud ≠ Razvoj tradicionalni IT

  10. Cloud– nova pravila Većina Cloudsistema nema dobru arhitekturu Podržati funkcije cloud infrastrukture

  11. Loša arhitektura • Loša iskorišćenostresursa • 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

  12. 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

  13. Obratiti pažnju • Izbegavati P2P komunikaciju • Koristiti queue • Traffic Management • Pristupnajbližem centru • Keširanje podataka • Particionisati podatke (horizontalno, vertikalno, hybrid) • Asinhrono programiranje • Praćenje rada sistema • Proširivost

  14. 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 • Clouddesignpatterns

  15. Clouddesignpaterni http://msdn.microsoft.com/en-us/library/dn568099.aspx http://shop.oreilly.com/product/0636920023777.do

  16. 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 KeyPattern) • 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 HostingPattern)

  17. Cloud design patteni • Management and monitoring (External Configuration Store Pattern, Health Endpoint Monitoring Pattern, Runtime ReconfigurationPattern) • 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, ThrottlingPattern)

  18. Cloud design patteni • Resiliency (Circuit Breaker Pattern, Compensating Transaction Pattern, Leader Election Pattern, Retry Pattern, Scheduler Agent Supervisor Pattern) • Security (Federated Identity Pattern, GatekeeperPattern, ValetKeyPattern)

  19. HealthEndpointMonitoringpatern Problem Kasno otkrivanje problema u radu aplikacije. Rešenje Mehanizam koji će omogućiti da se u određenim vremenskim intervalima proveri status sistema.

  20. HealthEndpoint Monitoring patern

  21. HealthEndpoint Monitoring patern

  22. Circuit Breaker patern Problem Problemi u radusaeksternimresursima, servisima, storage, file sistem, timeout, velikibrojkorisnikaotkazsistema Rešenje Spreč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

  23. Circuit Breaker patern

  24. Circuit Breaker Pattern

  25. Runtime Reconfiguration patern Problem Primena promene konfiguracije aplikacije tako da se najmanje utiče na rad aplikacije Rešenje Reagovanje na promene koje se jave u konfiguraciji i na taj način obezbediti mehanizam koji će imati najmaniimpact

  26. Runtime Reconfiguration patern

  27. Runtime Reconfiguration patern

  28. Valet Key Pattern Problem Obezbediti pristup resursu van sistema za autenfirikacijusamo određeno vreme i po određenim pravilima Rešenje Obezbediti token ili ključ preko koga sistem koji sadrži resurs može da proveri token

  29. Valet Key Pattern

  30. Valet Key Pattern

  31. Shardingpatern Problem Zbog ograničenih resursa (prostorna storage-u, geografskalokacija, prostornamreži itd.) nije uvek moguće imati jedinstvenu bazu podataka za ceo sistem. Rešenje Podeliti bazu podataka u horizontale particije (shard-ove) gdesveparticijeimajuistušemu, a različite podatke.

  32. Shardingpatern– Lookup

  33. Shardingpatern– Range

  34. Shardingpatern– Hash

  35. PriorityQueuepatern Problem Prilikom rada sa queue-vima, ponekad je potrebno obezbediti različite prioritete porukama prilikom obrade. Rešenje Obezdediti više queue-evasarazličitim prioritetom, tako da će se queue-u sa višim prioritetom obezbediti više resursa za rad.

  36. PriorityQueuepatern

  37. PriorityQueuepatern

  38. Pitanja?

More Related