• Ei tuloksia

Is FaaS feasible option as a frontend server cost and performance vice? 41

6. Conclusions

6.2 Is FaaS feasible option as a frontend server cost and performance vice? 41

in analytics and debugging. Many of the problems are caused because the systems itself is relatively new and thus people are still getting used to the tools used to achieve these activities.

6.2 Is FaaS feasible option as a frontend server cost and per-formance vice?

At least in case of AWS Lambda FaaS platform, the costs are higher than running a more traditional PaaS approach using AWS Elastic Beanstalk as the outgoing data is billed twice. Although the costs are higher it depends on the use case if use of FaaS is feasible as different services have different budgets.

Based on the test performed and described in chapter 4, there is no downside to using FaaS performance vice, at least in AWS Lambdas case. More study is required to determine if this is the case with other FaaS platforms as well.

As AWS Lambda does not seem to designed to be used as a web server some of the services used to make it perform as web server add additional costs. Outgoing data is is invoiced twice as both API Gateway and Amazon Cloudfront both charge for it.

As noted in the chapter 5, the setup was costlier than expected as estimates of the traffic were not precise enough. These relatively high costs have not however stopped Alma Media from using setups similar in www.talouselama.fi as the company now has multiple media sites running in this fashion.

Relatively high execution and data transfer costs can be justified by the devel-oper experience and benefits of not having to setup and monitor scaling of Elastic Beanstalk machines. As there is little to no DevOps, the day to day operation of the system does not require manpower which reduces costs. As noted in chapter five there are also security benefits of running the systems in AWS Lambda as there is no need to update machines in any fashion for security reasons.

6.3. Limited benefits of scaling 42

6.3 Limited benefits of scaling

With current setup it is not possible to take full advantage of AWS Lambdas ability to scale nearly limitlessly if the backend service providing the API does not scale in the same fashion. There were some test result hinting to problems with the API as described in chapter 5.

With better scaling of the underlying API the system as a whole would be able to perform better. However, converting the underlying API to scale better would require extra work and the real life benefits would be limited, as the system works well enought to handle current peaks in traffic.

There are however benefits as well: there is very little to no need to configure scaling as it happens by default. Only configuration recarding scaling that can be done is requiring more capacity from Amazon if the current concurrency limit is reached.

However, with www.talouselama.fi concurrency limit has not been exceeded and limit has not been increased. With bigger services however the limit should be increased before the service goes live to avoid unnecessary problems.

43

BIBLIOGRAPHY

[1] S. Hendrickson, S. Sturdevant, T. Harter, V. Venkataramani, A. C. Arpaci-Dusseau, and R. H. Arpaci-Arpaci-Dusseau, “Serverless computation with open-lambda,” Elastic, vol. 60, p. 80, 2016.

[2] G. McGrath, J. Short, S. Ennis, B. Judson, and P. Brenner, “Cloud event programming paradigms: Applications and analysis,” in Cloud Computing (CLOUD), 2016 IEEE 9th International Conference on. IEEE, 2016, pp.

400–406.

[3] M. Brain, “How web servers work,” How Stuff Works, Internet, 2002.

[4] “Hyper text transfer protocol, header field definitions,” accessed on 13.05.2018.

[Online]. Available: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html [5] W3C, “Html 5.2 w3c recommendation,” accessed on 13.05.2018.

[Online]. Available: https://www.w3.org/TR/2017/REC-html52-20171214/

introduction.html#introduction

[6] M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, A. Rabkin, and I. Stoica, “A view of cloud computing,” Commu-nications of the ACM, vol. 53, no. 4, pp. 50–58, 2010.

[7] P. Castro, V. Ishakian, V. Muthusamy, and A. Slominski, “Serverless program-ming (function as a service),” inDistributed Computing Systems (ICDCS), 2017 IEEE 37th International Conference on. IEEE, 2017, pp. 2658–2659.

[8] Microsoft, “What is iaas?” accessed on 13.05.2018. [Online]. Available:

https://azure.microsoft.com/en-us/overview/what-is-iaas/

[9] “App service,” accessed on 20.11.2017. [Online]. Available: https://azure.

microsoft.com/en-us/services/app-service/

[10] Google, “Google app engine,” accessed on 20.11.2017. [Online]. Available:

https://cloud.google.com/appengine/

[11] Amazon, “Elastic beanstalk supported platforms,” accessed on 20.11.2017.

[Online]. Available: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/

concepts.platforms.html

BIBLIOGRAPHY 44 [12] Z. Li, Y. Zhang, and Y. Liu, “Towards a full-stack devops environment (platform-as-a-service) for cloud-hosted applications,” Tsinghua Science and Technology, vol. 22, no. 01, pp. 1–9, 2017.

[13] “Aws::elasticbeanstalk::environment,” accessed on 20.11.2017. [Online]. Avail-able: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/

aws-properties-beanstalk-environment.html

[14] Amazon, “Environment configuration methods before environment cre-ation,” http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-configuration-methods-before.html, accessed on 20.11.2017. [On-line]. Available: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/

environment-configuration-methods-before.html

[15] A. Avram, “Faas, paas, and the benefits of the serverless architecture,”

