SlideShare a Scribd company logo
1 of 23
Przetwarzanie danych pomiarowych w tle
z wykorzystaniem Azure
Kamil Dworak
Kamil Dworak
Agenda
 o projekcie
 koncepcja WebJobs
 kolejny krok Azure Functions
 podsumowanie
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.
Kamil Dworak
Integracja z mapami
Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
Kamil Dworak
Monitorowanie parametrów
Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
Kamil Dworak
Samodzielne wykrywanie awarii
Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
Kamil Dworak
Dane historyczne
Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
Kamil Dworak
Pomiar wody
Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
Strefa
hydrauliczna
Przetwarzanie
w chmurze
Kamil Dworak
Parametry sieci wodociągowej
Parametr W liczbach
Długość sieci wodociągowej 2 037 km
Liczba przyłączy 41 000
Liczba zasuw 65 000
Średnice rurociągów 80 - 1200 DN
Liczba hydrantów 15 500
Liczba wodomierzy głównych 47 000
Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
Kamil Dworak
Architektura
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
Kamil Dworak
Kalkulacje danych pomiarowych
Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
Kamil Dworak
Kudu
Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
Kamil Dworak
WebJob kalkulacji
var 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
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
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
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
Kamil Dworak
Azure Functions
Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
 następca WebJobs
 oparte na zdarzeniach
 brak serwera
 automatyczne skalowanie
Kamil Dworak
Architektura bezserwerowa
Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
 podział zasobów
 odizolowanie od aplikacji
 równoległość
Kamil Dworak
Narzędzia
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
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
Kamil Dworak
Przetwarzanie danych pomiarowych w tle
z wykorzystaniem Azure
kdworak@future-processing.com

More Related Content

Viewers also liked

العرض
العرضالعرض
العرض
hadeel88
 
العرض
العرضالعرض
العرض
hadeel88
 
العرض التكنولوجيا الأطفال
العرض التكنولوجيا الأطفال العرض التكنولوجيا الأطفال
العرض التكنولوجيا الأطفال
hadeel88
 
Albert michelson michelle calderon
Albert  michelson michelle calderonAlbert  michelson michelle calderon
Albert michelson michelle calderon
britney8sapphire
 
Quality report 10 2013
Quality report 10 2013Quality report 10 2013
Quality report 10 2013
kortneybrad
 
العرض
العرضالعرض
العرض
hadeel88
 
العرض
العرضالعرض
العرض
hadeel88
 
العرض
العرضالعرض
العرض
hadeel88
 
Galileo galiliei by daniela garcia
Galileo galiliei by daniela garciaGalileo galiliei by daniela garcia
Galileo galiliei by daniela garcia
dgarcia0662
 

Viewers also liked (18)

العرض
العرضالعرض
العرض
 
[QE 2015] Marcin Budny, Ryszard Tarajkowski - Testy łatwe w utrzymaniu
[QE 2015] Marcin Budny, Ryszard Tarajkowski - Testy łatwe w utrzymaniu[QE 2015] Marcin Budny, Ryszard Tarajkowski - Testy łatwe w utrzymaniu
[QE 2015] Marcin Budny, Ryszard Tarajkowski - Testy łatwe w utrzymaniu
 
Find out more about LearnUpon's LMS and what it can do for you
Find out more about LearnUpon's LMS and what it can do for youFind out more about LearnUpon's LMS and what it can do for you
Find out more about LearnUpon's LMS and what it can do for you
 
العرض
العرضالعرض
العرض
 
[FDD 2016] Katarzyna Bremer - BIML - sterowane metadanymi tworzenie pakietów ...
[FDD 2016] Katarzyna Bremer - BIML - sterowane metadanymi tworzenie pakietów ...[FDD 2016] Katarzyna Bremer - BIML - sterowane metadanymi tworzenie pakietów ...
[FDD 2016] Katarzyna Bremer - BIML - sterowane metadanymi tworzenie pakietów ...
 
