Aplikacja rozproszona. Łatwiej, taniej, szybciej. I bez benchmarków.
Prelegent: Wojciech Rząsa
Wszyscy tworzymy systemy rozproszone, nawet jeśli to “tylko proste aplikacje www”. Z aplikacją rozproszoną mamy do czynienia już wtedy, gdy biblioteka frontendowa przechowuje stan kontrolek, który musi być zsynchronizowany z backendem. Innym przykładem jest uruchomienie aplikacji w środowisku produkcyjnym bazującym na rozproszonej infrastrukturze cloudowej. Oczywistym przykładem jest też korzystanie z zewnętrznych API. A przecież teraz wszyscy chcemy tworzyć mikroserwisy! Środowisko rozproszone jest z natury zmienne i trudno przewidywalne. Czy zastanawialiście się kiedyś jaki wpływ na wydajność Waszej aplikacji będą miały zmiany tego środowiska? Jak się zmieni wydajność aplikacji gdy wydłuży się czas odpowiedzi jednego z zewnętrznych serwisów? A jeśli load balancer nierówno rozłoży obciążenie na poszczególne serwery aplikacji, albo jeśli zmienicie wydajność i liczbę maszyn które obsługują aplikację? Można to oczywiście przetestować, ale wymaga to na ogół sporo wysiłku i poniesienia niemałego kosztu (wliczając w to cenny czas pracy). Można to jednak zrobić łatwiej, szybciej i taniej.
Zaprezentuję dwa konkretne przykłady w których przewiduję zmiany wydajności rzeczywistych aplikacji z mniejszym wysiłkiem i w krótszym czasie niż można to zrobić za pomocą testów. W swojej pracy używam symulacji, która pozwala analizować zachowanie systemu opisanego wygodnym, przejrzystym językiem dziedzinowym (DSL). Metoda została opisana w pracach naukowych [1, 2, 3, 4] i przedstawiona na międzynarodowych konferencjach. Nie zamierzam jednak dyskutować o części naukowej, ale o możliwości wykorzystania w praktyce. Na obecnym etapie szukam kolejnych praktycznych zastosowań tego podejścia, więc bardzo chętnie przedyskutuję praktyczne problemy i wykonam większość pracy potrzebnej, żeby je przeanalizować i dostarczyć potrzebnych odpowiedzi.
[1] Rząsa W.: Simulation-Based Analysis of a Platform as a Service Infrastructure Performance from a User Perspective, P. Gaj et al. (Eds.): CN 2015, CCIS 522, pp. 182–192, 2015 ISBN: 978-3-319-19418-9.
[2] Rząsa W., Rzońca D.: Event-Driven Approach to Modeling and Performance Estimation of a Distributed Control System, in: Gaj P., Kwiecień A., and Stera P. (Eds.): Computer Networks 2016, Communications in Computer and Information Science 608, Springer International Publishing 2016, pp. 168-179.
[3] Rząsa, W.: Predicting Performance in a PaaS Environment: a Case Study for a Web Application. Computer Science, [S.l.], v. 18, n. 1, p. 21, mar. 2017. ISSN 2300-7036. Available at: <https://journals.agh.edu.pl/csci/article/view/1794>. Date accessed: 05 Sep. 2017. doi:http://dx.doi.org/10.7494/csci.2017.18.1.21.
[4] Rząsa W., Jamro M., Rzonca D. (2017) Improving Accuracy of a Network Model Basing on the Case Study of a Distributed System with a Mobile Application and an API. In: Gaj P., Kwiecień A., Sawicki M. (eds) Computer Networks. CN 2017. Communications in Computer and Information Science, vol 718. Springer, Cham.
Wojciech Rząsa
Informatyk z zamiłowania i z zawodu. Inżynier z doktoratem. Od dawna interesuje się systemami rozproszonymi, wytwarzaniem oprogramowania i samym programowaniem. Po 15 latach pracy akademickiej i badaniu systemów rozproszonych obecnie tworzy mikroserwisy dla firmy FLYR. Współtworzy Rzeszowską grupę użytkowników języka Ruby. Autor wielu publikacji naukowych.
Kontakt z organizatorem: [email protected]