Skip to content

Open Source Promotion Plan Summer 2024

Qi Guo edited this page May 28, 2024 · 3 revisions

Introduction

Open Source Promotion Plan is a summer program organized by the Institute of Software Chinese Academy of Sciences and long-term supported by the Open Source Software Supply Chain Promotion Plan. It aims to encourage college students to actively participate in the maintenance and development of open-source software, promote the vigorous development of open-source software communities, and build the open-source software supply chain together.

OSPP has united with domestic and international open-source communities to propose project tasks for the development and maintenance of important open-source software, and we are open to students from universities worldwide. The students will be guided by senior developers (project mentors) to complete their development work and contribute to the open-source community.

Apache APISIX Introduction

Apache APISIX is a dynamic, real-time, high-performance open-source API gateway that provides rich traffic management functions such as load balancing, dynamic upstream, canary release, circuit breaking, authentication, and observability. Being built based on NGINX and LuaJIT, Apache APISIX has ultra-high performance with a single-core QPS of up to 23,000 and an average delay of only 0.2 milliseconds. It can solve problems in traditional architecture, and at the same time adapt to the needs of the cloud-native era.

As an API gateway, Apache APISIX has a wide range of application scenarios. It can be applied to scenarios such as gateways, Kubernetes Ingress Controller, and service mesh, and can help enterprises quickly and safely process API and microservice traffic. At present, it has been tested and highly recognized by worldwide enterprises and organizations such as Zoom, Airwallex, Lotus Cars, vivo, and European Factory Platform.

The Apache APISIX community has recommended several selected project topics to the Open Source Promotion Plan 2024 committee. They are now online and open for students to apply for!

Guidance for Project Application

  1. Read the Student Guide carefully.

  2. 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 your application.

  3. Understand the OSPP 2024: Read the guidelines, event schedule, etc.

  4. 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.

  5. Carefully prepare the project application. No matter which school you come from, the quality of the project application is the main factor to be selected.

Projects

1. Integrating Secrets Manager of AWS and GCP

Project Description: Many enterprises are utilizing cloud services from AWS and GCP, relying on the secret manager provided by these platforms to handle sensitive information. Integrating Apache APISIX with these secret managers can streamline the process of using sensitive information within APISIX, enabling users to manage and utilize cloud-stored sensitive data more conveniently, thus enhancing the overall security and usability of the system.

In this project, a deep understanding of the functionalities of AWS and GCP is required. The major challenge lies in testing, as APISIX utilizes the relatively uncommon Test::Nginx framework. Additionally, reference to existing documentation and test cases is necessary for testing through analogy. Currently, tools like KMS can be used to simulate AWS repositories, but it's uncertain if there are similar tools for GCP. Hence, overcoming several technical challenges is crucial during implementation, including adaptability issues with AWS and GCP, as well as constraints posed by the testing framework.

Project Difficulty: Advanced

Project Mentor: Zeping Bai

Email: bzp2010@apache.org

Technical Domain Labels: Cloud Native

Programming Language Labels: Lua

Project Repository: https://github.com/apache/apisix

Project Output Requirements:

  • Implement AWS Key Management Service integration for the APISIX Secret Management module.

  • Implement GCP Secret Manager integration for the APISIX Secret Management module.

Project Technical Requirements:

  • Be familiar with AWS/GCP services concepts and usage.

  • Possess proficiency in GitHub and collaboration within open-source projects.

  • Understand API gateways and the working principles of APISIX; have a basic knowledge of Lua programming, including coding and dependency management.

  • Possess reading and writing skills for English documentation.

2. Refactoring APISIX Dashboard for Compatibility with the Latest Apache APISIX Version

Project Description: The APISIX Dashboard, as a core component of Apache APISIX, plays a crucial role in user operations. The goal of this project is to refactor the APISIX Dashboard to ensure seamless integration with the latest version of APISIX, providing users with a smooth management experience. This refactoring focuses on removing the existing Manager API and replacing it with the Admin API of APISIX. Subsequently, configuring and deploying APISIX with the Admin API enabled for integration with the APISIX Dashboard.

This process involves in-depth modifications and optimizations of key modules in APISIX, such as Route, Upstream, Service, Consumer, Plugin, and SSL. It requires a thorough understanding of APISIX's underlying logic and concepts, as well as highly specialized skills and experience to address potential challenges.

Project Difficulty: Advanced

Project Mentor: Yi Sun

Email: sunyi@apache.org

Technical Domain Labels: Cloud Native

Programming Language Labels: Go, Typescript

Project Repository: https://github.com/apache/apisix

Project Output Requirements:

Adapt the APISIX Dashboard to the latest version of Apache APISIX (v3.9).

Project Technical Requirements:

  • Be proficient in using Git for collaboration, preferably with experience in participating in open-source projects and submitting Pull Requests.

  • Be familiar with the React framework and related toolchains, along with experience in developing projects using the Antd framework.

  • Possess knowledge of integration testing processes and demonstrate proficiency in using the Cypress testing framework.

  • Exhibit proficiency in at least one server-side programming language, with a preference for Go programming skills.

3. Support Gateway API to General Availability (GA) status in APISIX Ingress Controller

Project Description: The Gateway API is a new Kubernetes API specifically designed for configuring and managing network entry points, such as Ingress and Load Balancer. Compared to traditional Ingress Controllers, the Gateway API offers more flexible and powerful options, simplifying the definition and management of application network entry points. Although the APISIX Ingress Controller has partially implemented support for the Gateway API, it is currently in beta status. This project aims to achieve more comprehensive functionality support and transition it to General Availability (GA) status.

Project Difficulty: Advanced

Project Mentor: Ashish Tiwari

Email: ashishtiwari@apache.org

Technical Domain Labels: Cloud Native

Programming Language Labels: Go

Project Repository: https://github.com/apache/apisix-ingress-controller

Project Output Requirements:

Support Gateway API to General Availability (GA) status in APISIX Ingress Controller.

Project Technical Requirements:

  • Have a basic understanding of API gateways and Kubernetes (k8s).

  • Possess proficiency in collaborating on GitHub and have fluent English communication skills.