sofa-mesh

module
v0.0.0-...-fe632b3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 26, 2020 License: Apache-2.0

README

SOFAMesh

This project is deprecated. It will contribute to istio directly instead of developing in a forked repo.


SOFAMesh is a large-scale implementation scheme of Service Mesh based on Istio. On the basis of inheriting the powerful functions and rich features of Istio, in order to meet the performance requirements in large-scale deployments and to respond to the actual situation in the implementation, the following improvements are made:

  • MOSN written in Golang instead of Envoy
  • Merge Mixer to data plane to resolve performance bottlenecks
  • Enhance Pilot for more flexible service discovery mechanism
  • Added support for SOFA RPC, Dubbo

The initial version was contributed by Ant Financial and Alibaba UC Business Unit.


该项目已弃用。该项目将直接向 Istio 贡献,而不是在 fork 的仓库中开发。

SOFAMesh 是基于 Istio 改进和扩展而来的 Service Mesh 大规模落地实践方案。在继承 Istio 强大功能和丰富特性的基础上,为满足大规模部署下的性能要求以及应对落地实践中的实际情况,有如下改进:

  • 采用 Golang 编写的 MOSN 取代 Envoy
  • 合并 Mixer 到数据平面以解决性能瓶颈
  • 增强 Pilot 以实现更灵活的服务发现机制
  • 增加对 SOFA RPC、Dubbo 的支持

初始版本由蚂蚁金服和阿里大文娱UC事业部携手贡献。

Directories

