Upotreba AWS Cloud servisa za pokretanje web i mobilnih aplikacija

Величина: px
Почињати приказ од странице:

Download "Upotreba AWS Cloud servisa za pokretanje web i mobilnih aplikacija"

Транскрипт

1 Upotreba AWS Cloud servisa za pokretanje web i mobilnih aplikacija Vutmej, David Undergraduate thesis / Završni rad 2020 Degree Grantor / Ustanova koja je dodijelila akademski / stručni stupanj: Polytechnic of Međimurje in Čakovec / Međimursko veleučilište u Čakovcu Permanent link / Trajna poveznica: Rights / Prava: In copyright Download date / Datum preuzimanja: Repository / Repozitorij: Polytechnic of Međimurje in Čakovec Repository - Polytechnic of Međimurje Undergraduate and Graduate Theses Repository

2 MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU STRUČNI STUDIJ RAČUNARSTVO DAVID VUTMEJ UPOTREBA AWS CLOUD SERVISA ZA POKRETANJE WEB I MOBILNIH APLIKACIJA ZAVRŠNI RAD ČAKOVEC, 2020.

3 MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU STRUČNI STUDIJ RAČUNARSTVO DAVID VUTMEJ UPOTREBA AWS CLOUD SERVISA ZA POKRETANJE WEB I MOBILNIH APLIKACIJA USING AWS CLOUD SERVICES FOR RUNNING WEB AND MOBILE APPLICATIONS ZAVRŠNI RAD Mentor: dr. sc. Bruno Trstenjak ČAKOVEC, 2020.

4 ZAHVALA Zahvaljujem dr. sc. Bruni Trstenjaku na mentorstvu te na svim savjetima i pomoći pruženoj tijekom izrade ovog završnog rada. Zahvaljujem prijateljima i kolegama koji su mi pomagali tijekom studija. Posebno zahvaljujem svojoj obitelji što mi je omogućila studiranje.

5 SAŽETAK U ovom je završnom radu objašnjen i opisan postupak instalacije aplikacija na Amazon Web Servis (AWS) oblak platformu. Prikazane su sve predradnje koje je potrebno učiniti prije početka instalacije te razlike kod instaliranja navedenih aplikacija na AWS oblak. Za instalaciju su korištene tri aplikacije od kojih je svaka izrađena u različitoj tehnologiji. Prva web aplikacija izrađena je u Javi uz pomoć Spring Boot tehnologije u Eclipse IDE razvojnom okruženju, druga Android aplikacija izrađena je korištenjem Android Studio razvojnog okruženja te treća web aplikacija izrađena je u C#.NET tehnologiji pomoću Visual Studio razvojnog okruženja. Za instalaciju aplikacija korišteni su Amazonovi servisi AWS Device Farm i AWS Elastic Beanstalk. AWS Elastic Beanstalk korišten je za instaliranje dviju web aplikacija izrađenih u Spring Boot i C#.NET tehnologiji. AWS Device Farm korišten je za instaliranje Android aplikacije. S obzirom da je ovaj servis namijenjen za svrhe testiranja aplikacija, također je prikazan i postupak testiranja instalirane Android aplikacije. Android aplikacija testirana je korištenjem dviju vrsta testova: automatiziranog testiranja i testiranja s udaljenim pristupom. U završnom su radu prikazani rezultati tog testiranja te primjeri izvještaja o testiranju dobiveni od AWS-a nakon završenog testiranja. Za instalaciju prethodno navedenih web aplikacija također su korišteni i alati AWS Toolkit za Visual Studio 2017 i 2019 te AWS Toolkit za Eclipse 2.0. AWS Toolkit za Visual Studio je uz servis Elastic Beanstalk korišten za instaliranje C#.NET web aplikacije te je objašnjen postupak njegove instalacije u Visual Studio razvojnom alatu. Također je objašnjen postupak instalacije alata AWS Toolkit za Eclipse 2.0 u Eclipse IDE razvojno okruženje. On je korišten uz servis Device Farm za instaliranje Spring Boot web aplikacije. U završnom radu navedene su osnovne informacije o svim korištenim servisima i alatima potrebnima za instalaciju aplikacija te je objašnjen AWS i način na koji funkcionira. Prikazan je i još jedan važni dio instalacije - postupak izrade AWS računa potreban za pristupanje AWS servisima korištenima za instalaciju te za pristupanje aplikacijama instaliranima na AWS oblak. Ključne riječi: Amazon, AWS, servisi, web, android, aplikacija, instalacija, oblak.

6 Sadržaj 1. Uvod Cilj završnog rada Što je to AWS AWS Elastic Beanstalk AWS Device Farm Korišteno razvojno okruženje i alati Visual Studio Eclipse IDE Android Studio AWS Toolkit za Eclipse AWS Toolkit za Visual Studio Otvaranje razvojnog računa na AWS-u Instalacija i testiranje Android aplikacije Instalacija i testiranje Android aplikacije Testiranje sa udaljenim pristupom Postupak instalacije.net C# web aplikacije Instalacija AWS Toolkita za Visual studio Instalacija.NET C# web aplikacije Postupak instalacije Spring Boot aplikacije Instalacija AWS Toolkita za Eclipse Instalacija Spring Boot web aplikacije Primjeri aplikacija Android aplikacija NET web aplikacija Spring Boot web aplikacija Testiranje aplikacije... 31

7 11. Zaključak Popis literature Prilozi Popis slika Izvori slika... 37

