Improving framework-based web application architecture and development in cloud environment
Tupamäki, Jukka (2013)
Tupamäki, Jukka
2013
Tietotekniikan koulutusohjelma
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2013-05-08
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201305221142
https://urn.fi/URN:NBN:fi:tty-201305221142
Tiivistelmä
Frameworks are widely used in web development. As web frameworks provide the developer with basic functionality, such as object-relational mapping and database abstraction, the developer has more time to concentrate on the actual problem. A common practice has been that framework-based web applications are deployed in a single-server environment.
As the advent of cloud computing has made cloud platforms popular, web developers are facing a change in their working environment. The change does not only affect the environment but also the techniques and practices used within the current web frameworks. The main problem is that the web frameworks have their roots in the single-server era when cloud platforms did not exist in such large scale as they do currently.
In this thesis we focus on how web developers can use their previous competence in the cloud environment. The research is done by developing an example application using the Django web framework. The example application is then deployed to the Heroku cloud platform. The example application and its implementation are used throughout the thesis to identify the most common pitfalls a developer might encounter while deploying a framework-based web application to a cloud platform. The pitfalls are analysed in order to find the root causes for why the current web frameworks do not fully fit to the cloud environment.
The findings show that most of the pitfalls are related to using web framework practices or techniques that e.g. store the application state inside the server’s memory or the local file system. As the cloud platform environment is a distributed system, the application state should be stored in a persistent storage and made accessible for each web server. In addition, the findings tell that developers must pay extra attention to application design and architecture in the cloud environment.
The thesis gives an analysis method for choosing third-party plugins and suggests ways to improve framework-based development. By specifying essential cloud platform features, the needs of an elastic cloud application are defined. The conclusions provide insight into the current status of web development and discuss how the web development can be improved by using the current cloud platforms and web frameworks.
As the advent of cloud computing has made cloud platforms popular, web developers are facing a change in their working environment. The change does not only affect the environment but also the techniques and practices used within the current web frameworks. The main problem is that the web frameworks have their roots in the single-server era when cloud platforms did not exist in such large scale as they do currently.
In this thesis we focus on how web developers can use their previous competence in the cloud environment. The research is done by developing an example application using the Django web framework. The example application is then deployed to the Heroku cloud platform. The example application and its implementation are used throughout the thesis to identify the most common pitfalls a developer might encounter while deploying a framework-based web application to a cloud platform. The pitfalls are analysed in order to find the root causes for why the current web frameworks do not fully fit to the cloud environment.
The findings show that most of the pitfalls are related to using web framework practices or techniques that e.g. store the application state inside the server’s memory or the local file system. As the cloud platform environment is a distributed system, the application state should be stored in a persistent storage and made accessible for each web server. In addition, the findings tell that developers must pay extra attention to application design and architecture in the cloud environment.
The thesis gives an analysis method for choosing third-party plugins and suggests ways to improve framework-based development. By specifying essential cloud platform features, the needs of an elastic cloud application are defined. The conclusions provide insight into the current status of web development and discuss how the web development can be improved by using the current cloud platforms and web frameworks.