Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Sandbox] Sermant #99

Closed
2 tasks done
lilai23 opened this issue May 13, 2024 · 24 comments
Closed
2 tasks done

[Sandbox] Sermant #99

lilai23 opened this issue May 13, 2024 · 24 comments

Comments

@lilai23
Copy link

lilai23 commented May 13, 2024

Application contact emails

[email protected]

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:

  • Non-intrusive. It provides a non-intrusive service mesh solution to implement service governance without code modification.
  • Pluggable. The service governance function is pluggable and supports dynamic mounting. The plugin ecological foundation makes it easy to develop new plugins.
  • High-Performance. Proxyless architecture eliminates the need for inter-process communication, significantly reducing request latency and resource consumption.

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

sermant-io/Sermant#1396

Contributing or Sponsoring Org

Huawei

Maintainers file

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

IP Policy

  • If the project is accepted, I agree the project will follow the CNCF IP Policy

Trademark and accounts

  • If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF

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:

  • The participation of Sermant enriches the service mesh types of CNCF landscape, and attract more developers and users from the community to explore the possibilities of microservices governance
  • The emergence of Sermant will promote the closer integration of CNCF's Kubernetes, Prometheus, Istio, Envoy and other projects, and promote the development of cloud native technology.

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:

  • Sermant supports xDS protocol. It allows Sermant to communicate with the service mesh control plane, and provides plugins under the Sermant framework with the ability to adapt to the service mesh ecosystem. Sermant works as a proxyless dataplane. In this way, we can also reduce the deployment cost and performance impact of proxy. Besides, we notice xDS-WG is one of CNCF working group and serveral projects in CNCF participate in it. More xDS related abilities has been planned planned for Sermant in roadmap.
  • Prometheus is already adopted in Sermant monitor plugin which monitors indicators of server, JVM and request calls. These indicators are collected by Prometheus for follow-up analysis. So Sermant works as an exporter of Prometheus. In following versions, we will integrate Prometheus into Sermant framework to provide any plugin including custom-developed plugin collecting and monitoring APIs.
  • Sermant can collect telemetry data as Java Agent between cloud-native services and report to OpenTelemetry Collector, such as service call, message produce,database write. In order to make it easier to collect, we plan to provider APIs in Sermant framework.

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 lilai23 added the New New Application label May 13, 2024
@lilai23 lilai23 changed the title [Sandbox] <Sermant> [Sandbox] Sermant May 13, 2024
@lilai23
Copy link
Author

lilai23 commented Jun 27, 2024

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

@TheFoxAtWork
Copy link
Contributor

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
Copy link
Author

lilai23 commented Jun 27, 2024

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
Copy link
Contributor

@lilai23 looking now.

@lilai23
Copy link
Author

lilai23 commented Jun 27, 2024

@lilai23 looking now.

I saw it. Thank you so much!

@TheFoxAtWork
Copy link
Contributor

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

@angellk angellk added the Network label Jul 9, 2024
@leecalcote
Copy link
Member

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

@TheFoxAtWork
Copy link
Contributor

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

@nicholasjackson
Copy link

nicholasjackson commented Sep 21, 2024

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
Copy link
Contributor

angellk commented Sep 22, 2024

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
Copy link
Author

lilai23 commented Sep 23, 2024

@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
Copy link

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
Copy link

rchincha commented Oct 1, 2024

"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
Copy link
Author

lilai23 commented Oct 1, 2024

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
Copy link
Author

lilai23 commented Oct 1, 2024

"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
Copy link

jberkus commented Oct 4, 2024

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

  • The contributor guide is standard for a sandbox project.
  • The project has a contributor ladder, but no other written governance, yet.
  • The roadmap is a structured markdown document and appears to have been in use for over a year.
  • There are 5 maintainers, four of whom work for Huawei.
  • This is a bilingual project (English/Chinese); there may be additional community content in Chinese that I cannot read.

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

@mrbobbytables
Copy link
Member

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

Copy link

git-vote bot commented Oct 8, 2024

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
Copy link
Member

/check-vote

Copy link

git-vote bot commented Oct 9, 2024

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
Copy link
Member

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

Copy link

git-vote bot commented Oct 10, 2024

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

@git-vote git-vote bot removed the vote open label Oct 10, 2024
@Cmierly
Copy link

Cmierly commented Oct 17, 2024

Congrats on being accepted into the CNCF Sandbox!
Here's a link to your onboarding checklist:
#300

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

@mrbobbytables
Copy link
Member

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

No branches or pull requests