nice idea, I will join the APISIX feature development.
*ZhengSong Tu* My GitHub: https://github.com/tzssangglass Apache APISIX: https://github.com/apache/apisix Jintao Zhang <zhangjintao9...@gmail.com> 于2022年3月12日周六 00:38写道: > > I found that my `Architecture design` above was formatted correctly in the > mailbox, but was messed up on the mailing list page. > So I provide a screenshot https://s2.loli.net/2022/03/12/JxStYqnEmi758dA.png > > Jintao Zhang <zhangjin...@apache.org> 于2022年3月12日周六 00:25写道: > > > Thanks. > > > > > Is this the repo for the project: github.com/api7/apisix-mesh-agent > > <https://github.com/api7/apisix-mesh-agent> ? > > > > No, that project can be understood as directly putting APISIX into > > sidecar. But in fact, no changes have been made in APISIX. > > > > This is what I want to differentiate in this Proposal as well. I used > > `native ability` to differentiate. > > > > Navendu Pottekkat <navendupottek...@gmail.com> 于2022年3月11日周五 21:05写道: > > > >> This is great to see. It makes a lot of sense to not build a separate > >> service mesh but instead be a replacement to Envoy in Istio. > >> > >> I think this will make Istio much more extensible and will provide a lot > >> of value to the user if we could build and use custom APISIX Plugins in > >> the data plane. > >> > >> Is this the repo for the project: github.com/api7/apisix-mesh-agent > >> <https://github.com/api7/apisix-mesh-agent> ? > >> > >> Looking forward to see this in action. > >> > >> - Navendu > >> > >> On 11/03/22 5:47 pm, Jintao Zhang wrote: > >> > Background introduction > >> > > >> > Service mesh is currently the most popular architectural pattern. > >> > Especially for the microservice architecture, it is very effective. It > >> can > >> > be used to manage east-west traffic, improve security, etc. > >> > > >> > Apache APISIX is a cloud-native high-performance API Gateway that can > >> also > >> > be used to manage north-south and east-west traffic. > >> > > >> > However, if the deployment scenario is limited to the Kubernetes > >> cluster, > >> > we will find that the service mesh solution is more natural and > >> flexible. > >> > > >> > So I want to *bring Apache APISIX to the service mesh world*. > >> > > >> > There are already multiple solutions for service meshes, and there is > >> not > >> > much value in implementing a completely new solution. > >> > > >> > I would like to choose Istio[1], the most popular service mesh > >> solution, as > >> > the control plane. > >> > > >> > Uses Apache APISIX as its data plane[2]. > >> > *Value* > >> > > >> > This will generate a lot of value. > >> > For APISIX *Community* > >> > > >> > Introducing Apache APISIX to the service mesh world allows it to have > >> more > >> > use cases, especially in east-west traffic management, security, and > >> > observability. > >> > > >> > Integrating with Istio is also easier to adopt. > >> > For Istio *Community* > >> > > >> > It can enrich the ecology of Istio. Currently, the default data plane of > >> > Istio is Envoy[3], but the learning cost of Envoy is high, and it is > >> more > >> > complicated to expand and maintain it. > >> > > >> > In addition, we have done a comparison, APISIX's performance is better > >> than > >> > Envoy. > >> > > >> > APISIX and Istio integration, allowing users to have more choices. > >> > For end-user > >> > > >> > We choose Istio as the control plane and only replace the data plane, > >> so it > >> > is insensitive to user migration. Of course, we will also conduct > >> > compatibility testing to make this process more secure and reliable. > >> > Architecture design > >> > > >> > ``` > >> > > >> |Control-plane--------------------+ > >> > | > >> | > >> > | > >> | > >> > | Istio > >> | > >> > | > >> | > >> > > >> +----------------+----------------+ > >> > | > >> > | > >> > > >> +-------------------------+-----------------------+ > >> > | Discovery > >> | > >> > | Configuration > >> | > >> > | Certificates > >> | > >> > | > >> | > >> > | > >> | > >> > +-------------v------------------+ > >> > +------------------v-------------+ > >> > | | | > >> > | > >> > | +----------------------------+ | | > >> > +----------------------------+ | > >> > | | | | | | > >> > | | > >> > | | +--------------+---------+ | | | | > >> > +--------------+---------+ | | > >> > Ingress | | | | | | | | | | > >> > | | | | Egress > >> > --------------+-> | | Amesh | +-+-----------+-> | > >> > | Amesh | +-+--------------> > >> > Traffic | | | +---------+ | | | | | > >> > +---------+ | | Traffic > >> > | | |APISIX | | | | | |APISIX > >> > | | | > >> > | | +------------------------+ | | | | > >> > +------------------------+ | | > >> > | | | | | | > >> > | | > >> > | +-----+--------------^-------+ | | > >> > +-----+---------------^------+ | > >> > | | | | | | > >> > | | > >> > | +-----v--------------+-------+ | | > >> > +-----v---------------+------+ | > >> > | | Service A | | | | > >> > Service B | | > >> > | | | | | | > >> > | | > >> > | +----------------------------+ | | > >> > +----------------------------+ | > >> > | | | > >> > | > >> > +--------------------------------+ > >> > +--------------------------------+ > >> > ``` > >> > > >> > > >> > > >> > concept: > >> > > >> > - Amesh: It is a Go program that interacts with Istio for the xDS > >> > protocol. Will be compiled into a .so file and embedded in APISIX. > >> And the > >> > configuration will be written directly to the shdict of APISIX. > >> > - APISIX: It will read configuration from shdict and no longer need > >> to > >> > rely on storage like etcd. > >> > > >> > *Deliverables* > >> > > >> > When this goal is achieved, we can deliver the following two parts > >> > Amesh > >> > > >> > As mentioned above, this is a Go program that will do the mapping of > >> Istio > >> > functionality and APISIX configuration > >> > APISIX > >> > > >> > APISIX will modify how the configuration is read. Allows getting > >> > configuration information from shdict. > >> > *Development Roadmap* > >> > > >> > TBD > >> > > > > >