ebook img

Application of Amazon Web Services in software development PDF

106 Pages·2017·1.64 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Application of Amazon Web Services in software development

DEGREE PROJECT IN TECHNOLOGY, FIRST CYCLE, 15 CREDITS STOCKHOLM, SWEDEN 2018 Application of Amazon Web Services in software development EMELIE THAM MARCUS WERLINDER KTH ROYAL INSTITUTE OF TECHNOLOGY SCHOOL OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Abstract Duringtheselastrecentyearscloudcomputingandcloudservices have started to gain traction, which has been most notable among companies. Amazon have proven to be one of the powerhouses on providing scalable and flexible cloud computing services. However, cloud computing is still a relatively new area. From an outsider’s point of view, the overwhelming information and available services might prove to be difficult to familiarize with. The aim of this the- sis is to explore how Amazon Web Services can be applied during softwaredevelopmentandobservinghowdifficultitmightbetouse theseservices. Three test applications that utilized different Amazon Web Ser- viceswereimplementedtogetaninsightintohowAmazonWebSer- vicescanbeappliedfromacloudcomputingbeginner’spointofview. These applications were developed in an iterative manner, where a case study was performed on each application. At the start of each new iteration a literature study was conducted, where sources were reviewed to see if it provided essential information. In total, nine differentAmazonWebServiceswereusedtoimplementandtestthe three respective test applications. Results of the case study were in- terpretedandevaluatedwithregardstothelearnabilityandappliance of Amazon Web Services. Issues that were identified during the de- velopmentprocessshowedthatAmazonWebServiceswerenotuser- friendlyforusersthathavelittletonoexperiencewithcloudcomput- ingservices. Further research on other Amazon Web Services, such as Elastic Cloud Computing, as well as other cloud computing platforms like Google or IBM, may provide a deeper and more accurate insight on theappliancesofcloudcomputing. Keywords: Cloud computing; Amazon Alexa; Learnability; Amazon Web Services;Software;Cloudcomputingservices Abstrakt Underdemsenasteårensåharmolntjänsterblivitettalltmerpop- ulärtområde,specielltinomföretag.Ettavdemstörstautgivareinom molntjänst branschen är Amazon som erbjuder skalbara och flexibla molntjänster. Molntjänster är dock ett relativt nytt område, vilket innebär att någon som inte är insatt i ämnet kan finna all tillgäng- lig information överväldigande och svår att bekanta sig med. Målet meddethärtesenärattutforskaolikaAmazonWebServicesomkan användasinommjukvaruutvecklingochobserveraproblemsomkan uppståmeddessatjänster. Tre testapplikationer som använde sig av Amazon Web Services var skapade för att få en fördjupad kunskap om hur dessa tjänster fungerarochvadförmöjligheterdehar. Dessaapplikationerutveck- lades iterativt och en fallstudie utfördes för varje applikation. I bör- janavvarjenyiterationgenomfördesenlitteraturstudie,därkällorna varkritisktgranskadeförattseifalldeminnehöllväsentliginforma- tion för tesen. Sammanlagt användes nio olika Amazon Web Ser- vices för att implementera och testa de tre olika testapplikationerna. Resultatenfrånfallstudientolkadesochutvärderadesmedavseende påAmazonWebServiceslärbarhetochtillämpningsbarhet. Problem som samlades ihop under utvecklingsprocessen visade att Amazons Web Services inte var särskilt användarvänligt för utvecklare med litenelleringenerfarenhetinomAmazonWebServices. YtterligareforskninginomandraAmazonWebServicessomElas- ticCloudComputingochforskningsomundersökerandramolntjänst plattformar som Google Cloud, skulle kunna bidra med en djupare förståelseochmerexaktinblickkringtillämpningavmolntjänster. Nyckelord: Cloudcomputing; AmazonAlexa; Learnability; AmazonWeb Services;Molntjänster Acknowledgements We would like to thank our advisors at KTH Royal Institute of Technology, Anders Sjögren and Fadil Galjic, for providing us with their valuable insights and feedback throughout the course of this wholethesiswork. Contents 1 Introduction 1 1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Goal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.5 Methodology/Methods . . . . . . . . . . . . . . . . . . . . . 3 1.6 Delimitations . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.7 Disposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 TheoreticalBackground 5 2.1 CloudComputing . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 AmazonWebServices . . . . . . . . . . . . . . . . . . . . . . 6 2.2.1 AWSCloudcomputinginfrastructure . . . . . . . . . 6 2.2.2 AWSLambda . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.3 Alexa&AlexaSkill . . . . . . . . . . . . . . . . . . . . 8 2.2.4 AWSIdentityandAccessManagement . . . . . . . . 9 2.2.5 AWSRelationalDatabaseService . . . . . . . . . . . . 11 2.2.6 AWSVirtualPrivateCloud . . . . . . . . . . . . . . . 12 2.2.7 AWSElasticComputeCloud . . . . . . . . . . . . . . 13 2.2.8 AWSSimpleStorageService . . . . . . . . . . . . . . 13 2.2.9 AWSCloudWatch. . . . . . . . . . . . . . . . . . . . . 13 2.2.10 AWSSimpleQueueService . . . . . . . . . . . . . . . 14 2.2.11 AWSTranscribe . . . . . . . . . . . . . . . . . . . . . . 15 2.2.12 AWSComprehend . . . . . . . . . . . . . . . . . . . . 15 2.3 AmazonWebServicesToolsandLibraries . . . . . . . . . . . 15 2.3.1 AmazonWebServicesSoftwareDevelopmentKit . . 16 2.3.2 Node.js . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.3 NodePackageManager . . . . . . . . . . . . . . . . . 16 2.3.4 JSONObjects . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.5 AmazonWebServicesCommandLineInterface . . . 17 2.3.6 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.7 AlexaSkillsKitSoftwareDevelopmentKit . . . . . . 17 2.3.8 AlexaSkillKitCommandLineInterface . . . . . . . . 17 2.4 DefinitionandMetricsofSoftwareLearnability . . . . . . . . 18 2.4.1 TaskMetrics: Metricsbasedontaskperformance . . 19 2.4.2 CommandMetrics: Metricsbasedoncommandusage 20 2.4.3 MentalMetrics: Metricsbasedoncognitiveprocesses 20 2.4.4 SubjectiveMetrics: Metricsbasedonuserfeedback . 21 2.4.5 DocumentationMetrics: Metricsbasedondocumen- tationusage . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4.6 UsabilityMetrics: Metricsbasedonchangeinusability 21 2.4.7 RuleMetrics: Metricsbasedonspecificrules . . . . . 22 2.5 RelatedWorks . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5.1 ReportsonCloudServices . . . . . . . . . . . . . . . . 22 2.5.2 ProjectsusingAmazonWebServices . . . . . . . . . 22 3 Method 25 3.1 ResearchMethodologies . . . . . . . . . . . . . . . . . . . . . 25 3.1.1 Inductive&DeductiveApproach . . . . . . . . . . . 25 3.1.2 Quantitative&QualitativeResearch . . . . . . . . . . 25 3.1.3 CaseStudy. . . . . . . . . . . . . . . . . . . . . . . . . 25 3.1.4 Bunge’smethod . . . . . . . . . . . . . . . . . . . . . . 26 3.1.5 AppliedResearchMethodology . . . . . . . . . . . . 26 3.2 Sub-questionsoftheresearchquestion . . . . . . . . . . . . . 27 3.3 ResearchMethod . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.3.1 Understanding . . . . . . . . . . . . . . . . . . . . . . 28 3.3.2 Research . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.3.3 DevelopingandTesting . . . . . . . . . . . . . . . . . 29 3.3.4 Evaluation,DiscussionandConclusion . . . . . . . . 29 3.4 Evaluationmethod . . . . . . . . . . . . . . . . . . . . . . . . 29 3.5 DevelopmentTools . . . . . . . . . . . . . . . . . . . . . . . . 30 3.5.1 DevelopmentEnvironments . . . . . . . . . . . . . . 31 3.5.2 ProgrammingLanguages . . . . . . . . . . . . . . . . 31 3.5.3 TestingandDebuggingTools . . . . . . . . . . . . . . 31 3.5.4 ProjectModel . . . . . . . . . . . . . . . . . . . . . . . 31 3.6 DocumentationModel . . . . . . . . . . . . . . . . . . . . . . 32 4 PrerequisitesforapplyingAWSServicesandTools 33 4.1 PrerequisitesofapplyingAWSServices . . . . . . . . . . . . 33 4.1.1 LambdaPrerequisites . . . . . . . . . . . . . . . . . . 33 4.1.2 IAMPrerequisites . . . . . . . . . . . . . . . . . . . . 35 4.1.3 S3Prerequisites . . . . . . . . . . . . . . . . . . . . . . 36 4.1.4 RDSPrerequisites . . . . . . . . . . . . . . . . . . . . . 36 4.1.5 SQSPrerequisites . . . . . . . . . . . . . . . . . . . . . 38 4.1.6 AmazonTranscribeandComprehendPrerequisites . 38 4.2 PrerequisitesofapplyingAWSTools . . . . . . . . . . . . . . 39 4.2.1 ASKCLIPrerequisites . . . . . . . . . . . . . . . . . . 39 4.2.2 AWSSDKPrerequisites . . . . . . . . . . . . . . . . . 40 4.2.3 AWSCLIPrerequisites . . . . . . . . . . . . . . . . . . 40 5 CaseStudy: CreatingTestapplicationswithAWS 43 5.1 CaseStudy: FirstTestApplication . . . . . . . . . . . . . . . 43 5.1.1 StructureoftheFirstTestApplication . . . . . . . . . 43 5.1.2 Creating an Alexa Skill and integrating it with AWS Lambda . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.1.3 IntegratingtheskillwithiCal . . . . . . . . . . . . . . 45 5.1.4 IntegratingtheAlexaSkillwithAWSRDS . . . . . . 46 5.1.5 TestingandRunningtheApplication . . . . . . . . . 47 5.2 CaseStudy: SecondTestApplication . . . . . . . . . . . . . . 49 5.2.1 StructureoftheSecondTestApplication . . . . . . . 49 5.2.2 ImplementationandConfigurationofAmazonS3Buck- ets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.2.3 DeploymentPackageofAWSLambdaFunction . . . 51 5.2.4 ImplementationandConfigurationofIAMExecution Role. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.2.5 TestingandInvokingtheApplication . . . . . . . . . 56 5.2.6 ConfigurationofAmazonS3toPublishEvents . . . . 57 5.3 CaseStudy: ThirdTestApplication . . . . . . . . . . . . . . . 58 5.3.1 StructureoftheThirdApplication . . . . . . . . . . . 58 5.3.2 UploadingtoS3andsendingmessagestoSQS . . . . 59 5.3.3 Retrieve message from SQS and execute Transcribe andComprehend . . . . . . . . . . . . . . . . . . . . . 59 6 CaseStudy: ObservationsandMeasures 61 6.1 FeedbackandThoughts . . . . . . . . . . . . . . . . . . . . . 61 6.1.1 FeedbackandThoughts: FirstTestApplication . . . . 61 6.1.2 FeedbackandThoughts: ThesecondTestApplication 63 6.1.3 FeedbackandThoughts: ThethirdTestApplication . 66 6.2 LinesofCode . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 6.3 WorkHours . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 6.4 Costs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 7 AnsweringResearchQuestions 73 7.1 TheprerequisitesneededtouseAmazonWebServices . . . 73 7.2 The Amazon Web Services that were applied and how they wereused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 7.3 Issuesthatoccurredduringdevelopment . . . . . . . . . . . 75 7.4 TheCostofusingAmazonWebServices . . . . . . . . . . . . 76 7.5 SummaryofResults. . . . . . . . . . . . . . . . . . . . . . . . 77 8 Discussion 79 8.1 ValidityandReliabilityoftheResearchMethod. . . . . . . . 79 8.2 Lookingbackattheresults . . . . . . . . . . . . . . . . . . . . 80 8.3 Benefits,EthicsandSustainability. . . . . . . . . . . . . . . . 81 9 Summary 83 9.1 FutureResearch . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Description:
ing services. Further research on other Amazon Web Services, such as Elastic . 2.3.7 Alexa Skills Kit Software Development Kit 17 .. range of already available slots, such as date, places, celebrities and much more. All NPM packages contain a JSON file, which keeps track of all the different
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.