SlideShare a Scribd company logo
1 of 28
©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
©Szymon Szylhabel 4Developers 2015
Pytanie
Ile instancji Service Bus’a wymagane jest do
tego żeby zapewnić HA ?
www.bottega.com.pl facebook.com/BottegaITSolutions
©Szymon Szylhabel 4Developers 2015
Dawno dawno temu ….
©Szymon Szylhabel 4Developers 2015
Hurra robimy SOA
©Szymon Szylhabel 4Developers 2015
Zależności
©Szymon Szylhabel 4Developers 2015
Zależności
• ADP – Acyclic Dependencies Principle
• Klasyfikacja komunikacji - Command, Query,
Event
• Kontrola i przepływ danych
©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
©Szymon Szylhabel 4Developers 2015
Odwrócone zależności (Event)
CRM PDF Generator
CRM
Command
Event
Dependency
Dependency
«flow»
«flow»
©Szymon Szylhabel 4Developers 2015
Orkiestracja
Sales Shipping
Warehouse Credit
Orchiestrator
©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)
);
}
...
©Szymon Szylhabel 4Developers 2015
Transakcyjność
• Transakcje rozproszone
(MSDTC – two phase commit)
• Długie transakcje – blokowanie zasobów
• Oddzielenie przyjęcia żądania od
przetwarzania = asynchroniczność
©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
©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
•
©Szymon Szylhabel 4Developers 2015
Potrzebujemy Service Busa
©Szymon Szylhabel 4Developers 2015
Infrastruktura – podział
ServiceBus Message Broker
©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
©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
©Szymon Szylhabel 4Developers 2015
Zależności
• Commands
– Queues (Aktywna, Tylko odczyt, tylko zapis,
nieaktywna)
– Sessions
• Events (pub-sub)
– Topics, Subscriptions
– Filtry
– Deadlettering
• Namespaces
–
©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
©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
©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
•
©Szymon Szylhabel 4Developers 2015
Wydajność
©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ę
•
©Szymon Szylhabel 4Developers 2015
SB – Wydajność
Halo 4
©Szymon Szylhabel 4Developers 2015
SB – architektura HA
©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
©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
•
©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
•
•

More Related Content

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

PLSSUG Meeting - SQL Server 2008 Licensing
PLSSUG Meeting - SQL Server 2008 LicensingPLSSUG Meeting - SQL Server 2008 Licensing
PLSSUG Meeting - SQL Server 2008 LicensingTobias Koprowski
 
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLA
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLAWysoka Dostępność Windows Server 2008 w kontekscie umów SLA
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLATobias Koprowski
 
Microsoft SQL Server 2000. Księga eksperta
Microsoft SQL Server 2000. Księga ekspertaMicrosoft SQL Server 2000. Księga eksperta
Microsoft SQL Server 2000. Księga ekspertaWydawnictwo Helion
 
Serverless w Chmurze. Azure Functions vs AWS Lambda. Porównanie dwóch najwięk...
Serverless w Chmurze. Azure Functions vs AWS Lambda. Porównanie dwóch najwięk...Serverless w Chmurze. Azure Functions vs AWS Lambda. Porównanie dwóch najwięk...
Serverless w Chmurze. Azure Functions vs AWS Lambda. Porównanie dwóch najwięk...Michal Furmankiewicz
 
PLNOG16: Jak wykorzystać BRAS/BNG na platformach Cisco w celu świadczenia dod...
PLNOG16: Jak wykorzystać BRAS/BNG na platformach Cisco w celu świadczenia dod...PLNOG16: Jak wykorzystać BRAS/BNG na platformach Cisco w celu świadczenia dod...
PLNOG16: Jak wykorzystać BRAS/BNG na platformach Cisco w celu świadczenia dod...PROIDEA
 
Office 2013 community launch - exchange 2013 what's new
Office 2013 community launch - exchange 2013 what's newOffice 2013 community launch - exchange 2013 what's new
Office 2013 community launch - exchange 2013 what's newKonrad Sagala
 
Jak spieprzyć wydajność od początku projektu studium przypadków..pdf
Jak spieprzyć wydajność od początku projektu studium przypadków..pdfJak spieprzyć wydajność od początku projektu studium przypadków..pdf
Jak spieprzyć wydajność od początku projektu studium przypadków..pdfKrystian Zybała
 