8 1. Uvod U današnje vrijeme računarstvo u oblaku postalo je svakodnevica u poslovanju velikog broja poduzeća. Poduzeća koriste računarstvo u oblaku za pohranjivanje raznih podataka ili kao poslovne servise namijenjene za pojedine poslovne procese. Za implementaciju IT platforme smještenu u oblaku potrebni su poslužitelji i određena programska podrška. Sve to od poduzeća iziskuje znatna ulaganja i zapošljavanje dodatnih stručnjaka za održavanje cijeloga sustava. Danas postoje velike kompanije, kao npr. Amazon, koje pružaju usluge računarstva u oblaku tako da se manja poduzeća više ne trebaju brinuti o infrastrukturi i njenom održavanju. Na taj se način poduzeća mogu fokusirati na svoje poslovanje. AWS je jedan od predvodnika u pružanju usluge računarstva u oblaku s milijunima korisnika diljem svijeta. On nudi korisnicima infrastrukturu kao uslugu koja se može koristiti za pohranu podataka. Također, u sklopu infrastrukture korisnicima se nudi kompletna platforma i alati potrebni za izradu i instalaciju aplikacija. U ovom završnom radu prikazan je postupak korištenja AWS-a i način instalacije aplikacija na AWS oblak platformu. Objašnjeno je što je to AWS, kao i njegovi servisi i alati korišteni u instalaciji, razvojna okruženja u kojoj su aplikacije izrađene, način izrade AWS razvojnog računa te je testirana jedna od instaliranih aplikacija. Objašnjen je postupak instalacije dviju web aplikacija izrađenih u Java i C#.NET tehnologiji te instalacija i testiranje jedne Android aplikacije. Za instalaciju aplikacija korišteni su AWSovi servisi AWS Elastic Beanstalk i AWS Device Farm. Za instalaciju aplikacija također su potrebni AWS-ovi alati AWS Toolkit za Eclipse IDE i AWS Toolkit za Visual Studio koji se instaliraju u Eclipse IDE i Visual Studio razvojna okruženja. Njihova je instalacija također prikazana. Međimursko veleučilište u Čakovcu 6

9 2. Cilj završnog rada Cilj je ovog završnog rada prikazati i objasniti postupak instalacije web i android aplikacija pomoću AWS servisa, zatim objasniti svojstva i način upotrebe AWS servisa i alata potrebnih za instalaciju tih aplikacija, ukazati na razlike prilikom pripreme između tih aplikacija i prikazati predradnje koje je potrebno poduzeti prilikom pokretanja takvih aplikacija. Također se želi informirati o AWS servisima i alatima te istaknuti razlike u postupku instalacije ovisno o vrsti aplikacije. Međimursko veleučilište u Čakovcu 7

10 3. Što je to AWS AWS je oblak platforma za programiranje u oblaku koju pruža Amazon. Sastoji se od preko stotinu servisa za razne namjene i vrste aplikacija. Neke od usluga koje AWS-ovi servisi obavljaju su: pohrana, baze podataka, programiranje, rad s mrežama, alati za mobilni development, alati za upravljanje i sigurnost [1]. AWS-ovo programiranje u oblaku i način na koji pruža usluge dijeli se na tri glavna modela i to su: - Platforma kao usluga (PaaS) pruža razvojnu okolinu i usluge instalacije i upravljanja aplikacijama [1] - Infrastruktura kao usluga (IaaS) nudi usluge kao što su pohrana podataka te pristup računalima (stvarnim i virtualnim) koji se mogu koristiti u razne svrhe, npr. za testiranje [1] - Software kao usluga (SaaS) pruža gotov proizvod, tj. aplikacije i programsku podršku koju korisnik koristi u svojem poslovanju [1]. AWS pruža poduzećima i korisnicima svu infrastrukturu potrebnu za poslovanje te vodi brigu o održavanju jednom kada se podatci i aplikacije nalaze u oblaku. Na ovaj način kompanije ne moraju trošiti svoje resurse i vrijeme na izgradnju i održavanje infrastrukture, već se fokusiraju na važnije dijelove svog poslovanja. Koristi se pay as you go način plaćanja, što znači da se plaćaju samo korištene usluge i servisi. AWS nudi velik broja servisa za korištenje, a odabir željenog servisa ovisi o vrsti usluge koja je korisniku potrebna. Za instalaciju i testiranje aplikacija u ovom završnom radu korišteni su servisi AWS Elastic Beanstalk i AWS Device Farm. U nastavku će se o njima više govoriti [1] AWS Elastic Beanstalk AWS Elastic Beanstalk servis je koji omogućuje instalaciju web aplikacija na AWS oblak i upravljanje infrastrukturom potrebnom za rad tih aplikacija. To je najjednostavniji i najbrži način prijenosa aplikacije koji AWS pruža, što je i prikazano u ovom završnom radu [2, 3]. Elastic Beanstalk podržava aplikacije izrađene u.net, Node.js, Java, Go, Python, Ruby, Docker i PHP tehnologiji. Instaliranje je aplikacija brzo i jednostavno te od korisnika ne zahtijeva mnogo znanja o servisu da bi aplikaciju prenio na AWS. Postoji više načina Međimursko veleučilište u Čakovcu 8

11 instalacije, preko Elastic Beanstalk upravljačkog sučelja (engl. Elastic Beanstalk command line interface), AWS upravljačke konzole (engl. AWS Management Console) ili preko određenog programskog alata. To može biti Visual Studio ili Eclipse IDE. Za aplikacije izrađene u Visual Studio razvojnom okruženju koristi se alat AWS Toolkit za Visual Studio dok se za Eclipse IDE koristi alat AWS Toolkit za Eclipse. Oba se ugrađuju u pripadajuće programe [2, 3]. Prilikom instalacije Elastic Beanstalk kontrolira automatsko skaliranje, pružanje kapaciteta, balansiranje opterećenja i prati pravilan rad aplikacije. Nakon što je aplikacija instalirana, AWS vodi svu brigu o njezinu održavanju i infrastrukturi. To uključuje upravljanje i konfiguraciju vatrozida, poslužitelja, baza podataka, mreža i balansiranja opterećenja te ažuriranje platforme koja pokreće aplikaciju. Korisnik se samo brine o izradi aplikacije dok sve ostalo obavlja Elastic Beanstalk. Ukoliko korisnik želi sam upravljati infrastrukturom, za to također postoji opcija koja mu to omogućuje. On može odabrati pojedine dijelove upravljanja infrastrukturom ili može upravljati svim njezinim dijelovima [4] AWS Device Farm AWS Device Farm servis je koji se koristi za testiranje web i mobilnih aplikacija na desktop pretraživačima i stvarnim mobilnim uređajima koje podržava AWS. AWS podržava stotine raznih vrsta mobilnih uređaja i tableta na kojim korisnik može vršiti testiranja. Kod Device Farm servisa postoje dva glavna načina testiranja, a to su testiranje s udaljenim pristupom i automatizirano testiranje [5, 6]. Udaljeni pristup (engl. Remote Access) testiranja omogućuje da se korisnik preko web preglednika poveže s jednim od dostupnih AWS mobilnih uređaja te pokrene i testira aplikaciju. Testni podatci prikupljaju se tako da se sve radnje koje korisnik provodi na mobilnom uređaju tijekom testa snimaju i bilježe u Device Farm servisu. Nakon završetka testiranja Device Farm generira videosnimke, log datoteke i ostale podatke koje je moguće preuzeti i pregledati te na taj način odrediti pogreške u aplikaciji [5, 6]. Automatizirano testiranje (engl. Automated tests) testiranje je aplikacije na više različitih vrsta uređaja istodobno. Kod ove metode korisnik može učitati vlastite testove ili može koristiti već ugrađene kompatibilne testove (engl. Compatibility tests) koje nudi AWS. Međimursko veleučilište u Čakovcu 9