[Quality Meetup #9] Testowanie w świecie ontologii - A. Ostaszewska-Smykała, ...
[Quality Meetup #9] Testowanie w świecie ontologii - A. Ostaszewska-Smykała, ...[Quality Meetup #9] Testowanie w świecie ontologii - A. Ostaszewska-Smykała, ...
[Quality Meetup #9] Testowanie w świecie ontologii - A. Ostaszewska-Smykała, ...
 
العرض التكنولوجيا الأطفال
العرض التكنولوجيا الأطفال العرض التكنولوجيا الأطفال
العرض التكنولوجيا الأطفال
 
Wyzwania i odpowiedzialność projektanta/WUD Silesia 2014
Wyzwania i odpowiedzialność projektanta/WUD Silesia 2014Wyzwania i odpowiedzialność projektanta/WUD Silesia 2014
Wyzwania i odpowiedzialność projektanta/WUD Silesia 2014
 
Albert michelson michelle calderon
Albert  michelson michelle calderonAlbert  michelson michelle calderon
Albert michelson michelle calderon
 
Quality report 10 2013
Quality report 10 2013Quality report 10 2013
Quality report 10 2013
 
[FDD 2016] Krzysztof Jendrzyca - Funkcyjny Frontend
[FDD 2016] Krzysztof Jendrzyca - Funkcyjny Frontend[FDD 2016] Krzysztof Jendrzyca - Funkcyjny Frontend
[FDD 2016] Krzysztof Jendrzyca - Funkcyjny Frontend
 
العرض
العرضالعرض
العرض
 
New microsoft office power point presentation (3)
New microsoft office power point presentation (3)New microsoft office power point presentation (3)
New microsoft office power point presentation (3)
 
Jenkins – przyjaciel każdego testera.
Jenkins – przyjaciel każdego testera.Jenkins – przyjaciel każdego testera.
Jenkins – przyjaciel każdego testera.
 
العرض
العرضالعرض
العرض
 
العرض
العرضالعرض
العرض
 
[QE 2015] Krystian Kaczor - Wymagania w Agile
[QE 2015] Krystian Kaczor - Wymagania w Agile[QE 2015] Krystian Kaczor - Wymagania w Agile
[QE 2015] Krystian Kaczor - Wymagania w Agile
 
Galileo galiliei by daniela garcia
Galileo galiliei by daniela garciaGalileo galiliei by daniela garcia
Galileo galiliei by daniela garcia
 

More from Future Processing

More from Future Processing (20)

DPTO_Inżynieria oprogramowania to proces uczenia się.pdf
DPTO_Inżynieria oprogramowania to proces uczenia się.pdfDPTO_Inżynieria oprogramowania to proces uczenia się.pdf
DPTO_Inżynieria oprogramowania to proces uczenia się.pdf
 
DPTO_QA w świecie wartości biznesowych.pdf
DPTO_QA w świecie wartości biznesowych.pdfDPTO_QA w świecie wartości biznesowych.pdf
DPTO_QA w świecie wartości biznesowych.pdf
 
DPTO_Hello_Clean_Architekture.pdf
DPTO_Hello_Clean_Architekture.pdfDPTO_Hello_Clean_Architekture.pdf
DPTO_Hello_Clean_Architekture.pdf
 
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
 
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
 
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
 
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
 
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
 
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
 
[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] Lech Kalinowski - Prywatny Blockchain[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] Lech Kalinowski - Prywatny Blockchain
 
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
 
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
 
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
 
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
 
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
 
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
 
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
 
[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Marek Puchalski – Web Application Security Test Automation[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Marek Puchalski – Web Application Security Test Automation
 
[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Rob Lambert – How to Thrive as a Software Tester[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Rob Lambert – How to Thrive as a Software Tester
 
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
 

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

  • 1. Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure Kamil Dworak
  • 2. Kamil Dworak Agenda  o projekcie  koncepcja WebJobs  kolejny krok Azure Functions  podsumowanie Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
  • 3. Kamil Dworak O projekcie Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure System Samodzielnego Wykrywania Awarii na Sieci Wodociągowej.
  • 4. Kamil Dworak Integracja z mapami Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
  • 5. Kamil Dworak Monitorowanie parametrów Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
  • 6. Kamil Dworak Samodzielne wykrywanie awarii Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
  • 7. Kamil Dworak Dane historyczne Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
  • 8. Kamil Dworak Pomiar wody Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure Strefa hydrauliczna Przetwarzanie w chmurze
  • 9. Kamil Dworak Parametry sieci wodociągowej Parametr W liczbach Długość sieci wodociągowej 2 037 km Liczba przyłączy 41 000 Liczba zasuw 65 000 Średnice rurociągów 80 - 1200 DN Liczba hydrantów 15 500 Liczba wodomierzy głównych 47 000 Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
  • 10. Kamil Dworak Architektura Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
  • 11. 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
  • 12. Kamil Dworak Kalkulacje danych pomiarowych Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
  • 13. Kamil Dworak Kudu Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
  • 14. Kamil Dworak WebJob kalkulacji var 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. Kamil Dworak Azure Functions Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure  następca WebJobs  oparte na zdarzeniach  brak serwera  automatyczne skalowanie
  • 19. Kamil Dworak Architektura bezserwerowa Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure  podział zasobów  odizolowanie od aplikacji  równoległość
  • 20. Kamil Dworak Narzędzia Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure
  • 21. 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
  • 22. 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
  • 23. Kamil Dworak Przetwarzanie danych pomiarowych w tle z wykorzystaniem Azure kdworak@future-processing.com