Wstęp do programowania w chmurze przy użyciu Kubernetesa
Wstęp do programowania w chmurze przy użyciu KubernetesaWstęp do programowania w chmurze przy użyciu Kubernetesa
Wstęp do programowania w chmurze przy użyciu Kubernetesaklagrz
 
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...Ewa Stepien
 
PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...
PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...
PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...PROIDEA
 
Zautomatyzuj swój proces wdrażania projektów SSIS
Zautomatyzuj swój proces wdrażania projektów SSISZautomatyzuj swój proces wdrażania projektów SSIS
Zautomatyzuj swój proces wdrażania projektów SSISBartosz Ratajczyk
 
Jak zarządzać swoim e-sklepem w okresach zwiększonego ruchu?
Jak zarządzać swoim e-sklepem w okresach zwiększonego ruchu?Jak zarządzać swoim e-sklepem w okresach zwiększonego ruchu?
Jak zarządzać swoim e-sklepem w okresach zwiększonego ruchu?Beyond.pl
 
SQL Server 2005. Programowanie. Od podstaw
SQL Server 2005. Programowanie. Od podstawSQL Server 2005. Programowanie. Od podstaw
SQL Server 2005. Programowanie. Od podstawWydawnictwo Helion
 
Microsoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuHighWheelSoftware
 
Nowoczesna architektura Systemów IT w OSD na podstawie Energa-Operator
Nowoczesna architektura Systemów IT w OSD na podstawie Energa-OperatorNowoczesna architektura Systemów IT w OSD na podstawie Energa-Operator
Nowoczesna architektura Systemów IT w OSD na podstawie Energa-OperatorEnerga OPERATOR SA
 
Aplikacje natywne dla Kubernetes z wykorzystaniem OpenShift Serverless - Wars...
Aplikacje natywne dla Kubernetes z wykorzystaniem OpenShift Serverless - Wars...Aplikacje natywne dla Kubernetes z wykorzystaniem OpenShift Serverless - Wars...
Aplikacje natywne dla Kubernetes z wykorzystaniem OpenShift Serverless - Wars...Chris Suszyński
 
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowejMateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowejPROIDEA
 
Maintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaMaintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaTobias Koprowski
 
Wprowadzenie do modelowania danych w PowerPivot
Wprowadzenie do modelowania danych w PowerPivotWprowadzenie do modelowania danych w PowerPivot
Wprowadzenie do modelowania danych w PowerPivotKamil Nowinski
 

Similar to 4Developers 2015: Skalowanie i integracja systemów w asynchronicznym stylu - Szymon Szylhabel, Bottega IT (20)

Azure 101 warsztat v 1.1
Azure 101 warsztat v 1.1Azure 101 warsztat v 1.1
Azure 101 warsztat v 1.1
 
PLSSUG Meeting - SQL Server 2008 Licensing
PLSSUG Meeting - SQL Server 2008 LicensingPLSSUG Meeting - SQL Server 2008 Licensing
PLSSUG Meeting - SQL Server 2008 Licensing
 
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLA
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLAWysoka Dostępność Windows Server 2008 w kontekscie umów SLA
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLA
 
Microsoft SQL Server 2000. Księga eksperta
Microsoft SQL Server 2000. Księga ekspertaMicrosoft SQL Server 2000. Księga eksperta
Microsoft SQL Server 2000. Księga eksperta
 
Serverless w Chmurze. Azure Functions vs AWS Lambda. Porównanie dwóch najwięk...
Serverless w Chmurze. Azure Functions vs AWS Lambda. Porównanie dwóch najwięk...Serverless w Chmurze. Azure Functions vs AWS Lambda. Porównanie dwóch najwięk...
Serverless w Chmurze. Azure Functions vs AWS Lambda. Porównanie dwóch najwięk...
 
PLNOG16: Jak wykorzystać BRAS/BNG na platformach Cisco w celu świadczenia dod...
PLNOG16: Jak wykorzystać BRAS/BNG na platformach Cisco w celu świadczenia dod...PLNOG16: Jak wykorzystać BRAS/BNG na platformach Cisco w celu świadczenia dod...
PLNOG16: Jak wykorzystać BRAS/BNG na platformach Cisco w celu świadczenia dod...
 