12 Posljednja je opcija dostupna samo za Android i ios uređaje. Nakon završenog testiranja dostupni su videozapisi, slike i log podatci o testiranju kako bi korisnik mogao odrediti i popraviti pogreške u aplikaciji. Ovaj servis omogućava testiranje aplikacija izrađenih u tehnologijama kao što su PhoneGap, Xamarin, Unity i Fire OS, nativnim i hibridnim android aplikacijama. Za razliku od prethodne metode gdje korisnik osobno obavlja testiranje na jednom mobilnom uređaju, ovdje se testiranje obavlja automatski i to na većem broju uređaja. Odabir između dvije metode ovisi o situaciji za koju se testiranje koristi [5, 6]. Još jedan način testiranja koji vrijedi spomenuti jest testiranje na web aplikacijama (engl. Web App Tests). Ovaj način testiranja koristi testove kao što su Appium Java TestNG, Appium Node.js te Appium Python za testiranje web aplikacija. Ovo testiranje također omogućava istodobno izvršavanje testova, samo što se u ovom slučaju izvršava na desktop pretraživačima. To mogu biti Internet Explorer, Chrome i Firefox. Korisnik učitava svoje testove (ugrađeni testovi nisu dostupni za ovu vrstu testiranja) koji se tada koriste za testiranje web aplikacija. Nakon testiranja spremaju se podatci koje korisnik zatim može preuzeti za analizu i otkrivanje pogrešaka [5, 6]. Međimursko veleučilište u Čakovcu 10

13 4. Korišteno razvojno okruženje i alati 4.1. Visual Studio Visual Studio je integrirana razvojna okolina koja omogućava izradu web aplikacija, mobilnih aplikacija, videoigara i računalnih programa u programskim jezicima kao što su C, C++ i C# [7, 8]. Dostupan je na operacijskim sustavima Windows i Mac. Neke od njegovih važnijih značajki su kompajler, debugger i editor koje koristi za ispravljanje pogrešaka u kodu te za izradu i promjenu koda. Omogućava izradu web aplikacija u tehnologijama kao što su ASP.NET, Python i JavaScript. Također, koristi se za izradu mobilnih aplikacija te videoigara korištenjem Xamarina i Unitiyja [8] Eclipse IDE Eclipse IDE integrirano je razvojno okruženje. Koristi se za aplikacije i programe izrađene u Javi, no mogu se koristiti i drugi programski jezici poput PHP-a, C, C++ i JavaScripta uz korištenje odgovarajućih dodataka (engl. Plugin). Cijela arhitektura Eclipse razvojnog okruženja utemeljena je na tehnologiji dodataka koji omogućuju korisniku izrađivanje raznih vrsta programa i aplikacija. Neke od značajki koje Eclipse IDE ima su debugger za pronalaženje pogrešaka te Specfile Editor koji olakšava upravljanje.spec vrstama datoteka. Eclipse IDE može se instalirati na Windows, Mac OS X i na Linux operativnim sustavima [9, 10] Android Studio Android Studio integrirano je razvojno okruženje korišteno za izradu Android aplikacija. Može se instalirati na Windows, Mac, Linux i Chrome OS operativnim sustavima. Koristi se za izradu aplikacija u programskim jezicima kao što su Kotlin, C, C++ i Java [11]. Jedna od značajki koje sadrži uređivač je koda (engl. code editor) koji omogućuje brže pisanje koda te olakšava njegovo pisanje pomoću funkcije za dovršavanje koda. Također, ima ugrađen emulator koji omogućuje instaliranje i pokretanje izrađenih aplikacija na odabranim vrstama mobilnih telefona ili tableta s velikim brojem modela za biranje. Od ostalih istaknutih značajki koje ovaj alat nudi mogu se istaknuti APK analizator (engl. APK analyzer), uređivač vizualnog izgleda (engl. Visual layout editor), uređivač Međimursko veleučilište u Čakovcu 11

14 prijevoda (engl. Translations Editor) te alati za testiranje koji omogućuju korisniku testiranje izrađenih android aplikacija. Android Studio omogućuje izradu aplikacija za razne vrste uređaja, od android mobitela i tableta pa sve do televizora [11, 12] AWS Toolkit za Eclipse AWS Toolkit za Eclipse dodatak je koji se instalira u Eclipse IDE razvojno okruženje i koristi se u svrhe instaliranja aplikacija na Amazon Web Servise te za detektiranje pogrešaka. Sastoji se od značajki kao što su kloniranje repozitorija, uređivač predložaka (engl. template editor), potpora za upravljanje AWS korisničkim računima te instaliranje aplikacija na AWS Elastic Beanstalk. Također, sadrži i AWS Explorer koji omogućava upravljanje i pristup AWS resursima korištenima za instalaciju aplikacija [13]. Instalira se na operacijske sustave Windows, Mac, Linux/GTK putem Eclipse Marketplacea kojem se može pristupiti putem web preglednika ili iz Eclipse IDE razvojnog okruženja [14] AWS Toolkit za Visual Studio AWS Toolkit za Visual Studio dodatak je koji se instalira u Visual Studio razvojno okruženje za potrebe instaliranja i pokretanja.net aplikacija na AWS. Za instaliranje su dostupne dvije verzije - AWS Toolkit za Visual Studio 2017 i 2019, te verzija 2013/2015. Obje verzije mogu se preuzeti s Visual Studio Marketplacea putem web preglednika ili Visual Studio razvojnog okruženja. Alat omogućuje sljedeće: interakciju s AWS servisima iz Visual Studio IDE-a, instalaciju aplikacija bez poslužitelja (engl. serverless aplications) i instalaciju web aplikacija na AWS, potporu za više AWS računa, stvaranje i upravljanje sigurnosnim grupama, stvaranje i kopiranje repozitorija u servisu AWS CodeCommit itd. [15]. Međimursko veleučilište u Čakovcu 12

