-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Open Source Promotion Plan Summer 2022
Open Source Promotion Plan is an organized summer program supported by Open Source Software Supply Chain Promotion Plan. It aims to actively encourage college students to participate in the development and maintenance of open-source software actively and promote the vigorous development of an excellent open-source software community.
Open Source Promotion Plan unites major open source communities worldwide to provide project tasks for the development and maintenance of open-source software. In addition, the program is available to university students from all over the world. Students can apply for the project they are interested in and guided by the senior maintainer (community mentor) once they are selected. After completing the project and contributing the results to the community, students will also receive a bonus and certificate for meeting the Open Source Promotion Plan.
Apache APISIX is a dynamic, real-time, high-performance open-source API gateway that provides rich traffic management features such as load balancing, dynamic upstream, grayscale publishing, service meltdown, authentication, observability, etc.
Apache APISIX helps enterprises quickly and securely handle API and microservice traffic for scenarios such as gateways, Kubernetes Ingress, and service grids as a cloud-native API gateway. It has been tested and highly recognized by professional cybersecurity organizations such as PwC Data Security Team, Tencent Blue Army, Ping An Galaxy Lab, Aiki SRC, and Yuanbao Technology Security Team.
THE Apache APISIX community has recommended several selected project topics to the Open Source Summer 2022 organizing committee, and the first batch is now online. Welcome to apply!
Read the Student Guide carefully.
Please communicate with your mentor: Each project comes with the mentor's contact information, so it is recommended that you contact your mentor first by email after you apply.
Understand the OSPP 2022: Read the guidelines, event schedule, etc.
Carefully check the community's documents the list of projects provided by the community, and be familiar with the community's participation methods, communication channels, community software design documents, community open source repository, etc.
Carefully prepare the project application. No matter which school or significant you come from, the quality of the project application is the main factor to be selected.
-
Description: The xRPC framework based on Apache APISIX implements the proxy functionality of the Dubbo 2 protocol, which needs to route based on the configuration and enhance its observability dynamically.
-
Degree of Difficulty: Advanced
-
Mentor of Project: Zexuan Luo
-
Contact Information: [email protected]
-
Output Requirements:
-
Support dynamic routing based on configuration (service_name \ version, etc.)
-
Logging current request parameters in the log, such as service_name, etc.
-
Provide detailed documentation for the above features
-
-
Technical Requirements:
-
Ability to run through multiple official Dubbo examples
-
Able to have adequate test coverage
-
Description: OpenFunction is a cloud-native open-source FaaS platform that lets developers focus on the specific business logic without caring about the underlying runtime environment and infrastructure. On the other hand, Apache APISIX is a cloud-native open-source API Gateway. This project aims to integrate OpenFunction to Apache APISIX to trigger the running of the function on OpenFunction through Apache APISIX.
-
Degree of Difficulty: Advanced
-
Mentor of Project: Chao Zhang
-
Contact Information: [email protected]
-
Output Requirements:
-
Submit PRs to Apache APISIX for implementing the OpenFunction plugin and merge to the
master
branch after the code review; -
Submit PRs to Apache APISIX for the OpenFunction plugin documentation, and merge to the
master
branch after the code review; -
Write a blog to introduce how to use Apache APISIX OpenFunction plugin.
-
-
Technical Requirements:
-
Split your implementations into several PRs and submit them to Apache APISIX (small PRs are easy to review)
-
Add complete test cases to cover the feature when you submit PRs to Apache APISIX.
-
3. Example of implementing a user authentication framework and permission management for APISIX Dashboard V3
-
Description: The current APISIX Dashboard v2 provides a basic username-password authentication method and no permission management scheme. Therefore we need to implement an authentication and permission framework used to extend these modules non-intrusively.
-
Degree of Difficulty: Basic
-
Mentor of Project: Zeping Bai
-
Contact Information: [email protected]
-
Output Requirements:
-
Implementation of authentication and permission framework
-
Implementing an authentication and permission example
-
Improve the development documentation
-
-
Technical Requirements:
-
Projects need to be split up and done step-by-step using GitHub PRs
-
Development content needs to be accompanied by test cases and documentation
-
-
Description: Apache APISIX Ingress controller is a Kubernetes Ingress controller implementation that uses Apache APISIX as its data plane. Gateway API aims to evolve Kubernetes service networking through expressive, extensible, and role-oriented interfaces that are implemented by many vendors and have broad industry support.
-
Degree of Difficulty: Advanced
-
Mentor of Project: Jintao Zhang
-
Contact Information: [email protected]
-
Output Requirements:
-
Enabling the APISIX Ingress controller to configure a Layer 4 traffic proxy using TCPRoute in the Gateway API.
-
Complete the e2e test case.
-
-
Technical Requirements:
-
Familiar with Kubernetes-related technologies, like client-go.
-
Familiar with Go.
-
- Description: Over the last year, Apache APISIX has added several new plugins and now supports 70+ plugins. After apisix.apache.org added support for the documentation site, the overall number of documents is high, but the content presentation quality lags a bit. There are many writers and inconsistencies in the style of the previous Chinese documentation. In addition, some of the content is subject to detailed errors, so there is still a lot of room for optimizing the APISIX Chinese technical documentation content.
This project is mainly to adjust the Chinese content of the latest version of the Apache APISIX official documentation, involving the content of the Security and Traffic modules under the Plugins plugin content (19 articles in total; if there is a project priority adjustment, it will be replaced by the Observability module content under the same plugin directory, 21 articles in total).
The amount of text translated into Chinese is expected to be less than 1000 words/article for short articles and about 2000-3000 words/article for long articles. Including the warm-up period, we can complete 20 documents in 4 months, and we can adjust and output one document per week, which is quite generous in terms of time for students.
-
Degree of Difficulty: Basic
-
Mentor of Project: Sylvia Su
-
Contact Information: [email protected]
-
Output Requirements:
After reading and familiarizing with the English technical documentation of APISIX, I have some ideas on the content output of the Chinese technical documentation. First, complete the content refactoring and optimization of the current Chinese technical documentation to ensure that the content conforms to the community writing standards and the format is uniform, the content is easy to understand and friendly to APISIX project beginners, and most importantly, to ensure the accuracy of the content. Finally published to the official Apache APISIX documentation site for open source enthusiasts to use.
-
Technical Requirements:
-
Familiar with Markdown, Git, and various editors and GitHub sites.
-
Need to understand what the APISIX project is, what it is useful for, what scenarios can be accomplished using these plugins, etc.
-
-
Description: With the upcoming V3 release of Apache APISIX and the need to adapt the Apache APISIX Dashboard for V3, we needed to refactor the front-end of the Dashboard to address historical issues and bring a better experience.
-
Degree of Difficulty: Advanced
-
Mentor of Project: Tao Yang
-
Contact Information: [email protected]
-
Output Requirements:
-
Use TypeScript as the main programming language
-
Sort out the project structure and make a reasonable refactoring plan
-
Complete the refactoring of pages in the refactoring plan
-
Assist in solving existing issues in the project
-
-
Technical Requirements:
-
Familiarity with TypeScript, React, NodeJS, and related ecologies
-
Ability to use Git and GitHub for collaborative development
-
Knowledge of React and NodeJS related ecology is a plus
-
Knowledge of Apache APISIX preferred
-
-
Description: OpenID Connect is a lightweight specification that is based on OAuth 2.0. It allows clients to use the Identity Server or Idp to authenticate users and get user profiles. In this project, we want to make Apache APISIX Dashboard support using OpenID Connect protocol to connect to other IdP such as Okta, and Auth0 so that users don't need to use a username and password to sign in.
-
Degree of Difficulty: Advanced
-
Mentor of Project: Xinxin Zhu
-
Contact Information: [email protected]
-
Output Requirements:
-
Submit PRs to the Apache APISIX Dashboard for OpenID-Connect protocol support and merge them into the master branch after code review
-
Submit PRs to Apache APISIX Dashboard for OpenID-Connect protocol testing, complete testing for interfacing with other platforms, and merge into the master branch after code review
-
Submit feature usage documentation to the Apache APISIX Dashboard and merge it into the master branch after review and merging
-
-
Technical Requirements:
-
It is recommended to implement in small steps and split the PRs for submission (small PRs are easier to review and more efficient)
-
When submitting PRs to the Apache APISIX Dashboard, you need to include full test case coverage
-
-
Description: At the moment, Apache APISIX does not have a very useful profile tool for profiling CPU or memory, and the developer can only use benchmarking or printing logs to profile the Apache APISIX.Use eBPF to create a profile tool for Apache APISIX, use eBPF to capture the Lua call stack information in Apache APISIX, and draw it into a CPU flame graph.
-
Degree of Difficulty: Advanced
-
Mentor of Project: Yousa
-
Contact Information: [email protected]
-
Output Requirements:
-
Use eBPF to capture and parse the Lua call stack information in Apache APISIX, summarize it and generate a CPU flame graph
-
Use eBPF to capture and parse C and Lua mixed call stack information at the same time, summarize it and generate CPU flame graph
-
Support grabbing Apache APISIX processes running in Docker
-
Support for grabbing Apache APISIX Openresty luajit32/luajit64 mode
-
-
Technical Requirements:
-
Be familiar with Lua/C
-
Know about eBPF and OpenResty
-
Know about Profiling
-