accessed on 20.11.2017. [Online]. Available: https://www.infoq.com/news/

2016/06/faas-serverless-architecture

[16] Amazon, “Aws lambda,” accessed on 20.11.2017. [Online]. Available:

https://aws.amazon.com/lambda/details/

[17] Google, “Cloud functions,” accessed on 20.11.2017. [Online]. Available:

https://cloud.google.com/functions/

[18] IBM, “Ibm cloud functions,” accessed on 20.11.2017. [Online]. Available:

https://www.ibm.com/cloud/functions

[19] Microsoft, “Azure functions,” accessed on 20.11.2017. [Online]. Available:

https://azure.microsoft.com/en-us/services/functions/

[20] “Openlambda,” accessed on 20.11.2017. [Online]. Available: https://

open-lambda.org/index.htm

[21] G. McGrath and P. R. Brenner, “Serverless computing: Design, implementation, and performance,” in Distributed Computing Systems Workshops (ICDCSW), 2017 IEEE 37th International Conference on. IEEE, 2017, pp. 405–410.

[22] “Invoking lambda function,” accessed on 13.05.2018. [Online]. Available: https:

//docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-functions.html

BIBLIOGRAPHY 45 [23] G. Podjarny, “Serverless security implications—from infra to owasp,”

Apr 19, 2017, accessed on 19.05.2018. [Online]. Available: https:

//snyk.io/blog/serverless-security-implications-from-infra-to-owasp/

[24] J. Daniels, “Server virtualization architecture and implementation,” Crossroads, vol. 16, no. 1, pp. 8–12, 2009.

[25] M. Rosenblum, “The reincarnation of virtual machines,” Queue, vol. 2, no. 5, p. 34, 2004.

[26] VMware, “Virtualization basics,” accessed on

20.05.2018. [Online]. Available: https://pubs.vmware.com/

vsphere-51/index.jsp?topic=%2Fcom.vmware.vsphere.vcenterhost.doc%

2FGUID-ED375B12-7D08-4B7E-81EE-DCE83E51B1AF.html

[27] C. Anderson, “Docker [software engineering],” IEEE Software, vol. 32, no. 3, p. c3, 2015.

[28] Z. Aljazzaf, “Bootstrapping quality of web services,” Journal of King Saud University-Computer and Information Sciences, vol. 27, no. 3, pp. 323–333, 2015.

[29] A. Al-Moayed and B. Hollunder, “Quality of service attributes in web services,”

in Software Engineering Advances (ICSEA), 2010 Fifth International Confer-ence on. IEEE, 2010, pp. 367–372.

[30] A. W. Services, “Programming model,” 28.01. 2018, accessed on 28.01.2018. [Online]. Available: https://docs.aws.amazon.com/lambda/latest/

dg/programming-model-v2.html

[31] ——, “Aws lambda - faqs,” accessed on 14.11.2017. [Online]. Available:

https://aws.amazon.com/lambda/faqs/

[32] ——, “Aws lambda limits,” accessed on 20.01.2018. [Online]. Available:

https://docs.aws.amazon.com/lambda/latest/dg/limits.html

[33] “Azure functions vs aws lambda – scaling face off,” Jan 6, 2018, accessed on 20.05.2018. [Online]. Available: https://www.azurefromthetrenches.com/

azure-functions-vs-aws-lambda-scaling-face-off/

Bibliography 46 [34] A. Cordova, “Cold starting aws lambda functions,” Feb 13, 2018, accessed on 20.05.2018. [Online]. Available: https://read.acloud.guru/

cold-starting-lambdas-2c663055589e

[35] “Deploying lambda-based applications,” accessed on 20.05.2018.

[Online]. Available: https://docs.aws.amazon.com/lambda/latest/dg/

deploying-lambda-apps.html

[36] A. W. Services, “Aws lambda pricing,” accessed on 28.01.2018. [Online].

Available: https://aws.amazon.com/lambda/pricing/

[37] ——, “Aws api gateway pricing,” accessed on 28.01.2018. [Online]. Available:

https://aws.amazon.com/api-gateway/pricing/

[38] ——, “Simple monthly calculator,” accessed on 28.01.2018. [Online]. Available:

https://calculator.s3.amazonaws.com/index.html

[39] “Webpack concepts,” accessed on 13.05.2018. [Online]. Available: https:

//webpack.js.org/concepts/

[40] M. Hakim, “Speed index and critical path rendering performance for isomorphic single page applications,” inThe 16th Winona Computer Science Undergraduate Research Symposium, 2016, p. 41.

[41] Facebook, “Reactdomserver,” accecced on 15.11.2017. [Online]. Available:

https://reactjs.org/docs/react-dom-server.html

[42] M. A. Jadhav, B. R. Sawant, and A. Deshmukh, “Single page application using angularjs,” International Journal of Computer Science and Information Tech-nologies, vol. 6, no. 3, pp. 2876–2879, 2015.

[43] “Express fast, unopinionated, minimalist web framework for node.js,” accessed 21.05.2018. [Online]. Available: https://expressjs.com/

[44] A. W. Services, “What is amazon athena,” accessed on 29.01.2018. [Online].

Available: https://docs.aws.amazon.com/athena/latest/ug/what-is.html