15 5. Otvaranje razvojnog računa na AWS-u Za korištenje AWS servisa potrebno je prethodno izraditi AWS račun. To se radi putem službene web stranice Amazon Web Servisa gdje korisnik pruža informacije potrebne za izradu računa. AWS sustav od korisnika zahtijeva unos kontaktnih informacija te izbor vrste računa. Račun može biti Profesionalni ili Osobni. Dva su ponuđena računa jednaka i imaju jednake funkcije i značajke. Za ovaj završni rad izabran je Osobni račun. Nakon što su ispunjene sve potrebne informacije, na upotrijebljenu adresu dolazi s potvrdom o izradi AWS računa. U tom trenutku korisnik se može prijaviti na AWS račun, ali ne može koristiti servise AWS-a jer aktivacija računa još uvijek nije završena do kraja. Na slici 1. je prikazan unos informacija potrebnih za izradu računa. Slika 1. Unos kontaktnih informacija za izradu AWS računa [1] Međimursko veleučilište u Čakovcu 13

16 Da bi se račun u potpunosti aktivirao i dobio pristup svim servisima i uslugama, potrebno je unijeti informacije o plaćanju. Unose se informacije kao što su: broj kreditne / debitne kartice, datum isteka kartice, adresa na koju će AWS korisniku slati račune itd. AWS tijekom izrade računa treba verificirati identitet korisnika. Za verifikaciju je potreban korisnikov mobitel na koji AWS šalje verifikacijski kod koji korisnik zatim koristi za verifikaciju svojeg identiteta. AWS kod može se poslati korisniku SMS-om ili glasovnom poštom. Tijekom izrade računa također je potrebno odabrati tzv. plan potpore koji korisniku pruža alate i stručnu pomoć AWS-ove službe za korisnike. Ponuđene su tri opcije: Osnovni plan, Plan za programere i Poslovni plan. Ukoliko korisnik želi usluge poput dvadeset i četiri satnog pristupa AWS potpori ili neke druge napredne usluge, može odabrati opciju Plan za programere ili Poslovni plan. Za ovaj završni rad odabrana je opcija Osnovni plan. Nakon odabira plana potpore pojavljuje se prozor koji ukazuje da se račun trenutno aktivira. Za aktivaciju je potrebno nekoliko minuta, ali ponekad proces može potrajati i do 24 sata. Nakon što je račun aktiviran, korisnik dobiva s potvrdom i može koristiti sve AWS servise i usluge. Međimursko veleučilište u Čakovcu 14

17 6. Instalacija i testiranje Android aplikacije 6.1. Instalacija i testiranje Android aplikacije AWS Device Farm servis funkcionira na način da se na AWS mobilne uređaje instalira android aplikacija te se zatim provodi testiranje i provjerava ispravnost te aplikacije. Postupak instalacije i testiranja Android aplikacije počinje na AWS upravljačkoj konzoli u koju se korisnik upisuje da bi pristupio servisu AWS Device Farm. Korisnik ovdje može izabrati između dvije opcije, projekta na mobilnom uređaju ili projekta u desktop pregledniku. Za instalaciju android aplikacije potrebna je opcija projekta na mobilnom uređaju, nakon čega se kreira projekt. Korisniku se nude dvije vrste testova: automatizirani test (engl. Automatized tests) i test s udaljenim pristupom (engl. Remote Access). Ovdje je prikazan automatizirani test dok je test s udaljenim pristupom prikazan u nastavku ovog završnog rada. Prilikom podešavanja testiranja korisnik može odabrati između dvije ponuđene opcije: testiranja web aplikacije na Android ili ios uređaju i druge opcije, testiranja nativne aplikacije na Android ili ios uređaju. Odabir vrste testiranja ovisi o vrsti aplikacije koja se želi testirati. Budući da se instalacija i testiranje vrše na mobilnoj Android aplikaciji, za ovu je aplikaciju odabrana druga opcija, tj. testiranje nativne aplikacije. Korisnik putem svog računala učitava mobilnu aplikaciju koja prije instalacije treba biti zapakirana u APK formatu. U ovoj instalaciji je za pakiranje aplikacije korišteno Android Studio razvojno okruženje. Za instalaciju aplikacije na AWS Device Farm potrebna je samo navedena APK datoteka. Po ovome je postupak sličan instalaciji na lokalnom uređaju. Nakon što je aplikacija učitana na Device Farm, AWS-u su vidljivi svi podatci o toj aplikaciji (npr. minimalni SDK) te na osnovi tih podataka preporučuje uređaje na kojima se ona može testirati. Za testiranje aplikacije moguće je učitati korisnikove skripte i testove, a ukoliko korisnik nema pripremljene skripte i testove, može odabrati jedan od već ugrađenih AWS testova. To su Built-in Explorer Test i Built-in Fuzz Test. Međimursko veleučilište u Čakovcu 15

18 Built-in Explorer Test pregledava svaki ekran aplikacije i njome upravlja na sličan način kako bi to radio korisnik. Nakon završetka sprema slike ekrana. Built-in Fuzz Test šalje mobilnom uređaju nasumične user interface evente i na temelju njih dobiva rezultate koje kasnije korisnik može pregledati. Za ovu se instalaciju koristi Built-in Fuzz Test. Prilikom konfiguracije testa korisniku su ponuđene opcije kao što su: određivanje broja događaja (engl. events) koje će UI Fuzz test izvršiti, određivanje koliko dugo UI Fuzz test čeka između događaja (engl. events) te određivanje nasumičnosti UI Fuzz testa. Također, postoje i napredne opcije kao što su mogućnost snimanja testova i sakupljanje podatka o performansama aplikacije. Potrebno je omogućiti napredne opcije, i to snimanje testova i sakupljanje podataka o performansama, dok ostale opcije mogu biti ostavljene na zadanim postavkama. Tijekom cijelog procesa konfiguracije također je potrebno podesiti stanje mobilnih uređaja na kojima će se aplikacija instalirati i testirati. Ovo je potrebno zbog simuliranja stvarnih situacija kako bi se testirao rad aplikacije u raznim uvjetima. Tu se nalaze opcije kao što su: uključivanje ili isključivanje GPS-a, WIFI-a ili Bluetootha, mijenjanje geografskog položaja uređaja, određivanje jezika i regije uređaja, odabir vrste i kvalitete mreže itd. [16, Device Farm instalacijski izbornik]. Navedene postavke prikazane su na slici 2. Međimursko veleučilište u Čakovcu 16

