23
Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure Kamil Dworak

[FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Embed Size (px)

Citation preview

Page 1: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Page 2: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Agenda

o projekcie

koncepcja WebJobs

kolejny krok Azure Functions

podsumowanie

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Page 3: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

O projekcie

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

System Samodzielnego Wykrywania Awarii na Sieci Wodociągowej.

Page 4: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Integracja z mapami

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Page 5: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Monitorowanie parametrów

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Page 6: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Samodzielne wykrywanie awarii

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Page 7: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Dane historyczne

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Page 8: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Pomiar wody

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Strefahydrauliczna

Przetwarzanie w chmurze

Page 9: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Parametry sieci wodociągowejParametr W liczbachDługość sieci wodociągowej 2 037 kmLiczba przyłączy 41 000Liczba zasuw 65 000Średnice rurociągów 80 - 1200 DNLiczba hydrantów 15 500Liczba wodomierzy głównych 47 000

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Page 10: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Architektura

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Page 11: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

WebJobs praca w tle

wspólna maszyna wirtualna

niezależne od użytkownika

przetwarzanie równoległe

start na żądanie

harmonogram zadań

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Page 12: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Kalkulacje danych pomiarowych

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Page 13: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Kudu

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Page 14: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

WebJob kalkulacjivar queueStorage = require('queueStorage');var flowmeterPeriodicParametersCalculator =

require('./flowmeterPeriodicParametersCalculator');

const QUEUE_NAME = process.env.APP_NAME + 'flowmeter-measure-queue';

const CHECK_QUEUE_TIMEOUT = 5000;

// ...

scheduleNewMessageHandling();

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Funkcja obsługująca nową wiadomość

Moduły kolejki oraz kalkulacji parametrów

Page 15: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

WebJob kalkulacji

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

function scheduleNewMessageHandling() { setTimeout(() => { queueStorage.getMessages(QUEUE_NAME, {numOfMessages: 1, visibilityTimeout: 600}) .map(message => { // ... }).catch(err => console.error('Error during calculations: ' + err)) .then(scheduleNewMessageHandling); }, CHECK_QUEUE_TIMEOUT);}// ...

Obsługa błędu

Pobranie wiadomości z kolejki

Page 16: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

WebJob kalkulacji// ....map(message => { var parsedMessage = JSON.parse(message.messagetext); if (parsedMessage.periodic) { return flowmeterPeriodicParametersCalculator .calculatePeriodicParametersForFlowmeter(parsedMessage) .then(() => queueStorage .removeMessage(QUEUE_NAME, message)); }});

// ...

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Przetwarzanie i kalkulacja parametrów

Page 17: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

WebJobs

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

dostępne w ramach

App Service Plan

działają bez interwencji

użytkownika

ściśle powiązane

z aplikacją

manualne skalowanie

problemy z logowaniem

maszyna wirtualna zawsze

musi być dostępna

możliwe obciążenie aplikacji

Page 18: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Azure Functions

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

następca WebJobs

oparte na zdarzeniach

brak serwera

automatyczne skalowanie

Page 19: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Architektura bezserwerowa

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

podział zasobów

odizolowanie od aplikacji

równoległość

Page 20: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Narzędzia

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Page 21: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Azure Functions

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

automatyczne skalowanie

model bezserwerowy

nowe narzędzia

szablony funkcji

dodatkowe koszty

dodatkowa implementacja

wynikająca z odizolowania

od aplikacji

Page 22: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Podsumowanie

napięty harmonogram zmusza nas do WebJobów

model bezserwerowy wymusza duplikację kodu

Azure Function pociąga za sobą dodatkowe opłaty

w przyszłości Azure Functions zostaną wdrożone

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Page 23: [FDD 2016] Kamil Dworak - Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

Kamil Dworak

Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure

[email protected]