The Google Summer of Code (GSOC) program allows university students (over the age of 18) from around the world to spend their summer breaks writing code and learning about open source development. Accepted students work with a mentor and become a part of the open source community. In its 13 year, the program has previously accepted 12,000+ students from 104 countries to work on 568 open source projects, writing over 30 million lines of code.
201 organizations were accepted to participate in GSOC 2017 to bring new, excited developers into their community and the world of open source. The Cloud Native Computing Foundation is proud to be one of these organizations, bringing seven interns this summer. Mentors were paired with interns to help advance the following CNCF projects: 4 Kubernetes, 1 CoreDNS, 1 OpenTracing and 1 Prometheus.
“As a former GSOC mentor, I have seen the amazing impact this program has on the students, projects and larger open source community. CNCF is very proud to have 7 projects in the 2017 program that cover a range of our cloud native technologies. We look forward to watching the progress and results of the students over the summer.” – Chris Aniszczyk (@cra)
Additional details on the projects, mentors, and students can be found below. Coding beings May 30 and we’ll report back on their progress in a few months.
Kubernetes
Create and Implement a Data Model to Standardize Kubernetes Logs
Student: Amit Kumar Jaiswal, UIET CSJM University
Mentor: Miguel Perez Colino, Red Hat
This project aims to build and implement a data model for logs in a large Kubernetes cluster to process, correlate, and query to make troubleshooting easier and reduce the time in finding root causes.
Develop a Set of Jupyter Notebooks for the Kubernetes Python Client + Kubernetes Python Client Update
Student: Konrad Djimeli, University of Buea
Mentor: Sebastien Goasguen, Skippbox (acquired by Bitnami)
The Kubernetes python client is a Kubernetes incubator project. The python client makes it possible to access Kubernetes with python. Jupyter notebook extends the console-based approach to interactive computing in a qualitatively new direction, providing a web-based application suitable for capturing the whole computation process. The aim of this project is to develop a set of notebooks that highlight the Kubernetes primitives. This project would also include updating the python client to make it easier for users to carry out certain operations.
Improve ThirdPartyResources
Student: Nikhita Raghunath, Veermata Jijabai Technological Institute (Mumbai)
Mentor: Stefan Schimanski, Red Hat
ThirdPartyResources are already available, but the implementation has languished with multiple outstanding capabilities missing. They did not complete the list of requirements for graduating to beta. Hence, there are multiple problems present in the current implementation of ThirdPartyResources. This project aims to work towards a number of known shortcomings to drive the ongoing effort toward a stable TPR release forward.
Integrate Unikernel Runtime
Student: Hao Zhang, Zhejiang University, Computer Science (master)
Mentor: Harry Zhang, Lob and Pengfei Ni, HyperHQ
This work will focus on why and how to integrate unikerneal technology as a runtime into into the Kubernetes/frakti project. This will allow Kubernetes to use use a unikernel instance just like it uses Docker, which eventually will open Kubernetes up to more more application scenarios.
CoreDNS
CoreDNS: Middleware
Student: Antoine Debuisson (University of Paris-Sud)
Mentor: Miek Gieben, CoreDNS and John Belamaric, Infoblox
The goal of the project is to capture the DNS data within a CoreDNS middleware and write it to a “dnstap log file” (perhaps over the network).
Codebase to build upon:
- https://github.com/coredns/coredns (for the middleware)
- https://github.com/dnstap/golang-dnstap (to build the protocol buffer message)
- https://github.com/golang/protobuf (to write the serialized message)
OpenTracing
Instrument OpenTracing with Go-restful Web Framework
Student: Liang Mingqiang, Hyogo University and Carnegie Mellon University
Mentor: Ted Young, LightStep and Wu Sheng, OpenTracing
Go-restful (https://github.com/emicklei/go-restful) is a widely-used library for building REST-style Web Services using Google Go programming language. With powerful built-in modules, including intelligent request routing, RESTful support and filters for intercepting HTTP request, go-restful makes it very convenient to build a web application from scratch. This proposal aims to instrument OpenTracing with go-restful.
Prometheus
Storage and Query Engine Improvements to Prometheus
Student: Goutham Veeramachaneni, Indian Institute of Technology, Hyderabad
Mentor: Ben Kochie, SoundCloud, Fabian Reinartz, CoreOS and Julius Volz, Prometheus
While the Prometheus monitoring system solves most use-cases, improvements will will reduce the already minimal load on the ops team, including checking alerts over time, unit-testing alerts, backups and figuring out which queries OOM.