Office 2013 community launch - exchange 2013 what's new
Office 2013 community launch - exchange 2013 what's newOffice 2013 community launch - exchange 2013 what's new
Office 2013 community launch - exchange 2013 what's new
 
Jak spieprzyć wydajność od początku projektu studium przypadków..pdf
Jak spieprzyć wydajność od początku projektu studium przypadków..pdfJak spieprzyć wydajność od początku projektu studium przypadków..pdf
Jak spieprzyć wydajność od początku projektu studium przypadków..pdf
 
Wstęp do programowania w chmurze przy użyciu Kubernetesa
Wstęp do programowania w chmurze przy użyciu KubernetesaWstęp do programowania w chmurze przy użyciu Kubernetesa
Wstęp do programowania w chmurze przy użyciu Kubernetesa
 
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
 
PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...
PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...
PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...
 
Zautomatyzuj swój proces wdrażania projektów SSIS
Zautomatyzuj swój proces wdrażania projektów SSISZautomatyzuj swój proces wdrażania projektów SSIS
Zautomatyzuj swój proces wdrażania projektów SSIS
 
Jak zarządzać swoim e-sklepem w okresach zwiększonego ruchu?
Jak zarządzać swoim e-sklepem w okresach zwiększonego ruchu?Jak zarządzać swoim e-sklepem w okresach zwiększonego ruchu?
Jak zarządzać swoim e-sklepem w okresach zwiększonego ruchu?
 
SQL Server 2005. Programowanie. Od podstaw
SQL Server 2005. Programowanie. Od podstawSQL Server 2005. Programowanie. Od podstaw
SQL Server 2005. Programowanie. Od podstaw
 
Microsoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 roku
 
Nowoczesna architektura Systemów IT w OSD na podstawie Energa-Operator
Nowoczesna architektura Systemów IT w OSD na podstawie Energa-OperatorNowoczesna architektura Systemów IT w OSD na podstawie Energa-Operator
Nowoczesna architektura Systemów IT w OSD na podstawie Energa-Operator
 
Aplikacje natywne dla Kubernetes z wykorzystaniem OpenShift Serverless - Wars...
Aplikacje natywne dla Kubernetes z wykorzystaniem OpenShift Serverless - Wars...Aplikacje natywne dla Kubernetes z wykorzystaniem OpenShift Serverless - Wars...
Aplikacje natywne dla Kubernetes z wykorzystaniem OpenShift Serverless - Wars...
 
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowejMateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
 
Maintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaMaintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_Znienacka
 
Wprowadzenie do modelowania danych w PowerPivot
Wprowadzenie do modelowania danych w PowerPivotWprowadzenie do modelowania danych w PowerPivot
Wprowadzenie do modelowania danych w PowerPivot
 

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

  • 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. ©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. ©Szymon Szylhabel 4Developers 2015 Dawno dawno temu ….
  • 4. ©Szymon Szylhabel 4Developers 2015 Hurra robimy SOA
  • 5. ©Szymon Szylhabel 4Developers 2015 Zależności
  • 6. ©Szymon Szylhabel 4Developers 2015 Zależności • ADP – Acyclic Dependencies Principle • Klasyfikacja komunikacji - Command, Query, Event • Kontrola i przepływ danych
  • 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. ©Szymon Szylhabel 4Developers 2015 Odwrócone zależności (Event) CRM PDF Generator CRM Command Event Dependency Dependency «flow» «flow»
  • 9. ©Szymon Szylhabel 4Developers 2015 Orkiestracja Sales Shipping Warehouse Credit Orchiestrator
  • 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. ©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. ©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. ©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. ©Szymon Szylhabel 4Developers 2015 Potrzebujemy Service Busa
  • 15. ©Szymon Szylhabel 4Developers 2015 Infrastruktura – podział ServiceBus Message Broker
  • 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. ©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. ©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. ©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. ©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. ©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. ©Szymon Szylhabel 4Developers 2015 Wydajność
  • 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. ©Szymon Szylhabel 4Developers 2015 SB – Wydajność Halo 4
  • 25. ©Szymon Szylhabel 4Developers 2015 SB – architektura HA
  • 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. ©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. ©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 • •

Editor's Notes

  1. WF – nie będzie obiektywne