Februárban az egyik ügyfelünk sürgős feladattal keresett fel minket. Egy 7/24-ben működő rendszert kezelt, melynek a hátterét többféle szolgáltatás biztosította. Azonban a tranzakciók nagyságának közelmúltbeli növekedése miatt, problémák jelentkeztek a meglévő rendszerben. Egyre többször adat inkonzisztencia történt és ezek kezelése veszélyeztette a szolgáltatás működését, valamint a hatékony üzemeltetését is.
Elemzésünk során előbb megvizsgáltuk a meglévő kódot és szolgáltatást, ami alapján felbecsültük és megterveztük a Backlogot valamint a Sprintek időkereteit. A tervezett megoldásunk az volt, hogy egy állapotmentes kódot készítünk, illetve felhasználjunk és ott ahol szükséges átírjuk a meglévő kódot, miközben javítunk a minőségen és a válaszidőkön is.
Előzetesen úgy terveztük, hogy három Sprint alatt végzünk (1 Sprint = 2 hét), de végül még egy Sprintre szükség volt, hogy befejezhessük a harmadik feles komponensek integrációját és a tesztelést.
Néhány probléma, amit kezelnünk kellett a folyamat során: minimálisan dokumentált kódbázis, harmadik feles kódbázisok integrációja, nem szabványos webszolgáltatások megvalósítása, forráskód nélküli külső erőforrások használata.
Néhány érdekesség és tudnivaló a projektről:
Technológiai változások
- Java 7 -> Java 8
- Apache Tomee -> Java Spring Boot
- Alkalmazott Mikroszolgáltatási Architektúra (További információk: itt)
Fejlesztés
- Kód refaktorállás
- Adatszerkezet módosítása
- REST API módosítása
- Elavult Jackrabbit eltávolítása
- CI alkalmazása DEV környezetben
- Alkatrészek automatizálása és E2E tesztelés
Felhasznált technólogiák és megoldások
- Docker (További információk: itt)
- SonarQube
- GitLab CI
- Confluence
- SOAP UI REST tesztekhez és service mockokhoz
- SpringBoot
- Swagger és Javadoc a dokumentációhoz
Amire büszkék vagyunk:
- 8 héten belül megoldás szállítása!
- A projektben a változásokat Agilis módon hajtottuk végre!
- Növeltük az ügyfelünk elégedettségét és boldogságát!
- A közösség számára is hozzáadott értéket teremtettünk (Github modell hibajavítás)