Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - Szymon Szylhabel, Bottega IT

256 views

Published on

Szymon Szylhabel

Language: Polish

Jeżeli zastanawiasz się jakie pułapki kryje asynchroniczna komunikacja lub masz wątpliwości czy ją zastosować - to dobrze trafiłeś - jestem tu po to, by rozwiać Twoje wątpliwości. Podczas prezentacji przedstawię różne podejścia do projektowania systemów bazujących na komunikacji asynchronicznej oraz konsekwencje wynikające z ich wdrożenia.
Od strony praktycznej przyjrzymy się szynom danych jak i technologiom, które je wspierają, między innymi pojawi się Azure ServiceBus w wersji „On Premise”, która pozycjonowana jest przez Microsoft jako następca MSMQ.

Published in: Software
  • Be the first to comment

  • Be the first to like this

4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - Szymon Szylhabel, Bottega IT

  1. 1. ©Szymon Szylhabel 4Developers 2015 Drabina Ekspertów Ścisły przewodnik po aspektach miękkich – część II Enterprise makeover Making sense of agile requirements Przejrzysty i testowalny kod na Androidzie? REST w praktyce - tej dobrej i tej złej Skalowanie i integracja systemów w asynchronicznym stylu Do you think you're doing microservice architecture? CQRS dla każdego Kiedy, jak i po co migrować na NoSQL
  2. 2. ©Szymon Szylhabel 4Developers 2015 Pytanie Ile instancji Service Bus’a wymagane jest do tego żeby zapewnić HA ? www.bottega.com.pl facebook.com/BottegaITSolutions
  3. 3. ©Szymon Szylhabel 4Developers 2015 Dawno dawno temu ….
  4. 4. ©Szymon Szylhabel 4Developers 2015 Hurra robimy SOA
  5. 5. ©Szymon Szylhabel 4Developers 2015 Zależności
  6. 6. ©Szymon Szylhabel 4Developers 2015 Zależności • ADP – Acyclic Dependencies Principle • Klasyfikacja komunikacji - Command, Query, Event • Kontrola i przepływ danych
  7. 7. ©Szymon Szylhabel 4Developers 2015 „Klasyczne zalezności” zależności CRM PDF Generator CRM PDF Generator Scenariusz 1 Scenariusz 2 Polling Response «flow» Request «flow» Request
  8. 8. ©Szymon Szylhabel 4Developers 2015 Odwrócone zależności (Event) CRM PDF Generator CRM Command Event Dependency Dependency «flow» «flow»
  9. 9. ©Szymon Szylhabel 4Developers 2015 Orkiestracja Sales Shipping Warehouse Credit Orchiestrator
  10. 10. ©Szymon Szylhabel 4Developers 2015 Saga class RelationshipStateMachine : AutomatonymousStateMachine<Relationship> { public RelationshipStateMachine() { Event(() => Hello); Event(() => PissOff); Event(() => Introduce); State(() => Friend); State(() => Enemy); Initially( When(Hello).TransitionTo(Friend), When(PissOff).TransitionTo(Enemy), When(Introduce) .Then((instance,data) => instance.Name = data.Name) .TransitionTo(Friend) ); } ...
  11. 11. ©Szymon Szylhabel 4Developers 2015 Transakcyjność • Transakcje rozproszone (MSDTC – two phase commit) • Długie transakcje – blokowanie zasobów • Oddzielenie przyjęcia żądania od przetwarzania = asynchroniczność
  12. 12. ©Szymon Szylhabel 4Developers 2015 SOA wyzwania c.d. • Wysoka dostępność( NLB nie jest wystarczające) • Skalowanie • Odporność na błędy przetwarzania UI Sales CRM Credit
  13. 13. ©Szymon Szylhabel 4Developers 2015 Wymagania odnośnie infrastruktury • Pub-sub • Transakcyjne zapisywanie do kolejki • Transakcyjne pobieranie z kolejki • Zapewniać HA • Pozwalać na skalowanie usług • Wspierać poprawę błędów przetwarzania •
  14. 14. ©Szymon Szylhabel 4Developers 2015 Potrzebujemy Service Busa
  15. 15. ©Szymon Szylhabel 4Developers 2015 Infrastruktura – podział ServiceBus Message Broker
  16. 16. ©Szymon Szylhabel 4Developers 2015 Dwa lata historii (Azure) Service Bus 09-2012 10-2012 11-2012 12-2012 01-2013 02-2013 03-2013 04-2013 05-2013 06-2013 10-2013 11-2013 12-2013 01-2014 02-2014 03-2014 04-2014 05-2014 06-2014 07-2014 08-2014 SDK 1.8 SDK 2.0 SDK 2.1 SB 1.0 SB 1.1 SDK 2.2 SDK 2.3 SDK 2.4 Partitions Express Entities Event Hubs Kompatybilne z SDK 1.8 Kompatybilne z SDK 2.1
  17. 17. ©Szymon Szylhabel 4Developers 2015 Service Bus - Architektura Windows & SQL ServerWindows & SQL Server Service Bus VSS WriterService Bus VSS Writer Service Bus Resource Provider Service Bus Resource Provider Service Bus SAS Security & Entity Management, Address resolution Protocol Heads (Rest, tcp, ampq) Protocol Heads (Rest, tcp, ampq) Service Bus Gateway .Net 4.5.Net 4.5 Windows Fabric 1.0Windows Fabric 1.0 Service Bus Message Broker
  18. 18. ©Szymon Szylhabel 4Developers 2015 Zależności • Commands – Queues (Aktywna, Tylko odczyt, tylko zapis, nieaktywna) – Sessions • Events (pub-sub) – Topics, Subscriptions – Filtry – Deadlettering • Namespaces –
  19. 19. ©Szymon Szylhabel 4Developers 2015 Zabezpieczenia • Autentykacja – Shared Accees Key • Możliwość używania dwóch kluczy • Działa między domenami – Windows Integrated Security • Grupa lub użytkownik • Active Directory • Autoryzacja – Listen – Send – Manage
  20. 20. ©Szymon Szylhabel 4Developers 2015 Service Bus - Transakcyjność • Transakcje tylko lokalne – Tylko jedna kolejka/temat/subskrypcja – Brak innych zasobów (np. SQL) • Obsługa modelu Peek&Lock – Pobranie wiadomości i zablokowanie jej – Abandom / Defer / Complete – Lock timeout / renewal • Detekcja duplikatów
  21. 21. ©Szymon Szylhabel 4Developers 2015 Wydajność • Wiadomości – properties + filtry – express entities – Topiki nie zachowujące kolejności – Wiele odbiorców • Skalowanie za darmo (sesje) • Wygładzanie peak’ów •
  22. 22. ©Szymon Szylhabel 4Developers 2015 Wydajność
  23. 23. ©Szymon Szylhabel 4Developers 2015 Wydajność • Farma z 3 serwerów (quad CPU 2.3GHz, 24GB RAM, wiadomość 1kB ) – Kolejka - 20 tyś. wiadomości na sekundę – Temat z jedną subskrypcją (bez filtra) – 14 tyś. wiadomości na sekundę – Temat z 1000 subskrypcji - 26 wiadomości na sekundę • • Pojedynczy wirtualny serwer ze słabym SQL serwerem – 40 wiadomości 1KB na sekundę – 20 wiadomości 100KB na sekundę – 5 wiadomości 1000KB na sekundę • • Laptop z i7, 8GB RAM, dysk SSD – 100 wiadomości 32kB na sekundę •
  24. 24. ©Szymon Szylhabel 4Developers 2015 SB – Wydajność Halo 4
  25. 25. ©Szymon Szylhabel 4Developers 2015 SB – architektura HA
  26. 26. ©Szymon Szylhabel 4Developers 2015 I żyli długo i szczęśliwie … • Zależności - mikro świat i makro – wspólne techniki • Transakcyjność vs SOA • Odpowiednia infrastruktura = oszczędności • Dostępność • REST w praktyce - tej dobrej i tej złej
  27. 27. ©Szymon Szylhabel 4Developers 2015 Dziękuje Kontakt Szymon Szylhabel (rudobrody.czarodziej@gmail.com) • Linki • Two phase commit - http://blog.jonathanoliver.com/how-i-avoid-two-phase-commit/ • ServiceBus 1.1 https://msdn.microsoft.com/pl-pl/library/dn282144.aspx • Granularity (Robert C. Martin) http://www.objectmentor.com/resources/articles/granularity.pdf • https://github.com/MassTransit/Automatonymous • http://particular.net/nservicebus •
  28. 28. ©Szymon Szylhabel 4Developers 2015 Credits • Architecture Now! 3 Jean Nouvel Photo: Copyright Jean Nouvel/Lewis Baltz Monolith (2001 - 2001) Morat, Switzerland • http://hero.wikia.com/wiki/King_Julien • http://www.samdutton.com/ • http://www.enterprisefeatures.com/how-does-it-benefit-from-a-move-to-the-cl • https://www.flickr.com/photos/93779577@N00/15700437070 • https://msdn.microsoft.com/en-us/library/dn282144.aspx • http://www.infoq.com/presentations/halo-4-orleans • http://www.ebizq.net/topics/eai/features/1590.html • •

×