Nadgradnja cevovoda zvezne postavitve s senčenjem zahtev v produkcijskem okolju

Autor: Šušteršič, Jaka
Přispěvatelé: Mahnič, Viljan
Jazyk: slovinština
Rok vydání: 2017
Předmět:
Popis: V zadnjih letih se pri razvoju spletnih aplikacij za kar najhitrejšo dostavo funkcionalnosti končnim uporabnikom vse pogosteje uporablja zvezna postavitev, katere temeljni del je postavitveni cevovod. Kljub hitrejši dostavi pa pravilno delovanje novih izdaj ostaja ključnega pomena. Zadnji koraki testiranja aplikacij, ki vključujejo zaznavanje regresij v novi izdaji, so v praksi pogosto ročni, posledično pa zamudni in manj zanesljivi. V magistrskem delu naslovimo omenjeni problem in razvijemo rešitev za avtomatsko zaznavanje regresij, ki temelji na senčenju spletnih zahtev. Naša rešitev spletne zahteve transparentno podvaja v senčeno okolje z novo izdajo in s primerjavo spletnih odgovorov iz produkcijskega ter senčenega okolja avtomatsko zaznava tako vsebinske kot tudi zmogljivostne regresije nove izdaje. Omenjeno rešitev uspešno integriramo v postavitveni cevovod izbrane spletne aplikacije in jo ovrednotimo. Uvedba naše rešitve zahteva le malo režijskega dela in dodatne infrastrukture, obenem pa omogoča preverjanje večjega števila robnih pogojev in načinov uporabe testirane aplikacije kot obstoječi tipi testiranja v postavitvenem cevovodu. Poleg tega naša rešitev za razliko od edine nam znane primerljive rešitve Diffy, ki podpira samo senčenje varnih zahtev, omogoča senčenje tudi nevarnih spletnih zahtev. In recent years, web application development has seen an increase in utilization of continuous delivery principles, ensuring rapid delivery of functionality to end users. However, despite faster releases, correctness of the released software remains crucial. In practice, the last steps of testing a new release involve detection of regressions from the previous release, which are performed manually, and are thus time-consuming and unreliable. In this thesis, we address this problem and develop a solution for automated regression detection based on shadowing of production requests. Our solution transparently duplicates web requests into a shadow environment used by the new release, and compares responses from production and shadow environments in order to detect content and performance regressions. We integrate our solution with the deployment pipeline of an existing web application and evaluate it. We demonstrate that introduction of our solution to deployment pipelines of existing applications requires little overhead and additional infrastructure, while at the same time enabling more thorough testing of numerous boundary cases and use cases that the existing types of testing in the deployment pipelines do not cover. To the best of our knowledge, unlike the only other comparable alternative Diffy, our solution enables shadowing of both safe as well as unsafe web requests.
Databáze: OpenAIRE