Console #126 -- The APISIX Story with Ming and Zhiyuan
Featuring SigNoz, libSQL, and NetNewsWire
🤝 Sponsor - PostHog
PostHog: Open-source product analytics you can self-host
With PostHog's open-source analytics platform, customer data never has to leave your infrastructure.
Featuring product analytics, session recording, feature flags, heatmaps, experimentation, and more - all available for free!
The best part is everything is seamlessly integrated, so you can spend less time configuring different tools and more time getting valuable insight into user behavior.
Browse through open source projects on OpenSourceHub.io, add your project to get more exposure and connect with other maintainers and contributors!
SigNoz is an open source Application Performance Monitoring (APM) & Observability tool. It is an alternative to DataDog, NewRelic, etc.
language: TypeScript, stars: 9663, issues: 293, last commit: 2 days
libSQL is an open source, open contribution fork of SQLite. It plans to broaden the scope of SQLite and add Rust in the future.
language: C, stars: 1359, issues: 16, last commit: 3 days
NetNewsWire is a free and open source RSS reader for Mac, iPhone, and iPad. It supports RSS, Atom, JSON Feed, and RSS-in-JSON formats.
language: Swift, stars: 6054, issues: 559, last commit: 2 days
Apache APISIX is a dynamic, real-time, high-performance, and open source API Gateway. It provides rich traffic management features such as load balancing, dynamic upstream, canary release, circuit breaking, authentication, observability, and more.
language: Lua, stars: 10335, issues: 408, last commit: Today
OpenSourceHub.io presents "LET'S HACK!"
Let’s Hack! is a virtual party we are hosting to celebrate Hacktoberfest.
RSVP for free on Discord or Eventrbrite and grab some cool swag!
🎤 Interview With Ming and Zhiyuan
Hey Ming and Zhiyuan! Thanks for joining us! Let us start with your background. Where are you from, where have you worked in the past, what is your role in APISIX, how did you learn to program, and what languages or frameworks do you like?
Zhiyuan: Ming and I are both from China, and I knew him before 2018 but never communicated. In 2019, Ming contacted me to build a dashboard for his open-source project APISIX, which started my story of deep involvement in the APISIX project and community. Currently, I am a member of the Apache Software Foundation, a member of Apache APISIX PMC, and also in charge of the Global team at API7.ai Inc. I have been maintaining the APISIX community and projects since 2019. I prefer a project-driven approach to learn programming, where I first define the target requirements, then pick a tool (programming language, software framework) that I am comfortable with, and develop and test the features step by step.
Ming: I am the CEO and founder of API7.ai, a startup in China, and the PMC Chair of Apache APISIX. I started programming in high school and thought it was amazing, so I was fascinated by it. Although APISIX is implemented in Lua, I prefer Python because it's intuitive and can do many exciting things like data analysis. I like the idea of Python.
What is your favorite software tool?
Zhiyuan: I like to try out various productivity tools (like calendars) and visit amazing websites regularly, all of which keep me in the habit of optimizing my processes and learning new things.
Ming: My favorite software is APISIX because I built it from scratch. I also love Chrome, which is open-source, widely used, and supports many new features, and I use it every day.
What are you currently learning?
Zhiyuan: I'm currently learning about Istio and Kubernetes, which started with an issue from an APISIX community user, and I'm trying to set up a Kubernetes cluster and install and deploy Istio to try to help that user.
Ming: I'm learning about Kubernetes and cloud-native-related stuff, not just a programming language.
Why was Apache APISIX started?
Ming: Before building APISIX, we spent a lot of time learning and developing NGINX, which lacked features such as cluster management and dynamic configuration changes, so we wanted to build a better open-source project based on NGINX. That's how APISIX was born.
How is APISIX based on NGINX?
APISIX architecture: https://apisix.apache.org/docs/apisix/architecture-design/apisix/
and why we are based on NGINX and Lua: https://apisix.apache.org/blog/2021/08/25/why-apache-apisix-chose-nginx-and-lua/
How did Apache APISIX enter the Apache Incubator? What does it take to be a Top Level Project in the Apache Software Foundation?
Ming: This is an interesting topic, as there were very few gateway-related cloud-native projects when APISIX first entered the Apache Software Foundation incubator in 2019. APISIX is the first cloud-native gateway project in the Apache Software Foundation. We chose the Apache Software Foundation because we strongly identify with the Apache culture of the community over code. In the Apache Software Foundation, we can build an open-source community with diversity and global distribution of contributors. Eventually, the project will be used by more and more developers and companies around the world.
I think the most important reason is that the early contributors have to identify with the Apache culture and spare no effort to invite more contributors to participate in the project and make people agree with the value of the project. Building a community is critical because the Apache Software Foundation cannot judge whether a project can become a top project. So it is essential to graduate not on how much or how good the code is but on whether we can continue to build a healthy open-source community.
Where did the name for Apache APISIX come from?
Ming: I think it is important to pick a name for the project. We want the name to be related to the API, but not a word or trademark that already exists, and since 6 is a lucky number in China, we named it APISIX, which means the project is related to the API. We want APISIX to bring value to the users and make the API run smoothly.
Are there any overarching goals of Apache APISIX that drive design or implementation? If so, what trade-offs have been made in Apache APISIX as a consequence of these goals?
Ming: From the beginning of the project, my vision was that APISIX could handle global API and microservice traffic. So we have a big picture pulling the community forward. Still, we don't have a very specific Roadmap because APISIX currently has almost 500 contributors from around the world, and its Roadmap is drawn together by these contributors.
APISIX is more concerned about its possibility and scalability as infrastructure software, and if it can meet the complex scenarios encountered by users from different industries, fields, and stages. To maintain the underlying flexibility and scalability, we sacrifice some ease of use, i.e., product-level capabilities, because once both ease of use and product capability are met, the product's scalability is constrained.
What is the most challenging problem that’s been solved in Apache APISIX, so far?
Ming: In the early architectural design, we chose etcd to be the configuration center and to integrate with numerous eco-capabilities. But, in addition, the most impressive problems came from very bottom-level bugs, which we usually found in different combinations of capabilities of APISIX production users. After we released APISIX, these different ways of using it were not something we could have predicted in advance, which is one of the attractions of the community, where we provide products for community users. The community users find very bottom-level, weird bugs in using them.
What was the most surprising thing you learned while working on Apache APISIX?
Zhiyuan: For me, on the one hand, some project contributors are very young (still in university), but their code quality and understanding of technical products are profound. For such contributors, we will do our best to guide them and provide more resources. On the other hand, APISIX is behind many of the products we use, such as streaming services, etc.
Ming: The most surprising thing is that we are finding more and more companies using Apache APISIX, such as BMW and other famous brands, in a wide range of industries. This is one of the things that makes me happiest.
That's so cool. Can you list out some of the popular users?
APISIX's users, for example:
1. BMW Finance
2. Bilibili.com, iQiyi video streaming
3. NASA JPL
4. Tencent Games
5. VIVO Phones
6. WPS Office
7. Sina Weibo microblogging platform
What is the release process like for Apache APISIX?
Ming: As an Apache Software Foundation project, the APISIX release process is done on a mailing list, where we release a version every month (we have been doing it for three years), which PMC members verify, and finally, release. In keeping with this release frequency, the APISIX product is constantly evolving.
How do you balance your work on open-source with your day job and other responsibilities?
Zhiyuan: I also joined API7.ai because I love open-source projects and the community. In addition, I am working full-time on open-source projects and maintaining the community, so I have more energy, opportunities, and time to interact with the community.
Ming: I can't balance this relationship because I am also doing open-source full-time. Still, my energy has recently been more on Roadmap design, digging into user requirements and scenarios, and feeding back to the APISIX project, which is high-level. So my day-to-day work is all about APISIX.
What is the best way for a new developer to contribute to Apache APISIX?
Zhiyuan: The Lua language chosen for APISIX is relatively niche, but we should act upon it as soon as possible. First, understand the basic concepts involved in APISIX; then, get APISIX up and running, follow the documentation and understand each capability. Going deeper, looking at issues from the GitHub repository, and trying to solve them will significantly advance the community and improve your technical skills. In addition, there are many ways to contribute that are not code-related. Welcome to read Navendu's article on Non-Code Contributions to Open Source.
Ming: Don't hesitate to go to GitHub and download the software and try it out. APISIX has a lot of documentation and test cases for contributors to learn from. The Apache Software Foundation welcomes all kinds of contributions, and it's worth mentioning that one of our Indian contributors, Shivam Singh, designed a great-looking landing page for the APISIX website and was later elected as our Committer.
Where do you see the project heading next?
Ming: I think the next step is ecology. For open-source projects, we hope more and more people will use them. In such multi-cloud and hybrid cloud scenarios, we need to access many Cloud services and SaaS services so that APISIX will integrate with ecology. Eventually, we hope APISIX can connect all the APIs and microservices in the world. In this way, APISIX will be able to handle service-to-service connections in private clouds, multi-clouds, hybrid clouds, and on-premises.
What motivates you to continue contributing to Apache APISIX?
Zhiyuan: Connecting with more users through open-source software and communities, which will continue to create an intrinsic incentive, is love.
Ming: I think it is out of love for APISIX to keep contributing because more and more contributors or companies are using it. We want our code to be used in more companies and scenarios, which is a greater spiritual satisfaction for us.
Are there any other projects besides Apache APISIX that you’re working on?
Ming: Today's software companies build on many projects, both for external services and internal systems. Therefore, APISIX chose some promising open-source projects such as NGINX, etcd, and various projects we use in the public cloud, such as HashiCorp Vault, SkyWalking, and other services.
What is one question you would like to ask another open-source developer that I didn’t ask you?
Ming: I would like to know how to consider the relationship between open-source projects and Cloud services based on it. Currently, many public cloud vendors deploy open-source projects on the cloud. Does this affect the enthusiasm of open-source project contributors?
Want to join the conversation about one of the projects featured this week? Drop a comment, or see what others are saying!
Interested in sponsoring the newsletter or know of any cool projects or interesting developers you want us to interview? Reach out at email@example.com or mention us @ConsoleWeekly!