We spoke to SAE Liverpool Web Development student Daniel O’Hagan whose major project explored serverless application, focusing on increasing performance.
He talked to us about some of the factors that made him deploy to a serverless environment in the first place, and the ways he has been stretched as a programmer over the course of the project.
What did you work on for your major project and what did this involve?
My major project involved creating a web application that is run on AWS using Elastic Beanstalk and testing the performance of different parts of the application. This included the standard HTTP requests that are typically used to send web page data and WebSockets which allow for real-time communication between client and server. I then used the data from the experiment to come to conclusions on the performance of both HTTP and WebSockets on AWS.
What inspired you to look at serverless application, focusing on increasing performance?
At first I was considering basing my major project on web graphics processing using WebGL, however, this meant I would not have many opportunities to include any form of back-end which is where I have almost been most interested. Servers are expensive and I certainly couldn’t afford my own and this is why serverless really interested me.
AWS allows for a free tier which allowed me to play around with a server. Initially I wanted to look at both performance and security, but my supervisor recommended that I focus solely on performance because even without security there would have to be a huge amount of work put into optimising the application.
What skills and techniques that you have developed on the course did you use for your Major Project?
Deploying to a serverless environment was very difficult but my knowledge of servers, transfer protocols and request handling made this task a lot easier. For example, my knowledge of transfer protocols was vital when creating the WebSocket as AWS had to be specifically configured to allow for TCI data to be sent and received.
What challenges did you encounter during the project, and how did you overcome these?
The toughest problem I faced was the lack of research focusing specifically on the area of serverless that I was testing. A lot of serverless research is about FaaS, which is for short, low-computational cost tasks, whereas my project is about PaaS which are long-running tasks such as hosting a website, database and allocating server space to handle the back-end. This was somewhat alleviated by research into older forms of PaaS that were built on older forms cloud based computing.
What have you enjoyed about the course at SAE?
At SAE I was given a lot of freedom and an equal amount of guidance, the guidance I received from my supervisor when planning my major project really helped me define what I was going to build and what my project was actually going to do.
The freedom given in the ASP module inspired me to push myself as far forward as I could as a programmer, so I attempted to build something many times larger than before. It paid off by making me into a much better programmer and providing me with a project that I can show off.
What area of the Web industry are you hoping to go into after graduating?
Programming has always been more interesting to me than the design aspects so I hope to find a role in either enterprise application development or mobile application development that allows me to learn more about programming and application architecture.
Do you have any advice for the freshers who will be starting the Web course in September?
Programming can be daunting, especially for those who have never studied how computers work. Look for a language that feels comfortable to you, as it will give you a powerful tool to create anything; understanding exactly what is happening is invaluable when creating any application. I started learning Java before I knew I would be using it in the mobile app module and it has become my favourite language to use – I used it to create both my ASP and major project.
The source code can be found here.