Google Summer of Code 2018 with OpenSUSE Part 1
This is the first of a three part series, summarizing my experiences of working with OpenSUSE for Google Summer of Code 2018. In this post, I’ll introduce myself and my project.
Hello! I’m Asad from Rawalpindi, Pakistan and I’m finishing up my Masters degree in Informatics at Technical University of Munich, Germany. My major is Distributed Systems, Computer Networks, and Security. I have participated in a couple of summer of code programs before i.e., Google Summer of Code 2015 with CentOS and European Summer of Code 2016 with BRLCAD. I loved everything about those programs and wanted to experience it for the final time before graduating.
Google Summer of Code 2018
For those uninitiated, Google Summer of Code (GSoC) is a software development program over the summer, where students from all over the world can participate to write code for various open source organizations. The program involves organizations floating their project ideas and then students write proposals on how they’ll go about developing these ideas. The organizations then choose students based on these ideas. On successful completion of the project, the students are given a certificate from Google along with a stipend.
Develop Container-based backend for openQA
As my area of specialization is distributed systems, I worked as a Cloud engineer at Siemens, USA and as a DevOps Engineer at T-Systems, Germany. During these jobs, I developed expertise in various cloud technologies including virtualization (hyper visors, containers). I got to work docker containers and more specifically deploying microservices in docker environments in the cloud.
That’s why this project idea (develop container-based backend for openQA) by OpenSUSE, gauged by interest. As, it involves working with a new automation tool i.e., openQA and integrating a familiar technology (docker) into it. The aspect of developing a solution for an advanced automation tool, aligns with my plan of pursuing a career as a site reliability engineer.
OpenQA is an automated testing software developed by openSUSE to test the operating system installation process. Automated testing of operating system is important because, installation is a time-consuming process and when a new OS is released, it is not possible to test all possible combinations for installation options in a timely manner, these installation options include, type of image, type of installation medium (USB, DVD, UEFI), operating system options (KDE, GNOME) etc. OpenQA uses image recognition to test the full stack i.e., bootloader, installer and applications.
OpenQA works by the interaction of three software components i.e., web application, worker and os-autoinst. Container based services are becoming increasingly popular and these services are often packaged into container images. Adding the capability of testing container images into openQA, will provide stable container environments and enhanced testing. The aim of this project is to develop a container backend for openQA. The component os-autoinst already provides various backends such as qemu and integrating container backends like docker and LXC is going to add value to openQA and community.
I’m mentored by Santiago Zarate and Ettore Di Giacinto. Santiago is based in Nuremberg, whereas Ettore works in Prague. So, both mentors are relatively close from Munich. Both are very helpful and responsive (email, hangouts), which is very important based on my previous summer of code experiences. I’m looking forward to working with them and hopefully will pickup some knowledge along the way.
I’m pretty excited about the learning potential of this project. I will get to learn how to use openQA to test not only operating systems but also applications. I’m looking forward to programming with PERL for the first time. Developing a docker based solution (other than microservices) sounds cool too.