rozproszona i asynchroniczna architektura - case study - spread it

16
Rozproszona i asynchroniczna architektura oparta na Azure - case study Krzysztof Szabelski

Upload: krzysztof-szabelski

Post on 14-Apr-2017

143 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Rozproszona i asynchroniczna architektura - case study - Spread it

Rozproszona i asynchroniczna architektura oparta na Azure - case study

Krzysztof Szabelski

Page 2: Rozproszona i asynchroniczna architektura - case study - Spread it

Krzysztof Szabelski

Konsultant techniczny, trener, prelegent

Obszary zainteresowań► .NET► Architektura systemów► Przywództwo techniczne► Microsoft Azure

Prywatnie► Skialpinista,► Motocyklista,► Podróżnik

Great software… because we put People first► Software development

services► Training and consulting

Page 3: Rozproszona i asynchroniczna architektura - case study - Spread it

Dziś w programie

Asynchroniczność na poziomie architektury

Mikroserwisy

Chmura obliczeniowa w

praktyce

Dobre rozwiązania

Złe rozwiązania

Prawdziwy projekt –

prawdziwe doświadczenia

Page 4: Rozproszona i asynchroniczna architektura - case study - Spread it

O projekcie• Powiedzmy, że chodzi o:

• Nowatorski system zamawiania i obsługi taksówek.• SaaS • Multitenant• Mali klienci (małe miasteczka)

• Wymagania niefunkcjonalne• Dostępność bliska 24/7• Duża liczba zleceń w szczycie• Niezbędna responsywność dla użytkownika, nawet w szczycie

Page 5: Rozproszona i asynchroniczna architektura - case study - Spread it

Website

Services

Browser application

SQL Databases

Storage blob

Email Service

Commands Service

SignalR Hub Host

New order topic

Application Insights

Order DatabaseOrder Service

Notification topic

Mobile Gateway Push Notification Ack Service

Notification timeout topic

Notification ack topic

Timedout notification topic

Order Processor Service

Mobile App

Page 6: Rozproszona i asynchroniczna architektura - case study - Spread it

Asynchroniczność na poziomie architektury

Browser application

Booking Commands Service

Bookings Hub Host

New booking topic

Booking DatabaseBooking Service

Notification topic

Booking Processor Service

Scenariusz 1 – normalne działanie

Page 7: Rozproszona i asynchroniczna architektura - case study - Spread it

Asynchroniczność na poziomie architektury

Browser application

Booking Commands Service

Bookings Hub Host

New booking topic

Booking DatabaseBooking Service

Notification topic

Booking Processor Service

Scenariusz alternatywny – maksymalna prostota

Page 8: Rozproszona i asynchroniczna architektura - case study - Spread it

Asynchroniczność na poziomie architektury

Browser application

Booking Commands Service

Bookings Hub Host

New booking topic

Booking DatabaseBooking Service

Notification topic

Booking Processor Service

Scenariusz 2 – godziny szczytu

Δt=?

Page 9: Rozproszona i asynchroniczna architektura - case study - Spread it

Asynchroniczność na poziomie architektury

Browser application

Booking Commands Service

Bookings Hub Host

New booking topic

Booking DatabaseBooking Service

Notification topic

Booking Processor Service

Scenariusz 3 – wzrost liczby klientów

Page 10: Rozproszona i asynchroniczna architektura - case study - Spread it

Asynchroniczność na poziomie architektury

Browser application

Booking Commands Service

Bookings Hub Host

New booking topic

Booking DatabaseBooking Service

Notification topic

Booking Processor Service

Scenariusz 4 – coś poszło nie tak

Page 11: Rozproszona i asynchroniczna architektura - case study - Spread it

Mikroserwisy• Osiągnięte korzyści• Segmentacja danych • Modularność systemu

• Koszty i nieosiągnięte korzyści• Koszty vs prędność• Brak odporności na awarie pojedynczych serwisów – ukryte zależności• Niezależny deployment – nadmierna komplikacja dla jednego zespołu

Page 12: Rozproszona i asynchroniczna architektura - case study - Spread it

Mikroserwisy

„Almost all the successful microservice stories have started with a monolith. Almost all (...) system that was built as a microservice system from scratch, has ended up in serious trouble.”

Martin Fowler

Page 13: Rozproszona i asynchroniczna architektura - case study - Spread it

Chmura obliczeniowa w praktyce

IaaS czy PaaS?+ Koszt usług- Koszt obsługi- Czas uruchomienia- Podatność na błędy ludzkie

+ Koszt obsługi+ Czas uruchomienia+ Bezpieczeństwo/skalowalność - Ograniczenia- Koszt usług

Page 14: Rozproszona i asynchroniczna architektura - case study - Spread it

Microsoft Azure – wykorzystane usługi

• Cloud Service• Trochę przestarzałe• App Services (Web App) – lepsza alternatywa

• SQL Database • Ograniczony Sql Server – perspektywa DB Nazi• Wygodny SQL Server – perspektywa developera

• Azure Service Bus• Tanio, wygodnie i stabilnie, żyć nie umierać

• Application Insights• Send Grid• Search

Page 15: Rozproszona i asynchroniczna architektura - case study - Spread it

Podsumowanie• PaaS – the way to go!• Realnie globalny zasięg dla małej organizacji• Duża oszczędność czasu zarządzania środowiskiem

• Microservices• Unikaj• Lub bądź pewien, że wiesz co robisz i rób to dobrze

• Kolejki i przetwarzanie w tle• Potężny, obosieczny miecz • Używaj z rozwagą, licz się z konsekwencjami

Page 16: Rozproszona i asynchroniczna architektura - case study - Spread it

Dziękuję!

Krzysztof [email protected]://krzysztofszabelski.com/