19 Slika 2. Podešavanje postavki mobilnog uređaja potrebnih za testiranje aplikacije [Izvor: autor] Jednom kada su podešene sve potrebne postavke i odabrani željeni testni uređaji, započinje instalacija aplikacije na mobilne uređaje, a odmah zatim testiranje aplikacije. Nakon završetka testiranja vidljivi su rezultati testa: log podatci, videosnimke, performanse (npr. stanje procesora, korištenje memorije i broj niti (engl. thread count) za vrijeme testa), slike ekrana i ostali podatci testiranja koje korisnik može preuzeti s Device Farm servisa. Ukoliko aplikacija ima grešaka, korisnik može pogledati sve prikupljene podatke da bi odredio i popravio pogreške Testiranje sa udaljenim pristupom Kod ovog testiranja korisnik u stvarnom vremenu preko web preglednika upravlja jednim od AWS mobilnih uređaja, testira funkcionalnost aplikacije i simulira probleme. Prije testiranja odabire se uređaj na kojemu će se aplikacija instalirati i pokrenuti. Postoji mogućnost sortiranja uređaja prema vrsti operativnog sustava, platformi, statusu Međimursko veleučilište u Čakovcu 17

20 (slobodan ili zauzet), imenu uređaja i vrsti uređaja (tablet ili mobilni uređaj). Prikazano na slici 3. Kada je korisnik povezan s dostupnim uređajem, vidljiv je ekran na kojem se nalazi početni zaslon mobilnog uređaja. Potrebno je učitati aplikaciju koja se želi instalirati i pokrenuti. Aplikacija prethodno mora biti zapakirana u APK formatu, što se radi pomoću Android Studio razvojnog okruženja. Tijekom testiranja također je vidljivo koliko vremena je ostalo do isteka sesije. Ukoliko korisnik želi, može završiti testiranje prije isteka sesije. Kada je aplikacija instalirana na AWS-ov uređaj, može se pokrenuti i testirati na isti način kako bi to učinili na lokalnom mobilnom uređaju ili u emulatoru. Korisnik može ući u aplikaciju i isprobati sve njezine značajke dok za to vrijeme Device Farm snima sve radnje koje korisnik radi i sprema ih u Device Farm servis. Slika 3. Odabir uređaja na kojemu će se instalirati i testirati aplikacija [Izvor: autor] Međimursko veleučilište u Čakovcu 18

21 Kada sesija završi, potrebno je pričekati neko vrijeme da se procesiraju rezultati. Kada je to završeno, vidljivi su detalji i podatci o testiranju koje korisnik tada može preuzeti na svoje računalo da bi proučio ukoliko ima pogrešaka. Međimursko veleučilište u Čakovcu 19

22 7. Postupak instalacije.net C# web aplikacije 7.1. Instalacija AWS Toolkita za Visual studio Za instalaciju.net C# web aplikacije na AWS oblak je uz servis AWS Elastic Beanstalk također potreban AWS Toolkit za Visual Studio. To je alat koji se instalira u Visual Studio razvojno okruženje i omogućuje prenošenje aplikacije na AWS. Ovaj se alat može preuzeti na službenim web stranicama Amazon Web Servisa, Visual Studio Marketplacea ili putem Visual Studio razvojnog alata, što je prikazano na slici 4. Slika 4. Instalacija AWS Toolkita korištenjem Visual Studio razvojnog okruženja [Izvor: autor] Da bi se AWS Toolkit nakon instalacije mogao koristiti, potrebno je stvoriti tzv. IAM korisnički račun pomoću kojeg se korisnik prijavljuje u AWS Toolkit. Za prijavljivanje se može koristiti i glavni AWS račun, ali to nije preporučeno. IAM račun izrađuje se putem AWS upravljačke konzole gdje se nalazi usluga IAM, tj. Upravljanje identitetom i pristupom (engl. Identity and Access Managment) koja upravlja autorizacijom i autentikacijom računa. Ovdje se stvara novi korisnik čiji podatci se koriste za prijavljivanje u AWS Toolkit. Tijekom izrade računa korisnik dobiva tajne ključeve koji su potrebni za korištenje AWS Toolkita te lozinku za pristup AWS upravljačkoj konzoli. Međimursko veleučilište u Čakovcu 20

23 Korisnik također bira koja će dopuštenja i police taj račun imati. Te se police koriste za postupke kao što su: određivanje koji servisi izvode koje operacije, određivanje koje operacije korisnik može izvoditi i još mnogi drugi [17]. Nakon što je stvoren IAM korisnički račun, pristupni ključevi i lozinke dobiveni prilikom izrade računa koriste se za prijavljivanje u AWS Toolkit. Nakon prijavljivanja, AWS Toolkit spreman je za korištenje. Dobivene sigurnosne vjerodajnice mogu se, osim za prijavljivanje u AWS Toolkit za Visual Studio, koristiti i za prijavljivanje u AWS Toolkit za Eclipse IDE Instalacija.NET C# web aplikacije Proces instaliranja.net C# web aplikacije pomoću AWS Elastic Beanstalka i AWS Toolkita počinje u Visual Studio razvojnom okruženju u kojem je web aplikacija izrađena. U Solution Exploreru se odabirom aplikacije i opcije Publish to AWS Elastic Beanstalk otvara AWS Toolkit u kojem se izvršava instalacija i podešavaju postavke potrebne za instalaciju. Prije početka instalacije u AWS Toolkitu potrebno je odabrati korisnikov AWS račun te regiju u kojoj se aplikacija instalira. Ukoliko se korisnik nalazi, npr. u SAD-u, tada se izabire neka regija koja se nalazi na tom području. Za ovu instalaciju odabrana je regija EU (Frankfurt). Također je potrebno stvoriti novo okruženje u kojem se aplikacija instalira. U slučaju da je prethodno već korišten AWS Toolkit i aplikacija je instalirana, ne mora se stvarati novo, već se može koristiti postojeće okruženje koje je prethodno izrađeno. Tijekom instalacije potrebno je podesiti Amazon EC2 postavke. Elastic Beanstalk koristi Amazon EC2 za stvaranje okruženja aplikacije. U ovom dijelu mogu se podesiti neke od sljedećih postavki: određivanje infrastrukture i softwarea koji se koriste za okruženje, odabir vrste instance koja najbolje odgovara korisnikovoj aplikaciji (odabire se opcija t2 micro ), omogućavanje single instance okruženja koje se koristi kod instalacije jednostavnih aplikacija itd. Navedene postavke prikazane su na slici 5. [18, Beanstalk instalacijski izbornik]. Međimursko veleučilište u Čakovcu 21

24 Slika 5. Podešavanje Amazon EC2 postavki prije instalacije [Izvor: autor] Prilikom instalacije potrebno je odabrati i uloge koje pružaju određena dopuštenja korisnikovoj aplikaciji te koje omogućuju nadzor resursa. Odabiru se uloge za dvije vrste dozvola, a to su: - dozvole za instalirane aplikacije ova uloga pruža AWS vjerodajnice uz pomoć kojih korisnikova aplikacija tada može pristupiti AWS resursima - dozvole za servise ova uloga pruža dopuštenje AWS Elastic Beanstalku da u korisnikovo ime nadzire resurse okruženja [izvor: Beanstalk instalacijski izbornik]. Potrebno je podesiti još neke dodatne postavke koje su potrebne za instalaciju. Neke od tih postavki su: odabir između detektiranja pogrešaka ili instaliranja aplikacije (odabire se opcija instalacije, tj. opcija ReleaseAnyCPU), biranje potrebnog.net Frameworka (odabire se 4.0 NET Runtime ), dozvoljavanje Elastic Beanstalk servisu da prikuplja informacije o funkcioniranju aplikacije itd. [18, Beanstalk instalacijski izbornik]. Nakon što su podešene sve potrebne postavke, aplikacija se može instalirati na AWS. U Output ekranu Visual Studio razvojnog okruženja vidljiva je poruka koja obavještava korisnika da se stvara okruženje. Ovdje je vidljiv i napredak instalacije. U AWS Elastic Beanstalk servisu također je vidljiv napredak instalacije te poruka koja obavještava Međimursko veleučilište u Čakovcu 22

25 korisnika da se stvara okruženje. Za dovršetak instalacije potrebno je pričekati oko deset minuta ili više ovisno o veličini aplikacije. Nakon završetka instalacije aplikacija se može pokrenuti odabirom linka u Elastic Beanstalk servisu ili u Visual Studio razvojnom okruženju. Međimursko veleučilište u Čakovcu 23

26 8. Postupak instalacije Spring Boot aplikacije 8.1. Instalacija AWS Toolkita za Eclipse AWS Toolkit za Eclipse 2.0 alat je koji se koristi uz AWS Elastic Beanstalk za instalaciju Spring Boot web aplikacije na AWS. Instalira se u Eclipse IDE razvojno okruženje u kojem je izrađena Spring Boot aplikacija i koristi se za prenošenje aplikacije na AWS. Alat je dostupan za preuzimanje sa službene web stranice Eclipse Marketplacea ili putem Eclipse IDE razvojnog okruženja što je prikazano na slici 6. Slika 6. Instalacija AWS Toolkita korištenjem Eclipse IDE razvojnog okruženja [Izvor: autor] U ovom završnom radu alat je instaliran putem Eclipse IDE razvojnog okruženja uz korištenje Eclipse Marketplacea. Instalacija je vrlo jednostavna. Potrebno je odabrati značajke koje se žele instalirati i prihvatiti uvjete licenciranja. Nakon završetka instalacije potrebno je ponovno pokrenuti Eclipse IDE. Međimursko veleučilište u Čakovcu 24

