Válaszd a megfelelő technológiát és eszközöket

 

Miért fontos a megfelelő technológia kiválasztása?

Ahogy a fejezetben kifejtésre kerül, a nem megfelelő technológia választásával a tervezett alkalmazásfejlesztési projekt már a tervezési szakaszban jelentős hátrányt szenved, amelyet a projekt előrehaladása során maga előtt görget. Megfelelő technológia választásával alacsonyabb üzemeltetési költségek, nagyobb biztonság mellett fókuszáltabban tudjuk a szolgáltatásainkat célba juttatni. Az alábbiakban ugyanazt a problémát három fő irányból megközelítve próbálunk minél teljesebb képet adni.

 

Szolgáltatások, célcsoport, igények

Amennyiben a tervezett alkalmazás fejlesztést megfelelő kutató munka előzte meg, az alábbi szempontok könnyedén érvényesíthetők:

  • A tervezett alkalmazásfejlesztésnek meg kell határozni a célcsoportját, mind kvalitatív, mind kvantitatív szempontból.
  • Az alkalmazás fejlesztési szándékot össze kell vetni a célcsoport igényeivel, azaz validálni kell az ötletet.
  • Annak érdekében, hogy az alkalmazás használata minél könnyebb, a felhasználók számára magától értetődő legyen, fel kell mérni, hogy a célcsoport milyen készségekkel rendelkezik.
  • A célcsoport készségei alapján meghatározhatók az alkalmazás azon felületei, amelyeken keresztül a felhasználók igénybe vehetik a szolgáltatást.

A fenti szempontok alapján már körvonalazódik a felhasználók száma, a UI (User Interface, Felhasználói Felület) technológia ága (pl: Mobil/Web/API) illetve bizonyítást nyert, hogy a tervezett szolgáltatás valós igényeket kíván kiszolgálni, így valóban számíthatunk a becsült felhasználó aktivitásra.

 

Gazdaságosság

Pusztán a gazdasági megközelítést szem előtt tartva az alábbi szempontokat javasolt mérlegelni:

  • Költségvetés: Mekkora keret áll rendelkezésre? Ez fontos kérdés, hiszen, ha van elképzelés az árról úgy szűkíthetők a lehetőségek. Mérlegeld, hogy ami a kigondolt árból megoldható, elég-e az ügyfelek igényeinek kielégítéséhez, ha nem, érdemes még átgondolni.
  • Hordozhatóság: Egyik eszközről a másikra történő költöztetésnél praktikus és gazdaságos. Amikor egy szoftver ugyanazokkal a funkciókkal készül különböző platformokra, a hordozhatóság kulcskérdése a fejlesztési költségek csökkentésének.
  • Gazdaságosság kontra célcsoport igényei: A tervezett alkalmazás céljainak pontosítása fontos az esetleges túlköltekezés elkerülése érdekében, azaz csak olyan szolgáltatás kerüljön lefejlesztésre, amelyre valódi igény mutatkozik.
  • Forgalom, kihasználtság: Meg kell határozni az átlagos és csúcs igénybevételi szinteket. Ezek közvetlenül befolyásolják a technológia kiválasztását, valamint a CAPEX-et (tőkeköltséget). Gondoljunk csak bele: ha egy technológia olcsón ki tudja szolgálni az átlagos felhasználói interakciókat, nem biztos, hogy a csúcsidőszakban képes lesz ugyanerre. Amennyiben jelentős eltérés valószínű a két érték között, mindenképpen rugalmasabb technológiára lesz szükség, hiába költségesebb. (Lásd: Skálázhatóság)
  • Time to Market: Fontos számításba venni azt, hogy az alkalmazás élesbe állása mennyire sürgős, és ennek megfelelően olyan technológia irányába elmenni, ami elősegíti a gyors és biztonságos deploymentet már létező megoldások felhasználásával. Avagy, ha az idő nem szűkös, akkor egy komolyabb, specializáltabb fejlesztést is lehet tervezni, ami költséghatékonyabb hosszútávon.
  • Későbbi bővíthetőség/megújulás lehetősége: A fejlesztés során fontos figyelembe kell venni azt, hogy informatikai rendszerek esetében a folytonos megújulás életbevágó, mind biztonsági, mind költség szempontból folyamatos a javulás az iparban. Ezért fontos kerülni olyan rendszerek, illetve technológiák használatát, amiknek a jövőbeli cseréje extra költséget vonnak maguk után.
  • Future-Proofness: A rendszer és annak felhasználásának tervezett élettartalmától függően fontos olyan technológiát választani, aminek hasonló ideig a támogatása biztosított. Illetve, ha az alkalmazás egy rövid ideig tartó jól körülhatárolt feladatot ellátó rendszer vagy egy egyszeri feladatra készül, akkor érdemes kiforrott technológiákat alkalmazni, amivel csökkenthetjük a hibák valószívűségét és az ebből fakadó költségeket.
  • Létező infrastruktúra és kompetencia figyelembevétele: Továbbfejlesztés megkezdése előtt fontos figyelembe venni, hogy a jelenleg működő rendszerből mi az, ami továbbra is felhasználható, illetve az azt működtető csapat milyen kompetenciával rendelkezik. Ezekből összeállított lista alapján lehet megállapítani, hogy lehetséges-e spórolni azzal, hogy újra felhasználják a rendszereket és nem szükséges az újra betanítása a dolgozóknak. (Lásd még: Kompetencia)
 

