Skip to content

czahedi/soc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 

Repository files navigation

CNCF + Summer of Code

The Cloud Native Computing Foundation participates in Google's Summer of Code (GSoC). CNCF is a great place to spend a summer learning, coding, participating and contributing. We are an exciting open source foundation with a vibrant community of projects, and we look forward to your application and your project ideas!

Organization Admins

If you need help with anything CNCF + Summer of code related, you can file an issue or contact one of the admins below:

It's best if you use a public communication channel whenever possible; however, if you need to communicate in private, please feel free to send the admins a note via info@cncf.io (please use the public channels for any project-related discussion).

Current Year

We are submitting an application as a mentoring organisation for Google Summer of Code 2017.

Students

You can take a look at our official project ideas here

Mentors

Add your ideas to our page here

Also please contact the org admins to add you to the gsoc github team: https://github.com/orgs/cncf/teams/gsoc-2017-mentors

Project Ideas

Kubernetes

Improve ThirdPartyResources

  • Description: ThirdPartyResources were added some time ago, but the implementation has languished with multiple outstanding capabilities that are missing. They did not complete the list of requirements for graduating to beta (kubernetes/kubernetes#22768).
  • Recommended Skills: golang
  • Mentor(s): Stefan Schimanski (@sttts)
  • Issue: kubernetes/enhancements#95

Code metrics infrastructure, measure, report in CI

  • Description: The Kubernetes code base grows every day. Reviews mostly concentrate on functionality and architecture, less on code hygiene like test coverage, cyclomatic complexity, linting etc. The goal of this project is to find better ways to support developers and reviewers by making these metrics more visible on new pull-requests. Ideas are to extend our github bots to post a green-yellow-red traffic light for certain measurements or to add new merge gates e.g. if test coverage goes down without being acknowledged by reviewers.
  • Recommended Skills: golang
  • Mentor(s): Stefan Schimanski (@sttts)
  • Issue:

Prototype ssh based replacement for kubctl-exec

  • Description: Kubectl exec is implemented with a proprietary protocol. The communication is not end-to-end encrypted. This project is about prototyping the integration of an on-demand SSH server in the kubelet and tunneling of the connection through the apiserver.
  • Recommended Skills: golang
  • Mentor(s): Stefan Schimanski (@sttts)
  • Issue:

Bazel rules for generated code

  • Description: Bazel is Google's internal build tool with more than a decade of history internally, recently OpenSource'ed. It is well suited for big code bases and complex build dependency graphs. Today Kubernetes uses a large GNU make based build system mixed with a lot of bash scripting, which is slow, error prone and more and more unmaintainable. Early work has been done already to compile Kubernetes and to run tests with Bazel. A big next step is to integrate the various code generators that are heavily used in Kubernetes. The goal is better maintainability and much faster turn around cycles for developers and our CI infrastructure.
  • Recommended Skills: golang, interest in build systems, able to read existing Makefiles and bash code
  • Mentor(s): Stefan Schimanski (@sttts)
  • Issue:

TODO

Fluentd

Fluentd is an open source data collector for unified logging layer: http://www.fluentd.org/

Fluentd Monitoring Dashboard

  • Description: Fluentd as a log collector and aggregator, runs as a service in background, for hence having graphical built-in monitoring capabilities is a must for all scenarios. This project aims to implement a web based dashboard that reports the Fluentd internals from different stages of the data cycle: collection, parsing, filtering, buffering and outputs.
  • Recommended Skills: Ruby, API, CSS, Bootstrap and Javascript
  • Mentor(s): Eduardo Silva (@edsiper)
  • Issue: fluent/fluentd#1475

Fluent Bit: plugins development and extend golang interface

  • Description: Fluent Bit is a log forwarder that can be integrated with Fluentd or work in standalone mode for log handling. This project aims to extend the number of plugins available to perform data collection, filtering and outputs.
  • Recommended Skills: C, TCP, Sockets, Golang and Linux.
  • Mentor(s): Eduardo Silva (@edsiper)
  • Issue: fluent/fluent-bit#194

Prometheus

Prometheus is an open-source systems monitoring and alerting toolkit: https://prometheus.io/

Add option to log slow queries and recording rules

  • Description: Having something like PostgreSQL's log_min_duration_statement would be useful to debug performance problems. It would be great to collect detailed query information, like how many chunks were necessary to compute the result and how many had to be loaded from disk.
  • Recommended Skills: golang
  • Mentor(s): Ben Kochie (@SuperQ)
  • Issue: prometheus/prometheus#1315

General purpose rule/alert testing tool

linkerd

linkerd is a resilient service mesh for cloud native apps: https://linkerd.io/

Adopt OpenTracing in linkerd

  • Description: Add opentracing support in linkerd.
  • Recommended Skills: Scala
  • Mentor(s): Oliver Gould (@olix0r), Andrew Seigner (@siggy)
  • Issue: linkerd/linkerd#1079

QUIC Netty codec

  • Description: Build a QUIC Netty codec.
  • Recommended Skills: Java, Netty, UNIX Networking
  • Mentor(s): Oliver Gould (@olix0r)
  • Issue: linkerd/linkerd#1078

Redis protocol support

  • Description: Add redis protocol support.
  • Recommended Skills: Scala, Finagle, Redis
  • Mentor(s): Oliver Gould (@olix0r), Alex Leong (@adleong)
  • Issue: linkerd/linkerd#1077

MySQL protocol support

  • Description: Add mysql protocol support.
  • Recommended Skills: Scala, Finagle, MySQL
  • Mentor(s): Oliver Gould (@olix0r), Alex Leong (@adleong)
  • Issue: linkerd/linkerd#1080

OpenTracing

OpenTracing is an open standard for distributed tracing. A trace tells the story of a transaction or workflow as it propagates through a (potentially distributed) system. OpenTracing makes it easy for developers to add (or switch) tracing implementations, by offering a vendor-neutral APIs that popular platforms can bind to.

With v1.0 of OpenTracing complete, we are now in the process of intrumenting major web frameworks, services, and networking/controlflow libraries. See Instrumenting Frameworks for more information.

In addition to the following projects, students may choose an equivalent framework, library, or service, provided it is widely used and Open Source.

OpenTracing adaptor for AWS X-Ray

  • Description: X-Ray is a distributed tracing service provided by AWS. X-Ray intrumentation does not currently conform to OpenTracing, it provides a similar (but proprietary) API. Make X-Ray vendor-neutral by building an OpenTracing/X-Ray adaptor, so that it can be plugged in to the OpenTracing ecosystem.
  • Recommended Skills: golang
  • Mentor(s): Ben Sigelman (@bensigelman)

OpenTracing Instrumentation for Nginx, HAProxy, or other Load Balancers

  • Description: Load Balancers and Gateways provide a variety of important services, and are present in almost every distributed system. Instrumentation at this layer is often the best first step towards tracing an entire system. Add intrumentation to Nginx, HAProxy, or equilvant gateway service via an OpenTracing plugin. See Envoy as an example.
  • Recommended Skills: C++, nginx
  • Mentor(s): Paul Draper (@pauldraper)

Add "net/rpc" and "database/sql" support for Golang

  • Description: Instrumented wrappers for the io functionality in Golang's stdlib, such as net/rpc and database/sql, is critical. So far, only net/http has been instrumented.
  • Recommended Skills: golang
  • Mentor(s): Paul Draper (@pauldraper)
  • Issue: opentracing-contrib/go-stdlib#8

go-restful + OpenTracing

Releases

No releases published

Packages

No packages published