27 Za korištenje ovog alata korisnik se treba prijaviiti IAM korisničkim računom. Za prijavljivanje se mogu koristiti isti podatci IAM korisničkog računa koji su korišteni za prijavljivanje u alat AWS Toolkit za Visual Studio. Potrebno je upisati ime korisnika, pristupni ključ (engl. Access Key ID) i tajni pristupni ključ (engl. Secret Access Key), nakon čega je alat spreman za korištenje. Ukoliko je korisnik prethodno instalirao i prijavio se u neki drugi alat, primjerice AWS Toolkit for Visual Studio, tada nema potrebe da se ponovo prijavljuje, već će biti automatski prijavljen Instalacija Spring Boot web aplikacije Za instalaciju Spring Boot web aplikacije na AWS potrebno je otvoriti aplikaciju u Eclipse IDE razvojnom okruženju u kojem je aplikacija izrađena. U Project Exploreru odabire se aplikacija te opcija instaliranja na AWS Elastic Beanstalk, čime se otvara AWS Toolkit i počinje podešavanje postavki potrebnih za instalaciju. Na početku je potrebno odabrati poslužitelj i postavke vezane uz taj korišteni poslužitelj. Podešava se novi poslužitelj, no ukoliko je prethodno već podešen, moguće je odabrati postojeći. Zatim je potrebno izabrati vrstu poslužitelja. Neke od ponuđenih opcija su: Apashe, IBM, Basic, Amazon Web Servisi itd. Bira se opcija Amazon Web Servisi te najnovija verzija AWS-ova poslužitelja. Ovdje se još nalaze opcije za odabir imena poslužiteljevog hosta (engl. Server's host name) i imena poslužitelja te opcija Server runtime environment gdje se odabire opcija za stvaranje novog okruženja. Zatim je potrebno podesiti postavke aplikacije i njezina okruženja. Odabire se regija u kojoj se aplikacija instalira. Za ovu je instalaciju izabrana regija EU (Frankfurt). Unose se podatci kao što su: ime aplikacije, opis aplikacije, ime okruženja te opis okruženja. Nakon toga potrebno je odrediti vrstu okruženja, a ono može biti: Single Instance Web Server Environment, Load Balanced Web Server Environment ili Worker Environment. Odabir ovisi o veličini i zahtjevima aplikacije. Load Balanced Environment koristi se ako je aplikaciji potrebna skalabilnost, Single Instance ukoliko se radi o jednostavnijoj aplikaciji s malo prometa, a Worker Environment ukoliko je riječ o složenoj aplikaciji, tj. ako ona izvodi operacije za koje je potrebno mnogo vremena. Za ovu instalaciju odabire se opcija Single Instance Web Server Environment jer se radi o jednostavnoj aplikaciji [18]. Međimursko veleučilište u Čakovcu 25

28 Zadnja je opcija omogućavanje Amazon Virtual Private Clouda koji stvara sigurnu mrežu za korisnikovu aplikaciju te za ostale resurse. U ovoj instalaciji spomenuta opcija nije odabrana. Navedene postavke prikazane su na slici 7. [18]. Slika 7. Podešavanje postavki aplikacije i okruženja prije instalacije [Izvor: autor] Tijekom konfiguracije također je potrebno odrediti određena dopuštenja vezana za aplikaciju i AWS servise koje koristi. Odabiru se dvije vrste uloga koje pružaju ta dopuštenja: - Instance Profile Role uloga koja instancama u okruženju aplikacije daje pristup AWS servisima - Service Role - uloga koja daje AWS-u dopuštenje da u korisnikovo ime nadzire resurse okruženja [izvor: 18, Elastic Beanstalk instalacijski izbornik]. Međimursko veleučilište u Čakovcu 26

29 Sljedeće što je potrebno podesiti napredne su postavke za okruženje aplikacije. Neke od tih postavki su: omogućavanje remote desktop pristupa Amazon EC2 instancama, upis tzv. health check URL-a kojim Elastic Beanstalk nadzire je li ispravan rad aplikacije, unošenje adrese na koju korisnik dobiva obavijesti o događajima koji utječu na aplikaciju itd. [18]. Nakon što su podešene sve potrebne postavke, u Project Exploreru se odabirom aplikacije i opcije pokreni na poslužitelju bira poslužitelj koji je prethodno podešen i pokreće se instalacija. U Eclipse IDE okruženju vidljiv je početak instalacije aplikacije na AWS. Za vrijeme instalacije u web pregledniku korisnik može u Elastic Beanstalk upravljačkoj konzoli vidjeti status instalacije. Za instalaciju je potrebno pričekati određeno vrijeme da završi, ovisno o veličini aplikacije. Nakon završetka instalacije u Elastic Beanstalk upravljačkoj konzoli vidljiv je završetak instalacije dok je u Eclipse IDE-u vidljiva otvorena početna stranica web aplikacije što označava uspješnu instalaciju. U Elastic Beanstalk konzoli gdje je vidljiv dovršetak instalacije, nalazi se URL koji vodi na instaliranu web aplikaciju. Međimursko veleučilište u Čakovcu 27

30 9. Primjeri aplikacija 9.1. Android aplikacija Za potrebe završnog rada izrađena je jednostavna android aplikacija izrađena u Android Studio razvojnom okruženju. Android aplikacija prikazuje informacije o ovom završnom radu. Prikazuje informacije o AWS servisima te objašnjava što je to AWS, na koji način funkcionira, zbog čega je toliko popularan za korištenje te od kojih elemenata se sastoji. Također, prikazuje informacije o autoru završnog rada. Za testiranje i pokretanje ove aplikacije korišten je servis AWS Device Farm koji omogućava pokretanje i testiranje aplikacija na stvarnim mobilnim uređajima i tabletima u AWS oblaku. Na slici 8. prikazana je Android aplikacija korištena za instalaciju i testiranje. Slika 8. Android aplikacija instalirana na AWS Device Farm servis [Izvor: autor] Međimursko veleučilište u Čakovcu 28

31 9.2..NET web aplikacija Web aplikacija korištena za drugu instalaciju izrađena je u.net MVC C# programskom jeziku u.net Frameworku uz korištenje Visual Studio razvojnog alata. Aplikacija je vrlo jednostavna i prikazuje detalje o Amazon Web Servisu, govori o modelima usluga koje Amazon Web Servisi nude te prikazuje podatke o studentu koji je izradio završni rad. Također, prikazuje temu ovog završnog rada. Za instaliranje ove aplikacije korišten je servis AWS Elastic Beanstalk i AWS Toolkit, alat koji se instalira u Visual Studio. Instalirana web aplikacija je prikazana na slici 9. Slika 9..NET web aplikacija instalirana na AWS Elastic Beanstalk servis [Izvor: autor] 9.3. Spring Boot web aplikacija Za zadnju instalaciju koristi se Java web aplikacija izrađena u Eclipse IDE razvojnom okruženju uz korištenje Spring Boot Frameworka. Aplikacija prikazuje informacije o Amazon Web Servisu i načinu na koji funkcionira. Prikazuje informacije o AWS računalnom okruženju te informacije o ovom završnom radu i samu temu rada. Za instaliranje aplikacije koristi se AWS Elastic Beanstalk i AWS Toolkit za Eclipse 2.0. Instalirana web aplikacija prikazana je na slici 10. Međimursko veleučilište u Čakovcu 29

32 Slika 10. Spring Boot web aplikacija instalirana na AWS Elastic Beanstalk [Izvor: autor] Međimursko veleučilište u Čakovcu 30

33 10. Testiranje aplikacije Testiranje Android aplikacije pomoću AWS Device Farm servisa obavljeno je korištenjem dvije vrste testova. Prvo je provedeno automatizirano testiranje pomoću AWS-ova ugrađenog Fuzz testa. Nakon završetka tog testiranja videozapis provedenog testa, log podatci, podatci o performansama, slike ekrana te svi ostali podatci dostupni na Device Farm servisu pokazali su da je testiranje uspješno. Aplikacija i sve njene funkcije rade ispravno i bez problema. Međutim, u log podatcima uočene su pogreške i upozorenja vezana uz AWS testne mobilne uređaje i njihove postavke. To su postavke kao što je zrakoplovni način, bluetooth itd. Na slici 11. prikazani su log podatci tog testiranja i neke od pogrešaka. Slika 11. Log podatci dostupni nakon završenog testiranja Android aplikacije [Izvor: autor] U prikazanoj slici 11. vidljivo je da je bilo nekih pogrešaka vezanih uz rad Bluetootha. U Device Farm servisu nakon testiranja također su dostupni podatci o performansama aplikacije za vrijeme testa. Ovi su podatci dostupni u obliku grafova iz kojih se može vidjeti kako se aplikacija ponašala u određenom trenutku. Ovdje se nalaze grafovi koji prikazuju u kakvom je stanju bio procesor tijekom rada aplikacije i također je vidljivo koliko memorije je aplikacija koristila za vrijeme testa što je u ovom slučaju 56 megabajta. Također, vidljiv je broj niti tijekom rada aplikacije koji je bio 17 tijekom cijelog testiranja. Na slici 12. prikazani su navedeni grafovi. Međimursko veleučilište u Čakovcu 31

34 Slika 12. Grafovi koji prikazuju stanje procesora, memorije i broja niti [Izvor: autor] Drugo obavljeno testiranje je testiranje s udaljenim pristupom, u kojem korisnik u stvarnom vremenu putem web preglednika na daljinu upravlja AWS-ovim mobilnim uređajem i tako testira rad aplikacije. Aplikacija se sastoji od tri prozora: prozor koji govori o završnom radu, prozor s podacima o studentu te prozor koji govori o AWS oblaku. Sva tri prozora aplikacije otvorena su i zatvorena bez pogrešaka, aplikacija se može otvoriti i zatvoriti bez problema. Kod testiranja ove aplikacije nije bilo pogrešaka i sve funkcije radile su ispravno. Na slici 13. prikazana je pokrenuta aplikacija tijekom testiranja. Međimursko veleučilište u Čakovcu 32

35 Slika 13. Android aplikacija tijekom testiranja na Device Farm Servisu [Izvor: autor] Međimursko veleučilište u Čakovcu 33

36 11. Zaključak U ovom završnom radu tri su aplikacije instalirane na AWS oblak platformu. Dvije web aplikacije instalirane su korištenjem servisa AWS Elastic Beanstalk te jedna Android aplikacija korištenjem servisa AWS Device Farm kojim je ta aplikacija ujedno i testirana. Uz korištenje AWS Elastic Beanstalka web aplikacije instalirane su na AWS oblak u veoma kratkom vremenu. C#.NET web aplikacija instalirana je za 8 minuta, dok je Spring Boot web aplikacija instalirana za samo 6 minuta. Postupak instalacije bio je vrlo kratak čime je pokazana brzina AWS Elastic Beanstalk servisa, ali i jednostavnost. Za podešavanje postavki prije instalacije bilo je potrebno samo nekoliko koraka. Treba napomenuti da je prije instalacije potrebno znati ponešto o AWS-ovim dostupnim zonama ili regijama u koje se aplikacija instalira jer je vrsta instance koja se bira prije instalacije aplikacije dostupna samo u određenim zonama pa se korisnik prije treba informirati inače neće moći instalirati aplikaciju. Instaliranje i testiranje Android aplikacije uz pomoć Device Farm servisa također je bilo vrlo brzo obavljeno. Aplikacija je testirana na velikom broju uređaja za svega nekoliko minuta što je pokazalo da je ovo vrlo koristan servis koji može biti od velike pomoći IT kompanijama koje se bave izradom aplikacija koje se obično testiraju prije izlaska na tržište. Mislim da je ovo izvrstan servis za testiranje aplikacija jer, kao što je prije navedeno, omogućava testiranje velikog broja uređaja u vrlo kratkom vremenu te na različitim vrstama operacijskih sustava. Korisnik uz to može koristiti vlastite testove te tako testirati aplikaciju u specifičnim situacijama potrebnim za njegovu aplikaciju što je također vrlo korisno. Međimursko veleučilište u Čakovcu 34

37 12. Popis literature [1] Overview of Amazon Web Services, ( ) [2] What is AWS Elastic Beanstalk?, ( ) [3] AWS Elastic Beanstalk Features, ( ) [4] AWS Elastic Beanstalk, ( ) [5] What is AWS Device Farm?, ( ) [6] AWS Device Farm, ( ) [7] Features of Visual Studio, ( ) [8] Welcome to the Visual Studio IDE, , ( ) [9] Eclipse documentation- Current Release, ( ) [10] Eclipse packages, ( ) [11] Android Studio, ( ) [12] Android Studio Features, ( ) [13] What is the AWS Toolkit for Eclipse?, ( ) [14] AWS Toolkit for Eclipse details, ( ) [15] AWS Toolkit for Visual Studio, ( ) [16] AWS Device Farm, Međimursko veleučilište u Čakovcu 35

38 ( ) [17] AWS Identity and Access Management, ( ) [18] AWS Elastic Beanstalk Developer Guide, ( ) Međimursko veleučilište u Čakovcu 36

39 13. Prilozi Popis slika Slika 1. Unos kontaktnih informacija za izradu AWS računa [1] Slika 2. Podešavanje postavki mobilnog uređaja potrebnih za testiranje aplikacije [Izvor: autor] Slika 3. Odabir uređaja na kojemu će se instalirati i testirati aplikacija [Izvor: autor].. 18 Slika 4. Instalacija AWS Toolkita korištenjem Visual Studio razvojnog okruženja [Izvor: autor] Slika 5. Podešavanje Amazon EC2 postavki prije instalacije [Izvor: autor] Slika 6. Instalacija AWS Toolkita korištenjem Eclipse IDE razvojnog okruženja [Izvor: autor] Slika 7. Podešavanje postavki aplikacije i okruženja prije instalacije [Izvor: autor] Slika 8. Android aplikacija instalirana na AWS Device Farm servis [Izvor: autor] Slika 9..NET web aplikacija instalirana na AWS Elastic Beanstalk servis [Izvor: autor] Slika 10. Spring Boot web aplikacija instalirana na AWS Elastic Beanstalk [Izvor: autor] Slika 11. Log podatci dostupni nakon završenog testiranja Android aplikacije [Izvor: autor] Slika 12. Grafovi koji prikazuju stanje procesora, memorije i broja niti [Izvor: autor] 32 Slika 13. Android aplikacija tijekom testiranja na Device Farm Servisu [Izvor: autor] Izvori slika [1] Create Free AWS Account, Međimursko veleučilište u Čakovcu 37