Fogernetes: Deployment and Management of Fog Computing Applications

Recently, I had the unique chance to present the work I completed during the final year of my undergraduate studies. I conducted research on software deployment in the area of fog computing and was fortunate enough to publish at a conference in Taipei. While this wasn’t my first published work, it was my first paper as main author. It was the first time that I was responsible for the publishing process myself. One of the benefits of this is that I also had the chance to present my work at the actual conference. I thought it might be nice to share my experiences throughout this process.

Let’s start by talking about what I actually worked on.

NOMS

My Research

While I was trying to find a topic for my thesis at the beginning of 2017, I stumbled upon the area of fog computing. Fog computing is a rather new terminology which extends the concept of cloud computing to the edge of the network. As we look at computing systems that span traditional server farms as well as smaller devices located closer to where they are being used, new issues emerge. Deploying software on all these different, heterogeneous devices is more complicated than for cloud computing. And, while many deployment solutions for cloud computing exist, there hasn’t been that much focus on deployment in fog computing environments. In my work, I focused on using Kubernetes, a deployment and orchestration system developed by Google, in a fog computing setting. I developed a process for using it for fog computing and validated how well the system can work.

After I finished my thesis in the summer of 2017, my supervisor convinced me to publish a paper about this work. This meant reworking some of my findings and results. I had to squash my seemingly endless thesis into a 6-page paper. While it takes a lot of effort to figure out which pieces are the most essential, the process also helps to better understand your own work.

Feel free to read through the final abstract or learn more about the topic on my research page.

Devices used in fog and edge computing are heterogeneous, decentralized and distributed. These computing environments are unpredictable and their applications are becoming more complex. This leads to challenges regarding deployment and management of fog and edge applications. It is important to ensure that quality of service, availability, reliability and real-time characteristics are guaranteed during deployment to take advantage of fog computing. In this paper, we present Fogernetes, a fog computing platform that enables management and deployment of fog applications with specific requirements on heterogeneous devices with different capabilities. Fogernetes allows matching requirements of application components with device capabilities by using a labeling system. Based on a case study, we evaluate and test Fogernetes and examine its practical applicability for the deployment and management of fog computing applications. Fodeo serves as an example application. Fodeo analyzes video streams from multiple cameras and detects objects in them. Fogernetes enables the deployment of Fodeo components on appropriate devices by matching requirements and capabilities.

Publishing Process

Publishing a paper isn’t always a straightforward process. Let’s check out the timeline of the entire process:

  • August 2017 - I started my semester abroad after submitting my thesis. We decided to try and publish at a conference. 💪
  • September 2017 - We had to find the right conference and prepare a short paper summarizing the findings. ✍️
  • October 2017 We decided to submit the paper to the IC2E 2018 conference. 📨
  • December 2017 - I am finishing my semester abroad, we received news that we were not accepted. The year 2017 was almost over, and we had nothing to show for it. 😟
  • January 2018 - With the new year lending us energy, we decided to go for another round. We aim to submit for the DOMINOS 2018 workshop at the NOMS 2018 conference in Taipei. 💪

It has now been one year since I first learned about this research topic.

  • February 2018 - After getting an unforeseen extension on the deadline, we were able to successfully submit the paper. 📨
  • March 2018 - The big news: we were accepted. 🎉
  • March 2018 - If you are fortunate enough to be accepted at your conference or journal of choice, the work is not over. I also had to prepare a presentation and a poster. 🏋️‍♀️
  • April 2018 - The conference happened in Taipei. I was lucky enough to get some funding to present the work. 🌏
  • August 2018 The paper finally shows up in the IEEE library. 📚

It has now been one year since I submitted my thesis and more than 18 months since I started to look into this topic.

As you have realized by now, this whole process can take quite some time. It took forever, from the first time I approached my supervisor about the topic, to eventually having the work published in conference proceedings. While I did find the research, the publishing work, and the entire process quite rewarding and insightful, I also realized that I would face this issue again if I decided to continue with a career in research. With computer science being such a fast-moving field, the pressure to get published and the headaches you get during this long process can distract from the actual work. I spent the past year “just getting published” (at least it felt like that) and not actually doing the stuff that interests me. And while this was rewarding the first time, I currently feel as if this would get annoying rather quickly. Here in Germany, universities are in a fight with Elsevier. You quickly realize how this publishing system is in some ways inherently broken. It is frustrating. This is why I have decided to just put some of the other stuff I did on ArXiV and be done with it. Currently, it doesn’t seem worth investing so much time into this processes. I do believe that it would become easier with more experience.

I want to point out that:

  • I would definitely do it again, as I have learned a lot.
  • getting published is not as infeasible as it may seem in the first place.
  • anyone who is pursuing a research project and is thinking of doing it should go for it.

For me, the true challenge has become to work on something that is so interesting, so unique, and so rewarding that I do not need a conference or a journal to make other people aware of my work. After all, this is why I started this blog in the first place. For now, that means I am done with traditional publishing and I will try to find my own process, let it be in research or with something else.

TL;DR

  1. Doing research is liberating and fun. You can truly pursue what you are interested in.
  2. The long timelines of conferences make it quite hard to focus on doing actual work.
  3. Exchanging ideas at a conference and presenting your work is very rewarding and it is an amazing opportunity to meet some of your peers.
  4. I would recommend everyone I meet to try to publish their work.
  5. In the future, I will just continue to upload my papers here or on ArXiV.

Thank you

Finally, I want to say: Thank you!.

Thank you to the Chair for Applied Software Engineering at the Technical University Munich where I have been a student assistant since 2015. Thank you to Prof. Bruegge for having taught me so much and making my research and especially this trip possible in the first place. Also, thank you to Andreas Seitz for guiding me throughout this time. From the first pages of my thesis to the final version of my own published work, I could not have done it without him.

By Cecil Wöbker


I do science during the day and develop or design at night. If you like my work, hire me.

Feel free to follow me on Twitter or email me with any questions.

Comments