cncf / sandbox

Applications for Sandbox go here! ⏳📦🧪
Apache License 2.0
133 stars 22 forks source link

[Sandbox] Sermant #99

Closed lilai23 closed 3 weeks ago

lilai23 commented 6 months ago

Application contact emails

lilai1@huawei.com

Project Summary

A open-source,cloud-native, proxyless service mesh based on Java bytecode enhancement technology.

Project Description

What is Sermant?

Sermant is a cloud-native proxyless service mesh focused on Java applications. It can provide service governance capabilities for host applications in a code-non-intrusive way based on bytecode enhancement technology, to address service governance issues in microservice architecture. If users want to implement grayscale publishing, indicator monitoring, flow control, fault injection or other customized service governance capabilities without modifying one line of code, you can easily mount Sermant when the host application starts or runs. To achieve this, you only need to prepare plugins with corresponding functions based on Sermant.

What are the advantages of Sermant?

Sermant is called a proxyless service mesh because it can implement service governance in a non-invasive way like sidecar but does not require a proxy to achieve this. Microservices in Java language have become one of the mainstream software architecture paradigms, such as microservices developed by Spring Cloud and Dubbo. Sermant aims to provide Java applications with diversified service governance capabilities on the premise of achieving the following three advantages:

Org repo URL (provide if all repos under the org are in scope of the application)

https://github.com/sermant-io

Project repo URL in scope of application

https://github.com/sermant-io/Sermant

Additional repos in scope of the application

https://github.com/sermant-io/Sermant-website

https://github.com/sermant-io/Sermant-examples

Website URL

https://sermant.io/en/

Roadmap

https://github.com/sermant-io/Sermant/blob/develop/RoadMap.md

Roadmap context

No response

Contributing Guide

https://github.com/sermant-io/Sermant/blob/develop/CONTRIBUTING.md

Code of Conduct (CoC)

https://github.com/sermant-io/Sermant/blob/develop/CODE_OF_CONDUCT.md

Adopters

https://github.com/sermant-io/Sermant/issues/1396

Contributing or Sponsoring Org

Huawei

Maintainers file

https://github.com/sermant-io/Sermant/blob/develop/MAINTAINERS.md

IP Policy

Trademark and accounts

Why CNCF?

CNCF is the open source, vendor-neutral hub of cloud native computing which aims to advance the development and adoption of cloud-native technologies and foster collaboration. As a core component of cloud native architecture, microservices provide strong support for building complex business systems. Sermant is dedicated to providing diverse and scalable capabilities for microservice governance in a simpler, more efficient, and non-intrusive way.

We encourage that the host application itself can focus on the development of microservice business code without spending too much attention on service governance. Things like grayscale publishing, indicator monitoring, traffic control, etc. are all handled by Sermant through its related plugins.

We hope to join the CNCF community and become part of the global cloud native developer community. As a collaborative and innovative platform, CNCF can allow Sermant to better integrate with the cloud native ecosystem and benefit more developers, projects, organizations and companies.

Benefit to the Landscape

Most service meshes use proxy to manage microservices. Sermant adopts a proxyless way which reduces additional inter-process communication. This is where Sermant differs from others.

The benefits the landscape could be:

Cloud Native 'Fit'

Landscape: Service Mesh Sermant, as a proxyless service mesh, provides cloud-native features such as microservice governacnce, scalability, observability, high performance. So it fits in "Service Mesh" and has already been placed in CNCF landscape.

Cloud Native 'Integration'

Sermant can join CNCF to better integrate with cloud native technologies:

Cloud Native Overlap

No response

Similar projects

EaseAgent

PolarisMesh

Landscape

Yes, Sermant is in service mesh section.

Business Product or Service to Project separation

N/A

Project presentations

No response

Project champions

No response

Additional information

No response

lilai23 commented 4 months ago

@caniszczyk @TheFoxAtWork Our application has been submitted for several days. Could you help to evaluate it?Thanks a lot.

TheFoxAtWork commented 4 months ago

The TOC reviews sandbox projects roughly every 2 months. Our sandbox application project board reflects the upcoming review date. Projects are reviewed in the order in which they applied, subject to past TOC request for information. https://github.com/orgs/cncf/projects/14/views/1

lilai23 commented 4 months ago

The TOC reviews sandbox projects roughly every 2 months. Our sandbox application project board reflects the upcoming review date. Projects are reviewed in the order in which they applied, subject to past TOC request for information. https://github.com/orgs/cncf/projects/14/views/1

@TheFoxAtWork I may not have explained it clearly. The fact is that the projects that applied later than my project have already entered in sandbox application project board. Could you please tell me why Sermant still hasn't been entered into it since we applied in on May 13? Thanks!

TheFoxAtWork commented 4 months ago

@lilai23 looking now.

lilai23 commented 4 months ago

@lilai23 looking now.

I saw it. Thank you so much!

TheFoxAtWork commented 4 months ago

@lilai23 I've got the application added to the board, and its ordered correctly now. You should see the application under "new" towards the bottom of the queue. As we get closer to the sandbox date, CNCF Staff will load the Upcoming queue with applications up for review - we usually get through 10-12 per review window.

We're investigating why this issue didnt auto-populate on the board to prevent future applications for ending up in limbo. Thank you for raising this.

leecalcote commented 3 months ago

Sermant has presented to TAG Network on July 25th, 2024. The livestream recording is available.

TheFoxAtWork commented 1 month ago

@leecalcote @nicholasjackson does the TAG have a recommendation regarding the project?

nicholasjackson commented 1 month ago

Hi @TheFoxAtWork, yes we updated the new DTR document with the details of the review. I have linked this below:

https://docs.google.com/document/d/1Lc-PODHyEnk1ROp2sFrplHTCwZ_NTv1aVInIBHsPR8Y/edit?usp=sharing

Our recommendation is as follows:

It is TAG Network’s opinion that Sermant has a valuable role to play in both the CNCF ecosystem and with Service Mesh technologies. The ease of adoption for Java developers along with the ability to integrate with existing xDS enabled service meshes like Istio has huge benefits for the community. We feel that the architectural pattern is well thought out and the project has been developed to operate at scale and within large financial institutions.

We think that Sermant could benefit from speaking with the Istio, and other Service Mesh teams to show their current or potential integrations. Sermant has real potential to drive adoption of Service Mesh among Java developers and could be a real benefit to the CNCF ecosystem and community.

angellk commented 1 month ago

Thank you @nicholasjackson for submitting the DTR!

@lilai23 I understand there are 4 Huawei maintainers and 2 non-Huawei maintainers from the DTR - could you please update the maintainers file to reflect the current project maintainers and affiliations?

lilai23 commented 1 month ago

@angellk I may not explain maintainers clearly at Tag Network meeting so what DTR document shows is a bit different from our actual situation. We have 4 official maintainers of whom are employed by Huawei, and 2 candidates of maintainers who are employed outside of Huawei. And recently we have appointed a new maintainer from the 2 candidates. I have updated maintainers.md and please check it now.

cathyhongzhang commented 1 month ago

It seems like a great project for CNCF. It provides a flexible framework for developing and integrating proxyless service plugins to a service mesh and has the potential to be widely adopted. I have a question on the servant javaagent. Is it run as a separate pod?

rchincha commented 1 month ago

"Microservices run Sermant in the same process, eliminating the need to start additional sidecar containers for network proxying."

^ does this mean, it is embedded as a library? Also does it limit microservice implementations to Java?

lilai23 commented 1 month ago

It seems like a great project for CNCF. It provides a flexible framework for developing and integrating proxyless service plugins to a service mesh and has the potential to be widely adopted. I have a question on the servant javaagent. Is it run as a separate pod?

No,it runs in the same process of microservice

lilai23 commented 1 month ago

"Microservices run Sermant in the same process, eliminating the need to start additional sidecar containers for network proxying."

^ does this mean, it is embedded as a library? Also does it limit microservice implementations to Java?

The Sermant Agent is specified via the -javaagent option when the JVM starts. It can be considered a separate library that is not directly tied to the application code. Instead, it modifies the target classes through bytecode manipulation dynamically, without requiring changes to the application itself. Sermant now supports Java for the mechanism of JVM. And the support for other languages is in our long term plan.

jberkus commented 1 month ago

TAG Contributor strategy has reviewed this project and found the following:

This review is for the TOC’s information only. Sandbox projects are not required to have full governance or contributor documentation.

mrbobbytables commented 1 month ago

Project has been given the okay to move to a vote in today's sandbox review /vote

git-vote[bot] commented 1 month ago

Vote created

@mrbobbytables has called for a vote on [Sandbox] Sermant (#99).

The members of the following teams have binding votes: Team
@cncf/cncf-toc

Non-binding votes are also appreciated as a sign of support!

How to vote

You can cast your vote by reacting to this comment. The following reactions are supported:

In favor Against Abstain
👍 👎 👀

Please note that voting for multiple options is not allowed and those votes won't be counted.

The vote will be open for 2months 30days 2h 52m 48s. It will pass if at least 66% of the users with binding votes vote In favor 👍. Once it's closed, results will be published here as a new comment.

mrbobbytables commented 1 month ago

/check-vote

git-vote[bot] commented 1 month ago

Vote status

So far 54.55% of the users with binding vote are in favor (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
6 0 0 5

Binding votes (6)

User Vote Timestamp
nikhita In favor 2024-10-09 6:05:51.0 +00:00:00
rochaporto In favor 2024-10-09 1:01:54.0 +00:00:00
kgamanji In favor 2024-10-09 12:52:05.0 +00:00:00
TheFoxAtWork In favor 2024-10-08 17:25:45.0 +00:00:00
angellk In favor 2024-10-08 17:20:46.0 +00:00:00
dims In favor 2024-10-08 18:07:41.0 +00:00:00
@mauilion Pending
@linsun Pending
@dzolotusky Pending
@kevin-wangzefeng Pending
@cathyhongzhang Pending
kevin-wangzefeng commented 1 month ago

I will be abstaining due to a conflict of interest, thanks.

git-vote[bot] commented 1 month ago

Vote closed

The vote passed! 🎉

72.73% of the users with binding vote were in favor (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
8 0 1 2

Binding votes (9)

User Vote Timestamp
@cathyhongzhang In favor 2024-10-09 20:41:59.0 +00:00:00
@rochaporto In favor 2024-10-09 1:01:54.0 +00:00:00
@nikhita In favor 2024-10-09 6:05:51.0 +00:00:00
@kgamanji In favor 2024-10-09 12:52:05.0 +00:00:00
@angellk In favor 2024-10-08 17:20:46.0 +00:00:00
@dims In favor 2024-10-08 18:07:41.0 +00:00:00
@linsun In favor 2024-10-09 15:12:30.0 +00:00:00
@kevin-wangzefeng Abstain 2024-10-10 7:08:14.0 +00:00:00
@TheFoxAtWork In favor 2024-10-08 17:25:45.0 +00:00:00
Cmierly commented 4 weeks ago

Congrats on being accepted into the CNCF Sandbox! Here's a link to your onboarding checklist: https://github.com/cncf/sandbox/issues/300

If you have any questions or concerns, please don't hesitate to reach out!

mrbobbytables commented 3 weeks ago

With the onboarding issue created, we can go ahead and close this out. :) Congrats again!