Műszaki szempontok, egyéb kötöttségek

Egy új szolgáltatás bevezetése során, de különösen egy meglévő szolgáltatás továbbfejlesztése/újra fejlesztése/kiváltása során számos olyan kötöttség fordulhat elő, amelyek hatással lesznek a technológia és eszköz választásra. A teljesség igénye nélkül az alábbiakat érdemes figyelembe venni:

  • A személyes adatok védelme (GDPR)
  • A tárolni kívánt adatok minősítése, ezzel kapcsolatos megkötés, pl. csak országhatáron belüli tárolás
  • Skálázhatóság: A skálázhatóság a felhő technológia egyik legnagyobb előnye. Ha egy adott alkalmazást csak bizonyos időszakonként használ a felhasználók többsége, akkor előnyös lehet, ha arra az időszakra felskálázzuk az erőforrásainkat, az időszak végén pedig visszaskálázzuk az eredeti értékre. Így tehát nem kell fizessünk az erőforrás maximum kapacitásáért a bérlés egész időtartama alatt, hanem egyenes arányosan fizetünk annyit, amennyi erőforrást éppen felhasználunk.
  • Legacy rendszerek leváltása: A legacy (örökölt, régi rendszer) rendszerek leváltása fontosabb, mint valaha, mivel a modern, felhő alapú környezetek rengeteg előnyt hordoznak magukban, megoldást kínálva a legtöbb problémára, amit a legacy rendszerek használata jelent. A leggyakoribb indok, ami miatt a szervezetek félnek leváltani a legacy rendszereiket, az az adatvesztés, azonban ettől sem kell tartani, ha befektetünk egy úgynevezett "unified data platform"-ba, aminek segítségével egy helyre csoportosíthatjuk a különböző adatbázisokban tárolt adathalmazainkat, felkészítve őket a migrálásra.
  • IaaS / PaaS - felhasználók alapján platform választás: IaaS (Infrastructure as a Service) és PaaS (Platform as a Service) között a legfőbb különbség, hogy mi az, amit a külső szolgáltató menedzsel és mi az, amiben szabad keze van a szervezetnek. Az IaaS esetében a szervezet menedzseli az Operációs Rendszert, a Middleware-t (Köztes réteg) és a Runtime-ot (Futó alkalmazások), amíg a PaaS esetében, ezt mind a külső szolgáltató menedzseli. Alapvetően hosszasan át kell gondolni, hogy melyiket szeretnénk használni, még mielőtt bármibe is belevágunk, hiszen minden alkalmazás testreszabott megoldással válik a leghatékonyabbá.
  • Sérülékenységi vizsgálat / egységtesztelés: A technológia kiválasztásakor kockázati analízist végezhetünk annak érdekében, hogy felmérjük a potenciális kockázatokat és problémákat, ezáltal hatékonyabb döntéseket hozhassunk. A sérülékenység vizsgálattal az alkalmazás biztonsági kockázatait térképezhetjük fel, így ennek támogatása fontos a rendszer és adatok biztonságának érdekében. A technológia általi end-to-end tesztelés (végpontok közötti tesztelés) és egység tesztelés pedig az üzlet igények helyes működését ellenőrzi.
  • Monitorozható technológiák: Érdemes olyan eszközöket választani az alkalmazás fejlesztése során, ami futási időben megfelelő mennyiségű és minőségű telemetriai adatot tud szolgáltatni az üzemeltetési központ számára. Támogatva ezzel a támadások előzetes felfedését, vagy az alkalmazás gyenge pontjainak feltérképezését csakúgy, mint a felhasználói aktivitások megfigyelésén keresztül a későbbi hatékony továbbfejlesztést.
  • Ne a divat döntsön, legyen megfelelő támogatás: A technológia kiválasztásánál vegyük figyelembe az érintett technológia életútját. Legyen gyakran kiadott biztonsági frissítés hozzá, illetve a támogató közösség is aktív legyen. Előfordulhat, hogy egy új eszköz esetén látványosan nagy a támogatás, de 1-2 év után többletköltséget jelent az eszköz használata a támogatás és szakértők hiánya miatt.
  • Kompetencia: A kiválasztott technológiához legyen megfelelő számú szakértő a csapatban vagy szervezeten, ezzel biztosítva az üzletfolytonosságot. Új technológia bevezetésénél legyen megfelelő motiváció az elsajátításra és álljon rendelkezésre ehhez kellő mennyiségű és minőségű tananyag.
  • Nyelvi sajátosságok és tulajdonságok: A megfelelő cél ismeretében válasszuk ki a megfelelő technológiát. Mint egy jó szerszám, az adott technológia is egy-egy feladat elvégzésére alkalmas, így egy komplex feladat megvalósítására több különböző technológiát is választani szükséges.
  • DISZK támogatottság, javallat: A fejlesztés tervezése során a konkuráló technológiák közül érdemes olyan mellett letenni a voksunkat, amelyet a DISZK-ben támogatnak, használatát javasolják. Szükség esetén a DISZK támogatást ad a kiválasztási folyamatban.