Path Synopsis
addons
servicegraph
Package servicegraph defines the core model for the servicegraph service.
Package servicegraph defines the core model for the servicegraph service.
servicegraph/dot
Package dot provides serialization utilities for a servicegraph using the dot format.
Package dot provides serialization utilities for a servicegraph using the dot format.
servicegraph/promgen
Package promgen generates service graphs from a prometheus backend.
Package promgen generates service graphs from a prometheus backend.
bin
galley
pkg/authplugins/google
Package google is a Galley auth plugin that uses Google application default credentials.
Package google is a Galley auth plugin that uses Google application default credentials.
pkg/authplugins/none
Package none is a Galley auth plugin that returns an empty auth DialOption.
Package none is a Galley auth plugin that returns an empty auth DialOption.
pkg/runtime/resource
Package resource contains core abstract types for representing configuration resources.
Package resource contains core abstract types for representing configuration resources.
istioctl
cmd/istioctl
Command istioctl is a Istio configuration command line utility.
Command istioctl is a Istio configuration command line utility.
mixer
adapter
Package adapter contains the inventory for all Mixer adapters that are compiled into a specific Mixer binary.
Package adapter contains the inventory for all Mixer adapters that are compiled into a specific Mixer binary.
adapter/bypass/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/circonus/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/cloudwatch/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/denier
Package denier provides an adapter that will return a status code (typically FAILED_PRECONDITION) for all calls.
Package denier provides an adapter that will return a status code (typically FAILED_PRECONDITION) for all calls.
adapter/denier/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/dogstatsd/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/fluentd
Package fluentd adapter for Mixer.
Package fluentd adapter for Mixer.
adapter/fluentd/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/kubernetesenv
Package kubernetesenv provides functionality to adapt mixer behavior to the kubernetes environment.
Package kubernetesenv provides functionality to adapt mixer behavior to the kubernetes environment.
adapter/kubernetesenv/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/kubernetesenv/template
Package adapter_template_kubernetes is a generated protocol buffer package.
Package adapter_template_kubernetes is a generated protocol buffer package.
adapter/list
Package list provides an adapter that implements the listEntry template to enable blacklist / whitelist checking of values.
Package list provides an adapter that implements the listEntry template to enable blacklist / whitelist checking of values.
adapter/list/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/memquota
Package memquota provides a simple in-memory quota implementation.
Package memquota provides a simple in-memory quota implementation.
adapter/memquota/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/opa/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/prometheus
Package prometheus publishes metric values collected by Mixer for ingestion by prometheus.
Package prometheus publishes metric values collected by Mixer for ingestion by prometheus.
adapter/prometheus/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/rbac
Package rbac is deprecated by native RBAC implemented in Envoy proxy.
Package rbac is deprecated by native RBAC implemented in Envoy proxy.
adapter/rbac/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/redisquota
Package redisquota provides a quota implementation with redis as backend.
Package redisquota provides a quota implementation with redis as backend.
adapter/redisquota/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/signalfx/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/solarwinds
Package solarwinds publishes metric and log values collected by Mixer to appoptics and papertrail respectively.
Package solarwinds publishes metric and log values collected by Mixer to appoptics and papertrail respectively.
adapter/solarwinds/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/stackdriver
Package stackdriver provides an adapter that implements the logEntry and metrics templates to serialize generated values to Stackdriver.
Package stackdriver provides an adapter that implements the logEntry and metrics templates to serialize generated values to Stackdriver.
adapter/stackdriver/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/stackdriver/contextgraph
Package contextgraph adapter for Stackdriver Context API.
Package contextgraph adapter for Stackdriver Context API.
adapter/stackdriver/trace
Package trace contains a tracespan adapter for Stackdriver trace.
Package trace contains a tracespan adapter for Stackdriver trace.
adapter/statsd
Package statsd provides an adapter that implements the metrics template to serialize generated metric values to a statsd backend.
Package statsd provides an adapter that implements the metrics template to serialize generated metric values to a statsd backend.
adapter/statsd/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/stdio
Package stdio provides an adapter that implements the logEntry and metrics templates to serialize generated logs and metrics to stdout, stderr, or files.
Package stdio provides an adapter that implements the logEntry and metrics templates to serialize generated logs and metrics to stdout, stderr, or files.
adapter/stdio/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
adapter/zipkin
Package zipkin contains a tracespan adapter for Zipkin (https://zipkin.io/).
Package zipkin contains a tracespan adapter for Zipkin (https://zipkin.io/).
adapter/zipkin/config
Package config is a generated protocol buffer package.
Package config is a generated protocol buffer package.
cmd/shared
Package shared contains types and functions that are used across the full set of mixer commands.
Package shared contains types and functions that are used across the full set of mixer commands.
pkg/adapter
Package adapter defines the types consumed by adapter implementations to interface with Mixer.
Package adapter defines the types consumed by adapter implementations to interface with Mixer.
pkg/adapter/opencensus
Package opencensus contains support code for writing adapters that use OpenCensus.
Package opencensus contains support code for writing adapters that use OpenCensus.
pkg/attribute
Package attribute is focused on enabling efficient handling and tracking of attribute usage within Mixer.
Package attribute is focused on enabling efficient handling and tracking of attribute usage within Mixer.
pkg/checkcache
Package checkcache provides a scalable cache to hold results of Mixer.Check operations.
Package checkcache provides a scalable cache to hold results of Mixer.Check operations.
pkg/config/crd
Package crd provides the store interface to config resources stored as kubernetes custom resource definitions (CRDs).
Package crd provides the store interface to config resources stored as kubernetes custom resource definitions (CRDs).
pkg/config/storetest
Package storetest provides the utility functions of config store for testing.
Package storetest provides the utility functions of config store for testing.
pkg/il
Package il implements the intermediate-language for the config-language interpreter of Mixer.
Package il implements the intermediate-language for the config-language interpreter of Mixer.
pkg/il/interpreter
Package interpreter implements an interpreter based runtime for the Mixer IL.
Package interpreter implements an interpreter based runtime for the Mixer IL.
pkg/lang/compiler
Package compiler implements a compiler that converts Mixer's expression language into a Mixer IL-based program that can be executed via an interpreter.
Package compiler implements a compiler that converts Mixer's expression language into a Mixer IL-based program that can be executed via an interpreter.
pkg/mockapi
Package mockapi supplies a fake Mixer server for use in testing.
Package mockapi supplies a fake Mixer server for use in testing.
pkg/perf
Package perf is a helper library for writing Mixer perf tests.
Package perf is a helper library for writing Mixer perf tests.
pkg/pool
Package pool provides access to a mixer-global pool of buffers, a pool of goroutines, and a string interning table.
Package pool provides access to a mixer-global pool of buffers, a pool of goroutines, and a string interning table.
pkg/protobuf/yaml/wire
Package wire parses and formats the protobuf wire encoding.
Package wire parses and formats the protobuf wire encoding.
pkg/runtime/config
Package config is designed to listen to the config changes through the store and create a fully-resolved configuration state that can be used by the rest of the runtime code.
Package config is designed to listen to the config changes through the store and create a fully-resolved configuration state that can be used by the rest of the runtime code.
pkg/runtime/dispatcher
Package dispatcher is used to dispatch incoming requests to one or more handlers.
Package dispatcher is used to dispatch incoming requests to one or more handlers.
pkg/runtime/lang
Package lang chooses a language runtime for expressions.
Package lang chooses a language runtime for expressions.
pkg/runtime/routing
Package routing implements a routing table for resolving incoming requests to handlers.
Package routing implements a routing table for resolving incoming requests to handlers.
pkg/status
Package status provides utility functions for google_rpc status objects.
Package status provides utility functions for google_rpc status objects.
template
Package template provides runtime descriptors of the templates known to Mixer at compile-time.
Package template provides runtime descriptors of the templates known to Mixer at compile-time.
template/apikey
Package apikey is a generated protocol buffer package.
Package apikey is a generated protocol buffer package.
template/authorization
Package authorization is a generated protocol buffer package.
Package authorization is a generated protocol buffer package.
template/checknothing
Package checknothing is a generated protocol buffer package.
Package checknothing is a generated protocol buffer package.
template/edge
Package edge is a generated protocol buffer package.
Package edge is a generated protocol buffer package.
template/listentry
Package listentry is a generated protocol buffer package.
Package listentry is a generated protocol buffer package.
template/logentry
Package logentry is a generated protocol buffer package.
Package logentry is a generated protocol buffer package.
template/metric
Package metric is a generated protocol buffer package.
Package metric is a generated protocol buffer package.
template/quota
Package quota is a generated protocol buffer package.
Package quota is a generated protocol buffer package.
template/reportnothing
Package reportnothing is a generated protocol buffer package.
Package reportnothing is a generated protocol buffer package.
template/sample
Package sample provides a set of templates for internal testing of Mixer.
Package sample provides a set of templates for internal testing of Mixer.
template/sample/apa
Package istio_mixer_adapter_sample_myapa is a generated protocol buffer package.
Package istio_mixer_adapter_sample_myapa is a generated protocol buffer package.
template/sample/check
Package istio_mixer_adapter_sample_check is a generated protocol buffer package.
Package istio_mixer_adapter_sample_check is a generated protocol buffer package.
template/sample/quota
Package istio_mixer_adapter_sample_quota is a generated protocol buffer package.
Package istio_mixer_adapter_sample_quota is a generated protocol buffer package.
template/sample/report
Package istio_mixer_adapter_sample_report is a generated protocol buffer package.
Package istio_mixer_adapter_sample_report is a generated protocol buffer package.
template/tracespan
Package tracespan is a generated protocol buffer package.
Package tracespan is a generated protocol buffer package.
test/client/check_cache
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/check_cache_hit
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/check_report
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/check_report_disable
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/check_report_large_post_request
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/disable_check_cache
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/disable_tcp_check_calls
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/dynamic_attribute
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/dynamic_listener
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/failed_request
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/fault_inject
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/global_dictionary
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/istio_authn_origin_jwt_bound_origin
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/istio_authn_origin_jwt_bound_peer
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/istio_authn_origin_reject_no_jwt
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/istio_authn_peer_jwt_bound_origin
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/istio_authn_peer_jwt_bound_peer
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/istio_authn_peer_reject_no_jwt
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/istio_authn_peer_reject_no_mtls
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/istio_authn_peer_reject_no_tls
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/mixer_internal_fail
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/network_policy
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/pilotplugin
Package client contains an integration test for istio proxy and pilot plugin for mixer HTTP filter.
Package client contains an integration test for istio proxy and pilot plugin for mixer HTTP filter.
test/client/pilotplugin_mtls
Package client contains an integration test for istio proxy and pilot plugin for mixer HTTP filter over mTLS.
Package client contains an integration test for istio proxy and pilot plugin for mixer HTTP filter over mTLS.
test/client/pilotplugin_tcp
Package client contains an integration test for istio proxy and pilot plugin for mixer TCP filter.
Package client contains an integration test for istio proxy and pilot plugin for mixer TCP filter.
test/client/quota
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/quota_cache
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/rbac_permissive_global
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/rbac_permissive_policy
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/report_batch
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/route_directive
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/tcp_filter
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/client/tcp_filter_periodical_report
Package client contains an integration test for istio proxy.
Package client contains an integration test for istio proxy.
test/perf/perfclient
Package test supplies a fake Mixer server for use in testing.
Package test supplies a fake Mixer server for use in testing.
test/spyAdapter
Package spyadapter is intended for Mixer testing *ONLY*.
Package spyadapter is intended for Mixer testing *ONLY*.
test/spyAdapter/template
Package template contains generated code for the spy adapter testing.
Package template contains generated code for the spy adapter testing.
test/spyAdapter/template/apa
Package sampleapa is a generated protocol buffer package.
Package sampleapa is a generated protocol buffer package.
test/spyAdapter/template/check
Package samplecheck is a generated protocol buffer package.
Package samplecheck is a generated protocol buffer package.
test/spyAdapter/template/checkoutput
Package checkproducer is a generated protocol buffer package.
Package checkproducer is a generated protocol buffer package.
test/spyAdapter/template/quota
Package samplequota is a generated protocol buffer package.
Package samplequota is a generated protocol buffer package.
test/spyAdapter/template/report
Package samplereport is a generated protocol buffer package.
Package samplereport is a generated protocol buffer package.
tools/codegen/pkg/inventory
Package inventory is used to generate the mixer adapter inventory source file.
Package inventory is used to generate the mixer adapter inventory source file.
pilot
cmd
pkg/config/aggregate
Package aggregate implements a read-only aggregator for config stores.
Package aggregate implements a read-only aggregator for config stores.
pkg/config/aggregate/fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
pkg/config/kube/crd
Package crd provides an implementation of the config store and cache using Kubernetes Custom Resources and the informer framework from Kubernetes
Package crd provides an implementation of the config store and cache using Kubernetes Custom Resources and the informer framework from Kubernetes
pkg/config/kube/ingress
Package ingress provides a read-only view of Kubernetes ingress resources as an ingress rule configuration type store
Package ingress provides a read-only view of Kubernetes ingress resources as an ingress rule configuration type store
pkg/config/memory
Package memory provides an in-memory volatile config store implementation
Package memory provides an in-memory volatile config store implementation
pkg/kube/inject
Package inject implements kube-inject or webhoook autoinject feature to inject sidecar.
Package inject implements kube-inject or webhoook autoinject feature to inject sidecar.
pkg/model/test
Package test is a generated protocol buffer package.
Package test is a generated protocol buffer package.
pkg/networking/core/v1alpha3/fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
pkg/networking/core/v1alpha3/loadbalancer
packages used for load balancer setting
packages used for load balancer setting
pkg/networking/plugin/authz
Package authz converts Istio RBAC (role-based-access-control) policies (ServiceRole and ServiceRoleBinding) to corresponding filter config that is used by the envoy RBAC filter to enforce access control to the service co-located with envoy.
Package authz converts Istio RBAC (role-based-access-control) policies (ServiceRole and ServiceRoleBinding) to corresponding filter config that is used by the envoy RBAC filter to enforce access control to the service co-located with envoy.
pkg/networking/plugin/registry
Package registry represents a registry of plugins that can be used by a config generator.
Package registry represents a registry of plugins that can be used by a config generator.
pkg/serviceregistry/kube
Package kube implements the shared and reusable library for Kubernetes
Package kube implements the shared and reusable library for Kubernetes
tools
Tool to generate pilot/pkg/config/kube/types.go Example run command: go run pilot/tools/generate_config_crd_types.go --template pilot/tools/types.go.tmpl --output pilot/pkg/config/kube/crd/types.go
Tool to generate pilot/pkg/config/kube/types.go Example run command: go run pilot/tools/generate_config_crd_types.go --template pilot/tools/types.go.tmpl --output pilot/pkg/config/kube/crd/types.go
pkg
cache
Package cache provides general-purpose in-memory caches.
Package cache provides general-purpose in-memory caches.
cmd
ctrlz
Package ctrlz implements Istio's introspection facility.
Package ctrlz implements Istio's introspection facility.
ctrlz/topics
Package topics defines several canonical ControlZ topics.
Package topics defines several canonical ControlZ topics.
log
Package log provides the canonical logging functionality used by Go-based Istio components.
Package log provides the canonical logging functionality used by Go-based Istio components.
probe
Package probe provides liveness / readiness probe.
Package probe provides liveness / readiness probe.
rpccontroller/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
rpccontroller/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
rpccontroller/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
rpccontroller/clientset/versioned/typed/rpccontroller.istio.io/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
rpccontroller/clientset/versioned/typed/rpccontroller.istio.io/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
test/fakes/policy
Package policy is a generated protocol buffer package.
Package policy is a generated protocol buffer package.
tracing
Package tracing provides the canonical tracing functionality used by Go-based Istio components.
Package tracing provides the canonical tracing functionality used by Go-based Istio components.
version
Package version provides build version information.
Package version provides build version information.
samples
security
pkg/adapter/vault
Package vault provides adapter to connect to vault server.
Package vault provides adapter to connect to vault server.
pkg/caclient/protocol
Package protocol defines the interface of CA client protocol.
Package protocol defines the interface of CA client protocol.
pkg/nodeagent/cache
Package cache is the in-memory secret store.
Package cache is the in-memory secret store.
pkg/nodeagent/model
Package model contains data models for nodeagent.
Package model contains data models for nodeagent.
pkg/nodeagent/plugin/providers/google
Package iamclient is for IAM integration.
Package iamclient is for IAM integration.
pkg/nodeagent/plugin/providers/google/stsclient
Package stsclient is for oauth token exchange integration.
Package stsclient is for oauth token exchange integration.
pkg/nodeagent/sds
Package sds implements secret discovery service in NodeAgent.
Package sds implements secret discovery service in NodeAgent.
proto
Package istio_v1_auth is a generated protocol buffer package.
Package istio_v1_auth is a generated protocol buffer package.
proto/providers/google
Package google_security_istioca_v1alpha1 is a generated protocol buffer package.
Package google_security_istioca_v1alpha1 is a generated protocol buffer package.
tests
tools
license
Binary get_dep_licenses outputs aggrerate license information for all transitive Istio dependencies.
Binary get_dep_licenses outputs aggrerate license information for all transitive Istio dependencies.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL